Commits by Nikka
9 subscribers
164 links
Owned by @NikkaGameS
Download Telegram
🔨 1 new commit to ComuCompose:master:

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 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 ComuServer:main:

cd9d5f9: Prevent media content duplication 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 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 (==), 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
🔨 1 new commit to ComuServer:main:

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

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 ComuServer:main:

380e11f: Fix per-device isread lookup by NikkaGames
🔨 1 new commit to ELFLoaderARM:zygisk:

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 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 (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 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 NikkaGames
906a71c: 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 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 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
🔨 1 new commit to STClientP:main:

32707d3: Implement Material You dynamic theming and appearance customization

- Introduce a comprehensive appearance system with support for system, light, and dark modes.
- Implement Material 3 dynamic color support (Android 12+) and a custom accent color palette.
- Add an "Appearance" settings page to the floating menu for real-time UI customization.
- Refactor FloatingMenu to use MaterialTheme color schemes, improving contrast and visibility in both light and dark modes.
- Replace menuExpanded boolean with a StateFlow to improve state management consistency.
- Redesign ToggleButton to include a FancySwitch and support different visual styles (legacy vs. modern).
- Enhance FancySwitch with icons (check/close) and improved color contrast logic.
- Update Haze blur effects to adapt based on the active theme's luminance.
- Implement a "Pitch black" mode for OLED panels. by NikkaGames
🔨 4 new commits to STClientP:main:

73d34ba: Update signing configuration and optimize UI performance for low-end devices

- Update release and debug signing configs.
- Add androidx.window:window dependency for enhanced display metrics.
- Implement getScreenClass to detect device performance levels based on screen resolution.
- Optimize hazeEffect in FloatingMenu by disabling blur and noise on low-end devices to improve performance.
- Adjust FloatingMenu styling, including font size and toggle button colors, for better visibility.
- Refine color boosting and contrast ratio logic in UI components. by NikkaGames
09c44f1: Refactor string obfuscation and replace ACRA with Firebase Crashlytics

- JNI/C++:
- Remove artificial code bloat and infinite recursion used for obfuscation in main.cpp.
- Completely rewrite obfuscator.h with a more robust implementation.
- Android/Kotlin:
- Remove ACRA (Application Crash Reports for Android) initialization and dependencies.
- Integrate Firebase Crashlytics and Google Analytics for crash reporting.
- Update app/build.gradle and project-level build.gradle with necessary Google services and Firebase plugins/dependencies. by NikkaGames
5468ccb: Update obfuscation logic and APK signature check

- Update the APK signature. by NikkaGames
e861e2f: Implement Google Sign-In and integrate Firebase services

- Add google-services.json and configure Firebase dependencies in build.gradle.
- Implement GoogleSignInActivity, GoogleSignInListener, and SignInHandler to manage Google authentication flows.
- Integrate Google Play Services Auth and API client libraries.
- Update AndroidManifest.xml with required permissions and activity declarations for Google Sign-In. by NikkaGames