Conversation
- Created messaging package structure - Moved message-related code to dedicated files - Added proper documentation - Improved code organization and maintainability
Created button for chat screen as well as the chat screen itself. Changes to files: MainActivity.kt BottomNavHost.kt BottomNavItem.kt strings.xml(All versions)
Fix for the app crashing when the IP field in chat is empty
…based chat selection - Removed the old text field + button approach in the Chat route - Introduced ChatNodeListScreen to display nodes from NetworkScreenViewModel - Users now tap a node to navigate to the existing ChatScreen
Added message bubble feature to the chat screen. work done in ChatScreen.kt
…thub.com/grey-box/Project-Mesh into messaging-updates-wil-mesh-asu-cidse2024
…reuse - Relocated WifiListItem composable to `com.greybox.projectmesh.extension.WifiListItem` - Removed old definitions from NetworkScreen and replaced them with imports of the new utility - Updated ChatNodeListScreen and NetworkScreen to reference the shared component - Ensures a single source of UI truth for node listing and improves code maintainability
Fixed the issue of the app crashing when message were being sent.
Deleted line that was for some reason added, wasn't in the latest version so unsure where it came from.
Added different colors for message bubbles based on whether or not a message is sent by the user, or being received by the user.
- Add test device infrastructure for chat testing - Create mock virtual router and logger - Implement test device in network screen - Add basic test device appearance in chat list This allows testing of chat functionality without requiring a second physical device.
…ing build issues.
…dpoint - Added OnboardingViewModel storing typed device name in both userRepository (DB) and SharedPreferences - Created custom ViewModelProvider.Factory to avoid no-arg constructor crash in Onboarding - Updated AppServer with /myinfo route + requestRemoteUserInfo() to retrieve remote user’s name - Replaced DeviceInfoManager calls with userRepository-based lookups (DB approach) - Settings screen now reads + displays the typed device name (shared DB/prefs) - Currently not calling requestRemoteUserInfo() automatically; will add usage in next commit
…dpoint - Added OnboardingViewModel storing typed device name in both userRepository (DB) and SharedPreferences - Created custom ViewModelProvider.Factory to avoid no-arg constructor crash in Onboarding - Updated AppServer with /myinfo route + requestRemoteUserInfo() to retrieve remote user’s name - Replaced DeviceInfoManager calls with userRepository-based lookups (DB approach) - Settings screen now reads + displays the typed device name (shared DB/prefs) - Currently not calling requestRemoteUserInfo() automatically; will add usage in next commit
…idse2024' into messaging-updates-wil-mesh-asu-cidse2024 # Conflicts: # app/src/main/java/com/greybox/projectmesh/MainActivity.kt # app/src/main/java/com/greybox/projectmesh/messaging/ui/screens/ChatScreen.kt
- Updated SettingsScreen to trigger onDeviceNameChange when a new device name is submitted. - Modified the onDeviceNameChange callback to: • Retrieve the local UUID from SharedPreferences. • Update the local user in the database via UserRepository.insertOrUpdateUser. • Query connected users (via getAllConnectedUsers) from the repository and iterate over each user’s IP address. • For each connected node, convert the IP to InetAddress and call appServer.pushUserInfoTo to broadcast the updated user info. - Added detailed logging for debugging the update and broadcast processes. - Refactored the broadcast mechanism to reuse existing user repository data instead of maintaining a separate global list.
Deleted some old test code from ChatScreen.kt
- Fixed onboarding screen bug so it only shows on first startup by properly setting/checking the hasRunBefore flag. - Refactored OnboardingViewModel to use DI-provided local IP from AndroidVirtualNode. - Updated user info update logic (get user info and update) to store clean user names and IP separately. - Improved messaging logic to avoid appending the IP to the user name.
-Added time stamps to the bottom right of message bubbles.
-created conversation entity for tracking chat history -implement conversationdao and repository for data management -added ConversationHomeScreens UI with online/offline indicators - update navigation - integrate history with existing chat screen and user profiles - added support for offline messaging history - improved UX with status indicators and unread counts - modified to 2 test users: one online and one offline
…ting app git status ! make sure to clear data on app before running this git status
…TTP Post Was originally being sent via HTTP GET which has some problems.
…ld-Type # Conflicts: # app/src/main/java/com/greybox/projectmesh/messaging/network/MessageNetworkHandler.kt # app/src/main/java/com/greybox/projectmesh/navigation/BottomNavHost.kt
taimuradam
left a comment
There was a problem hiding this comment.
It looks good, I have proposed 3 small changes in app/src/main/java/com/greybox/projectmesh/MainActivity.kt (line 97), app/src/main/AndroidManifest.xml (line 86) and app/build.gradle.kts (line 33).
procrastinator007
left a comment
There was a problem hiding this comment.
Looks good my comments should summarize that all file changes were appropriate and consistent. In some of them there where unnecessary cleanup or lines that were added which was not so necessary but at the same time, it doesn't affect the functionality of the code and is ready to be pushed on to the main branch as long as it has been tested on a android physical device to see if the logger is setup correctly. emulator looks good.
There was a problem hiding this comment.
looks good no problem
There was a problem hiding this comment.
Setup of debug functionality looks good and categorised
There was a problem hiding this comment.
Timber logging added appropriately replacing the older version
There was a problem hiding this comment.
consistent changes made
There was a problem hiding this comment.
consistent changes made
There was a problem hiding this comment.
consistent changes made
There was a problem hiding this comment.
consistent changes made
There was a problem hiding this comment.
consistent changes made
There was a problem hiding this comment.
consistent changes made
There was a problem hiding this comment.
timber has been added appropriately
|
@Kteja03 Can you try running this on your Android device? You'll need to build the debug build and check the log option on the app (we think this exists?). You might get more help from here: https://www.notion.so/grey-box/Build-variants-and-what-they-do-217815ddf30b807caeb8eaed05a6e0f6 |
Includes Features like: