Java

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 NexmoClient client;

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

client = new 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((connectionStatus, connectionStatusReason) -> {
    if (connectionStatus == NexmoConnectionListener.ConnectionStatus.CONNECTED) {
        Toast.makeText(this, "User connected", Toast.LENGTH_SHORT);
        
        getConversation();
    } else if (connectionStatus == NexmoConnectionListener.ConnectionStatus.DISCONNECTED) {
        Toast.makeText(this, "User disconnected", Toast.LENGTH_SHORT);
        
        runOnUiThread(() -> {
            chatContainer.setVisibility(View.GONE);
            loginContainer.setVisibility(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 void 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(R.id.loginAsAliceButton).setOnClickListener(it -> {
    client.login(ALICE_JWT);

    runOnUiThread(() -> loginContainer.setVisibility(View.GONE));
});

findViewById(R.id.loginAsBobButton).setOnClickListener(it -> {
    client.login(BOB_JWT);

    runOnUiThread(() -> loginContainer.setVisibility(View.GONE));
});

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

findViewById(R.id.logoutButton).setOnClickListener(it -> client.logout());

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