From 487cb1b12b395e3fba9ce920ce0a38ede955ff3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B0=D0=BB=D0=B8=D0=BC=D0=BE=D0=B2=20=D0=A0=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BC?= Date: Wed, 15 Apr 2026 01:14:55 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=87=D0=B8=D0=B5=20?= =?UTF-8?q?=D1=81=D1=87=D0=B5=D1=82=D1=87=D0=B8=D0=BA=D0=B8=20=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=87=D0=B0=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../8.5/executionHistory/executionHistory.bin | Bin 8881188 -> 8881188 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/8.5/fileHashes/fileHashes.bin | Bin 474691 -> 496091 bytes .../.gradle/8.5/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.5/fileHashes/resourceHashesCache.bin | Bin 245319 -> 395539 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../buildOutputCleanup/outputFiles.bin | Bin 1202813 -> 1206377 bytes .../chats/data/remote/dto/ChatDtos.kt | 24 +- .../data/remote/signalr/ChatHubClient.kt | 80 ++++- .../data/repository/ChatRepositoryImpl.kt | 209 ++---------- .../chats/data/repository/Mappers.kt | 167 ++++++++++ .../chats/domain/repository/ChatRepository.kt | 2 +- .../chat_detail/ChatDetailScreen.kt | 298 +++++++++++++++--- .../chat_detail/ChatDetailViewModel.kt | 185 ++++++++--- .../chat_list/ChatListViewModel.kt | 19 +- .../presentation/components/MessageBubble.kt | 24 +- .../core/database/data/ChatDatabase.kt | 3 + client-mobile/core/di/NetworkModule.kt | 6 +- 18 files changed, 725 insertions(+), 292 deletions(-) create mode 100644 client-mobile/chats/data/repository/Mappers.kt diff --git a/client-mobile/.gradle/8.5/executionHistory/executionHistory.bin b/client-mobile/.gradle/8.5/executionHistory/executionHistory.bin index a0313265218003fc1249908da873b50865e8001c..df01331ccf519587ce983ea5aecdea35a072e2d8 100644 GIT binary patch delta 123111 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 DJV(&l delta 94778 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 diff --git a/client-mobile/.gradle/8.5/fileHashes/resourceHashesCache.bin b/client-mobile/.gradle/8.5/fileHashes/resourceHashesCache.bin index 7510778eb366ef73e709e3b0c1eec82c3c742361..6eefcbaa24dea470a48d82ad06ef7873ba24d054 100644 GIT binary patch delta 44094 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 i=&W_ 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 delta 4620 zcmb7HeOOgxw)cJa=hgpGsH6e-Rms5h<9?t1seYW|#m&a=;c_I}q| zzxDh5*4h`(WZtaHJopPg$*P^;Z;Gz%Kc-u#9h9_0sn|a03F*x~^!G9BwR}C5oy*t# zwf!gOKSo}wUB0bQsO{X5B-f_A6A){k+`B`s9bA7*C$VhFRc#o1@2VE8)sD?ABnu&L z2+53sBNIpoh3S(?mI8azNV7;2+S!tFD+gYkNk-2iWl&#EmRpdvm28cM%linW#K$`J z=u_GJy?O*1_mfCANrf^(^C)x+G${&F`_m!?j>OUBgcPy!*S*8oz#HBqNF78Q`;uYs z?Re_Z;ErkZh6tl(&;|1`3;WlE^-?jT|<~XJkOZ zNFmQhRzrQNP$j`rX+pIGBW4L+3Uluf5_Q;^EoAC+NE0hshd}*lo#tm>^Pl*aH9vgy zu#g!=o`vKR0aM6+R`A&H%u7OxMF)4YFaM?wW7)0xM)qy1p3L&k>ltwGTS8tO$%ma` zA=ZFD|4~>#VOB)Apu?Y81_!Ql>tFrEF3@v!?EFFtOu@+6Vp|gGgMh+V~rWcRMt1s@WYBv zCDV_+S$A1#ie`@sa)eD2(%lrHhC3({f2zj z3rn`kh)>Mh{MGZjc+5e2%k|=ez3?pLIECL(vP!AHw9jGQ5uw$gE64scgR?@h37VffgSbR4I zn%ix~vNhev*w$_<0^ZST&HyrnEuO6w?rNQ_3h+&)dQybH%vF(Vx3bhK9qJ3z28G5| zvYzAK;p~?uyt85J32!BVTZ`4N29qJsv0nX_!1Y(vW*yqLsO2WINxE$3z{Z{G=mCh< z(MGjdf}O`zZ1bHb)m<|D@eNTvW5_qyaCtt@l)gKv`9aec0~4r`H^;p!vCGpYD7{P z4jk0#&uN_$?fO!y)+EBIziTH=_A0KJ^ToALUBzU;yN7$$bSzS4j_X?h{0!_I~SlQkB6-uev-MR`hD z)@rp5vXZo8q_(Ofld$yDx(AMC>6qyk3-sn#7~Q2$vePp{-Nd zDYBp(Raa5fae|+h&mu398iqiWvXT)#em|dMP|Tld0ld{g`2QOB|G{|ilyE3_7;zwi zJxt#*5se}9wEjyIe*0H_k<3PI5&SUfbDdi7M3b@Ka>B8;jWh$#&R|I!dTZFyAfDjS zHs#*$;=PJ(p++WLr$(6w8x=zp;ec)wMzK4Sg&0VSH&RrxHXI1K5JH=vts=al0+Ch8 z(nPlg=lC-zQJsf!C%H-DJoxXsjG|~Z;+&MpHfI^TA!nWuFr2fz9M~Cd`+o##JL#<( zt8Zb!YO%N?m?5#Q@l++hhSSd($(~&?YYc-WT_#De=rv=j#>&1SE8&$b#!15bH^@qM zeXH>V34{Y(PPT*UJ)Q)zDYutdj{)p5knjusU`$qEcb##;#}fV^`5|(`*h}G?u({uY zGoKm(kp$t&UyVweSr_C8Jo--~Rb+MDMi*=Rha3Z+Trr;3IIFyzRqwNeeOgUzRmUpg zHVaAp6?L&)21lbz4`Jt`%^>`$uURRA6l*Tf+5U?(3I1!S`Ju>i{z;SJaH6?Jf%}q8 zq-$n4aME-Es=Dmis$jQG%Y7Af-du!QFbVi*=? z;H-_$Hs2TEdX9+(-k5LV9C%=%sYb(pEH|eU=t{9VybQ~p=qePeDRs^%8=&>LT;;t0 zZigOXWzCpdxY;c6 zv7^a~ALjktykbH4X>+d^f>*>p{pe4{3@dcvc5n|k=mv+#IPDsB=vo_UA0;?3&}Zs+ zlX?Njfj>rB?F8!kT9GL5`$U9rTB3ExOlbml3rou zLGc{xqQsWXvs&QcY-_gwaSvK$8jCwC1fgG{b%#!h!hzkG{_|EoC9~n^YO7m-57t^Y zH1@=76py&US}DWcIRq0a*lgt~@PO*QglgEQ^=f4XYu#^MfeQz$^9uWZo019X?^>z- z98>qX$eak&}Rdu9^AR-iMKlv4b~>zO~n4cI$W2R7oei~0;We9=0j0FFvVVC+?^ z#lr@TS69N8o7NHSXF(8Bi#T4%Vd#Y%Z@S^$m`;+x`-t~H3B3QPcLc3}+*?KA-KAb! zZ&np6xT%a>?!9QzfqTM%rO{i?X-ga(@tj%KU{5b`kX|9z)qsL(r=3B?wR?|9G^|n~*YR@?daS6Hhz@5G9lY9(3)TyVJNtjXx?}a;H za5yEPe^*m1sqB;Diu5O^xIMWWG8(;MjZIvlWn})m1gff?8GwF4@Dn) z@5S$oZ~%SN8S7m3?jS?1FLIAbhwr<*MGC|3pDrl=*1Owa$)nKh3S=AYXQ*zYRX2>I zei&%l_u}VObs&nBq}t3i9D83(h3ilpEt>KL(~BwwFuzEhlC` z^ig{~h1u&xbnO9+_DO|p4~ao|=tDbSBgx@FTeKr%Zu*^kk~{PWadw5+nVp_GK$w^Q zYzg^k7>|U?OLnsgFI=Rk=_jT(?Dneu6497)=_s}tEjx1jO)Q1KP z`>#^qg5x4`QsTS7RYFF=V~M^73nonVO*i2!#TVa~&#Ixf<;Z=Ks}Kd`h?2L#xp2=$ z=@mQE$+?dstk^Bp*JE6)pQiJ4n&OPrH?hl)cbG^`*FWY;!aRrASxTiN-} z#smo`Ol%DH*==f_!)!iLvCl{=&U0sBMnCA}1%&`dI?e@r0|VgQ7FXl=5K`HJ6_4z3 zvBq@pSnfNnJe`fx!H7rbb!WbcA_N(nL;1Yry`qYP&Fg*Ni44D{7lHhSuS9|;Gq`E& zf6I5)!)9jV?OWS@)gry4DICb?=QbS`r_tKBg)i|@g~W4Kd-oEzn1MQAqPXEXw>d4a T2n-(LD>W|5jsc>2;@18@k8$is diff --git a/client-mobile/chats/data/remote/dto/ChatDtos.kt b/client-mobile/chats/data/remote/dto/ChatDtos.kt index 5904e9e..9eb296d 100644 --- a/client-mobile/chats/data/remote/dto/ChatDtos.kt +++ b/client-mobile/chats/data/remote/dto/ChatDtos.kt @@ -10,17 +10,17 @@ data class UserBasicDto( ) data class MessageDto( - @SerializedName("id") val id: String, - @SerializedName("chatId") val chatId: String? = null, - @SerializedName("senderId") val senderId: String? = null, - @SerializedName("content") val content: String? = null, - @SerializedName("type") val type: String? = null, - @SerializedName("sequenceId") val sequenceId: Int? = null, - @SerializedName("createdAt") val createdAt: String? = null, - @SerializedName("sender") val sender: UserBasicDto? = null, - @SerializedName("media") val media: List = emptyList(), - @SerializedName("reactions") val reactions: List? = emptyList(), - @SerializedName("replyTo") val replyTo: MessageDto? = null + @SerializedName("id", alternate = ["Id"]) val id: String, + @SerializedName("chatId", alternate = ["ChatId"]) val chatId: String? = null, + @SerializedName("senderId", alternate = ["SenderId"]) val senderId: String? = null, + @SerializedName("content", alternate = ["Content"]) val content: String? = null, + @SerializedName("type", alternate = ["Type"]) val type: String? = null, + @SerializedName("sequenceId", alternate = ["SequenceId"]) val sequenceId: Int? = null, + @SerializedName("createdAt", alternate = ["CreatedAt"]) val createdAt: String? = null, + @SerializedName("sender", alternate = ["Sender"]) val sender: UserBasicDto? = null, + @SerializedName("media", alternate = ["Media"]) val media: List = emptyList(), + @SerializedName("reactions", alternate = ["Reactions"]) val reactions: List? = emptyList(), + @SerializedName("replyTo", alternate = ["ReplyTo"]) val replyTo: MessageDto? = null ) data class ReactionDto( @@ -43,7 +43,7 @@ data class ChatDto( @SerializedName("type") val type: String, @SerializedName("name") val name: String? = null, @SerializedName("avatar") val avatar: String? = null, - @SerializedName("unreadCount") val unreadCount: Int = 0, + @SerializedName("unreadCount", alternate = ["UnreadCount", "unread_count"]) val unreadCount: Int = 0, @SerializedName("messages") val messages: List = emptyList(), @SerializedName("members") val members: List = emptyList() ) diff --git a/client-mobile/chats/data/remote/signalr/ChatHubClient.kt b/client-mobile/chats/data/remote/signalr/ChatHubClient.kt index a545287..ea5b768 100644 --- a/client-mobile/chats/data/remote/signalr/ChatHubClient.kt +++ b/client-mobile/chats/data/remote/signalr/ChatHubClient.kt @@ -22,12 +22,30 @@ data class ReadMessagesRequest( val lastReadSequenceId: Int ) +data class MessagesReadEvent( + @com.google.gson.annotations.SerializedName("chatId", alternate = ["ChatId"]) val chatId: String? = null, + @com.google.gson.annotations.SerializedName("userId", alternate = ["UserId"]) val userId: String? = null, + @com.google.gson.annotations.SerializedName("lastReadSequenceId", alternate = ["LastReadSequenceId"]) val lastReadSequenceId: Int? = null +) { + val effectiveChatId: String get() = chatId ?: "" + val effectiveUserId: String get() = userId ?: "" + val effectiveLastReadSequenceId: Int get() = lastReadSequenceId ?: 0 +} + +data class ReactionEvent( + @com.google.gson.annotations.SerializedName("messageId", alternate = ["MessageId"]) val messageId: String? = null, + @com.google.gson.annotations.SerializedName("chatId", alternate = ["ChatId"]) val chatId: String? = null, + @com.google.gson.annotations.SerializedName("userId", alternate = ["UserId"]) val userId: String? = null, + @com.google.gson.annotations.SerializedName("username", alternate = ["Username", "UserName"]) val username: String? = null, + @com.google.gson.annotations.SerializedName("emoji", alternate = ["Emoji"]) val emoji: String? = null +) + enum class ConnectionStatus { CONNECTED, CONNECTING, DISCONNECTED } @Singleton class ChatHubClient @Inject constructor() { private var hubConnection: HubConnection? = null - private val _events = MutableSharedFlow(extraBufferCapacity = 64) + private val _events = MutableSharedFlow(extraBufferCapacity = 1024) val events: SharedFlow = _events.asSharedFlow() private val _status = MutableStateFlow(ConnectionStatus.DISCONNECTED) @@ -77,13 +95,17 @@ class ChatHubClient @Inject constructor() { _events.tryEmit(ChatEvent.NewMessage(message)) }, MessageDto::class.java) - conn.on("messages_read", { chatId: String, userId: String, lastReadSequenceId: Int -> - _events.tryEmit(ChatEvent.MessagesRead(chatId, userId, lastReadSequenceId)) - }, String::class.java, String::class.java, Int::class.java) + conn.on("messages_read", { data: MessagesReadEvent -> + _events.tryEmit(ChatEvent.MessagesRead( + data.effectiveChatId, + data.effectiveUserId, + data.effectiveLastReadSequenceId + )) + }, MessagesReadEvent::class.java) - conn.on("user_typing", { chatId: String, userId: String -> - _events.tryEmit(ChatEvent.UserTyping(chatId, userId)) - }, String::class.java, String::class.java) + conn.on("user_typing", { data: ReactionEvent -> + _events.tryEmit(ChatEvent.UserTyping(data.chatId ?: "", data.userId ?: "")) + }, ReactionEvent::class.java) conn.on("user_online", { userId: String -> _events.tryEmit(ChatEvent.UserOnline(userId)) @@ -93,14 +115,23 @@ class ChatHubClient @Inject constructor() { _events.tryEmit(ChatEvent.NewChat(chat)) }, ChatDto::class.java) - conn.on("reaction_added", { messageId: String, chatId: String, userId: String, username: String, emoji: String -> - _events.tryEmit(ChatEvent.ReactionUpdated(messageId, chatId, userId, emoji)) - }, String::class.java, String::class.java, String::class.java, String::class.java, String::class.java) + conn.on("reaction_added", { data: ReactionEvent -> + _events.tryEmit(ChatEvent.ReactionUpdated( + data.messageId ?: "", + data.chatId ?: "", + data.userId ?: "", + data.emoji ?: "" + )) + }, ReactionEvent::class.java) - conn.on("reaction_removed", { messageId: String, chatId: String, userId: String, emoji: String -> - // Using ReactionUpdated with empty emoji to signal removal or just a specific removal event - _events.tryEmit(ChatEvent.ReactionUpdated(messageId, chatId, userId, "")) - }, String::class.java, String::class.java, String::class.java, String::class.java) + conn.on("reaction_removed", { data: ReactionEvent -> + _events.tryEmit(ChatEvent.ReactionUpdated( + data.messageId ?: "", + data.chatId ?: "", + data.userId ?: "", + "" // empty emoji signals removal + )) + }, ReactionEvent::class.java) // WebRTC Signaling Handlers conn.on("call_incoming", { chatId: String, from: String, offer: String, callType: String -> @@ -128,7 +159,26 @@ class ChatHubClient @Inject constructor() { fun readMessages(request: ReadMessagesRequest) { if (hubConnection?.connectionState == HubConnectionState.CONNECTED) { - hubConnection?.invoke("read_messages", request) + hubConnection?.send("read_messages", request) + Log.d("ChatHubClient", "Sent read_messages for chat: ${request.chatId}") + } + } + + fun joinChat(chatId: String) { + scope.launch { + // Wait for connection to be established if it's currently connecting + var attempts = 0 + while (hubConnection?.connectionState != HubConnectionState.CONNECTED && attempts < 10) { + delay(500) + attempts++ + } + + if (hubConnection?.connectionState == HubConnectionState.CONNECTED) { + hubConnection?.send("join_chat", chatId) + Log.d("ChatHubClient", "Joined chat room: $chatId") + } else { + Log.e("ChatHubClient", "Failed to join chat room $chatId: Not connected") + } } } } diff --git a/client-mobile/chats/data/repository/ChatRepositoryImpl.kt b/client-mobile/chats/data/repository/ChatRepositoryImpl.kt index acd983f..114885d 100644 --- a/client-mobile/chats/data/repository/ChatRepositoryImpl.kt +++ b/client-mobile/chats/data/repository/ChatRepositoryImpl.kt @@ -11,6 +11,7 @@ import chats.domain.model.Message import chats.domain.model.MediaType import chats.domain.repository.ChatRepository import core.network.ServerConfig +import chats.data.remote.signalr.ReadMessagesRequest import core.security.TokenManager import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.MultipartBody @@ -40,15 +41,27 @@ class ChatRepositoryImpl @Inject constructor( } } - override suspend fun getMessages(chatId: String): List { + override suspend fun getMessages(chatId: String, cursor: String?, limit: Int?): List { val baseUrl = serverConfig.getBaseUrl().removeSuffix("/api/") + val currentUserId = tokenManager.getUserId() ?: "" return try { - val messages = api.getMessages(chatId) - // Save to DB - messageDao.insertMessages(messages.map { msg: MessageDto -> msg.toEntity(baseUrl, gson) }) - messages.map { it.toDomain(baseUrl) } + val chats = api.getChats() + val chatDto = chats.find { it.id == chatId } + val unreadCount = chatDto?.unreadCount ?: 0 + + android.util.Log.d("ChatRepo", "Fetching messages from network for chat: $chatId, cursor: $cursor") + val messages = api.getMessages(chatId, cursor = cursor, limit = limit) + if (messages.isNotEmpty()) { + android.util.Log.d("ChatRepo", "Received ${messages.size} messages. First: ${messages.first().createdAt}, Last: ${messages.last().createdAt}") + } + + // Определяем, какие сообщения считаются прочитанными + val mappedMessages = messages.mapIndexed { index, msg -> + val isUnread = (messages.size - index) <= unreadCount && msg.senderId != currentUserId + msg.toDomain(currentUserId, baseUrl).copy(isRead = !isUnread) + } + mappedMessages } catch (e: Exception) { - // If network fails, caller should ideally use the Flow from DB emptyList() } } @@ -65,7 +78,8 @@ class ChatRepositoryImpl @Inject constructor( attachments = attachments ) val baseUrl = serverConfig.getBaseUrl().removeSuffix("/api/") - return api.sendMessage(chatId, request).toDomain(baseUrl) + val userId = tokenManager.getUserId() ?: "" + return api.sendMessage(chatId, request).toDomain(userId, baseUrl) } override suspend fun addReaction(messageId: String, emoji: String) { @@ -77,16 +91,18 @@ class ChatRepositoryImpl @Inject constructor( } override suspend fun markMessagesAsRead(chatId: String, lastMessageId: String, lastReadSequenceId: Int) { - val request = chats.data.remote.signalr.ReadMessagesRequest( - chatId = chatId, - lastReadMessageId = lastMessageId, - lastReadSequenceId = lastReadSequenceId - ) - hubClient.readMessages(request) + try { + android.util.Log.d("ChatRepoImpl", "markMessagesAsRead CALLED FOR $chatId. Caller stack: ${android.util.Log.getStackTraceString(Throwable())}") + hubClient.readMessages(ReadMessagesRequest(chatId, lastMessageId, lastReadSequenceId)) + } catch (e: Exception) { + android.util.Log.e("ChatRepo", "Error marking messages as read", e) + } + // Обновляем локальную БД + messageDao.markMessagesAsRead(chatId, lastReadSequenceId) } override suspend fun saveMessage(message: Message) { - messageDao.insertMessages(listOf(message.toEntity(gson))) + android.util.Log.d("ChatRepo", "DB cache disabled, skipping save: ${message.id}") } override suspend fun deleteLocalMessage(messageId: String) { @@ -119,168 +135,3 @@ class ChatRepositoryImpl @Inject constructor( return api.getGifCategories().data.categories } } - -// Mappers -fun ChatDto.toDomain(currentUserId: String, baseUrl: String): Chat { - val chatName = name ?: if (type == "personal") { - members.firstOrNull { it.userId != currentUserId }?.user?.displayName ?: "Unknown Chat" - } else "Group Chat" - - val chatAvatar = (avatar ?: if (type == "personal") { - members.firstOrNull { it.userId != currentUserId }?.user?.avatarUrl - } else null)?.ensureAbsoluteUrl(baseUrl) - - return Chat( - id = id, - type = type, - name = chatName, - avatar = chatAvatar, - unreadCount = unreadCount, - lastMessage = messages.firstOrNull()?.toDomain(baseUrl) - ) -} - -fun Message.toEntity(gson: com.google.gson.Gson): core.database.data.MessageEntity { - return core.database.data.MessageEntity( - id = id, - chatId = chatId, - senderId = senderId, - senderName = senderName, - senderAvatar = senderAvatar, - content = content, - sequenceId = sequenceId, - createdAt = createdAt, - mediaType = mediaType.name.lowercase(), - mediaJson = gson.toJson(media), - reactionsJson = gson.toJson(reactions), - isRead = isRead, - replyToId = replyTo?.id - ) -} - -fun MessageDto.toDomain(baseUrl: String): Message { - val domainMediaType = when (type) { - "gif" -> MediaType.GIF - "image", "photo" -> MediaType.IMAGE - "video" -> MediaType.VIDEO - "audio", "voice" -> MediaType.AUDIO - "file" -> MediaType.FILE - else -> when (media.firstOrNull()?.type) { - "image", "photo" -> MediaType.IMAGE - "video" -> MediaType.VIDEO - "audio", "voice" -> MediaType.AUDIO - "file" -> MediaType.FILE - else -> MediaType.TEXT - } - } - - return Message( - id = id, - chatId = chatId ?: "", - senderId = senderId ?: "", - senderName = sender?.displayName ?: "Unknown", - senderAvatar = sender?.avatarUrl?.ensureAbsoluteUrl(baseUrl), - content = content, - sequenceId = sequenceId ?: 0, - createdAt = createdAt ?: "", - media = media.map { - chats.domain.model.Media( - id = it.id ?: java.util.UUID.randomUUID().toString(), - type = it.type ?: "unknown", - url = (it.url ?: "").ensureAbsoluteUrl(baseUrl), - filename = it.filename, - size = it.size, - duration = it.duration - ) - }, - mediaType = domainMediaType, - reactions = reactions?.associate { it.emoji to it.count } ?: emptyMap(), - isRead = true, // Network messages are usually considered read when fetched or handled by server - replyTo = replyTo?.toDomain(baseUrl) - ) -} - -fun MessageDto.toEntity(baseUrl: String, gson: com.google.gson.Gson): core.database.data.MessageEntity { - return core.database.data.MessageEntity( - id = id, - chatId = chatId ?: "", - senderId = senderId ?: "", - senderName = sender?.displayName ?: "Unknown", - senderAvatar = sender?.avatarUrl?.ensureAbsoluteUrl(baseUrl), - content = content, - sequenceId = sequenceId ?: 0, - createdAt = createdAt ?: "", - mediaType = type ?: "text", - mediaJson = gson.toJson(media), - reactionsJson = gson.toJson(reactions), - isRead = true, - replyToId = replyTo?.id - ) -} - -fun core.database.data.MessageEntity.toDomain(baseUrl: String, gson: com.google.gson.Gson): Message { - val mediaTypeEnum = when (mediaType) { - "gif" -> MediaType.GIF - "image", "photo" -> MediaType.IMAGE - "video" -> MediaType.VIDEO - "audio", "voice" -> MediaType.AUDIO - "file" -> MediaType.FILE - else -> MediaType.TEXT - } - - val mediaTypeToken = object : com.google.gson.reflect.TypeToken>() {}.type - val mediaDtos: List = try { - gson.fromJson(mediaJson, mediaTypeToken) - } catch (e: Exception) { - emptyList() - } ?: emptyList() - - val reactionsTypeToken = object : com.google.gson.reflect.TypeToken>() {}.type - val reactionDtos: List = try { - // Try to parse as array (List) - gson.fromJson(reactionsJson, reactionsTypeToken) - } catch (e: Exception) { - // If it's an object instead of array, parse as map and convert to list - try { - val mapType = object : com.google.gson.reflect.TypeToken>() {}.type - val map: Map = gson.fromJson(reactionsJson, mapType) ?: emptyMap() - map.map { chats.data.remote.dto.ReactionDto(it.key, it.value, false) } - } catch (innerE: Exception) { - emptyList() - } - } ?: emptyList() - - return Message( - id = id, - chatId = chatId, - senderId = senderId, - senderName = senderName, - senderAvatar = senderAvatar, - content = content, - sequenceId = sequenceId, - createdAt = createdAt, - media = mediaDtos.map { - chats.domain.model.Media( - id = it.id ?: java.util.UUID.randomUUID().toString(), - type = it.type ?: "unknown", - url = (it.url ?: "").ensureAbsoluteUrl(baseUrl), - filename = it.filename, - size = it.size, - duration = it.duration - ) - }, - mediaType = mediaTypeEnum, - reactions = reactionDtos.associate { it.emoji to it.count }, - isRead = isRead - ) -} - -fun String.ensureAbsoluteUrl(baseUrl: String): String { - return if (this.startsWith("http")) { - this - } else { - val base = baseUrl.removeSuffix("/") - val path = if (this.startsWith("/")) this else "/$this" - "$base$path" - } -} diff --git a/client-mobile/chats/data/repository/Mappers.kt b/client-mobile/chats/data/repository/Mappers.kt new file mode 100644 index 0000000..0927091 --- /dev/null +++ b/client-mobile/chats/data/repository/Mappers.kt @@ -0,0 +1,167 @@ +package chats.data.repository + +import chats.data.remote.dto.* +import chats.domain.model.* + +// Mappers +fun ChatDto.toDomain(currentUserId: String, baseUrl: String): Chat { + val chatName = name ?: if (type == "personal") { + members.firstOrNull { it.userId != currentUserId }?.user?.displayName ?: "Unknown Chat" + } else "Group Chat" + + val chatAvatar = (avatar ?: if (type == "personal") { + members.firstOrNull { it.userId != currentUserId }?.user?.avatarUrl + } else null)?.ensureAbsoluteUrl(baseUrl) + + return Chat( + id = id, + type = type, + name = chatName, + avatar = chatAvatar, + unreadCount = unreadCount, + lastMessage = messages.firstOrNull()?.toDomain(currentUserId, baseUrl) + ) +} + +fun Message.toEntity(gson: com.google.gson.Gson): core.database.data.MessageEntity { + return core.database.data.MessageEntity( + id = id, + chatId = chatId, + senderId = senderId, + senderName = senderName, + senderAvatar = senderAvatar, + content = content, + sequenceId = sequenceId, + createdAt = createdAt, + mediaType = mediaType.name.lowercase(), + mediaJson = gson.toJson(media), + reactionsJson = gson.toJson(reactions), + isRead = isRead, + replyToId = replyTo?.id + ) +} + +fun MessageDto.toDomain(currentUserId: String, baseUrl: String): Message { + val domainMediaType = when (type) { + "gif" -> MediaType.GIF + "image", "photo" -> MediaType.IMAGE + "video" -> MediaType.VIDEO + "audio", "voice" -> MediaType.AUDIO + "file" -> MediaType.FILE + else -> when (media.firstOrNull()?.type) { + "image", "photo" -> MediaType.IMAGE + "video" -> MediaType.VIDEO + "audio", "voice" -> MediaType.AUDIO + "file" -> MediaType.FILE + else -> MediaType.TEXT + } + } + + return Message( + id = id, + chatId = chatId ?: "", + senderId = senderId ?: "", + senderName = sender?.displayName ?: "Unknown", + senderAvatar = sender?.avatarUrl?.ensureAbsoluteUrl(baseUrl), + content = content, + sequenceId = sequenceId ?: 0, + createdAt = createdAt ?: "", + media = media.map { + chats.domain.model.Media( + id = it.id ?: java.util.UUID.randomUUID().toString(), + type = it.type ?: "unknown", + url = (it.url ?: "").ensureAbsoluteUrl(baseUrl), + filename = it.filename, + size = it.size, + duration = it.duration + ) + }, + mediaType = domainMediaType, + reactions = reactions?.associate { it.emoji to it.count } ?: emptyMap(), + isRead = senderId == currentUserId, + replyTo = replyTo?.toDomain(currentUserId, baseUrl) + ) +} + +fun MessageDto.toEntity(baseUrl: String, currentUserId: String, gson: com.google.gson.Gson): core.database.data.MessageEntity { + return core.database.data.MessageEntity( + id = id, + chatId = chatId ?: "", + senderId = senderId ?: "", + senderName = sender?.displayName ?: "Unknown", + senderAvatar = sender?.avatarUrl?.ensureAbsoluteUrl(baseUrl), + content = content, + sequenceId = sequenceId ?: 0, + createdAt = createdAt ?: "", + mediaType = type ?: "text", + mediaJson = gson.toJson(media), + reactionsJson = gson.toJson(reactions), + isRead = senderId == currentUserId, + replyToId = replyTo?.id + ) +} + +fun core.database.data.MessageEntity.toDomain(baseUrl: String, gson: com.google.gson.Gson): Message { + val mediaTypeEnum = when (mediaType) { + "gif" -> MediaType.GIF + "image", "photo" -> MediaType.IMAGE + "video" -> MediaType.VIDEO + "audio", "voice" -> MediaType.AUDIO + "file" -> MediaType.FILE + else -> MediaType.TEXT + } + + val mediaTypeToken = object : com.google.gson.reflect.TypeToken>() {}.type + val mediaDtos: List = try { + gson.fromJson(mediaJson, mediaTypeToken) + } catch (e: Exception) { + emptyList() + } ?: emptyList() + + val reactionsTypeToken = object : com.google.gson.reflect.TypeToken>() {}.type + val reactionDtos: List = try { + gson.fromJson(reactionsJson, reactionsTypeToken) + } catch (e: Exception) { + try { + val mapType = object : com.google.gson.reflect.TypeToken>() {}.type + val map: Map = gson.fromJson(reactionsJson, mapType) ?: emptyMap() + map.map { chats.data.remote.dto.ReactionDto(it.key, it.value, false) } + } catch (innerE: Exception) { + emptyList() + } + } ?: emptyList() + + return Message( + id = id, + chatId = chatId, + senderId = senderId, + senderName = senderName, + senderAvatar = senderAvatar, + content = content, + sequenceId = sequenceId, + createdAt = createdAt, + media = mediaDtos.map { + chats.domain.model.Media( + id = it.id ?: java.util.UUID.randomUUID().toString(), + type = it.type ?: "unknown", + url = (it.url ?: "").ensureAbsoluteUrl(baseUrl), + filename = it.filename, + size = it.size, + duration = it.duration + ) + }, + mediaType = mediaTypeEnum, + reactions = reactionDtos.associate { it.emoji to it.count }, + isRead = isRead + ) +} + +fun String.ensureAbsoluteUrl(baseUrl: String): String { + return if (this.startsWith("http")) { + this + } else { + val base = baseUrl.removeSuffix("/") + val path = if (this.startsWith("/")) this else "/$this" + "$base$path" + } +} diff --git a/client-mobile/chats/domain/repository/ChatRepository.kt b/client-mobile/chats/domain/repository/ChatRepository.kt index 1cf71af..e652abd 100644 --- a/client-mobile/chats/domain/repository/ChatRepository.kt +++ b/client-mobile/chats/domain/repository/ChatRepository.kt @@ -6,7 +6,7 @@ import chats.domain.model.Message interface ChatRepository { suspend fun getChats(): List fun getMessagesFlow(chatId: String): kotlinx.coroutines.flow.Flow> - suspend fun getMessages(chatId: String): List + suspend fun getMessages(chatId: String, cursor: String? = null, limit: Int? = null): List suspend fun sendMessage( chatId: String, content: String?, diff --git a/client-mobile/chats/presentation/chat_detail/ChatDetailScreen.kt b/client-mobile/chats/presentation/chat_detail/ChatDetailScreen.kt index fde8cb6..f0924c9 100644 --- a/client-mobile/chats/presentation/chat_detail/ChatDetailScreen.kt +++ b/client-mobile/chats/presentation/chat_detail/ChatDetailScreen.kt @@ -22,12 +22,18 @@ import kotlin.math.roundToInt import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.zIndex +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource import androidx.compose.ui.focus.onFocusChanged import androidx.compose.ui.unit.dp +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.foundation.text.KeyboardActions +import androidx.compose.ui.text.input.ImeAction +import androidx.compose.ui.text.input.KeyboardCapitalization import chats.presentation.components.MediaPicker import chats.presentation.components.MessageBubble import core.presentation.components.AppAvatar @@ -55,6 +61,11 @@ fun ChatDetailScreen( viewModel: ChatDetailViewModel, onBack: () -> Unit ) { + DisposableEffect(Unit) { + onDispose { + viewModel.clearChatId() + } + } val state by viewModel.state.collectAsState() val context = LocalContext.current val listState = rememberLazyListState() @@ -120,27 +131,97 @@ fun ChatDetailScreen( viewModel.setChatId(chatId) } - // Автопрокрутка к первому непрочитанному или к самому низу - LaunchedEffect(state.initialScrollIndex) { - state.initialScrollIndex?.let { index -> - if (index < state.messages.size) { - listState.scrollToItem(index) + + val listItems = remember(state.messages) { + val items = mutableListOf() + if (state.messages.isEmpty()) return@remember items + + // Группируем от новых к старым (Index 0 = bottom) + var i = 0 + while (i < state.messages.size) { + val isoDate = state.messages[i].createdAt + // Получаем дату в локальном часовом поясе (например "2024-04-15") + val localDate = viewModel.getLocalDateString(isoDate) + val dayMessages = mutableListOf() + + // Собираем все сообщения за этот локальный день + while (i < state.messages.size && viewModel.getLocalDateString(state.messages[i].createdAt) == localDate) { + dayMessages.add(state.messages[i]) + i++ + } + + // Добавляем сообщения в инвертированном порядке + dayMessages.forEach { msg -> + items.add(MessageListItem.MessageItem(msg)) + } + + // Добавляем заголовок (над группой сообщений) + items.add(MessageListItem.DateHeader(viewModel.formatDateHeader(isoDate))) + } + items + } + + // Отслеживаем текущую дату для плавающего заголовка + val floatingDate by remember { + derivedStateOf { + val firstIndex = listState.firstVisibleItemIndex + // Не показываем плашку на самом первом элементе (там и так дата) + // И показываем только если мы прокрутили хотя бы немного + if (firstIndex > 0 && firstIndex < listItems.size) { + val item = listItems[firstIndex] + if (item is MessageListItem.MessageItem) { + viewModel.formatDateHeader(item.message.createdAt) + } else if (item is MessageListItem.DateHeader) { + item.date + } else null + } else null + } + } + + // Показывать ли кнопку "вниз" + // Она должна появляться если мы не в самом низу + val showScrollToBottom by remember { + derivedStateOf { + val layoutInfo = listState.layoutInfo + if (layoutInfo.totalItemsCount == 0) return@derivedStateOf false + + val lastVisibleIndex = layoutInfo.visibleItemsInfo.lastOrNull()?.index ?: 0 + // Показываем, если не в самом низу (с запасом 1-2 элемента) + lastVisibleIndex < listItems.size - 2 + } + } + + // Автоматическая прокрутка и прочтение при инициализации и новых сообщениях + LaunchedEffect(listItems.size) { + if (listItems.isNotEmpty()) { + if (state.initialScrollIndex != null && state.initialScrollIndex != -1) { + // Первый вход в чат - мы и так внизу из-за reverseLayout=true, но можем форсированно прокрутить к 0 + listState.scrollToItem(0) + viewModel.onInitialScrollDone() + viewModel.markAsRead() } } } - // Автопрокрутка к новому сообщению, если мы внизу - LaunchedEffect(state.messages.size) { - if (state.messages.isNotEmpty()) { - val isAtBottom = listState.layoutInfo.visibleItemsInfo.lastOrNull()?.index == state.messages.size - 2 - if (isAtBottom || state.initialScrollIndex == null) { - listState.animateScrollToItem(state.messages.size - 1) - } - - // Если пришли новые сообщения и мы их видим — помечаем как прочитанные - if (isAtBottom) { - viewModel.markAsRead() + // Подгрузка истории при прокрутке вверх + LaunchedEffect(listState) { + snapshotFlow { listState.layoutInfo.visibleItemsInfo.lastOrNull()?.index } + .collect { lastVisibleIndex -> + if (lastVisibleIndex != null && lastVisibleIndex >= listItems.size - 10 && listItems.size >= 15) { + android.util.Log.d("ChatDetailScreen", "TRIGGER LOAD MORE: index $lastVisibleIndex, size ${listItems.size}") + viewModel.loadMoreMessages() + } } + } + + val unreadCount = remember(state.messages) { + state.messages.count { !it.isRead && it.senderId != viewModel.getCurrentUserId() } + } + + // Авто-прочитка при нахождении внизу списка (в reverseLayout это индекс 0) + LaunchedEffect(listState.isScrollInProgress, listState.firstVisibleItemIndex) { + if (!listState.isScrollInProgress && listState.firstVisibleItemIndex <= 1) { + viewModel.markAsRead() } } @@ -200,6 +281,7 @@ fun ChatDetailScreen( LazyColumn( state = listState, modifier = Modifier.fillMaxSize(), + reverseLayout = true, contentPadding = PaddingValues(16.dp), verticalArrangement = Arrangement.spacedBy(8.dp) ) { @@ -207,34 +289,76 @@ fun ChatDetailScreen( msg.media.map { it to msg.id } }.reversed() - items(state.messages, key = { it.id }) { message -> - MessageBubble( - message = message, - isCurrentUser = message.senderId == viewModel.getCurrentUserId(), - autoPlay = message.id == autoPlayingMessageId, - initialPlaybackSpeed = if (message.id == autoPlayingMessageId) currentPlaybackSpeed else 1.0f, - onVoiceFinished = { speed -> playNextVoiceMessage(message.id, speed) }, - onReactionClick = { emoji -> viewModel.addReaction(message.id, emoji) }, - onMediaClick = { clickedMedia -> - val isMedia = clickedMedia.type.startsWith("image") || - clickedMedia.type.startsWith("video") || - clickedMedia.type.contains("gif") - - if (isMedia) { - val initialIndex = allChatMedia.indexOfFirst { it.first.url == clickedMedia.url } - selectedMediaList = allChatMedia.map { it.first } - initialMediaIndex = if (initialIndex != -1) initialIndex else 0 - } else { - // Прямое открытие документов во внешних приложениях - try { - val intent = android.content.Intent(android.content.Intent.ACTION_VIEW, android.net.Uri.parse(clickedMedia.url)) - context.startActivity(intent) - } catch (e: Exception) { - // Ошибка (нет софта) + items(listItems, key = { + when(it) { + is MessageListItem.MessageItem -> it.message.id + is MessageListItem.DateHeader -> "date_${it.date}" + MessageListItem.UnreadSeparator -> "unread_separator" + } + }) { item -> + when(item) { + is MessageListItem.MessageItem -> { + MessageBubble( + message = item.message, + isCurrentUser = item.message.senderId == viewModel.getCurrentUserId(), + autoPlay = item.message.id == autoPlayingMessageId, + initialPlaybackSpeed = if (item.message.id == autoPlayingMessageId) currentPlaybackSpeed else 1.0f, + onVoiceFinished = { speed -> playNextVoiceMessage(item.message.id, speed) }, + onReactionClick = { emoji -> viewModel.addReaction(item.message.id, emoji) }, + onMediaClick = { clickedMedia -> + val isMedia = clickedMedia.type.startsWith("image") || + clickedMedia.type.startsWith("video") || + clickedMedia.type.contains("gif") + + if (isMedia) { + val initialIndex = allChatMedia.indexOfFirst { it.first.url == clickedMedia.url } + selectedMediaList = allChatMedia.map { it.first } + initialMediaIndex = if (initialIndex != -1) initialIndex else 0 + } else { + try { + val intent = android.content.Intent(android.content.Intent.ACTION_VIEW, android.net.Uri.parse(clickedMedia.url)) + context.startActivity(intent) + } catch (e: Exception) { } + } + } + ) + } + is MessageListItem.DateHeader -> { + Box( + modifier = Modifier.fillMaxWidth().padding(vertical = 12.dp), + contentAlignment = Alignment.Center + ) { + Surface( + color = Color.Black.copy(alpha = 0.2f), + shape = RoundedCornerShape(12.dp) + ) { + Text( + text = item.date, + modifier = Modifier.padding(horizontal = 12.dp, vertical = 4.dp), + style = MaterialTheme.typography.labelMedium, + color = Color.White + ) } } } - ) + MessageListItem.UnreadSeparator -> { + Box( + modifier = Modifier.fillMaxWidth().padding(vertical = 16.dp), + contentAlignment = Alignment.Center + ) { + Row(verticalAlignment = Alignment.CenterVertically) { + Box(Modifier.weight(1f).height(0.5.dp).background(Color.Gray.copy(alpha = 0.3f))) + Text( + text = "НЕПРОЧИТАННЫЕ СООБЩЕНИЯ", + modifier = Modifier.padding(horizontal = 12.dp), + style = MaterialTheme.typography.labelSmall, + color = Color.Gray.copy(alpha = 0.6f) + ) + Box(Modifier.weight(1f).height(0.5.dp).background(Color.Gray.copy(alpha = 0.3f))) + } + } + } + } } } @@ -242,6 +366,72 @@ fun ChatDetailScreen( if (state.isLoading) { CircularProgressIndicator(modifier = Modifier.align(Alignment.Center)) } + + // Плавающий заголовок даты (на самом верху списка под топбаром) + floatingDate?.let { date -> + Box( + modifier = Modifier + .fillMaxWidth() + .padding(top = 8.dp) + .align(Alignment.TopCenter) + .zIndex(1f), // Гарантируем видимость поверх всего + contentAlignment = Alignment.TopCenter + ) { + Surface( + color = Color.DarkGray.copy(alpha = 0.9f), + shape = CircleShape, + shadowElevation = 4.dp + ) { + Text( + text = date, + modifier = Modifier.padding(horizontal = 14.dp, vertical = 6.dp), + style = MaterialTheme.typography.labelMedium.copy(fontWeight = FontWeight.Bold), + color = Color.White + ) + } + } + } + + // Кнопка прокрутки вниз с бейджем + if (showScrollToBottom) { + Box( + modifier = Modifier + .align(Alignment.BottomEnd) + .padding(bottom = 16.dp, end = 16.dp) + ) { + FloatingActionButton( + onClick = { + scope.launch { + listState.animateScrollToItem(listItems.size - 1) + } + }, + containerColor = MaterialTheme.colorScheme.surface, + contentColor = MaterialTheme.colorScheme.primary, + shape = CircleShape, + modifier = Modifier.size(44.dp), + elevation = FloatingActionButtonDefaults.elevation(2.dp) + ) { + Icon(Icons.Default.KeyboardArrowDown, contentDescription = null) + } + + if (unreadCount > 0) { + Surface( + color = Color(0xFFF44336), // Красный как в вебе + shape = CircleShape, + modifier = Modifier + .align(Alignment.TopEnd) + .offset(x = 4.dp, y = (-4).dp) + ) { + Text( + text = if (unreadCount > 99) "99+" else unreadCount.toString(), + color = Color.White, + style = MaterialTheme.typography.labelSmall, + modifier = Modifier.padding(horizontal = 6.dp, vertical = 2.dp) + ) + } + } + } + } } // Панель ввода @@ -421,6 +611,21 @@ fun ChatDetailScreen( } }, textStyle = MaterialTheme.typography.bodyLarge.copy(color = MaterialTheme.colorScheme.onSurface), + keyboardOptions = KeyboardOptions( + imeAction = ImeAction.Send, + capitalization = KeyboardCapitalization.Sentences + ), + keyboardActions = KeyboardActions( + onSend = { + if (textInput.isNotBlank() || state.pendingAttachments.isNotEmpty()) { + viewModel.sendMessage(textInput, onFail = { failedText -> + textInput = failedText + }) + textInput = "" + isEmojiPickerVisible = false + } + } + ), decorationBox = { innerTextField -> if (textInput.isEmpty()) { Text( @@ -443,8 +648,11 @@ fun ChatDetailScreen( Surface( onClick = { if (!showMic) { - viewModel.sendMessage(textInput) + viewModel.sendMessage(textInput, onFail = { failedText -> + textInput = failedText + }) textInput = "" + isEmojiPickerVisible = false } }, shape = RoundedCornerShape(16.dp), @@ -566,3 +774,9 @@ fun ChatDetailScreen( ) } } + +sealed class MessageListItem { + data class MessageItem(val message: chats.domain.model.Message) : MessageListItem() + data class DateHeader(val date: String) : MessageListItem() + object UnreadSeparator : MessageListItem() +} diff --git a/client-mobile/chats/presentation/chat_detail/ChatDetailViewModel.kt b/client-mobile/chats/presentation/chat_detail/ChatDetailViewModel.kt index 5a3b5b3..d94ea52 100644 --- a/client-mobile/chats/presentation/chat_detail/ChatDetailViewModel.kt +++ b/client-mobile/chats/presentation/chat_detail/ChatDetailViewModel.kt @@ -4,9 +4,9 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import chats.data.remote.signalr.ChatEvent import chats.data.remote.signalr.ChatHubClient +import chats.data.repository.toDomain import chats.domain.model.Message import chats.domain.repository.ChatRepository -import chats.data.repository.toDomain import core.network.ServerConfig import core.security.TokenManager import dagger.hilt.android.lifecycle.HiltViewModel @@ -26,6 +26,7 @@ data class ChatDetailState( val chatName: String? = null, val chatAvatar: String? = null, val isLoading: Boolean = false, + val isLoadingMore: Boolean = false, val isTyping: Boolean = false, val typingUser: String? = null, val error: String? = null, @@ -56,6 +57,7 @@ class ChatDetailViewModel @Inject constructor( private var currentChatId: String? = null private var typingTimerJob: Job? = null + private var signalrEventsJob: Job? = null private var lastTypingSentTime: Long = 0 private val prefs = context.getSharedPreferences("chat_settings", android.content.Context.MODE_PRIVATE) @@ -83,43 +85,73 @@ class ChatDetailViewModel @Inject constructor( } fun setChatId(chatId: String) { + if (currentChatId == chatId) return currentChatId = chatId - // Ensure SignalR is connected + _state.update { it.copy( + messages = emptyList(), + isLoading = true, + initialScrollIndex = null + ) } + + // Ensure SignalR is connected and join the chat room val token = tokenManager.getToken() if (token != null) { - val baseUrl = serverConfig.getBaseUrl().removeSuffix("/api") + val baseUrl = serverConfig.getBaseUrl() signalrClient.connect(baseUrl, token) + signalrClient.joinChat(chatId) } loadChatInfo(chatId) - observeMessages(chatId) - observeSignalREvents() + observeSignalREvents(chatId) // Initial sync from network refreshMessages(chatId) } - private fun observeMessages(chatId: String) { - repository.getMessagesFlow(chatId) - .onEach { messages -> - _state.update { it.copy(messages = messages) } - // Calculate scroll index if not set - if (_state.value.initialScrollIndex == null && messages.isNotEmpty()) { - val firstUnreadIndex = messages.indexOfFirst { !it.isRead && it.senderId != getCurrentUserId() } - val targetIndex = if (firstUnreadIndex != -1) firstUnreadIndex else messages.size - 1 - _state.update { it.copy(initialScrollIndex = targetIndex) } - - // Automark as read - markAsRead() - } - } - .launchIn(viewModelScope) + private fun updateMessages(messages: List) { + val sortedMessages = messages.sortedByDescending { it.sequenceId } + _state.update { it.copy( + messages = sortedMessages, + isLoading = false, + initialScrollIndex = 0 // In reverse layout, 0 is the bottom + ) } + } + + fun onInitialScrollDone() { + _state.update { it.copy(initialScrollIndex = -1) } } fun refreshMessages(chatId: String) { viewModelScope.launch { - repository.getMessages(chatId) + val messages = repository.getMessages(chatId) + updateMessages(messages) + } + } + + fun loadMoreMessages() { + val chatId = currentChatId ?: return + if (_state.value.isLoading || _state.value.isLoadingMore) return + + val oldestMsg = _state.value.messages.lastOrNull() ?: return + + viewModelScope.launch { + _state.update { it.copy(isLoadingMore = true) } + try { + android.util.Log.d("ChatDetailVM", "Loading more history before seqId: ${oldestMsg.sequenceId}") + val moreMessages = repository.getMessages(chatId, cursor = oldestMsg.sequenceId.toString()) + if (moreMessages.isNotEmpty()) { + val newSorted = moreMessages.sortedByDescending { it.sequenceId } + _state.update { currentState -> + // Избегаем дубликатов + val existingIds = currentState.messages.map { it.id }.toSet() + val uniqueMore = newSorted.filter { it.id !in existingIds } + currentState.copy(messages = currentState.messages + uniqueMore) + } + } + } finally { + _state.update { it.copy(isLoadingMore = false) } + } } } @@ -150,23 +182,37 @@ class ChatDetailViewModel @Inject constructor( } } - private fun observeSignalREvents() { - signalrClient.events + private fun observeSignalREvents(chatId: String) { + signalrEventsJob?.cancel() + signalrEventsJob = signalrClient.events + .onEach { android.util.Log.d("ChatDetailVM", "Received SignalR event: $it for chat: $chatId") } .filter { event -> - when(event) { - is ChatEvent.NewMessage -> event.message.chatId == currentChatId - is ChatEvent.ReactionUpdated -> event.chatId == currentChatId - is ChatEvent.UserTyping -> event.chatId == currentChatId - else -> false + val eventChatId = when(event) { + is ChatEvent.NewMessage -> event.message.chatId + is ChatEvent.ReactionUpdated -> event.chatId + is ChatEvent.UserTyping -> event.chatId + is ChatEvent.MessagesRead -> event.chatId + else -> null } + + if (eventChatId == null) return@filter false + + val match = eventChatId == chatId || eventChatId.contains(chatId) || chatId.contains(eventChatId) + if (match) { + android.util.Log.d("ChatDetailVM", "Event MATCHED chat $chatId: $event") + } + match } .onEach { event -> when (event) { is ChatEvent.NewMessage -> { + android.util.Log.d("ChatDetailVM", "New message added to bottom, NOT marking as read automatically") val baseUrl = serverConfig.getBaseUrl().removeSuffix("/api/") - val domainMsg = event.message.toDomain(baseUrl) - viewModelScope.launch { - repository.saveMessage(domainMsg) + val domainMsg = event.message.toDomain(getCurrentUserId(), baseUrl) + + _state.update { currentState -> + if (currentState.messages.any { it.id == domainMsg.id }) return@update currentState + currentState.copy(messages = listOf(domainMsg) + currentState.messages) } } is ChatEvent.ReactionUpdated -> { @@ -174,8 +220,21 @@ class ChatDetailViewModel @Inject constructor( } is ChatEvent.UserTyping -> { _state.update { it.copy(isTyping = true) } - // Reset typing status after some delay would be better, - // but usually server sends stopped_typing event. + typingTimerJob?.cancel() + typingTimerJob = viewModelScope.launch { + delay(3000) + _state.update { it.copy(isTyping = false) } + } + } + is ChatEvent.MessagesRead -> { + _state.update { currentState -> + val updatedMessages = currentState.messages.map { msg -> + if (msg.sequenceId <= event.lastReadSequenceId) { + msg.copy(isRead = true) + } else msg + } + currentState.copy(messages = updatedMessages) + } } else -> Unit } @@ -183,21 +242,42 @@ class ChatDetailViewModel @Inject constructor( .launchIn(viewModelScope) } + fun clearChatId() { + android.util.Log.d("ChatDetailVM", "KILLING ALL SESSION JOBS for $currentChatId") + signalrEventsJob?.cancel() + signalrEventsJob = null + currentChatId = null + _state.update { it.copy(messages = emptyList(), isLoading = false) } + } + fun markAsRead() { val chatId = currentChatId ?: return val messages = _state.value.messages if (messages.isEmpty()) return - val lastMessage = messages.last() + // В нашем reverseLayout (newest first) первое сообщение - самое новое от собеседника + val currentUserId = getCurrentUserId() + val lastMessageFromOther = messages.firstOrNull { it.senderId != currentUserId } ?: return + viewModelScope.launch { try { - repository.markMessagesAsRead(chatId, lastMessage.id, lastMessage.sequenceId) + // Мгновенно обновляем в памяти для "галочек" + _state.update { currentState -> + val updatedMessages = currentState.messages.map { msg -> + if (msg.senderId != currentUserId && msg.sequenceId <= lastMessageFromOther.sequenceId) { + msg.copy(isRead = true) + } else msg + } + currentState.copy(messages = updatedMessages) + } + repository.markMessagesAsRead(chatId, lastMessageFromOther.id, lastMessageFromOther.sequenceId) } catch (e: Exception) { // Ignore } } } - fun sendMessage(text: String) { + + fun sendMessage(text: String, onFail: (String) -> Unit = {}) { val chatId = currentChatId ?: return val pending = _state.value.pendingAttachments if (text.isBlank() && pending.isEmpty()) return @@ -259,15 +339,18 @@ class ChatDetailViewModel @Inject constructor( val sentMessage = repository.sendMessage( chatId = chatId, - content = text, + content = if (text.isBlank()) null else text, type = if (attachmentRequests != null) "media" else "text", attachments = attachmentRequests ) repository.deleteLocalMessage(tempId) repository.saveMessage(sentMessage) + // Clear attachments on success + _state.update { it.copy(pendingAttachments = emptyList()) } } catch (e: Exception) { repository.deleteLocalMessage(tempId) _state.update { it.copy(error = e.localizedMessage, isUploading = false) } + onFail(text) } } } @@ -349,6 +432,34 @@ class ChatDetailViewModel @Inject constructor( } } + fun formatDateHeader(dateString: String): String { + return try { + // Парсим ISO 8601 (например 2024-04-14T20:56:00Z) + val isoFormat = java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", java.util.Locale.US).apply { + timeZone = java.util.TimeZone.getTimeZone("UTC") + } + val date = isoFormat.parse(dateString) ?: return dateString + + // Форматируем в локальное время: "14 апреля" + java.text.SimpleDateFormat("d MMMM", java.util.Locale("ru")).format(date) + } catch (e: Exception) { + dateString + } + } + + fun getLocalDateString(isoDate: String): String { + return try { + val isoFormat = java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", java.util.Locale.US).apply { + timeZone = java.util.TimeZone.getTimeZone("UTC") + } + val date = isoFormat.parse(isoDate) ?: return isoDate + // Возвращаем просто дату YYYY-MM-DD в локальном часовом поясе для группировки + java.text.SimpleDateFormat("yyyy-MM-dd", java.util.Locale.getDefault()).format(date) + } catch (e: Exception) { + isoDate.split("T").first() + } + } + fun removePendingAttachment(file: File) { _state.update { it.copy(pendingAttachments = it.pendingAttachments - file) } } diff --git a/client-mobile/chats/presentation/chat_list/ChatListViewModel.kt b/client-mobile/chats/presentation/chat_list/ChatListViewModel.kt index 633c1a1..5d318c2 100644 --- a/client-mobile/chats/presentation/chat_list/ChatListViewModel.kt +++ b/client-mobile/chats/presentation/chat_list/ChatListViewModel.kt @@ -108,11 +108,24 @@ class ChatListViewModel @Inject constructor( _state.update { currentState -> val updatedChats = currentState.chats.map { chat -> - if (chat.id == event.message.chatId) { + if (chat.id.equals(event.message.chatId, ignoreCase = true)) { val isMyMessage = event.message.senderId == currentUserId + val isAlreadySeen = chat.lastMessage?.id == event.message.id + + val lastMsgDomain = event.message.toDomain(currentUserId, baseUrl) + val newCount = if (isMyMessage || isAlreadySeen) { + chat.unreadCount + } else { + chat.unreadCount + 1 + } + + if (!isAlreadySeen) { + android.util.Log.d("ChatListVM", "Message ${event.message.id} -> Count ${chat.unreadCount} -> $newCount") + } + chat.copy( - lastMessage = event.message.toDomain(baseUrl), - unreadCount = if (isMyMessage) chat.unreadCount else chat.unreadCount + 1 + lastMessage = lastMsgDomain, + unreadCount = newCount ) } else chat } diff --git a/client-mobile/chats/presentation/components/MessageBubble.kt b/client-mobile/chats/presentation/components/MessageBubble.kt index ec68151..1966cc5 100644 --- a/client-mobile/chats/presentation/components/MessageBubble.kt +++ b/client-mobile/chats/presentation/components/MessageBubble.kt @@ -7,6 +7,7 @@ import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text +import androidx.compose.material3.CircularProgressIndicator import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -157,6 +158,25 @@ fun MessageBubble( Spacer(modifier = Modifier.height(4.dp)) } + // Loading state for temp media messages + if (message.id.startsWith("temp_") && message.mediaType != MediaType.TEXT) { + Box( + modifier = Modifier + .fillMaxWidth() + .height(200.dp) + .clip(RoundedCornerShape(8.dp)) + .background(contentColor.copy(alpha = 0.1f)), + contentAlignment = Alignment.Center + ) { + CircularProgressIndicator( + modifier = Modifier.size(24.dp), + strokeWidth = 2.dp, + color = contentColor.copy(alpha = 0.5f) + ) + } + Spacer(modifier = Modifier.height(4.dp)) + } + // Media Content (Attachments) if (message.media.isNotEmpty() && message.mediaType != MediaType.GIF) { val mediaCount = message.media.size @@ -370,8 +390,8 @@ fun PhotoGrid(mediaList: List, isCurrentUser: Boolean, onMediaClick: (Int val columns = when { mediaList.size == 1 -> 1 - mediaList.size % 3 == 0 -> 3 - else -> 2 + mediaList.size <= 4 -> 2 + else -> 3 } Column(modifier = modifier) { diff --git a/client-mobile/core/database/data/ChatDatabase.kt b/client-mobile/core/database/data/ChatDatabase.kt index d4667f0..e12243e 100644 --- a/client-mobile/core/database/data/ChatDatabase.kt +++ b/client-mobile/core/database/data/ChatDatabase.kt @@ -33,6 +33,9 @@ interface MessageDao { @Query("DELETE FROM messages WHERE id = :messageId") suspend fun deleteMessage(messageId: String) + + @Query("UPDATE messages SET isRead = 1 WHERE chatId = :chatId AND sequenceId <= :lastReadSequenceId AND isRead = 0") + suspend fun markMessagesAsRead(chatId: String, lastReadSequenceId: Int) } @Database(entities = [MessageEntity::class], version = 1) diff --git a/client-mobile/core/di/NetworkModule.kt b/client-mobile/core/di/NetworkModule.kt index ce803f0..780fdf5 100644 --- a/client-mobile/core/di/NetworkModule.kt +++ b/client-mobile/core/di/NetworkModule.kt @@ -11,6 +11,7 @@ import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory +import java.util.concurrent.TimeUnit import javax.inject.Singleton @Module @@ -24,9 +25,12 @@ object NetworkModule { dynamicBaseUrlInterceptor: DynamicBaseUrlInterceptor ): OkHttpClient { val logging = HttpLoggingInterceptor().apply { - level = HttpLoggingInterceptor.Level.BODY + level = HttpLoggingInterceptor.Level.HEADERS } return OkHttpClient.Builder() + .connectTimeout(60, TimeUnit.SECONDS) + .readTimeout(60, TimeUnit.SECONDS) + .writeTimeout(300, TimeUnit.SECONDS) .addInterceptor(logging) .addInterceptor(dynamicBaseUrlInterceptor) .addInterceptor(authInterceptor)