- Added support for standalone group invites in MessageBubble component.
- Improved bubble padding and width handling for group invites.
- Refactored MessageBubble to streamline background and border logic.
- Introduced AnimatedDownloadIndicator for a more engaging download experience.
- Created ThemeWallpapers data structure to manage chat wallpapers.
- Implemented WallpaperSelectorRow and WallpaperSelectorItem for theme customization.
- Updated ThemeScreen to allow wallpaper selection and preview.
- Added new drawable resources for download and search icons.
- Added support for group action system messages in MessageBubble.
- Implemented group invite handling with inline cards for joining groups.
- Updated MessageBubble to display group sender labels and admin badges.
- Enhanced image decryption logic for group attachments.
- Modified BlurredAvatarBackground to load system avatars based on public keys.
- Improved SwipeBackContainer with layer management for better swipe effects.
- Updated VerifiedBadge to use dynamic icons based on user verification status.
- Added new drawable resource for admin badge icon.
- Replaced custom fast blur implementation with RenderScript-based Gaussian blur in BlurredAvatarBackground and AppearanceScreen.
- Updated image processing logic to scale down bitmaps before applying blur for efficiency.
- Simplified blur logic by removing unnecessary pixel manipulation methods.
- Enhanced media preview handling in OtherProfileScreen to utilize new Gaussian blur function.
- Improved code readability and maintainability by consolidating blur functionality.
- Introduced a maximum bitmap decode dimension to prevent excessive memory usage.
- Enhanced base64 to bitmap conversion by extracting payload and applying EXIF orientation.
- Improved error handling for image downloads and decoding processes.
- Simplified media picker and chat input components to manage keyboard visibility more effectively.
- Updated color selection grid to adaptively adjust based on available width.
- Added safety checks for notifications and call actions in profile screens.
- Optimized bitmap decoding in uriToBase64Image to handle large images more efficiently.
- Added baseline profile generator for Rosetta Messenger to optimize startup performance.
- Created startup benchmark tests to measure cold start times under different compilation modes.
- Introduced a new Gradle module for baseline profile and benchmark tests.
- Updated ChatsListViewModel to show loading skeleton while data is being fetched.
- Improved keyboard handling in MessageInputBar by using SHOW_IMPLICIT instead of SHOW_FORCED.
- Minor code cleanups and optimizations across various components.
- Added lazy composition to skip setup until the screen is first opened, reducing allocations.
- Cleaned up code formatting for better readability.
- Enhanced comments for clarity on functionality.
- Streamlined gesture handling logic for swipe detection and animation.
- Added AvatarRepository for handling avatar storage, retrieval, and delivery.
- Created AvatarCacheEntity and AvatarDeliveryEntity for database storage.
- Introduced PacketAvatar for P2P avatar transfer between clients.
- Enhanced RosettaDatabase to include avatar-related tables and migration.
- Developed AvatarFileManager for file operations related to avatars.
- Implemented AvatarImage composable for displaying user avatars.
- Updated ProfileScreen to support avatar selection and updating.
- Added functionality for handling incoming avatar packets in ProtocolManager.
- Update MessageEntity to clarify encryption of plainMessage.
- Introduce ERROR status in MessageStatus for handling message send failures.
- Implement message delivery timeout logic in ChatDetailScreen.
- Add retry and delete functionality for failed messages in ChatViewModel.
- Improve message decryption process in ChatViewModel to handle various scenarios.
- Refactor emoji categories in AppleEmojiPicker to align with Unicode standards and improve sorting.
feat: Implement message packets for sending and receiving messages, including delivery and read notifications
feat: Enhance ProtocolManager to handle message sending, delivery, and typing status with appropriate logging
feat: Refactor ChatDetailScreen to utilize ChatViewModel for managing chat state and message input
feat: Create ChatViewModel to manage chat messages, input state, and packet listeners for incoming messages
build: Add KSP plugin for annotation processing and configure Java 17 for the build environment
- Updated architecture documentation to reflect changes in data layer and caching strategies.
- Implemented LRU caching for key pair generation and private key hash to improve performance.
- Refactored DatabaseService to include LRU caching for encrypted accounts, reducing database query times.
- Introduced a search bar in SelectAccountScreen for filtering accounts, enhancing user experience.
- Adjusted UI components for better spacing and consistency.
- Updated build.gradle.kts to support Java 17 and Room incremental annotation processing.
- Modified gradle.properties to include necessary JVM arguments for Java 17 compatibility.