Kotlin

Inicializar el cliente

NexmoClient es la clase principal utilizada para interactuar con Android-Client-SDK. Antes de utilizarlo, debe inicializar el cliente proporcionando una instancia de Android Contexto clase.

En la parte superior del MainActivity definir clase client que contendrá la referencia al cliente:

private lateinit var client: NexmoClient

NOTA: Puede activar otros Logcat registro mediante logLevel() del constructor, por ejemplo, NexmoClient.Builder().logLevel(ILogger.eLogLevel.SENSITIVE).build(this)

Localice el onCreate en el método MainActivity e inicializar NexmoClient utilizando el constructor:

client = NexmoClient.Builder().build(this)

El IDE mostrará una advertencia sobre la referencia no resuelta:

Coloque el signo de intercalación sobre el texto rojo y pulse Alt + Enter para importar la referencia.

Ahora debajo del código de inicialización del cliente añada un listener de conexión para monitorizar el estado de la conexión:

client.setConnectionListener(NexmoConnectionListener { connectionStatus: ConnectionStatus, _: ConnectionStatusReason? ->
        if (connectionStatus == ConnectionStatus.CONNECTED) {
            getConversation()

            Toast.makeText(this, "User connected", Toast.LENGTH_SHORT)
        } else if (connectionStatus == ConnectionStatus.DISCONNECTED) {
            Toast.makeText(this, "User disconnected", Toast.LENGTH_SHORT)
            
            runOnUiThread {
                chatContainer.visibility = View.GONE
                loginContainer.visibility = View.VISIBLE
            }
        }
    })

El listener anterior permite determinar que ese usuario ha iniciado sesión correctamente y mostrar la UI del chat.

Añadir vacío getConversation método. Lo actualizará en los siguientes pasos:

private fun getConversation() { }

Añade el código para iniciar la sesión de los usuarios en la parte inferior del archivo onCreate método. Asegúrese de sustituir ALICE_JWT y BOB_JWT con el JWT que creó en un paso anterior:

findViewById<View>(R.id.loginAsAliceButton).setOnClickListener {
    findViewById<TextView>(R.id.userNameTextView).text = "Alice: "
    client.login(ALICE_JWT)

    runOnUiThread {
        loginContainer.visibility = View.INVISIBLE
    }
}

findViewById<View>(R.id.loginAsBobButton).setOnClickListener {
    findViewById<TextView>(R.id.userNameTextView).text = "Bob: "
    client.login(BOB_JWT)

    runOnUiThread {
        loginContainer.visibility = View.INVISIBLE
    }
}

Finalmente en el mismo método añade el código para cerrar la sesión del usuario:

findViewById<View>(R.id.logoutButton).setOnClickListener { client.logout() }

Ejecutar Build > Make project para asegurarse de que el proyecto se está compilando.