Skip to content

Feat/chat/channel message screen #317

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 28 commits into from
Dec 20, 2024
Merged

Conversation

taghizadlaura
Copy link
Contributor

@taghizadlaura taghizadlaura commented Dec 14, 2024

Channel Activity Implementation for Chat System

Description

This PR introduces the implementation of the Channel Activity feature for the chat system. It focuses on displaying the list of channels and integrating the message screen. The main goal is to allow users to interact with channels and send/receive messages within those channels. It closes issue #311 and a part of issue #275.

Note:
We followed this tutorial: https://getstream.io/tutorials/android-chat/ and did not implement our own screens (ChannelScreen and MessageScreen). This is why we are using another activity.

Given the limited time before the final milestone, we opted for this solution as it is simpler. However, if time permits, we can create our own screens in a separate PR to ensure a consistent design with the rest of the app.

Changes

  • Implemented ChannelActivity for viewing and interacting with channels.
  • Call a MessagesScreen to display messages within a selected channel and on the accept button of an alert.
  • Ensured seamless navigation between the Channel List and Messages Screen.
  • Added tests for ChatViewModel to verify channel creation logic.
  • Add test to AlertListsScreenTest to validate new navigation and interaction flows.

Files

Added

  • ChannelActivity.kt

Modified

  • ChatViewModelTest.kt
  • AlertListsScreenTest.kt
  • AlertListsScreenTest.kt

Removed

  • None

Dependencies Added

  • None

Testing

  • Unit tests for ChatViewModel to verify channel creation and message sending.
  • UI tests in AlertListsScreenTest to validate new flows.

Screenshots

For the moment, as shown in the following screens, the navigation flow is as follows:

  • AlertListsScreenacceptAlertMessageScreengoBackAlertListsScreen
  • AlertListsScreensendButtonChannelScreenclickOnChannelMessageScreengoBackChannelScreengoBackAlertListsScreen
Description Screen 1 Screen 2 Screen 3 Screen 4
Send a message by accepting an alert
Once a discussion has begun, you can revisit your messages on the ChannelScreen

@taghizadlaura taghizadlaura linked an issue Dec 14, 2024 that may be closed by this pull request
6 tasks
@taghizadlaura taghizadlaura self-assigned this Dec 14, 2024
@taghizadlaura taghizadlaura added the enhancement New feature or request label Dec 14, 2024
@taghizadlaura taghizadlaura requested review from agonzalez-r, lazarinibruno and charst4r and removed request for agonzalez-r December 19, 2024 01:47
@taghizadlaura taghizadlaura marked this pull request as ready for review December 19, 2024 01:52
@taghizadlaura taghizadlaura requested review from coaguila and removed request for charst4r December 19, 2024 14:08
Copy link
Contributor

@coaguila coaguila left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary

Great chat feature, truly enjoy it. It was funny discovery that Stream service has implemented automatically a GIF service.

Important (which includes)

Code Quality

LGTM

Functionality

LGTM

Testing

LGTM

Documentation

LGTM

Suggestions

Perhaps should have explained AndroidManifest changes and why they exist in the pr.

Copy link
Contributor

@lazarinibruno lazarinibruno left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary

YES ITS FINALLY HERE! THE ONE, THE ONLY, ONE CHAT TO RULE THEM ALL.

Thanks for your contribution!

Notes

Very well formulated and explained PR. It made it easier to follow along with the changes.

Code quality

  • Consistent and pertinent use of logs.

  • Consistent and well-written doc.

  • Overall, the code is very readable.

Tests

  • Good adaptation of already existing tests.

  • Pertinent test additons.

  • I played around for a while with the chat to make sure that it propertly works.

Steps before merge

Please consider my comments. Otherwise, LGTM.

…t/channel-message-screen

# Conflicts:
#	app/src/main/java/com/android/periodpals/MainActivity.kt
@taghizadlaura taghizadlaura merged commit 0f3a1ef into main Dec 20, 2024
4 checks passed
@taghizadlaura taghizadlaura deleted the feat/chat/channel-message-screen branch December 20, 2024 00:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Chat : Presenting a Channel
4 participants