🔨 1 new commit to ComuCompose:master:
6cf5b28: Implement photo replies and improve media viewer interactions
ChatActivity
- Implement rendering for photo replies (
- Update media viewer behavior: single tap now toggles the top app bar with an animation instead of closing the viewer.
- Move
- Add animation for blur radius transitions.
Handlers
- Prevent duplicate chat items from being added by checking if the path already exists.
- Ensure updates to
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
6cf5b28: Implement photo replies and improve media viewer interactions
ChatActivity
- Implement rendering for photo replies (
photo: prefix), including dynamic aspect ratio calculation, loading indicators, and retry logic.- Update media viewer behavior: single tap now toggles the top app bar with an animation instead of closing the viewer.
- Move
saveToGallery operations to Dispatchers.IO to prevent blocking the UI.- Add animation for blur radius transitions.
Handlers
- Prevent duplicate chat items from being added by checking if the path already exists.
- Ensure updates to
MainActivity.items are posted to the main thread.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
7873422: Implement custom call audio and scroll-to-reply features
- Add
- update
- Replace default system sounds with custom resources for calls and notifications; update notification channel configurations.
- specific keep-alive logic in
- Implement scroll-to-reply functionality in
- Add a pulse highlight animation for messages targeted by the scroll-to-reply action.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
7873422: Implement custom call audio and scroll-to-reply features
- Add
DelayedLooperSound in Utils to handle looping ringtones and audio routing (Speaker/Earpiece).- update
Handlers and CallActivity to trigger sound playback and cessation based on call states (Outgoing, Incoming, Active, Ended).- Replace default system sounds with custom resources for calls and notifications; update notification channel configurations.
- specific keep-alive logic in
ComuFirebaseService and Handlers to monitor incoming call validity.- Implement scroll-to-reply functionality in
ChatActivity: clicking a reply preview now scrolls to the original message.- Add a pulse highlight animation for messages targeted by the scroll-to-reply action.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
18915b3: Add new audio resources for call notifications and ringtones
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
18915b3: Add new audio resources for call notifications and ringtones
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
75e8715: Generate a deterministic GUID from file content for image uploads
A new utility function
This logic is applied in
Additionally,
Specific changes:
*
*
*
*
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
75e8715: Generate a deterministic GUID from file content for image uploads
A new utility function
guidFromUri has been added to Utils.kt which calculates a UUID based on the SHA-256 hash of the file content at a given URI. This ensures that the same file results in the same GUID.This logic is applied in
ProfileActivity and ChatActivity when picking images: instead of generating a random UUID immediately, the app now attempts to derive the GUID from the file content first.Additionally,
Handlers.uploadImage now accepts a randGuid parameter, which is passed as a new header X-Upload-Randguid. In ChatActivity, the message ID for photo messages is updated to a composite format (guid:randGuid) to distinguish identical images sent as separate messages while maintaining the content-based GUID for the upload itself.Specific changes:
*
Utils.kt: Added guidFromUri to generate content-based UUIDs.*
ProfileActivity.kt: Use guidFromUri for profile picture uploads.*
Handlers.kt: Update uploadImage signature to accept randGuid and send X-Upload-Randguid header.*
ChatActivity.kt: Use guidFromUri for image messages; generate a separate randGuid for the message ID composite to allow re-sending identical images. Update message handling to parse the composite ID.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
c79459d: Implement horizontal swipe navigation for expanded media
- Add logic to extract distinct media GUIDs from chat messages.
- Update gesture detector to distinguish between vertical dismiss and horizontal paging.
- Add animation logic for sliding transitions between images.
- Implement
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
c79459d: Implement horizontal swipe navigation for expanded media
- Add logic to extract distinct media GUIDs from chat messages.
- Update gesture detector to distinguish between vertical dismiss and horizontal paging.
- Add animation logic for sliding transitions between images.
- Implement
openGuid to load adjacent media without closing the viewer.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
80e03ee: Fix message reply scrolling and optimize profile update logic
* ChatActivity: Update the logic for finding a replied-to message. Instead of an exact match (
* ProfileActivity: Refactor the conditional check for showing the save button. Combine logic to ensure the name or bio has changed and that the name meets validation requirements (not empty, length >= 4) in a cleaner expression.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
80e03ee: Fix message reply scrolling and optimize profile update logic
* ChatActivity: Update the logic for finding a replied-to message. Instead of an exact match (
==), check if the message ID contains the replyGuid, and use the found message's ID for highlighting. This improves the reliability of scrolling to a specific message.* ProfileActivity: Refactor the conditional check for showing the save button. Combine logic to ensure the name or bio has changed and that the name meets validation requirements (not empty, length >= 4) in a cleaner expression.
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
ce676c7: Add support for video and GIF messages
- Implement video uploading and thumbnail generation logic
- Integrate ExoPlayer for inline and fullscreen media playback
- Add GIF decoding support to Coil configuration
- Update gallery saving logic to handle video and GIF types
- Add Media3 and Coil GIF dependencies
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
ce676c7: Add support for video and GIF messages
- Implement video uploading and thumbnail generation logic
- Integrate ExoPlayer for inline and fullscreen media playback
- Add GIF decoding support to Coil configuration
- Update gallery saving logic to handle video and GIF types
- Add Media3 and Coil GIF dependencies
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuServer:main:
627382f: Media additions
* Implement GIF upload support
* Implement Video upload support by NikkaGames
627382f: Media additions
* Implement GIF upload support
* Implement Video upload support by NikkaGames
🔨 1 new commit to ComuServer:main:
92f9821: Increase max length for chat media uploads. by NikkaGames
92f9821: Increase max length for chat media uploads. by NikkaGames
🔨 1 new commit to ComuCompose:master:
e032bfe: Implement video transcoding and caching mechanism
- Add Media3 Transformer to re-encode and compress videos before upload
- Introduce disk caching for video playback and thumbnails using SimpleCache
- Update upload logic to handle transcoded sources and improve progress reporting
- Persist video thumbnails and store aspect ratios for smoother UI rendering
- Refactor video player and thumbnail extraction to use cached data sources
- Adjust content scaling for avatars and icons to
- Update Compose, Firebase, and Media3 dependencies
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
e032bfe: Implement video transcoding and caching mechanism
- Add Media3 Transformer to re-encode and compress videos before upload
- Introduce disk caching for video playback and thumbnails using SimpleCache
- Update upload logic to handle transcoded sources and improve progress reporting
- Persist video thumbnails and store aspect ratios for smoother UI rendering
- Refactor video player and thumbnail extraction to use cached data sources
- Adjust content scaling for avatars and icons to
Fit- Update Compose, Firebase, and Media3 dependencies
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuServer:main:
726957c: Refactor chat media upload/download logic and implement chat read status for every participant. by NikkaGames
726957c: Refactor chat media upload/download logic and implement chat read status for every participant. by NikkaGames
🔨 1 new commit to ComuCompose:master:
c1244f5: Implement unread message UI and logic updates
- Add visual indicators (dot, bold text) for unread chats in main list
- Format media message previews (Video, Photo, GIF) to be user-friendly
- Sync read status updates across Handlers and Activities
- Add blur and scale animations to ProfileActivity editor
- Move video thumbnail storage to cache directory
- Prevent manual input of internal media prefixes (sticker, photo, etc.)
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
c1244f5: Implement unread message UI and logic updates
- Add visual indicators (dot, bold text) for unread chats in main list
- Format media message previews (Video, Photo, GIF) to be user-friendly
- Sync read status updates across Handlers and Activities
- Add blur and scale animations to ProfileActivity editor
- Move video thumbnail storage to cache directory
- Prevent manual input of internal media prefixes (sticker, photo, etc.)
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ComuCompose:master:
70cb4c5: Refactor video thumbnail generation and optimize chat list sorting
- Handlers: Remove
- ChatActivity: Re-implement video thumbnail extraction using a localized
- ChatActivity: Add logic to capture frames via
- ChatActivity: Ensure aggressive player cleanup (
- ChatActivity: Update inline video player to consistently use
- ChatActivity: Change haptic feedback to
- MainActivity: Optimize chat list filtering by replacing custom sorting with
Signed-off-by: NikkaGames <[email protected]> by NikkaGames
70cb4c5: Refactor video thumbnail generation and optimize chat list sorting
- Handlers: Remove
cacheRemoteVideoThumb and primeUploadState logic.- ChatActivity: Re-implement video thumbnail extraction using a localized
ExoPlayer with a custom DefaultLoadControl to minimize buffering.- ChatActivity: Add logic to capture frames via
TextureView, calculate aspect ratios from onVideoSizeChanged, and persist scaled bitmaps.- ChatActivity: Ensure aggressive player cleanup (
stop, clearMediaItems, release) after frame capture or playback errors.- ChatActivity: Update inline video player to consistently use
photoGuid as the custom cache key.- ChatActivity: Change haptic feedback to
LongPress when detecting and clearing restricted media prefixes.- MainActivity: Optimize chat list filtering by replacing custom sorting with
sortedByDescending and simplifying derivedStateOf logic.Signed-off-by: NikkaGames <[email protected]> by NikkaGames
🔨 1 new commit to ELFLoaderARM:zygisk:
87a48b5: Refactor ELF reloc. and fix array init crash by NikkaGames
87a48b5: Refactor ELF reloc. and fix array init crash by NikkaGames
🔨 1 new commit to STClientP:main:
e481794: Update dependencies and add visual effects to FloatingMenu
- Upgrade Gradle to 8.11.1 and Android Gradle Plugin to 8.10.1.
- Update Kotlin to 2.2.21 and various Compose/AndroidX library versions.
- Integrate
- Implement a new blurred header style for the
- Define custom fonts (
e481794: Update dependencies and add visual effects to FloatingMenu
- Upgrade Gradle to 8.11.1 and Android Gradle Plugin to 8.10.1.
- Update Kotlin to 2.2.21 and various Compose/AndroidX library versions.
- Integrate
dev.chrisbanes.haze for blur and glassmorphism effects in FloatingWindow.- Implement a new blurred header style for the
FloatingMenu using hazeEffect.- Define custom fonts (
MFont, GoogleFont, etc.) in FloatingWindow for improved UI typography. by NikkaGames🔨 2 new commits to STClientP:main:
9009df7: Update FloatingMenu icon and adjust window dimensions
- Replace the text-based menu icon with a switchable image icon (
- Adjust the
- Update background colors to use
- Implement icon swapping logic on menu tap. by NikkaGames
7676f13: Update FloatingWindow UI and enhance JNI Call interface
- Update JNI
- Implement state tracking for menu toggles in
- Redesign
- Enhance
- Improve menu layout with version information and stylized "RAGE MODE" warnings.
- Refine
- Add support for custom Google fonts in various UI components.
- Ensure the menu icon respects the "Hide Menu Icon" setting by adjusting alpha. by NikkaGames
9009df7: Update FloatingMenu icon and adjust window dimensions
- Replace the text-based menu icon with a switchable image icon (
icon_cat / icon_mack).- Adjust the
FloatingMenu size from 320x420dp to 300x350dp.- Update background colors to use
Black.copy(alpha = 0.9f) for better consistency.- Implement icon swapping logic on menu tap. by NikkaGames
7676f13: Update FloatingWindow UI and enhance JNI Call interface
- Update JNI
Call function signature from void to jboolean to return feature toggle states.- Implement state tracking for menu toggles in
FloatingMenu using the new JNI return values.- Redesign
ToggleButton with animated shapes, colors, and text scaling using Compose.- Enhance
Slider visuals with dynamic color states for "danger" zones and user interaction.- Improve menu layout with version information and stylized "RAGE MODE" warnings.
- Refine
hazeEffect styling for better glassmorphism consistency.- Add support for custom Google fonts in various UI components.
- Ensure the menu icon respects the "Hide Menu Icon" setting by adjusting alpha. by NikkaGames
🔨 2 new commits to STClientP:main:
97aa79b: Refine FloatingMenu blur effects and optimize Haze configuration
- Define a reusable
- Apply
- Implement a vertical gradient blur transition using
- Simplify
906a71c: Update FloatingWindow UI with animations and enhanced layout handling
- Implement smooth transitions for opening and closing the
- Dynamically resize the
- Add a refined border using
- Improve
- Update
- Enhance ProGuard rules to include
- Disable baseline profile generation in
97aa79b: Refine FloatingMenu blur effects and optimize Haze configuration
- Define a reusable
HazeStyle with transparent background, 22.dp blur, and 0.12 noise factor.- Apply
HazeInputScale.Fixed(0.8f) to hazeEffect for improved performance.- Implement a vertical gradient blur transition using
HazeProgressive on a new 4.dp separator element.- Simplify
hazeEffect usage by referencing the shared hstyle state. by NikkaGames906a71c: Update FloatingWindow UI with animations and enhanced layout handling
- Implement smooth transitions for opening and closing the
FloatingMenu using animateFloatAsState and animateDpAsState.- Dynamically resize the
WindowManager layout when the menu expands or shrinks.- Add a refined border using
Brush.verticalGradient and Stroke to the expanded menu.- Improve
dragOrTap modifier to support conditional enabling and better touch handling.- Update
AndroidManifest.xml to enable hardwareAccelerated and remove redundant SU permission.- Enhance ProGuard rules to include
androidx.lifecycle and androidx.savedstate.- Disable baseline profile generation in
build.gradle. by NikkaGames🔨 1 new commit to STClientP:main:
fa0f02b: Update FloatingWindow UI and refine release configuration
- Optimized
- Implemented
- Disabled
- Replaced
- Simplified ProGuard rules to specifically target
- Added
- Removed unused
- Disabled overscroll effect in the feature list for a cleaner aesthetic.
- Updated
fa0f02b: Update FloatingWindow UI and refine release configuration
- Optimized
Haze glassmorphism effects in FloatingMenu by adjusting blur radius and tints.- Implemented
fadeOnCreate and shimmer animation modifiers for smoother UI transitions.- Disabled
Haze effects during menu animations to improve performance.- Replaced
MFont with GoogleBoldFont in the menu header.- Simplified ProGuard rules to specifically target
MenuCanvas members.- Added
nonMinifiedRelease build type and enabled shrinkResources for the standard release.- Removed unused
fastblur implementation from MenuCanvas.- Disabled overscroll effect in the feature list for a cleaner aesthetic.
- Updated
clean task syntax in build.gradle to use tasks.register. by NikkaGames🔨 1 new commit to STClientP:main:
56c43ad: Add Appearance settings and enhance FloatingMenu navigation
- Implement a multi-page menu system with a new
- Add settings for theme mode (System/Light/Dark), dynamic colors, accent color palettes, and "Pitch black" mode.
- Integrate navigation icons in the menu header to toggle between Main and Appearance pages.
- Add
- Persist scroll positions for both Main and Appearance pages to maintain UI state.
- Implement specialized UI components:
- Use
56c43ad: Add Appearance settings and enhance FloatingMenu navigation
- Implement a multi-page menu system with a new
AppearanceSettingsView for UI customization.- Add settings for theme mode (System/Light/Dark), dynamic colors, accent color palettes, and "Pitch black" mode.
- Integrate navigation icons in the menu header to toggle between Main and Appearance pages.
- Add
androidx.compose.material:material-icons-extended dependency for enhanced UI icons.- Persist scroll positions for both Main and Appearance pages to maintain UI state.
- Implement specialized UI components:
SegmentedPills, FancySwitch, ColorDotsRow, and SettingsCard.- Use
SharedPreferences to persist appearance settings. by NikkaGames