diff --git a/Rosetta/Core/Data/Repositories/DialogRepository.swift b/Rosetta/Core/Data/Repositories/DialogRepository.swift index fdb4b19..843501f 100644 --- a/Rosetta/Core/Data/Repositories/DialogRepository.swift +++ b/Rosetta/Core/Data/Repositories/DialogRepository.swift @@ -191,9 +191,10 @@ final class DialogRepository { if !title.isEmpty { dialog.opponentTitle = title } if !username.isEmpty { dialog.opponentUsername = username } if verified > 0 { dialog.verified = max(dialog.verified, verified) } - // online: 0 = offline, 1 = online, -1 = not provided (don't update) + // Server protocol: 0 = ONLINE, 1 = OFFLINE (matches desktop OnlineState enum) + // -1 = not provided (don't update) if online >= 0 { - dialog.isOnline = online > 0 + dialog.isOnline = online == 0 if !dialog.isOnline { dialog.lastSeen = Int64(Date().timeIntervalSince1970 * 1000) } } dialogs[publicKey] = dialog diff --git a/Rosetta/Core/Data/Repositories/RecentSearchesRepository.swift b/Rosetta/Core/Data/Repositories/RecentSearchesRepository.swift index d0e79d3..b006057 100644 --- a/Rosetta/Core/Data/Repositories/RecentSearchesRepository.swift +++ b/Rosetta/Core/Data/Repositories/RecentSearchesRepository.swift @@ -30,7 +30,7 @@ final class RecentSearchesRepository: ObservableObject { publicKey: user.publicKey, title: user.title, username: user.username, - lastSeenText: user.online == 1 ? "online" : "last seen recently" + lastSeenText: user.online == 0 ? "online" : "last seen recently" ) add(recent) } diff --git a/Rosetta/DesignSystem/Components/AvatarView.swift b/Rosetta/DesignSystem/Components/AvatarView.swift index 4be9add..6579bf1 100644 --- a/Rosetta/DesignSystem/Components/AvatarView.swift +++ b/Rosetta/DesignSystem/Components/AvatarView.swift @@ -60,9 +60,7 @@ struct AvatarView: View { .overlay { Circle() .stroke( - colorScheme == .dark - ? Color(hex: 0x1A1B1E) - : Color.white, + Color.black, lineWidth: badgeBorderWidth ) } diff --git a/Rosetta/Features/Chats/ChatList/ChatListSearchContent.swift b/Rosetta/Features/Chats/ChatList/ChatListSearchContent.swift index fd1b7dc..0120715 100644 --- a/Rosetta/Features/Chats/ChatList/ChatListSearchContent.swift +++ b/Rosetta/Features/Chats/ChatList/ChatListSearchContent.swift @@ -216,7 +216,7 @@ private extension ChatListSearchContent { HStack(spacing: 12) { AvatarView( initials: initials, colorIndex: colorIdx, - size: 48, isOnline: user.online == 1, + size: 48, isOnline: user.online == 0, isSavedMessages: isSelf ) diff --git a/Rosetta/Features/Chats/Search/SearchResultsSection.swift b/Rosetta/Features/Chats/Search/SearchResultsSection.swift index b05e241..f93d9ea 100644 --- a/Rosetta/Features/Chats/Search/SearchResultsSection.swift +++ b/Rosetta/Features/Chats/Search/SearchResultsSection.swift @@ -71,7 +71,7 @@ private extension SearchResultsSection { initials: initials, colorIndex: colorIdx, size: 42, - isOnline: user.online == 1, + isOnline: user.online == 0, isSavedMessages: isSelf ) @@ -100,7 +100,7 @@ private extension SearchResultsSection { Spacer() - if user.online == 1 { + if user.online == 0 { Circle() .fill(RosettaColors.online) .frame(width: 8, height: 8) diff --git a/Rosetta/Features/Chats/Search/SearchViewModel.swift b/Rosetta/Features/Chats/Search/SearchViewModel.swift index b48f57b..7285ee5 100644 --- a/Rosetta/Features/Chats/Search/SearchViewModel.swift +++ b/Rosetta/Features/Chats/Search/SearchViewModel.swift @@ -170,7 +170,7 @@ final class SearchViewModel: ObservableObject { title: "Saved Messages", publicKey: SessionManager.shared.currentPublicKey, verified: 0, - online: 1 + online: 0 )) } @@ -186,7 +186,7 @@ final class SearchViewModel: ObservableObject { title: dialog.opponentTitle, publicKey: dialog.opponentKey, verified: dialog.verified, - online: dialog.isOnline ? 1 : 0 + online: dialog.isOnline ? 0 : 1 )) }