Исправление инверсии онлайн-статуса и border индикатора
This commit is contained in:
@@ -191,9 +191,10 @@ final class DialogRepository {
|
|||||||
if !title.isEmpty { dialog.opponentTitle = title }
|
if !title.isEmpty { dialog.opponentTitle = title }
|
||||||
if !username.isEmpty { dialog.opponentUsername = username }
|
if !username.isEmpty { dialog.opponentUsername = username }
|
||||||
if verified > 0 { dialog.verified = max(dialog.verified, verified) }
|
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 {
|
if online >= 0 {
|
||||||
dialog.isOnline = online > 0
|
dialog.isOnline = online == 0
|
||||||
if !dialog.isOnline { dialog.lastSeen = Int64(Date().timeIntervalSince1970 * 1000) }
|
if !dialog.isOnline { dialog.lastSeen = Int64(Date().timeIntervalSince1970 * 1000) }
|
||||||
}
|
}
|
||||||
dialogs[publicKey] = dialog
|
dialogs[publicKey] = dialog
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ final class RecentSearchesRepository: ObservableObject {
|
|||||||
publicKey: user.publicKey,
|
publicKey: user.publicKey,
|
||||||
title: user.title,
|
title: user.title,
|
||||||
username: user.username,
|
username: user.username,
|
||||||
lastSeenText: user.online == 1 ? "online" : "last seen recently"
|
lastSeenText: user.online == 0 ? "online" : "last seen recently"
|
||||||
)
|
)
|
||||||
add(recent)
|
add(recent)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,9 +60,7 @@ struct AvatarView: View {
|
|||||||
.overlay {
|
.overlay {
|
||||||
Circle()
|
Circle()
|
||||||
.stroke(
|
.stroke(
|
||||||
colorScheme == .dark
|
Color.black,
|
||||||
? Color(hex: 0x1A1B1E)
|
|
||||||
: Color.white,
|
|
||||||
lineWidth: badgeBorderWidth
|
lineWidth: badgeBorderWidth
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -216,7 +216,7 @@ private extension ChatListSearchContent {
|
|||||||
HStack(spacing: 12) {
|
HStack(spacing: 12) {
|
||||||
AvatarView(
|
AvatarView(
|
||||||
initials: initials, colorIndex: colorIdx,
|
initials: initials, colorIndex: colorIdx,
|
||||||
size: 48, isOnline: user.online == 1,
|
size: 48, isOnline: user.online == 0,
|
||||||
isSavedMessages: isSelf
|
isSavedMessages: isSelf
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ private extension SearchResultsSection {
|
|||||||
initials: initials,
|
initials: initials,
|
||||||
colorIndex: colorIdx,
|
colorIndex: colorIdx,
|
||||||
size: 42,
|
size: 42,
|
||||||
isOnline: user.online == 1,
|
isOnline: user.online == 0,
|
||||||
isSavedMessages: isSelf
|
isSavedMessages: isSelf
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -100,7 +100,7 @@ private extension SearchResultsSection {
|
|||||||
|
|
||||||
Spacer()
|
Spacer()
|
||||||
|
|
||||||
if user.online == 1 {
|
if user.online == 0 {
|
||||||
Circle()
|
Circle()
|
||||||
.fill(RosettaColors.online)
|
.fill(RosettaColors.online)
|
||||||
.frame(width: 8, height: 8)
|
.frame(width: 8, height: 8)
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ final class SearchViewModel: ObservableObject {
|
|||||||
title: "Saved Messages",
|
title: "Saved Messages",
|
||||||
publicKey: SessionManager.shared.currentPublicKey,
|
publicKey: SessionManager.shared.currentPublicKey,
|
||||||
verified: 0,
|
verified: 0,
|
||||||
online: 1
|
online: 0
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,7 +186,7 @@ final class SearchViewModel: ObservableObject {
|
|||||||
title: dialog.opponentTitle,
|
title: dialog.opponentTitle,
|
||||||
publicKey: dialog.opponentKey,
|
publicKey: dialog.opponentKey,
|
||||||
verified: dialog.verified,
|
verified: dialog.verified,
|
||||||
online: dialog.isOnline ? 1 : 0
|
online: dialog.isOnline ? 0 : 1
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user