forked from melod1n/fast-messenger
7b2c102470c4950fdf53f1cae2f5da0a790e6bde
This commit introduces the ability to see how many people have read an outgoing message in a group chat. A "views" count is now displayed in the message options dialog for relevant messages. - **API & Data Layer:** - Added `getMessageReadPeers` to `MessagesService` and `MessagesRepository` to fetch users who have read a specific message. - Introduced `MessagesGetReadPeersResponse` to handle the API response. - A new URL constant `GET_MESSAGE_READ_PEERS` was added. - **Domain Layer:** - A new `GetMessageReadPeersUseCase` is created to provide the view count to the ViewModel. - The use case is registered in the `DomainModule`. - **ViewModel:** - `MessagesHistoryViewModel` now includes `loadMessageReadPeers` to asynchronously fetch and return the view count for a message. - **UI (Compose):** - The `MessageOptionsDialog` now displays a "views" count for outgoing chat messages. - It uses a `LaunchedEffect` to call `loadMessageReadPeers` when the dialog is shown. - The `visibility` icon has been updated and its XML file renamed to `round_visibility_24px.xml` to follow a consistent naming convention. - **Refactoring & Minor Fixes:** - Simplified several `derivedStateOf` usages to direct calculations or property delegates in `MessageBubble.kt` and `MessagesList.kt` for minor performance improvements. - Renamed `IncomingMessageBubble.kt` and `OutgoingMessageBubble.kt` to `MessageBubbleIncoming.kt` and `MessageBubbleOutgoing.kt` respectively for consistency. - Removed an unnecessary log statement in `MessagesList.kt`.
fast-messenger
Unofficial messenger for russian social network VKontakte
Functionality
- Authorization
- 2FA support
- Resend otp
- Captcha support
- Support for new authorization with service and refresh tokens
- Handle token expiration
- Ability to export/import tokens
- 2FA support
- Conversations list
- Pagination
- Manual refresh
- Pin & unpin conversations
- Delete conversations
- Archive
- View archived conversations
- Archive & unarchive conversations
- Friends list
- Sort alphabetically, by priority or random
- Separate tab with only friends who are online
- Settings screen
- TODO
- Chat screen
- Pagination
- Manual refresh
- Message bubbles
- Text
- Date
- Read status
- Edit status
- Sending status
- Message's attachments
- Photo
- Video
- Audio
- File
- Link
- Sticker
- Reply
- Forwarded messages
- Wall post
- Comment in wall post
- Poll
- TODO
- Send messages
- Pinned message
- Pin & unpin messages
- Reply to message
- Swipe to reply to message
- Delete message
- Select multiple messages
- Delete
- Forward
- Forward in current chat
- Send attachments to chat
- TODO
- Chat materials (attachments)
- Separate tabs for each attachment type
- Pagination
- Manual refresh
- View attachments
- Open photo
- Internal viewer
- External viewer
- Open video in external player
- TODO
- Open photo
- Separate tabs for each attachment type
- Caching
- TODO
Languages
Kotlin
100%