mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2025-03-14 09:45:42 +00:00
ui: rejected group previews (#5665)
This commit is contained in:
parent
f701ffa4e0
commit
1fcb352db4
5 changed files with 18 additions and 2 deletions
|
@ -143,6 +143,7 @@ struct ChatPreviewView: View {
|
|||
}
|
||||
case let .group(groupInfo):
|
||||
switch (groupInfo.membership.memberStatus) {
|
||||
case .memRejected: inactiveIcon()
|
||||
case .memLeft: inactiveIcon()
|
||||
case .memRemoved: inactiveIcon()
|
||||
case .memGroupDeleted: inactiveIcon()
|
||||
|
@ -168,7 +169,7 @@ struct ChatPreviewView: View {
|
|||
let v = previewTitle(t)
|
||||
switch (groupInfo.membership.memberStatus) {
|
||||
case .memInvited: v.foregroundColor(deleting ? theme.colors.secondary : chat.chatInfo.incognito ? .indigo : theme.colors.primary)
|
||||
case .memAccepted: v.foregroundColor(theme.colors.secondary)
|
||||
case .memAccepted, .memRejected: v.foregroundColor(theme.colors.secondary)
|
||||
default: if deleting { v.foregroundColor(theme.colors.secondary) } else { v }
|
||||
}
|
||||
default: previewTitle(t)
|
||||
|
@ -336,6 +337,7 @@ struct ChatPreviewView: View {
|
|||
}
|
||||
case let .group(groupInfo):
|
||||
switch (groupInfo.membership.memberStatus) {
|
||||
case .memRejected: chatPreviewInfoText("rejected")
|
||||
case .memInvited: groupInvitationPreviewText(groupInfo)
|
||||
case .memAccepted: chatPreviewInfoText("connecting…")
|
||||
default: EmptyView()
|
||||
|
|
|
@ -2141,6 +2141,7 @@ public struct GroupMember: Identifiable, Decodable, Hashable {
|
|||
|
||||
public var memberActive: Bool {
|
||||
switch memberStatus {
|
||||
case .memRejected: return false
|
||||
case .memRemoved: return false
|
||||
case .memLeft: return false
|
||||
case .memGroupDeleted: return false
|
||||
|
@ -2158,6 +2159,7 @@ public struct GroupMember: Identifiable, Decodable, Hashable {
|
|||
|
||||
public var memberCurrent: Bool {
|
||||
switch memberStatus {
|
||||
case .memRejected: return false
|
||||
case .memRemoved: return false
|
||||
case .memLeft: return false
|
||||
case .memGroupDeleted: return false
|
||||
|
@ -2288,6 +2290,7 @@ public enum GroupMemberCategory: String, Decodable, Hashable {
|
|||
}
|
||||
|
||||
public enum GroupMemberStatus: String, Decodable, Hashable {
|
||||
case memRejected = "rejected"
|
||||
case memRemoved = "removed"
|
||||
case memLeft = "left"
|
||||
case memGroupDeleted = "deleted"
|
||||
|
@ -2303,6 +2306,7 @@ public enum GroupMemberStatus: String, Decodable, Hashable {
|
|||
|
||||
public var text: LocalizedStringKey {
|
||||
switch self {
|
||||
case .memRejected: return "rejected"
|
||||
case .memRemoved: return "removed"
|
||||
case .memLeft: return "left"
|
||||
case .memGroupDeleted: return "group deleted"
|
||||
|
@ -2320,6 +2324,7 @@ public enum GroupMemberStatus: String, Decodable, Hashable {
|
|||
|
||||
public var shortText: LocalizedStringKey {
|
||||
switch self {
|
||||
case .memRejected: return "rejected"
|
||||
case .memRemoved: return "removed"
|
||||
case .memLeft: return "left"
|
||||
case .memGroupDeleted: return "group deleted"
|
||||
|
|
|
@ -1910,6 +1910,7 @@ data class GroupMember (
|
|||
}
|
||||
|
||||
val memberActive: Boolean get() = when (this.memberStatus) {
|
||||
GroupMemberStatus.MemRejected -> false
|
||||
GroupMemberStatus.MemRemoved -> false
|
||||
GroupMemberStatus.MemLeft -> false
|
||||
GroupMemberStatus.MemGroupDeleted -> false
|
||||
|
@ -1925,6 +1926,7 @@ data class GroupMember (
|
|||
}
|
||||
|
||||
val memberCurrent: Boolean get() = when (this.memberStatus) {
|
||||
GroupMemberStatus.MemRejected -> false
|
||||
GroupMemberStatus.MemRemoved -> false
|
||||
GroupMemberStatus.MemLeft -> false
|
||||
GroupMemberStatus.MemGroupDeleted -> false
|
||||
|
@ -2028,6 +2030,7 @@ enum class GroupMemberCategory {
|
|||
|
||||
@Serializable
|
||||
enum class GroupMemberStatus {
|
||||
@SerialName("rejected") MemRejected,
|
||||
@SerialName("removed") MemRemoved,
|
||||
@SerialName("left") MemLeft,
|
||||
@SerialName("deleted") MemGroupDeleted,
|
||||
|
@ -2042,6 +2045,7 @@ enum class GroupMemberStatus {
|
|||
@SerialName("creator") MemCreator;
|
||||
|
||||
val text: String get() = when (this) {
|
||||
MemRejected -> generalGetString(MR.strings.group_member_status_rejected)
|
||||
MemRemoved -> generalGetString(MR.strings.group_member_status_removed)
|
||||
MemLeft -> generalGetString(MR.strings.group_member_status_left)
|
||||
MemGroupDeleted -> generalGetString(MR.strings.group_member_status_group_deleted)
|
||||
|
@ -2057,6 +2061,7 @@ enum class GroupMemberStatus {
|
|||
}
|
||||
|
||||
val shortText: String get() = when (this) {
|
||||
MemRejected -> generalGetString(MR.strings.group_member_status_rejected)
|
||||
MemRemoved -> generalGetString(MR.strings.group_member_status_removed)
|
||||
MemLeft -> generalGetString(MR.strings.group_member_status_left)
|
||||
MemGroupDeleted -> generalGetString(MR.strings.group_member_status_group_deleted)
|
||||
|
|
|
@ -70,6 +70,7 @@ fun ChatPreviewView(
|
|||
}
|
||||
is ChatInfo.Group ->
|
||||
when (cInfo.groupInfo.membership.memberStatus) {
|
||||
GroupMemberStatus.MemRejected -> inactiveIcon()
|
||||
GroupMemberStatus.MemLeft -> inactiveIcon()
|
||||
GroupMemberStatus.MemRemoved -> inactiveIcon()
|
||||
GroupMemberStatus.MemGroupDeleted -> inactiveIcon()
|
||||
|
@ -156,7 +157,7 @@ fun ChatPreviewView(
|
|||
else
|
||||
if (chat.chatInfo.incognito) Indigo else MaterialTheme.colors.primary
|
||||
)
|
||||
GroupMemberStatus.MemAccepted -> chatPreviewTitleText(MaterialTheme.colors.secondary)
|
||||
GroupMemberStatus.MemAccepted, GroupMemberStatus.MemRejected -> chatPreviewTitleText(MaterialTheme.colors.secondary)
|
||||
else -> chatPreviewTitleText(
|
||||
if (deleting)
|
||||
MaterialTheme.colors.secondary
|
||||
|
@ -237,6 +238,7 @@ fun ChatPreviewView(
|
|||
}
|
||||
is ChatInfo.Group ->
|
||||
when (cInfo.groupInfo.membership.memberStatus) {
|
||||
GroupMemberStatus.MemRejected -> Text(stringResource(MR.strings.group_preview_rejected))
|
||||
GroupMemberStatus.MemInvited -> Text(groupInvitationPreviewText(currentUserProfileDisplayName, cInfo.groupInfo))
|
||||
GroupMemberStatus.MemAccepted -> Text(stringResource(MR.strings.group_connection_pending), color = MaterialTheme.colors.secondary)
|
||||
else -> {}
|
||||
|
|
|
@ -418,6 +418,7 @@
|
|||
<string name="member_contact_send_direct_message">send direct message</string>
|
||||
<string name="group_preview_you_are_invited">you are invited to group</string>
|
||||
<string name="group_preview_join_as">join as %s</string>
|
||||
<string name="group_preview_rejected">rejected</string>
|
||||
<string name="group_connection_pending">connecting…</string>
|
||||
<string name="tap_to_start_new_chat">Tap to start a new chat</string>
|
||||
<string name="chat_with_developers">Chat with the developers</string>
|
||||
|
@ -1622,6 +1623,7 @@
|
|||
<string name="group_member_role_owner">owner</string>
|
||||
|
||||
<!-- GroupMemberStatus -->
|
||||
<string name="group_member_status_rejected">rejected</string>
|
||||
<string name="group_member_status_removed">removed</string>
|
||||
<string name="group_member_status_left">left</string>
|
||||
<string name="group_member_status_group_deleted">group deleted</string>
|
||||
|
|
Loading…
Add table
Reference in a new issue