diff --git a/twitter/src/twitter/BaseDeDatos.java b/twitter/src/twitter/BaseDeDatos.java index db6b1ac..96321cd 100644 --- a/twitter/src/twitter/BaseDeDatos.java +++ b/twitter/src/twitter/BaseDeDatos.java @@ -10,6 +10,9 @@ public class BaseDeDatos { /* * Agrega un usuario si este no existe. * */ + if(usuario == null){ + return; + } for(Usuario user: usuarios){ if(user.getNombreUsuario().equals(usuario.getNombreUsuario())){ System.out.println("ESTE NOMBRE DE USUARIO YA ESTA REGISTRADO"); diff --git a/twitter/src/twitter/Dashboard.java b/twitter/src/twitter/Dashboard.java index 0edd4b2..ed76ed9 100644 --- a/twitter/src/twitter/Dashboard.java +++ b/twitter/src/twitter/Dashboard.java @@ -13,11 +13,13 @@ public class Dashboard { ArrayList tweets = BaseDeDatos.getTweets(); ArrayList usuarios = this.usuario.seguimiento.getSeguidos(); int count = 0; - int index=0; - for(Tweet tweet: tweets){ + int cantidadTweets = tweets.size()-1; + Tweet tweet; + for(int i=cantidadTweets;i>=0;i--){ + tweet = tweets.get(i); if(usuarios.contains(tweet.getUsuario()) || tweet.getUsuario()==this.usuario){ System.out.print("\n---------------------"); - System.out.print("\n\t*id: "+index+"\n\tAutor: "+tweet.getUsuario().getNombreUsuario()+ + System.out.print("\n\t*id: "+i+"\n\tAutor: "+tweet.getUsuario().getNombreUsuario()+ "\n\tTexto: "+tweet.getText()); System.out.print("\n\tLikes: "+tweet.getNumeroFav()+"\tRts: "+tweet.getNumeroRt()); if(tweet.getImageUrl()!=null){ @@ -44,8 +46,7 @@ public class Dashboard { return; } } - System.out.println("\n\n"); - index++; } + System.out.println("\n\n"); } } diff --git a/twitter/src/twitter/Seguimiento.java b/twitter/src/twitter/Seguimiento.java index 6a16a9d..ab01fbf 100644 --- a/twitter/src/twitter/Seguimiento.java +++ b/twitter/src/twitter/Seguimiento.java @@ -106,6 +106,12 @@ public class Seguimiento { } } + public void printBloqueados(){ + for(Usuario user: bloqueados){ + System.out.print("\n\t--"+user.getNombreUsuario()); + } + } + public ArrayList getSeguidores() { return seguidores; } diff --git a/twitter/src/twitter/TestTwitter.java b/twitter/src/twitter/TestTwitter.java index a50101f..ccaaece 100644 --- a/twitter/src/twitter/TestTwitter.java +++ b/twitter/src/twitter/TestTwitter.java @@ -23,6 +23,7 @@ public class TestTwitter { choice = in.nextInt(); }catch (Exception e){ System.out.println("Entrada no validad"); + in.reset(); } switch (choice){ case 1: @@ -38,6 +39,7 @@ public class TestTwitter { continuar = false; break; default: + choice = 0; System.out.println("Eleccion no validad"); } }else{ @@ -48,12 +50,13 @@ public class TestTwitter { "4 - Bloqueados\n"+ "0 - Cerrar Sesion\n"+ "Entrada: "); + int choice3=0; try{ - choice = in.nextInt(); + choice3 = in.nextInt(); }catch (Exception e){ System.out.println("Entrada no validad"); } - switch (choice){ + switch (choice3){ case 1: System.out.print("\nDashboard: "); loggedUser.dashboard.verUltimosTweets(10); @@ -62,14 +65,14 @@ public class TestTwitter { "\n3 - Retweetear"+ "\n4 - Volver"+ "\nEntrada: "); - int choice3 = 0; + int choice4 = 0; int id; try{ - choice3 = in.nextInt(); + choice4 = in.nextInt(); }catch (Exception e){ System.out.println("Eleccion no valida"); } - switch (choice3){ + switch (choice4){ case 1: System.out.print("\nID de Tweet a responder: "); id = in.nextInt(); @@ -86,6 +89,7 @@ public class TestTwitter { Tweet.retweetear(loggedUser, id); break; default: + choice4 = 0; break; } break; @@ -126,11 +130,13 @@ public class TestTwitter { loggedUser.seguimiento.desbloquear(); break; default: + choice2=0; break; } break; case 4: - loggedUser.seguimiento.dejarDeSeguir(); + System.out.print("\nBloqueados: "); + loggedUser.seguimiento.printBloqueados(); break; case 0: System.out.println("Saliendo..."); @@ -138,6 +144,7 @@ public class TestTwitter { break; default: System.out.println("Eleccion no validad"); + choice3=0; } } @@ -151,6 +158,14 @@ public class TestTwitter { "correo"+i, new Date(), new Date(), "fotoUrl"+i, "descripcion"+i, i%2 == 0)); } + for(int i=0;i<10;i++){ + Usuario user = BaseDeDatos.getUsuarioByUsername("user"+i); + for(int j=0;j<5;j++){ + BaseDeDatos.addTweet(new Tweet(user, "Test Tweet"+(i*5+j), + "C:/path.test"+(i*5+j)+".jpg", + "https://link/test"+(i*5+j)+".com")); + } + } } } diff --git a/twitter/src/twitter/Tweet.java b/twitter/src/twitter/Tweet.java index 4ebd87f..18e2bfe 100644 --- a/twitter/src/twitter/Tweet.java +++ b/twitter/src/twitter/Tweet.java @@ -31,7 +31,7 @@ public class Tweet { public void addLike(Usuario usuario){ for(Reaccion reaccion: reacciones){ - if(reaccion.getUsuario()==usuario){ + if(reaccion.getUsuario()==usuario && reaccion.getTipoDeReaccion().equals("LIKE")){ System.out.println("Ya diste like a esta publicacion"); return; } @@ -46,7 +46,7 @@ public class Tweet { public void addRt(Usuario usuario){ for(Reaccion reaccion: reacciones){ - if(reaccion.getUsuario()==usuario){ + if(reaccion.getUsuario()==usuario && reaccion.getTipoDeReaccion().equals("RT")){ System.out.println("Ya diste rt a esta publicacion"); return; } diff --git a/twitter/src/twitter/Usuario.java b/twitter/src/twitter/Usuario.java index ae25bea..a52ca2c 100644 --- a/twitter/src/twitter/Usuario.java +++ b/twitter/src/twitter/Usuario.java @@ -1,8 +1,10 @@ package twitter; import java.util.Date; +import java.util.Locale; import java.util.Objects; import java.util.Scanner; +import java.util.regex.Pattern; public class Usuario { private String nombreUsuario; @@ -64,6 +66,7 @@ public class Usuario { password = in.nextLine(); System.out.print("\nIngrese mail: "); mail = in.nextLine(); + if(!mailRegexCheck(mail.toUpperCase())) {System.out.print("\nFormato de Mail Incorrecto"); return null;} System.out.print("\nIngrese una descripcion: "); descripcion = in.nextLine(); return new Usuario(username, password, mail, descripcion); @@ -130,4 +133,8 @@ public class Usuario { public boolean isEsVerficado() { return esVerficado; } + + private static boolean mailRegexCheck(String mail){ + return Pattern.matches("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$", (CharSequence) mail); + } }