🔨 1 new commit to ComuCompose:master:
4ec964d: Push latest changes
* Utils.kt: Add optional
* ChatActivity.kt: Adjust
* LoginActivity.kt: Replace
* MainActivity.kt: Replace
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
4ec964d: Push latest changes
* Utils.kt: Add optional
fill parameter to JumpSwapDots to control width behavior.* ChatActivity.kt: Adjust
JumpSwapDots animation speed to 125.* LoginActivity.kt: Replace
CircularProgressIndicator with JumpSwapDots during loading state; fix incorrect Handlers.messageCheck call (start -> run).* MainActivity.kt: Replace
CircularProgressIndicator with JumpSwapDots for UI consistency.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
5e2abaa: Revamp Profile UI and add Firebase Performance
- Rewrite ProfileActivity with collapsing droplet header, custom avatar morphing, and nested scroll handling.
- Integrate Firebase Performance Monitoring plugin and dependencies.
- Update JumpSwapDots utility with new layout parameters and animation logic.
- Add animated connecting indicator to MainActivity and adjust dot sizing in ChatActivity.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
5e2abaa: Revamp Profile UI and add Firebase Performance
- Rewrite ProfileActivity with collapsing droplet header, custom avatar morphing, and nested scroll handling.
- Integrate Firebase Performance Monitoring plugin and dependencies.
- Update JumpSwapDots utility with new layout parameters and animation logic.
- Add animated connecting indicator to MainActivity and adjust dot sizing in ChatActivity.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
9f3bcfe: Refactor event handling and cleanup code
- Replace hardcoded event name strings with constants in
- Introduce
- Convert
- Use
- Improve null safety checks and string building efficiency
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
9f3bcfe: Refactor event handling and cleanup code
- Replace hardcoded event name strings with constants in
Handlers.kt- Introduce
waitResult helper to deduplicate synchronous request logic- Convert
if-else chains to when expressions and improve formatting- Use
getIcon() accessor instead of direct property access in ProfileActivity- Improve null safety checks and string building efficiency
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuServer:main:
5307034: Refactor, clean up, and update protocol events
Refactored code for improved readability and consistency:
- Standardized
- Removed unused methods, exception variables, and legacy code.
- Replaced hardcoded event names with descriptive alternatives.
- Updated JSON response keys to match new event names.
Bug fixes and enhancements:
- Fixed typos in log messages.
- Added
- Refactored
- Introduced
Other changes:
- Added
- Replaced
5307034: Refactor, clean up, and update protocol events
Refactored code for improved readability and consistency:
- Standardized
if-else blocks and added braces {}.- Removed unused methods, exception variables, and legacy code.
- Replaced hardcoded event names with descriptive alternatives.
- Updated JSON response keys to match new event names.
Bug fixes and enhancements:
- Fixed typos in log messages.
- Added
time field to "msg.new" event for timestamps.- Refactored
msg.delete for better isdel handling.- Introduced
Encrypt method for string encryption.Other changes:
- Added
SharpCompress.Compressors.Xz library.- Replaced
GoogleUserOutputData deserialization with JsonDocument. by NikkaGames🔨 1 new commit to ComuCompose:master:
2204a63: Implement edge-to-edge UI and refactor profile animations
- Enable transparent status bars and edge-to-edge layout across Main, Login, Chat, and Profile activities
- Update themes.xml to support transparent system bars
- Refactor droplet background physics, avatar blur, and layout in ProfileActivity
- Add default profile image fallback logic in MainActivity
- Update incoming message event key in Firebase service
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
2204a63: Implement edge-to-edge UI and refactor profile animations
- Enable transparent status bars and edge-to-edge layout across Main, Login, Chat, and Profile activities
- Update themes.xml to support transparent system bars
- Refactor droplet background physics, avatar blur, and layout in ProfileActivity
- Add default profile image fallback logic in MainActivity
- Update incoming message event key in Firebase service
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
24f07c3: Refactor threading to Coroutines and remove Firebase Performance
- Migrate background tasks in
- Convert
- Update
- Remove Firebase Performance Monitoring dependency and plugin configuration.
- Simplify vibration logic in
- Remove redundant whitespace in
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
24f07c3: Refactor threading to Coroutines and remove Firebase Performance
- Migrate background tasks in
Handlers (LoadChats, NewChat, icon processing) from Java Threads/Executors to Kotlin Coroutines.- Convert
getIcon to a suspend function and remove CompletableFuture usage.- Update
LoginActivity, MainActivity, ChatActivity, and ComuFirebaseService to initialize and pass CoroutineScope for async operations.- Remove Firebase Performance Monitoring dependency and plugin configuration.
- Simplify vibration logic in
ComuFirebaseService by removing legacy SDK version checks.- Remove redundant whitespace in
ProfileActivity.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
6a9d4e6: Migrate to SQLCipher and implement message drafts
- Replace standard SQLite with SQLCipher for encrypted local storage
- Implement message draft saving, restoring, and preview in chat list
- Update
- Embed obfuscated SSL certificate in
- Enhance token validation using app signature and device ID
- Update
- Lock app orientation to portrait and add splash screen logic
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
6a9d4e6: Migrate to SQLCipher and implement message drafts
- Replace standard SQLite with SQLCipher for encrypted local storage
- Implement message draft saving, restoring, and preview in chat list
- Update
TokenDatabase to support encryption and store user data blobs- Embed obfuscated SSL certificate in
SocketService and remove commu.jks- Enhance token validation using app signature and device ID
- Update
MainActivity UI with new list item design and ripple effects- Lock app orientation to portrait and add splash screen logic
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 2 new commits to ComuCompose:master:
4b74d9e: Migrate to SQLCipher and implement message drafts
- Replace standard SQLite with SQLCipher for encrypted local storage
- Implement message draft saving, restoring, and preview in chat list
- Update
- Embed obfuscated SSL certificate in
- Enhance token validation using app signature and device ID
- Update
- Lock app orientation to portrait and add splash screen logic
Add proguard rules for SQLCipher
- Keep classes and members for net.sqlcipher.** and org.sqlite.** to prevent obfuscation issues.
- Add dontwarn rules for sqlcipher and sqlite packages.
- Specifically keep mNativeHandle in SQLiteDatabase to ensure native access works correctly.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
bb3a9cb: Merge remote-tracking branch 'origin/master' by NikkaGames
4b74d9e: Migrate to SQLCipher and implement message drafts
- Replace standard SQLite with SQLCipher for encrypted local storage
- Implement message draft saving, restoring, and preview in chat list
- Update
TokenDatabase to support encryption and store user data blobs- Embed obfuscated SSL certificate in
SocketService and remove commu.jks- Enhance token validation using app signature and device ID
- Update
MainActivity UI with new list item design and ripple effects- Lock app orientation to portrait and add splash screen logic
Add proguard rules for SQLCipher
- Keep classes and members for net.sqlcipher.** and org.sqlite.** to prevent obfuscation issues.
- Add dontwarn rules for sqlcipher and sqlite packages.
- Specifically keep mNativeHandle in SQLiteDatabase to ensure native access works correctly.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
bb3a9cb: Merge remote-tracking branch 'origin/master' by NikkaGames
🔨 1 new commit to ComuCompose:master:
7cffbb2: Refactor threading for chat loading, search, and login operations
Optimize image processing and icon loading in Handlers
Rename request queue in SocketService and update PendingIntent flags
Fix draft state updates and empty view logic in ChatActivity
Adjust chat list item padding and text styling in MainActivity
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
7cffbb2: Refactor threading for chat loading, search, and login operations
Optimize image processing and icon loading in Handlers
Rename request queue in SocketService and update PendingIntent flags
Fix draft state updates and empty view logic in ChatActivity
Adjust chat list item padding and text styling in MainActivity
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
42df7b6: Revamp Profile UI and adjust chat bubble width
- Update
- Add User Bio and "Joined at" sections to the profile layout.
- Implement logic to display a verified badge next to the username, utilizing a new
- Increase the maximum width of text messages in
- Add
- Remove unused blur animation logic from
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
42df7b6: Revamp Profile UI and adjust chat bubble width
- Update
ProfileActivity to include a row of action buttons (Message, Notify, Call, Add) with AnimatedVisibility.- Add User Bio and "Joined at" sections to the profile layout.
- Implement logic to display a verified badge next to the username, utilizing a new
brighter color extension function.- Increase the maximum width of text messages in
ChatActivity from 60% to 75% of the screen width.- Add
ic_notify vector resource.- Remove unused blur animation logic from
ProfileActivity.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
3397ced: Refactor profile data handling and user search flow
- Separate profile view data (UID, name, icon, verification) from current user data in
- Update
- Redirect user search in
- Update
- Rename "New Chat" to "Search user" and update the search icon in
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
3397ced: Refactor profile data handling and user search flow
- Separate profile view data (UID, name, icon, verification) from current user data in
Singleton to prevent conflicts.- Update
ProfileActivity to consume specific profile fields and handle from_profile navigation logic for chat initiation.- Redirect user search in
Handlers to open ProfileActivity instead of directly launching ChatActivity.- Update
ChatActivity and MainActivity to populate Singleton profile data before navigating to ProfileActivity.- Rename "New Chat" to "Search user" and update the search icon in
MainActivity.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
ed4d6be: Extract average color from user icon and use it for verified badge tint
* Calculate average color from item icon in
* Add
* Apply the calculated
* Ensure a default profile icon is displayed if
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
ed4d6be: Extract average color from user icon and use it for verified badge tint
* Calculate average color from item icon in
Handlers.kt.* Add
color property to ItemClass with a default blue value.* Apply the calculated
item.color to the verified badge tint in MainActivity.kt.* Ensure a default profile icon is displayed if
item.icon is null in MainActivity.kt.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuServer:main:
0302964: Send empty message history if user has no messages to counterparty by NikkaGames
0302964: Send empty message history if user has no messages to counterparty by NikkaGames
🔨 1 new commit to ComuCompose:master:
ad42f65: Push latest changes
* ChatActivity: Refine
* deploymentTargetSelector: Update deployment target selection mode.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
ad42f65: Push latest changes
* ChatActivity: Refine
noMessages state logic during initial load to prevent empty state flash.* deploymentTargetSelector: Update deployment target selection mode.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to AudioReceiver:master:
78c49b2: Refactor AudioReceiverService socket handling and update Gradle properties
- Make
- Ensure the socket is closed in
- Add exception handling for socket reception and thread sleep to gracefully exit the loop on interruption or error.
- Increase Gradle JVM heap size to 4GB.
- Clean up comments and add
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
78c49b2: Refactor AudioReceiverService socket handling and update Gradle properties
- Make
DatagramSocket a class-level member in AudioReceiverService to allow proper cleanup.- Ensure the socket is closed in
onDestroy to prevent resource leaks.- Add exception handling for socket reception and thread sleep to gracefully exit the loop on interruption or error.
- Increase Gradle JVM heap size to 4GB.
- Clean up comments and add
android.deployInstruments, android.injected.testOnly, and android.baselineProfiles properties in gradle.properties.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
a6b1002: Refactor service state checks and notification permissions
- Introduce
- Add
- Update
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
a6b1002: Refactor service state checks and notification permissions
- Introduce
ServiceStateHelper in Utils to verify running services using ActivityManager, replacing the static SocketService.isRunning check across ChatActivity, LoginActivity, MainActivity, and ComuFirebaseService.- Add
NotificationPermission helper class in Utils to handle Android 13+ notification permission requests and implement it in LoginActivity.- Update
ChatActivity to display "Reconnecting..." status text when the socket service is not running or connected.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
edfb07b: Update profile and chat screens to handle dynamic icon loading and screen sizes
- Add
- Update
- Implement dynamic loading of profile icons in
- Refactor
- Add
- Update
- Ensure proper process termination in
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
edfb07b: Update profile and chat screens to handle dynamic icon loading and screen sizes
- Add
getScreenClass utility using WindowMetricsCalculator to categorize screen dimensions.- Update
ProfileActivity to conditionally render profile components based on screen class and notch presence.- Implement dynamic loading of profile icons in
ProfileActivity and ChatActivity via coroutines and new EVENT_USER_PICTURE_LINK handler.- Refactor
ComuFirebaseService to handle profileLink from FCM data, fetching icons if missing before notification display.- Add
androidx.window dependency.- Update
LoginActivity to check SocketService.isRunning static flag instead of helper method.- Ensure proper process termination in
Handlers upon failed token validation.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuServer:main:
de033ba: Add user.icon event and enrich msg.new with profile pics
Enhanced the TCPServer class by adding support for the
event. This includes retrieving and validating the user ID
(
response.
Modified the
profile picture link (
information sent to clients. by NikkaGames
de033ba: Add user.icon event and enrich msg.new with profile pics
Enhanced the TCPServer class by adding support for the
user.iconevent. This includes retrieving and validating the user ID
(
myuid) and sending the user's profile picture link in theresponse.
Modified the
msg.new event handling to include the user'sprofile picture link (
p) in the response data, enriching theinformation sent to clients. by NikkaGames
🔨 1 new commit to ComuCompose:master:
21c1c87: Disable blur and haze effects on low-end devices and update process termination logic
- Conditionally remove blur and haze modifiers in Chat, Login, Main, and Profile activities based on screen class.
- Fallback to solid backgrounds on low-end hardware to improve performance.
- Switch to
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
21c1c87: Disable blur and haze effects on low-end devices and update process termination logic
- Conditionally remove blur and haze modifiers in Chat, Login, Main, and Profile activities based on screen class.
- Fallback to solid backgrounds on low-end hardware to improve performance.
- Switch to
android.os.Process.killProcess from exitProcess when handling failed tokens in Handlers.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuServer:main:
819c89d: Add session token and user profile management features
Introduced methods to manage session tokens (
Implemented
819c89d: Add session token and user profile management features
Introduced methods to manage session tokens (
LoadTokens, SaveToken, DeleteToken) and user profile data (GetBio, SetBio, GetRegistered) in MongoDB. Tokens are now loaded into memory at server startup, and token persistence is ensured during generation. Added default values for bio and registered fields during user registration.Implemented
user.getinfo and user.setbio event handlers to allow clients to retrieve and update user profile data. Enhanced server setup to create necessary MongoDB collections if missing. by NikkaGames🔨 1 new commit to ComuCompose:master:
f1c223c: Implement user bio and profile details
- Enable viewing and updating user bio in ProfileActivity with clickable URL support.
- Display registration date and add shimmer loading effect for profile data.
- Implement backend handlers for fetching and setting profile info (
- Move
- Optimize message list rendering in ChatActivity using
- Fix Service check logic in LoginActivity.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
f1c223c: Implement user bio and profile details
- Enable viewing and updating user bio in ProfileActivity with clickable URL support.
- Display registration date and add shimmer loading effect for profile data.
- Implement backend handlers for fetching and setting profile info (
getProfileInfo, setProfileBio).- Move
ActionButton to MainActivity companion for reusability and add character limit to AnimatedNativeEditText.- Optimize message list rendering in ChatActivity using
distinctBy.- Fix Service check logic in LoginActivity.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames