Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 803d71cb authored by Jules Casteran's avatar Jules Casteran
Browse files

Send query to leon

added Socket io dependency
added permission to android app and use cleartexttraffic in application
Use socket in ChatActivity
parent b7b0b1ec
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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'
+4 −1
Original line number Diff line number Diff line
@@ -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>
+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)
@@ -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)
    }

}