diff --git a/.idea/modules.xml b/.idea/modules.xml
index e6f8c11..cf1b1e8 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,8 +2,8 @@
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index da62ebf..e136a3e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -28,6 +28,7 @@ dependencies {
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'de.hdodenhof:circleimageview:2.2.0'
compile 'com.google.firebase:firebase-database:11.4.2' //Firebase database
+ compile 'com.github.nkzawa:socket.io-client:0.3.0' //Socket.io
testCompile 'junit:junit:4.12'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1e9787f..9d03100 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,6 +2,8 @@
+
+
feedList = new ArrayList();
- for (DataSnapshot feedSnapshot : dataSnapshot.getChildren()) {
- FeedItem feedItem = feedSnapshot.getValue(ConversationFeedItem.class);
- feedList.add(feedItem);
- }
- System.out.println("Feed list: " + feedList);
- initializeFeed(feedList);
+ public void onChildAdded(DataSnapshot dataSnapshot, String s) {
+ FeedItem feedItem = dataSnapshot.getValue(ConversationFeedItem.class);
+ feedLayout.addView(feedItem.getView(context, feedLayout), 0);
}
@Override
+ public void onChildChanged(DataSnapshot dataSnapshot, String s) {}
+ @Override
+ public void onChildRemoved(DataSnapshot dataSnapshot) {}
+ @Override
+ public void onChildMoved(DataSnapshot dataSnapshot, String s) {}
+ @Override
public void onCancelled(DatabaseError databaseError) {}
});
@@ -102,6 +103,9 @@ public void startChat(View v) {
Intent i = new Intent(this, ChatActivity.class);
i.putExtra("partner_name", "Jason");
startActivity(i);
+
+ Network.wantToTalk();
+ System.out.println("want to talk");
}
diff --git a/app/src/main/java/com/example/isaacwang/wholesomeapp/Network.java b/app/src/main/java/com/example/isaacwang/wholesomeapp/Network.java
index 2da57d4..6e8cdf5 100644
--- a/app/src/main/java/com/example/isaacwang/wholesomeapp/Network.java
+++ b/app/src/main/java/com/example/isaacwang/wholesomeapp/Network.java
@@ -1,11 +1,20 @@
package com.example.isaacwang.wholesomeapp;
+import android.app.Activity;
+
+import com.github.nkzawa.emitter.Emitter;
+import com.github.nkzawa.socketio.client.IO;
+import com.github.nkzawa.socketio.client.Socket;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.net.URISyntaxException;
import java.util.ArrayList;
/**
@@ -37,4 +46,47 @@ public static void addToFeed(FeedItem feedItem) {
System.out.println("FEED ITEM: " + feedItem);
feedDatabase.push().setValue(feedItem);
}
+
+ public static Socket chatSocket;
+
+ public static void wantToTalk() {
+ try {
+ chatSocket = IO.socket("http://10.0.2.2:3000");
+ chatSocket.connect();
+ chatSocket.emit("want_to_talk", "MY_ID");
+ } catch(URISyntaxException e) {System.out.println("Failed to connect to socket");}
+ }
+
+ public static void downToListen(Emitter.Listener listener) {
+ try {
+ chatSocket = IO.socket("10.0.2.2:3000");
+ chatSocket.connect();
+ chatSocket.emit("down_to_listen", "MY_ID");
+
+// Emitter.Listener onNewTalker = new Emitter.Listener() {
+// @Override
+// public void call(final Object... args) {
+// activity.runOnUiThread(new Runnable() {
+// @Override
+// public void run() {
+// JSONObject data = (JSONObject) args[0];
+// String username;
+// String message;
+// try {
+// username = data.getString("username");
+// message = data.getString("message");
+// } catch (JSONException e) {
+// return;
+// }
+//
+// // add the message to view
+// addMessage(username, message);
+// }
+// });
+// }
+// };
+ chatSocket.on("want_to_listen", listener);
+ } catch(URISyntaxException e) {}
+ }
+
}