Commits by Nikka
9 subscribers
164 links
Owned by @NikkaGameS
Download Telegram
🔨 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 user.icon
event. This includes retrieving and validating the user ID
(myuid) and sending the user's profile picture link in the
response.

Modified the msg.new event handling to include the user's
profile picture link (p) in the response data, enriching the
information 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 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 (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 (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
🔨 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
🔨 1 new commit to ComuServer:main:

2623c61: Sanitize newlines in TCPServer bio field

Updated the return statement in the TCPServer class to replace
newline characters (\n) in the bio field with /bk/. This
ensures proper sanitization or formatting of the bio field
before 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
🔨 1 new commit to ComuCompose:master:

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
🔨 1 new commit to ComuServer:main:

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 ReplaceOne
with 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
🔨 1 new commit to ComuServer:main:

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 by
removing 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 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 colors

Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:

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 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.IO

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 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.IO

Optimize 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 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 lastm handling

Refactored MongoClient initialization to use a new mongoDbg
variable for determining the constructor. Updated lastm
retrieval logic to handle deleted messages by checking the
isdel field and setting appropriate values. Simplified the
default lastm value in the catch block for clarity. by NikkaGames
🔨 1 new commit to ComuCompose:master:

ea7506c: Refactor profile icon loading and optimize message parsing

- Implement asynchronous loading for user and chat icons with caching, shimmer placeholders, and fade animations in MainActivity and ChatActivity.
- Update avgChatColor to use mutable state for dynamic UI theming based on icon colors.
- Refactor message parsing logic to use dynamic delimiter indexing instead of fixed substrings in Handlers and ComuFirebaseService.
- Remove blocking retry loops for chat data retrieval and optimize notification preview generation.
- Remove underline styling from URL annotations and adjust color handling in ProfileActivity.

Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuServer:main:

a92d73b: Add SetName method and integrate with SetBio handling

A new private method SetName was added to the TCPServer class to validate and update usernames in the account MongoDB collection. It ensures usernames are unique, non-null, and properly formatted. The method returns true on successful updates and false otherwise.

The HandleUserSetBioAsync method was updated to call SetName, allowing it to handle username updates alongside bio updates. Appropriate client responses are sent based on the success or failure of the SetName operation.

These changes enhance functionality by enabling username management while maintaining data integrity and uniqueness. by NikkaGames
🔨 1 new commit to ComuCompose:master:

e14787d: Refactor profile editing with an expandable UI

- Replace the bio update bottom sheet with a full-screen expandable editor animation.
- Allow updating both username and bio simultaneously in the new editor.
- Add ExpandableBox composable to handle the transition animation from profile info to the editor.
- Implement session validation in onResume to handle token mismatches.
- Add a connection loss alert dialog to ProfileActivity.
- Update Handlers.setProfileBio and parseSetProfileBio to accept and process username changes.
- Store and retrieve the user's bio in Singleton.

Signed-off-by: NikkaGames <[email protected]> by NikkaGames