Selaa lähdekoodia

uso usuario en lugar de token + no tengo lista de listeners

David 10 vuotta sitten
vanhempi
commit
f6b2c099b9

+ 18 - 21
app/src/main/java/com/example/david/myapplication/WebSocketHandler.java

@@ -1,8 +1,6 @@
 package com.example.david.myapplication;
 
-import android.text.Layout;
 import android.util.Log;
-import android.widget.EditText;
 
 import com.neovisionaries.ws.client.WebSocket;
 import com.neovisionaries.ws.client.WebSocketAdapter;
@@ -12,7 +10,6 @@ import com.neovisionaries.ws.client.WebSocketFrame;
 
 import org.json.JSONObject;
 
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -25,18 +22,18 @@ interface chatListener {
     void msgReceived(String result);
 }
 interface diapoListener {
-    void msgReceived(String PDF, String diapo, int slide);
+    void msgReceived(String PDF, int slide);
 }
 
 public class WebSocketHandler {
-    private static List<chatListener> chat_listeners = new ArrayList<chatListener>();
-    private static List<diapoListener> diapo_listeners = new ArrayList<diapoListener>();
+    private static chatListener chat_listeners;
+    private static diapoListener diapo_listener;
 
-    public static void addChatListener(chatListener toAdd) {
-        chat_listeners.add(toAdd);
+    public static void setChatListener(chatListener toAdd) {
+        chat_listeners=toAdd;
     }
     public static void addDiapoListener(diapoListener toAdd) {
-        diapo_listeners.add(toAdd);
+        diapo_listener=toAdd;
     }
 
     private static WebSocket ws;
@@ -54,8 +51,6 @@ public class WebSocketHandler {
         try {
             WebSocketFactory factory = new WebSocketFactory();
             SSLContext context = NaiveSSLContext.getInstance("TLS");
-
-            // Set the custom SSL context.
             factory.setSSLContext(context);
             ws = factory.createSocket(WSS_URL);
         } catch (Exception e) {
@@ -69,29 +64,31 @@ public class WebSocketHandler {
                 JSONObject obj = new JSONObject(message);
                 switch (obj.getString("type")) {
                     case "chat":
-                        String formattedMessage = String.format("\n[HORA] %s: %s", obj.getString("user"), obj.getString("text"));
-                        for (chatListener cl : chat_listeners)
-                            cl.msgReceived(formattedMessage);
-
-
+                        String formattedMessage = String.format("\n%s: %s", obj.getString("user"), obj.getString("text"));
+                        chat_listeners.msgReceived(formattedMessage);
                         break;
+                    //{"PDF":"EBA","slide":2,"type":"diapo","offset":1460934915}
+                    case "diapo":
+                        String PDF=obj.getString("PDF");
+                        int slide=obj.getInt("slide");
+                        diapo_listener.msgReceived(PDF,slide);
                     default:
                         break;
-                }
-                ;
+                };
             }
 
             @Override
             public void onConnected(WebSocket websocket, Map<String, List<String>> headers) throws Exception {
                 Log.i("Websocket", "Connected");
                 status = WS_STATUS.CONNECTED;
-                //FIXME chat.append("\nConectado al sistema");
+                chat_listeners.msgReceived("\nConectado al sistema");
             }
 
             @Override
             public void onDisconnected(WebSocket websocket, WebSocketFrame serverCloseFrame, WebSocketFrame clientCloseFrame,
                                        boolean closedByServer) {
                 Log.i("Websocket", "Disconnected");
+                chat_listeners.msgReceived("\nDesconectado del sistema");
                 status = WS_STATUS.DISCONNECTED;
                 websocket.connectAsynchronously();
             }
@@ -104,8 +101,8 @@ public class WebSocketHandler {
         }).connectAsynchronously();
     }
 
-    public static void sendMessage(String s) {
-        String formatted=String.format("{ \"type\":\"chat\", \"user\": \"%s %s (%s)\", \"text\":\"%s\" }", "nombre","Apellido","pais", s);
+    public static void sendMessage(String s,String nombre, String apellido, String pais) {
+        String formatted=String.format("{ \"type\":\"chat\", \"user\": \"%s %s (%s)\", \"text\":\"%s\" }", nombre,apellido,pais, s);
         Log.i("Websocket", "sending" + formatted);
 
         ws.sendText(formatted);