ConnectyCube / android-messenger-app

Chat and voice / video calling app using ConnectyCube
https://connectycube.com
Apache License 2.0
51 stars 23 forks source link

Recipient id is null #39

Closed vinayappypiellp closed 4 years ago

vinayappypiellp commented 4 years ago

Hi, i am facing this issue,

java.lang.RuntimeException: Unable to start activity 
ComponentInfo{appy.pie.connectycubedemo/appy.pie.connectycubedemo.MainActivity}: 
java.lang.IllegalArgumentException: Recipient ID can't be null or empty
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3092)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3235)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor. 
executeCallbacks(TransactionExecutor.java:108            )
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1926)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:6986)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)
     Caused by: java.lang.IllegalArgumentException: Recipient ID can't be null or empty
    at com.connectycube.chat.model.ConnectycubeChatDialog.initForChat(Unknown Source:38)
    at com.connectycube.chat.model.ConnectycubeChatDialog.initForChat(Unknown Source:8)
    at appy.pie.connectycubedemo.MainActivity.sendChat(MainActivity.kt:73)
    at appy.pie.connectycubedemo.MainActivity.onCreate(MainActivity.kt:55)
    at android.app.Activity.performCreate(Activity.java:7326)
    at android.app.Activity.performCreate(Activity.java:7317)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3072)

val dialog = ConnectycubeChatDialog()
    dialog.type = ConnectycubeDialogType.PRIVATE
    dialog.dialogId= "xxxxx"
    dialog.userId= ConnectycubeSessionManager.getInstance().activeSession.userId

    sendChat(dialog)

private fun sendChat(dialog: ConnectycubeChatDialog){

    try {

        val chatMessage = ConnectycubeChatMessage()
        chatMessage.recipientId= xxxxx
        chatMessage.dialogId= "xxxxx"

        chatMessage.body = "How are you today?"
        chatMessage.setSaveToHistory(true)

        dialog.initForChat(ConnectycubeChatService.getInstance())
        dialog.sendMessage(chatMessage)

    } catch (e: SmackException.NotConnectedException) {

    }
}

can you please help me out.

TatankaConCube commented 4 years ago

hello @vinayappypiellp, looks like you try call dialog.initForChat method before login to the chat, please use ConnectycubeChatService.getInstance().isLoggedIn(); to check chat login status. More details by link . Additionally check if you set occupant(s) for this dialog (more).

vinayappypiellp commented 4 years ago

@TatankaConCube , i have loggedIn,

ConnectycubeUsers.signIn(user).performAsync(object : EntityCallback<ConnectycubeUser> {
        override fun onSuccess(conUser: ConnectycubeUser, args: Bundle) {
            setResult(Activity.RESULT_OK)
            finish()
        }

        override fun onError(ex: ResponseException) {
            Toast.makeText(this@LoginActivity, ex.message, Toast.LENGTH_LONG).show()
        }
      })

But

ConnectycubeChatService.getInstance().isLoggedIn();

is still giving false and

ConnectycubeSessionManager.getInstance().sessionParameters

has user details.

TatankaConCube commented 4 years ago

@vinayappypiellp from code above I can see you login to the REST, not to chat, use next documentation to create chat connection an use chat functions