melod1n 7b2c102470 feat(messages): Implement "message read by" counter
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`.
2025-12-06 14:37:08 +03:00
2024-08-09 18:10:57 +03:00
2025-12-02 04:10:35 +03:00
2021-02-18 13:53:53 +03:00
2024-07-10 16:12:32 -07:00
2024-08-11 17:40:13 +03:00
2024-07-10 16:12:32 -07:00
2025-03-21 03:13:17 +03:00
2025-03-21 03:13:17 +03:00
2021-02-18 13:53:53 +03:00
2025-12-06 03:39:25 +03:00
2025-03-23 09:22:41 +03:00

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
  • 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
  • Caching
    • TODO
S
Description
Unofficial messenger for russian social network VKontakte
Readme GPL-3.0 22 MiB
Languages
Kotlin 100%