Commits by Nikka
9 subscribers
164 links
Owned by @NikkaGameS
Download Telegram
🔨 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 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
🔨 1 new commit to ComuCompose:master:

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 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 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
🔨 1 new commit to ComuCompose:master:

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