Loading leonApp/app/build.gradle +4 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,10 @@ android { } dependencies { implementation ('io.socket:socket.io-client:1.0.0') { // excluding org.json which is provided by Android exclude group: 'org.json', module: 'json' } implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.1.0' Loading leonApp/app/src/main/AndroidManifest.xml +4 −1 Original line number Diff line number Diff line Loading @@ -2,13 +2,16 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.poc.leonapp"> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> android:theme="@style/AppTheme" android:usesCleartextTraffic="true"> <activity android:name=".ChatActivity"></activity> <activity android:name=".MainActivity"> <intent-filter> Loading leonApp/app/src/main/java/com/poc/leonapp/ChatActivity.kt +28 −11 Original line number Diff line number Diff line package com.poc.leonapp import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.os.Parcel import android.os.Parcelable import androidx.appcompat.app.AppCompatActivity import com.poc.leonapp.models.ChatLeon import com.poc.leonapp.models.ChatUser import com.poc.leonapp.models.User import com.xwray.groupie.GroupAdapter import com.xwray.groupie.Item import com.xwray.groupie.ViewHolder import kotlinx.android.parcel.Parcelize import io.socket.client.IO import io.socket.client.Socket import io.socket.emitter.Emitter import kotlinx.android.synthetic.main.activity_chat.* import kotlinx.android.synthetic.main.chat_leon.view.* import kotlinx.android.synthetic.main.chat_user.view.* import org.json.JSONObject class ChatActivity : AppCompatActivity() { private val adapter = GroupAdapter<ViewHolder>() var socket: Socket = IO.socket("http://192.168.1.30:1337") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) Loading @@ -25,26 +24,44 @@ class ChatActivity : AppCompatActivity() { userSend.setOnClickListener { performSendUserRequest() } socket.on(Socket.EVENT_DISCONNECT, Emitter.Listener { println("disconnected") }) socket.on(Socket.EVENT_CONNECT, Emitter.Listener { println("connected") socket.emit("init", "webapp") }) socket.on("answer", Emitter.Listener { addLeonResponseToChat("response") }) socket.connect() println("SOCKET CONNECT") } private fun performSendUserRequest() { // TODO : Send user request to Leon addUserRequestToChat() addLeonResponseToChat() //addLeonResponseToChat("okok") } private fun addLeonResponseToChat() { val leon = User("Leon says hello !") private fun addLeonResponseToChat(response: String) { val leon = User(response) adapter.add(ChatLeon(leon)) chatRecyclerView.scrollToPosition(adapter.itemCount - 1) } private fun addUserRequestToChat() { val user = User(userKeyboard.text.toString()) val msg: String = userKeyboard.text.toString() val user = User(msg) adapter.add(ChatUser(user)) userKeyboard.text.clear() chatRecyclerView.scrollToPosition(adapter.itemCount - 1) val obj = JSONObject(); obj.put("value", msg) socket.emit("query", obj) } } Loading
leonApp/app/build.gradle +4 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,10 @@ android { } dependencies { implementation ('io.socket:socket.io-client:1.0.0') { // excluding org.json which is provided by Android exclude group: 'org.json', module: 'json' } implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.1.0' Loading
leonApp/app/src/main/AndroidManifest.xml +4 −1 Original line number Diff line number Diff line Loading @@ -2,13 +2,16 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.poc.leonapp"> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> android:theme="@style/AppTheme" android:usesCleartextTraffic="true"> <activity android:name=".ChatActivity"></activity> <activity android:name=".MainActivity"> <intent-filter> Loading
leonApp/app/src/main/java/com/poc/leonapp/ChatActivity.kt +28 −11 Original line number Diff line number Diff line package com.poc.leonapp import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.os.Parcel import android.os.Parcelable import androidx.appcompat.app.AppCompatActivity import com.poc.leonapp.models.ChatLeon import com.poc.leonapp.models.ChatUser import com.poc.leonapp.models.User import com.xwray.groupie.GroupAdapter import com.xwray.groupie.Item import com.xwray.groupie.ViewHolder import kotlinx.android.parcel.Parcelize import io.socket.client.IO import io.socket.client.Socket import io.socket.emitter.Emitter import kotlinx.android.synthetic.main.activity_chat.* import kotlinx.android.synthetic.main.chat_leon.view.* import kotlinx.android.synthetic.main.chat_user.view.* import org.json.JSONObject class ChatActivity : AppCompatActivity() { private val adapter = GroupAdapter<ViewHolder>() var socket: Socket = IO.socket("http://192.168.1.30:1337") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) Loading @@ -25,26 +24,44 @@ class ChatActivity : AppCompatActivity() { userSend.setOnClickListener { performSendUserRequest() } socket.on(Socket.EVENT_DISCONNECT, Emitter.Listener { println("disconnected") }) socket.on(Socket.EVENT_CONNECT, Emitter.Listener { println("connected") socket.emit("init", "webapp") }) socket.on("answer", Emitter.Listener { addLeonResponseToChat("response") }) socket.connect() println("SOCKET CONNECT") } private fun performSendUserRequest() { // TODO : Send user request to Leon addUserRequestToChat() addLeonResponseToChat() //addLeonResponseToChat("okok") } private fun addLeonResponseToChat() { val leon = User("Leon says hello !") private fun addLeonResponseToChat(response: String) { val leon = User(response) adapter.add(ChatLeon(leon)) chatRecyclerView.scrollToPosition(adapter.itemCount - 1) } private fun addUserRequestToChat() { val user = User(userKeyboard.text.toString()) val msg: String = userKeyboard.text.toString() val user = User(msg) adapter.add(ChatUser(user)) userKeyboard.text.clear() chatRecyclerView.scrollToPosition(adapter.itemCount - 1) val obj = JSONObject(); obj.put("value", msg) socket.emit("query", obj) } }