|
|
@@ -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);
|