π¨ 1 new commit to ComuServer:main:
a277693: Refactor payload delivery logic for TCP and FCM fallback
Refactored the logic for sending payloads to user sessions, introducing
a277693: Refactor payload delivery logic for TCP and FCM fallback
Refactored the logic for sending payloads to user sessions, introducing
sentTcp and selfTcp flags to track TCP delivery success. Added fallback to FCM if TCP delivery fails for all sessions. Improved thread management by replacing thread creation with ThreadPool.QueueUserWorkItem for FCM notifications. Ensured SslStream authentication before TCP data transmission. Streamlined exception handling, replaced for loops with foreach for clarity, and restructured code for better readability and maintainability. by NikkaGamesπ¨ 1 new commit to ComuServer:main:
288c8c2: Add async servers and enhanced debug logging
Replaced direct server invocations with asynchronous `Task`-based
execution for
operation. Introduced
Enhanced debug logging across
and
Logs now include detailed insights into client registration,
packet handling, and room management.
Refactored
and added a
maintainability and debugging for real-time communication. by NikkaGames
288c8c2: Add async servers and enhanced debug logging
Replaced direct server invocations with asynchronous `Task`-based
execution for
TCPServer and UdpServer, ensuring concurrentoperation. Introduced
Task.WaitAll to synchronize completion.Enhanced debug logging across
RealtimeRegistry, TCPServer,and
UdpServer, controlled by the static TCPServer.sr flag.Logs now include detailed insights into client registration,
packet handling, and room management.
Refactored
UdpServer.Main into Run for task-based executionand added a
Dbg method for conditional logging. Improvedmaintainability and debugging for real-time communication. by NikkaGames
π¨ 1 new commit to ComuServer:main:
c465a4e: Add call termination methods and handle user disconnection
Added
to safely terminate calls by
a thread-safe
Updated
user-associated calls are terminated on disconnection. Also
added a call to
user's device from the real-time registry. by NikkaGames
c465a4e: Add call termination methods and handle user disconnection
Added
TryEnd and EndCallsByUser methods in CallRegistryto safely terminate calls by
callId or user uid. Introduceda thread-safe
ConcurrentDictionary to manage active calls.Updated
TCPServer to invoke EndCallsByUser and ensure alluser-associated calls are terminated on disconnection. Also
added a call to
RealtimeRegistry.Remove to clean up theuser's device from the real-time registry. by NikkaGames
π¨ 3 new commits to ComuCompose:master:
678c36e: Update notification logic and main item updates
- Refactor
- Move
- Remove redundant
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
c5611ad: Implement UDP voice calling functionality
- Add
- Rewrite
- Implement call signaling events (request, accept, reject, end) in
- Update
- Modify
- Add
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
70151fc: Implement in-call speakerphone toggle and audio routing
- Add speaker toggle button to ActiveUI and handle state changes.
- Implement proper audio device selection and AudioFocus management in UdpCallService, including support for Android 31+ APIs.
- Fix incorrect UID passing when starting UdpCallService.
- Refine CallActivity UI layout, padding, and call state updates.
- Improve socket error handling and resource cleanup in service lifecycle.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
678c36e: Update notification logic and main item updates
- Refactor
shouldNotify logic in message handlers to correctly account for chat focus and user ID comparisons.- Move
updateMainItems call for stickers to occur immediately upon handling, splitting based on isSelf.- Remove redundant
updateMainItems calls in other message handling flows to avoid duplication or incorrect timing.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
c5611ad: Implement UDP voice calling functionality
- Add
UdpCallService for handling audio recording, playback, and Opus encoding/decoding.- Rewrite
CallActivity to manage call UI states (Incoming, Outgoing, Active).- Implement call signaling events (request, accept, reject, end) in
Handlers.- Update
ChatActivity to initiate calls via profile interaction.- Modify
AppVisibility to prevent service termination during active calls.- Add
RECORD_AUDIO and foreground service permissions to Manifest.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
70151fc: Implement in-call speakerphone toggle and audio routing
- Add speaker toggle button to ActiveUI and handle state changes.
- Implement proper audio device selection and AudioFocus management in UdpCallService, including support for Android 31+ APIs.
- Fix incorrect UID passing when starting UdpCallService.
- Refine CallActivity UI layout, padding, and call state updates.
- Improve socket error handling and resource cleanup in service lifecycle.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
π¨ 1 new commit to ComuServer:main:
9ff2713: Add user call status checks to CallRegistry and TCPServer
Added
Updated
These changes improve concurrency handling and user experience. by NikkaGames
9ff2713: Add user call status checks to CallRegistry and TCPServer
Added
IsUserInCall methods to CallRegistry for checking if a user is in an active call, with or without retrieving the callId. Declared Calls as a ConcurrentDictionary to manage active call sessions.Updated
TCPServer to prevent initiating calls with users already in a call by using CallRegistry.IsUserInCall. Sends a "call.busy" message if the target user is busy.These changes improve concurrency handling and user experience. by NikkaGames
π¨ 1 new commit to ComuCompose:master:
5611986: Refactor Call UI and enhance call state management
- Consolidate call UI states (incoming, outgoing, active) into a single composable and replace text buttons with icons in
- Implement handling for
- Add
- Improve service lifecycle logic: check if running before starting and add a delay before finishing the activity on call end.
- Fix
- Remove invalid permission request invocation from
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
5611986: Refactor Call UI and enhance call state management
- Consolidate call UI states (incoming, outgoing, active) into a single composable and replace text buttons with icons in
CallActivity.- Implement handling for
BUSY call state in Handlers and update UI to reflect it.- Add
PendingIntent to UdpCallService notification to allow users to return to the active call screen.- Improve service lifecycle logic: check if running before starting and add a delay before finishing the activity on call end.
- Fix
callId assignment in EVENT_CALL_ACCEPTED handler.- Remove invalid permission request invocation from
UdpCallService.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
π¨ 2 new commits to ComuServer:main:
c475812: Include
Previously, the
property with the value
This enhancement provides additional context to the recipient
of the message, which can be useful for debugging, logging,
or other purposes. by NikkaGames
e84766e: Improve call handling, cleanup, and logging
Refactored
Enabled debugging in
c475812: Include
uid in call.busy message payloadPreviously, the
call.busy message only included the nameproperty with the value
"call.busy". This change adds auid property to the message, set to the value of targetUid.This enhancement provides additional context to the recipient
of the message, which can be useful for debugging, logging,
or other purposes. by NikkaGames
e84766e: Improve call handling, cleanup, and logging
Refactored
EndCallsByUser in CallRegistry.cs to return ended CallSession objects. Enhanced EndCallsByUser in TCPServer.cs to notify other parties and close UDP rooms. Improved NextCallId to ensure unique call IDs.Enabled debugging in
TCPServer.cs and added UdpServer.CloseRoom calls for proper cleanup. Introduced CloseRoom in UdpServer.cs for resource management. Enhanced error handling and logging in UdpServer.cs to prevent crashes and improve visibility. by NikkaGamesπ¨ 2 new commits to ComuCompose:master:
b45847e: Refactor login and background service cleanup
- In
- In
- Check if the user profile picture exists in
- Replace
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
de34d02: Implement call duration timer and optimize service lifecycle
- Add call timer logic and display elapsed time in CallActivity
- Update call notification to show chronometer
- Auto-stop UdpCallService when call state becomes ENDED
- Refactor FCM token registration and clean up JSON handling
- Optimize LoginActivity startup flow and navigation logic
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
b45847e: Refactor login and background service cleanup
- In
AppVisibility, wait for UdpCallService to finish before stopping SocketService.- In
LoginActivity, refactor auto-login logic into relaunchLogin and remove the retry loop in login.- Check if the user profile picture exists in
LoginActivity to skip directly to MainActivity.- Replace
finish() with finishAndRemoveTask() in ChatActivity and LoginActivity.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
de34d02: Implement call duration timer and optimize service lifecycle
- Add call timer logic and display elapsed time in CallActivity
- Update call notification to show chronometer
- Auto-stop UdpCallService when call state becomes ENDED
- Refactor FCM token registration and clean up JSON handling
- Optimize LoginActivity startup flow and navigation logic
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
π¨ 1 new commit to ComuCompose:master:
841729b: Add ongoing call banner to Chat and Main activities
- Expose
- Display a clickable green banner in
- Clicking the banner navigates to the active
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
841729b: Add ongoing call banner to Chat and Main activities
- Expose
UdpCallService.runningFlow to track call service state reactively.- Display a clickable green banner in
ChatActivity and MainActivity when a call is active, showing the elapsed duration.- Clicking the banner navigates to the active
CallActivity.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
π¨ 2 new commits to ComuServer:main:
fb6764f: Refactor to use PeerId and simplify client handling
Replaced uid/device keys with PeerId (ulong) across RealtimeClient,
RealtimeRegistry, and UdpServer for improved efficiency and clarity.
Updated TCPServer to handle specific user.getinfo case. Removed
UdpServer cleanup logic and refactored related code. General cleanup
and debug message updates to align with PeerId-based implementation. by NikkaGames
3ae8d79: Add call sync method and improve call state handling
Added
with users, sending call details or inactive status via
Integrated
in
state for further processing, enhancing handling of pending calls. by NikkaGames
fb6764f: Refactor to use PeerId and simplify client handling
Replaced uid/device keys with PeerId (ulong) across RealtimeClient,
RealtimeRegistry, and UdpServer for improved efficiency and clarity.
Updated TCPServer to handle specific user.getinfo case. Removed
UdpServer cleanup logic and refactored related code. General cleanup
and debug message updates to align with PeerId-based implementation. by NikkaGames
3ae8d79: Add call sync method and improve call state handling
Added
SendCallSync to TCPServer to synchronize call statuswith users, sending call details or inactive status via
SslStream.Integrated
SendCallSync in two key points after user registrationin
RealtimeRegistry. Updated call state logic to include Ringingstate for further processing, enhancing handling of pending calls. by NikkaGames
π¨ 4 new commits to ComuCompose:master:
d5bf16e: * Utils: Added
* UdpCallService: Refactored packet header structure to use a fixed-size 12-byte header (8 bytes for hashed peer ID, 4 bytes for call ID) instead of variable-length string fields, simplifying packet parsing and construction.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
3bda294: Update CallActivity finish logic and handling of incoming calls
- In
- In
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
d7913a5: Add microphone mute toggle and call reconnection monitoring
- Implement microphone muting in
- Add connection monitoring: switch to
- Handle
- Update
- Wrap UDP socket send operations in
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
9ed44b2: Update Call UI and implement call state synchronization
- Redesign the call screen layout in
- Change the active call status text from "Call active" to "Connected".
- Implement handling for the
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
d5bf16e: * Utils: Added
id helper function to generate a unique 64-bit hash from UID and device ID.* UdpCallService: Refactored packet header structure to use a fixed-size 12-byte header (8 bytes for hashed peer ID, 4 bytes for call ID) instead of variable-length string fields, simplifying packet parsing and construction.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
3bda294: Update CallActivity finish logic and handling of incoming calls
- In
CallActivity.kt, stop the service immediately when the call ends or is busy, reduce the delay before finishing the task from 2000ms to 1200ms, and clean up imports.- In
Handlers.kt, wrap the incoming call event handling in a coroutine that waits until the previous call state is no longer ENDED before initializing the new incoming call and starting CallActivity.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
d7913a5: Add microphone mute toggle and call reconnection monitoring
- Implement microphone muting in
UdpCallService and add a toggle button in CallActivity.- Add connection monitoring: switch to
RECON state ("Reconnectingβ¦") if no packets are received for 1 second.- Handle
EVENT_CALL_REJECTED with a new REJECTED state in CallWrapper.- Update
CallActivity to display UI for new states and cleanup resources on rejection.- Wrap UDP socket send operations in
runCatching to prevent crashes.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
9ed44b2: Update Call UI and implement call state synchronization
- Redesign the call screen layout in
CallActivity with a new profile icon placeholder, updated typography, and adjusted spacing.- Change the active call status text from "Call active" to "Connected".
- Implement handling for the
call.sync event in Handlers to correctly update the local call state (active/ended) and call ID based on server data.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
π¨ 2 new commits to ComuServer:main:
8a202c7: Add validation for Ievent.data in HandleMsgSendAsync
A new validation check ensures that the
is not null, empty, or improperly formatted (must be exactly
24 characters long). If the validation fails, the method
returns
This change improves input validation and prevents potential
issues caused by invalid or malformed data. by NikkaGames
e48cdfa: Update methods for picture links, responses, and dispatch
Modified
parameter for returning full or truncated picture links.
Updated
on
instead of
8a202c7: Add validation for Ievent.data in HandleMsgSendAsync
A new validation check ensures that the
Ievent.data propertyis not null, empty, or improperly formatted (must be exactly
24 characters long). If the validation fails, the method
returns
DispatchResult.Break to prevent further processing.This change improves input validation and prevents potential
issues caused by invalid or malformed data. by NikkaGames
e48cdfa: Update methods for picture links, responses, and dispatch
Modified
GetPictureLinkById to support an optional fullparameter for returning full or truncated picture links.
Updated
HandleUserIconAsync to use this parameter basedon
Ievent.value. Changed HandleUserGetInfoAsync to setr field to 1L in the response. AdjustedHandlePresenceGetAsync to return DispatchResult.Continueinstead of
DispatchResult.Break when TryGetMe fails. by NikkaGamesπ¨ 4 new commits to ComuCompose:master:
2857331: Revamp Call UI and persist UID
- Update CallActivity with a new layout, including a TopAppBar and Scaffold
- Expand call banner visibility in MainActivity and ChatActivity to include incoming and outgoing states
- Persist Singleton UID using SharedPreferences
- Fix blocking pointer input loop in MainActivity
- Remove explicit cleanup call in SocketService
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
4ada7dd: Implement SharedPreferences persistence for Singleton properties
- Update getters and setters to read and write values (UIDs, names, bio, notification settings) using SharedPreferences.
- Ensure
- Refactor field declarations to single lines and convert simple getters to expression bodies.
- Reorder methods for logical grouping.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
1a636cb: Load profile icon and average color asynchronously in ProfileActivity
* ProfileActivity.kt:
* Convert
* Implement
* Update UI to show a shimmer placeholder while the profile icon is loading.
* Use the fetched icon bitmap instead of the cached low-res version.
* Handlers.kt:
* Update
* Improve
* LoginActivity.kt:
* Add a check for
* Fix context usage for cache directory access when loading the user's own profile picture.
* .idea/deploymentTargetSelector.xml: Update deployment target configuration.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
9366551: Implement expandable profile header and update service startup
- ProfileActivity: Add expanding animation to the profile image when pulling down. Refactor header offset, avatar scaling, and name positioning logic. Move back and edit buttons in the layout hierarchy to ensure proper layering.
- UdpCallService: Move
- LoginActivity: Change debug logging level to Info.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
2857331: Revamp Call UI and persist UID
- Update CallActivity with a new layout, including a TopAppBar and Scaffold
- Expand call banner visibility in MainActivity and ChatActivity to include incoming and outgoing states
- Persist Singleton UID using SharedPreferences
- Fix blocking pointer input loop in MainActivity
- Remove explicit cleanup call in SocketService
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
4ada7dd: Implement SharedPreferences persistence for Singleton properties
- Update getters and setters to read and write values (UIDs, names, bio, notification settings) using SharedPreferences.
- Ensure
cleanUp() resets persisted values.- Refactor field declarations to single lines and convert simple getters to expression bodies.
- Reorder methods for logical grouping.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
1a636cb: Load profile icon and average color asynchronously in ProfileActivity
* ProfileActivity.kt:
* Convert
avgProfileColor to a mutableState to trigger recompositions on update.* Implement
LaunchedEffect to fetch the full resolution profile icon and calculate its average color asynchronously.* Update UI to show a shimmer placeholder while the profile icon is loading.
* Use the fetched icon bitmap instead of the cached low-res version.
* Handlers.kt:
* Update
getIconLink to support fetching the full-size image link via a boolean flag, parsing the result from a JSON object.* Improve
getIcon by setting connection timeouts and user-agent headers.* LoginActivity.kt:
* Add a check for
Handlers.isReconnected loop during login to ensure socket stability.* Fix context usage for cache directory access when loading the user's own profile picture.
* .idea/deploymentTargetSelector.xml: Update deployment target configuration.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
9366551: Implement expandable profile header and update service startup
- ProfileActivity: Add expanding animation to the profile image when pulling down. Refactor header offset, avatar scaling, and name positioning logic. Move back and edit buttons in the layout hierarchy to ensure proper layering.
- UdpCallService: Move
startForegroundCall to onCreate to ensure immediate foreground promotion.- LoginActivity: Change debug logging level to Info.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
π¨ 1 new commit to ComuServer:main:
bbc6611: Refactor presence handling; add status subscriptions
Replaced
status updates, subscriptions, and unsubscriptions. Added
Implemented
and
Added
changes. Updated disconnection logic to clean up statuses
and subscriptions. Ensured subscribers are notified when a
user's status is cleared. by NikkaGames
bbc6611: Refactor presence handling; add status subscriptions
Replaced
presence handlers with stat handlers to managestatus updates, subscriptions, and unsubscriptions. Added
ConcurrentDictionary structures for statusSubs andstreamIndex to track subscriptions and streams.Implemented
HandleStatusSetAsync, HandleStatusSubAsync,and
HandleStatusUnsubAsync methods for status management.Added
NotifyStatus helper to notify subscribers of statuschanges. Updated disconnection logic to clean up statuses
and subscriptions. Ensured subscribers are notified when a
user's status is cleared. by NikkaGames
π¨ 1 new commit to ComuCompose:master:
8d3ef6c: Refactor user status to subscription model and enhance Profile UI
- Switch user status handling from polling to a subscription-based event system in
- Remove
- Handle
- Add top and bottom vertical gradient fades to the profile image in
- Animate navigation icon tint brightness based on the profile expansion progress.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
8d3ef6c: Refactor user status to subscription model and enhance Profile UI
- Switch user status handling from polling to a subscription-based event system in
Handlers and ChatActivity.- Remove
startStatusPolling and implement subscribeStatus and unsubscribeStatus methods.- Handle
EVENT_STATUS_RECV events to update UI status asynchronously.- Add top and bottom vertical gradient fades to the profile image in
ProfileActivity when expanded.- Animate navigation icon tint brightness based on the profile expansion progress.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
π¨ 1 new commit to ComuServer:main:
0d0ee2c: Add secure key exchange mechanism for call setup
Introduced
0d0ee2c: Add secure key exchange mechanism for call setup
Introduced
xorKey field in CallRegistry for cryptographic key storage. Updated TCPServer to generate a 32-byte random key during call acceptance, Base64-encode it, and distribute it securely to the caller and callee. Ensured messages are sent only to authenticated SSL streams. Added state checks to activate calls only when in Ringing state. Enhanced security of call setup process. by NikkaGamesπ¨ 2 new commits to ComuServer:main:
9778646: Update TCPServer to notify on non-Ringing call state
Enhanced the
would simply return
The new logic sends a message to the stream via
including an object with
property. This ensures additional feedback is provided for
non-Ringing call states before returning
02d47ca: Refactor call handling and encapsulate call termination
Centralized call termination logic in
improve maintainability and reduce duplication. Updated methods
in
call states. Removed redundant code and ensured consistent
handling of call termination across the codebase. by NikkaGames
9778646: Update TCPServer to notify on non-Ringing call state
Enhanced the
TCPServer class to send a notification whencall.state is not CallState.Ringing. Previously, the methodwould simply return
DispatchResult.Continue in this case.The new logic sends a message to the stream via
SendObj,including an object with
name: "call.taken" and the callIdproperty. This ensures additional feedback is provided for
non-Ringing call states before returning
DispatchResult.Continue. by NikkaGames02d47ca: Refactor call handling and encapsulate call termination
Centralized call termination logic in
CallRegistry.EndCall toimprove maintainability and reduce duplication. Updated methods
in
TCPServer to use EndCall instead of direct calls toUdpServer.CloseRoom. Refined IsUserInCall logic to checkcall states. Removed redundant code and ensured consistent
handling of call termination across the codebase. by NikkaGames
π¨ 1 new commit to ComuCompose:master:
1f3a6b3: Implement XOR encryption for voice calls and handle 'taken' state
- Add XOR-based payload obfuscation in
- Implement key exchange logic in
- Introduce
- Remove redundant
- Reset encryption keys and call state properly upon service destruction.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
1f3a6b3: Implement XOR encryption for voice calls and handle 'taken' state
- Add XOR-based payload obfuscation in
UdpCallService for incoming and outgoing audio packets.- Implement key exchange logic in
Handlers via call.accepted and call.handsh events.- Introduce
State.TAKEN in CallWrapper to handle calls answered on other devices, closing the activity when received.- Remove redundant
incoming boolean from CallWrapper.- Reset encryption keys and call state properly upon service destruction.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
π¨ 3 new commits to ComuCompose:master:
4712b7a: Handle call reset event and fix call state transitions
- In
- In
- Add
- Reset
- Reset
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
52c16a5: Implement incoming call notifications and avatar display
* Add
* Show peer avatar and name in
* Pass peer
* Create dedicated notification channel for calls
* Refactor
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
03ba109: Implement mTLS HTTP client for call rejection and handle call notifications
This commit introduces a new mTLS-secured HTTP client (
Specific changes:
* Added
* Added
* Updated
* Refactored
* Updated
* Modified
* Bumped okhttp dependency to 4.12.0.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
4712b7a: Handle call reset event and fix call state transitions
- In
CallActivity.kt, remove the redundant CallWrapper.reset() call when state is TAKEN.- In
Handlers.kt:- Add
EVENT_CALL_RESET constant and handle it to reset the CallWrapper and stop the timer.- Reset
CallWrapper on EVENT_CALL_INCOMING if the state is not idle.- Reset
CallWrapper on EVENT_CALL_TAKEN before setting the state to TAKEN.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
52c16a5: Implement incoming call notifications and avatar display
* Add
CallActionReceiver for call notification actions (Accept/Reject)* Show peer avatar and name in
CallActivity with dynamic background color* Pass peer
uid and name via intents in ChatActivity, ProfileActivity, and UdpCallService* Create dedicated notification channel for calls
* Refactor
EVENT_CALL_INCOMING handling in Handlers and ComuFirebaseServiceSigned-off-by: NikkaGames <[email protected]> by NikkaGames
03ba109: Implement mTLS HTTP client for call rejection and handle call notifications
This commit introduces a new mTLS-secured HTTP client (
ComuMtlsHttp) to handle call rejection requests securely via a REST API endpoint. It also refactors the call handling logic, including improved notification management and auto-acceptance capabilities.Specific changes:
* Added
ComuMtlsHttp helper object to build an OkHttp client with custom SSL configuration (CA cert, client PFX) for secure communication.* Added
comuhttp.crt and comuclient.pfx (binary) resources for mTLS.* Updated
CallActivity to support auto-accepting calls via intent extras and handling reconnection logic in onResume.* Refactored
CallActionReceiver to reject calls via the new mTLS HTTP endpoint instead of the socket service.* Updated
Handlers to support extended rejection logic (rejectExt), proper notification channel management, and updated call event handling (SYNC, TAKEN, REJECTED).* Modified
Utils.createCallChannel to recreate the notification channel to ensure settings persist correctly.* Bumped okhttp dependency to 4.12.0.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
π¨ 2 new commits to ComuCompose:master:
0d24a8d: Implement image uploading and refactor icon retrieval
- Add
- Integrate visual media picker and legacy content picker in
- Add
- Update
- Refactor
- Add UI controls for initiating image uploads in chat and profile screens
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
cfd53c2: Implement real-time profile picture updates with disk caching and version tracking
- Handle
- Refactor avatar loading in
- Revamp
- Add
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
0d24a8d: Implement image uploading and refactor icon retrieval
- Add
uploadImage and uploadProfilePictures functions to Handlers- Integrate visual media picker and legacy content picker in
ChatActivity and ProfileActivity- Add
centerCropSquare bitmap utility function- Update
getIcon signature to fetch directly from media server using uid and quality parameters- Refactor
getIcon calls across MainActivity, LoginActivity, CallActivity, and ChatActivity to include uid- Add UI controls for initiating image uploads in chat and profile screens
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
cfd53c2: Implement real-time profile picture updates with disk caching and version tracking
- Handle
EVENT_USER_PICTURE_UPDATE in ComuFirebaseService and Handlers to trigger icon refreshes- Refactor avatar loading in
ProfileActivity, ChatActivity, and MainActivity to observe iconVersion state- Revamp
ProfileActivity UI: add "Upload a new photo" section, improve header animations, and implement dynamic name sizing- Add
Utils.isOnline helper method checks for service and socket connectivitySigned-off-by: NikkaGames <[email protected]> by NikkaGames
π¨ 1 new commit to ComuServer:main:
fbe6a28: Push latest changes
* Implemented file server request and event handlers
* Finalize file server for profile media uploading by NikkaGames
fbe6a28: Push latest changes
* Implemented file server request and event handlers
* Finalize file server for profile media uploading by NikkaGames