Ir para o conteúdo

Rox.Chat Mobile Widget para Android

O Rox.Chat Mobile Widget é um componente completo, que contém uma lista de mensagens, um campo de entrada e elementos adicionais, como bate-papos. O Chat é um componente multifuncional que permite o envio de mensagens, fotos, vídeos, arquivos e muito mais. Apesar do grande número de funções, o chat é um componente View comum do Android e pode ser facilmente integrado ao aplicativo por meio do layout e do código XML. O chat foi criado com base no princípio de que todos os valores padrão são definidos, mas tudo pode ser redefinido de acordo com suas necessidades.

Ele combina extrema facilidade de uso com funcionalidade avançada. O Rox.Chat Mobile Widget é uma boa alternativa ao uso do Rox.Chat Mobile SDK, pois vem com todos os elementos e adaptadores da interface do usuário e requer um esforço mínimo de integração.

1. Adição do componente Mobile Widget às dependências

// kotlin dsl
dependencies {
    implementation("yourpackage:chat:version")
}
// groovy
dependencies {
    implementation("yourpackage:chat:version")
}

2. Configuração do Mobile Widget

O Mobile Widget é um componente de visualização normal que pode ser definido programaticamente por meio de código e por meio de layouts XML.

Usando XML:

<chat.roxchat.chatview.ui.ChatView
    android:id="@+id/chatView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:chv_account_name="https://demo.rox.chat"
    app:chv_location_name="mobile" />

Os parâmetros chv_account_name e chv_location_name definem sua conta do Rox.Chat e sua localização. Esses parâmetros também podem ser alterados no código, especificando a sessão do Rox.Chat.

Programmaticamente:

O próprio Chat funciona com o Rox.Chat Mobile SDK. Para configurar o Mobile Widget, passe a ele a sessão configurada que você usou anteriormente com o Rox.Chat Mobile SDK. Você precisa passar a sessão do Rox.Chat para o Mobile Widget por meio do método ChatView#setSession. Agora o Mobile Widget fará todo o trabalho para você.

ChatView chatView = new ChatView(getContext());
chatView.setSession(session);
containerView.addView(chatView);

The session is set up like this:

RoxSession session = Rox.newSessionBuilder()
    .setContext(getContext())
    .setAccountName("https://demo.rox.chat")
    .setLocation("mobile")
    ...
    .build();

Em seguida, a visualização é responsável por trabalhar com a sessão, iniciando, interrompendo e destruindo-a.

A configuração do software do Mobile Widget oferece uma configuração flexível. Você também pode combinar essas duas abordagens. Declare um ChatView na marcação, localize a exibição no código e configure uma sessão.

3. Personalização do tema

Você também pode substituir as cores padrão do Mobile Widget. Você pode criar seu próprio estilo herdando o ChatViewDefaultStyle.

<style name="MyChatTheme" parent="ChatViewDefaultStyle">
    <item name="chv_bar_background">@color/white</item>
    <item name="chv_message_border">@color/message_border</item>
    ...
</style>

No layout, especifique o estilo que você criou no campo app:chv_chat_style do ChatView. Aqui está um exemplo:

<chat.rox.chatview.ui.ChatView
    android:id="@+id/chatView"
    app:chv_chat_style="@style/MyChatTheme"
    ...
    />

Há uma lista de cores e drawables que podem ser substituídos. Essa lista é mostrada abaixo:

Item de estilo Tipo
chv_primary_color integer or color
chv_secondary_color integer or color
chv_accent_color integer or color
chv_bar_background integer or color
chv_message_border integer or color
chv_text_light integer or color
chv_text_strong integer or color
chv_text_medium integer or color
chv_text_hint integer or color
chv_sent_bubble integer or color
chv_sent_text integer or color
chv_sent_link_text integer or color
chv_sent_time_text integer or color
chv_sent_edited_text integer or color
chv_sent_selected integer or color
chv_sent_divider integer or color
chv_sent_file_data integer or color
chv_received_bubble integer or color
chv_received_text integer or color
chv_received_link_text integer or color
chv_received_time_text integer or color
chv_received_edited_text integer or color
chv_received_selected integer or color
chv_received_divider integer or color
chv_received_sender_name integer or color
chv_system_bubble integer or color
chv_system_text integer or color
chv_system_link_text integer or color
chv_system_time_text integer or color
chv_buttons_background integer or color
chv_buttons_pending integer or color
chv_buttons_complete integer or color
chv_buttons_canceled integer or color
chv_message_replied integer or color
chv_prompt_syncing integer or color
chv_prompt_net_lost integer or color
chv_prompt_net_losing integer or color
chv_message_text_size dimension
chv_message_corner_radius dimension
chv_message_menu_background integer or color
chv_chat_menu_background integer or color