🔨 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
🔨 1 new commit to ComuServer:main:
07958f6: Change license to proprietary
Updated the license to reflect proprietary status. by Nikka
07958f6: Change license to proprietary
Updated the license to reflect proprietary status. by Nikka
🔨 1 new commit to ComuCompose:master:
4b3c57c: Enable copying bio text via long-press and improve URL handling
Auto-show keyboard and request focus when opening bottom sheets
Prevent duplicate message insertion and fix null safety in previews
Delay FCM token transmission until socket service is ready
Optimize blur effects and fallback for low-end devices
Refactor notification permission requests and text field state
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
4b3c57c: Enable copying bio text via long-press and improve URL handling
Auto-show keyboard and request focus when opening bottom sheets
Prevent duplicate message insertion and fix null safety in previews
Delay FCM token transmission until socket service is ready
Optimize blur effects and fallback for low-end devices
Refactor notification permission requests and text field state
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuServer:main:
2623c61: Sanitize newlines in TCPServer bio field
Updated the
newline characters (
ensures proper sanitization or formatting of the
before it is returned. by NikkaGames
2623c61: Sanitize newlines in TCPServer bio field
Updated the
return statement in the TCPServer class to replacenewline characters (
\n) in the bio field with /bk/. Thisensures proper sanitization or formatting of the
bio fieldbefore it is returned. by NikkaGames
🔨 1 new commit to ComuCompose:master:
67e9cac: Replace "/bk/" with a newline in user bio replacement
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
67e9cac: Replace "/bk/" with a newline in user bio replacement
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
f484e39: Refactor connection state management and fix thread safety
- Replace
- Refactor
- Update
- Fix UI state updates in
- Ensure proper service restarts and token handling in
- Add
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
f484e39: Refactor connection state management and fix thread safety
- Replace
MutableState variables in SocketService with volatile booleans and a SocketFlags object for thread-safe state tracking.- Refactor
SocketService loop logic to handle connection attempts, reading, and sending more robustly, including proper resource cleanup on disconnect.- Update
ChatActivity, LoginActivity, MainActivity, and ComuFirebaseService to observe the new SocketFlags and connectedState instead of the old state variables.- Fix UI state updates in
ChatActivity by dispatching to the main thread and using derived state for call visibility.- Ensure proper service restarts and token handling in
LoginActivity and MainActivity based on the new connection flags.- Add
try-catch to thread sleeping in Utils to prevent crashes on interruption.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
fdcd9ae: Optimize chat list performance and refactor state management
- Implement staggered list animations and memoize bitmaps in MainActivity
- Replace polling loops with snapshotFlow and optimize filtering with derivedStateOf
- Hoist profile info state in ProfileActivity
- Fix navigation logic operator in LoginActivity
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
fdcd9ae: Optimize chat list performance and refactor state management
- Implement staggered list animations and memoize bitmaps in MainActivity
- Replace polling loops with snapshotFlow and optimize filtering with derivedStateOf
- Hoist profile info state in ProfileActivity
- Fix navigation logic operator in LoginActivity
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuServer:main:
e2068a6: Enhance TCPServer: sessions, tokens, and refactoring
Improved session management with the introduction of the
Added methods for session cleanup and streamlined retrieval.
Enhanced device and token tracking with new methods for
managing FCM tokens and refactored token handling for better
consistency and database operations.
Simplified database initialization and replaced
with
and exception handling for improved readability and stability.
These changes add multiclient support and improve scalability, maintainability, performance. by NikkaGames
e2068a6: Enhance TCPServer: sessions, tokens, and refactoring
Improved session management with the introduction of the
DeviceSession class and thread-safe ConcurrentDictionary.Added methods for session cleanup and streamlined retrieval.
Enhanced device and token tracking with new methods for
managing FCM tokens and refactored token handling for better
consistency and database operations.
Simplified database initialization and replaced
ReplaceOnewith
InsertOne for clarity. Refactored loops, conditionals,and exception handling for improved readability and stability.
These changes add multiclient support and improve scalability, maintainability, performance. by NikkaGames
🔨 1 new commit to ComuCompose:master:
1b843b7: Handle self-events and refactor socket encryption
- Update notification service to suppress alerts for self-events
- Correctly flag self-event messages in message handlers
- Move encryption logic to SocketService output stream
- Add device identifier to authentication requests and for multiclient support
- Restrict outgoing messages during socket reconnection
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
1b843b7: Handle self-events and refactor socket encryption
- Update notification service to suppress alerts for self-events
- Correctly flag self-event messages in message handlers
- Move encryption logic to SocketService output stream
- Add device identifier to authentication requests and for multiclient support
- Restrict outgoing messages during socket reconnection
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuServer:main:
6e4aa2a: Refactor certificate loading and improve event handling
Refactored
Enhanced event handling by ensuring the loop continues on
removing redundant cleanup code and updating status management.
Added logging for certificate loading. by NikkaGames
6e4aa2a: Refactor certificate loading and improve event handling
Refactored
TCPServer to dynamically load the server certificate.Enhanced event handling by ensuring the loop continues on
TryGetMe failure. Improved client disconnection logic byremoving redundant cleanup code and updating status management.
Added logging for certificate loading. by NikkaGames
🔨 1 new commit to ComuCompose:master:
4e305f7: Improve socket stability and state handling
- Handle
- Ensure socket is open before attempting to send messages
- Guard status updates in
- Prevent concurrent execution of
- Refactor
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
4e305f7: Improve socket stability and state handling
- Handle
SocketException explicitly in SocketService and add delays for state synchronization- Ensure socket is open before attempting to send messages
- Guard status updates in
ChatActivity and MainActivity based on connection state- Prevent concurrent execution of
relaunch in LoginActivity using AtomicBoolean- Refactor
avgColor to MutableState in MainActivity and provide fallback colorsSigned-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
6507b74: Enhance Profile screen with new animations and visual effects
- Refactor
- Add
- Implement
- Apply
- Add fade animations to bio and join date text elements.
- Enable shimmer effect on the user's own profile avatar.
- Increase item loading delay in
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
6507b74: Enhance Profile screen with new animations and visual effects
- Refactor
Modifier.shimmer in Utils.kt to support configurable duration and delay intervals.- Add
Modifier.fadeOnCreate extension for simple fade-in entry animations.- Implement
GlowOverlay composable to render a radial gradient glow.- Apply
GlowOverlay to the profile header in ProfileActivity.- Add fade animations to bio and join date text elements.
- Enable shimmer effect on the user's own profile avatar.
- Increase item loading delay in
MainActivity from 35ms to 50ms.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 2 new commits to ComuCompose:master:
cf34ecb: Refactor chat list loading and item UI
- Offload icon decoding to the UI layer using asynchronous loading with
- Add shimmer placeholder effect for avatars while loading
- Simplify message preview text generation in
- Add fade-in animations to the chat list
- Enforce single-line limit with ellipsis for chat subtitles
- Switch
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
b652aa5: Refactor chat list loading and item UI
- Offload icon decoding to the UI layer using asynchronous loading with
- Add shimmer placeholder effect for avatars while loading
- Simplify message preview text generation in
- Add fade-in animations to the chat list
- Enforce single-line limit with ellipsis for chat subtitles
- Switch
Optimize icon caching and rounded corner logic
- Store pre-rounded bitmaps in
- Update the cache retrieval logic to save and use the rounded version directly.
- Add
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
cf34ecb: Refactor chat list loading and item UI
- Offload icon decoding to the UI layer using asynchronous loading with
LaunchedEffect- Add shimmer placeholder effect for avatars while loading
- Simplify message preview text generation in
Handlers by removing emoji-specific truncation logic- Add fade-in animations to the chat list
- Enforce single-line limit with ellipsis for chat subtitles
- Switch
LoadChats to use Dispatchers.IOSigned-off-by: NikkaGames <[email protected]> by NikkaGames
b652aa5: Refactor chat list loading and item UI
- Offload icon decoding to the UI layer using asynchronous loading with
LaunchedEffect- Add shimmer placeholder effect for avatars while loading
- Simplify message preview text generation in
Handlers by removing emoji-specific truncation logic- Add fade-in animations to the chat list
- Enforce single-line limit with ellipsis for chat subtitles
- Switch
LoadChats to use Dispatchers.IOOptimize icon caching and rounded corner logic
- Store pre-rounded bitmaps in
Handlers.icons to avoid re-processing on every retrieval.- Update the cache retrieval logic to save and use the rounded version directly.
- Add
clip(RoundedCornerShape) modifier to the Image composable for consistent visual styling.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuServer:main:
18f5db0: Enhance MongoDB integration and streamline TCPServer
- Removed
- Added unique, case-insensitive index creation for
- Introduced case-insensitive collation for MongoDB operations.
- Refactored
- Replaced hardcoded MongoDB connection string with
- Configured
- Simplified server initialization and removed redundant code.
- Removed
- Adjusted formatting and fixed structural issues in
18f5db0: Enhance MongoDB integration and streamline TCPServer
- Removed
MongoDB.Driver.Core dependency from ComuServer.csproj.- Added unique, case-insensitive index creation for
username in the account collection.- Introduced case-insensitive collation for MongoDB operations.
- Refactored
GetIdByName to use aggregation with collation.- Replaced hardcoded MongoDB connection string with
MongoClientSettings.- Configured
ClusterConfigurator for MongoDB command logging.- Simplified server initialization and removed redundant code.
- Removed
GetOnlineDevices method.- Adjusted formatting and fixed structural issues in
TCPServer.cs. by NikkaGames🔨 1 new commit to ComuServer:main:
c7f699a: Refactor MongoClient logic and improve
Refactored MongoClient initialization to use a new
variable for determining the constructor. Updated
retrieval logic to handle deleted messages by checking the
default
c7f699a: Refactor MongoClient logic and improve
lastm handlingRefactored MongoClient initialization to use a new
mongoDbgvariable for determining the constructor. Updated
lastmretrieval logic to handle deleted messages by checking the
isdel field and setting appropriate values. Simplified thedefault
lastm value in the catch block for clarity. by NikkaGames