mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-07-10 07:51:56 +00:00
ui
This commit is contained in:
@@ -1516,7 +1516,7 @@ public enum ChatInfo: Identifiable, Decodable, NamedChat, Hashable {
|
||||
case let .direct(contact): contact.sndReady
|
||||
case let .group(groupInfo, groupScope):
|
||||
groupInfo.membership.memberActive
|
||||
&& (groupScope != nil || (!groupInfo.membership.memberPending && groupInfo.membership.memberRole != .observer))
|
||||
&& (groupScope != nil || (!groupInfo.membership.memberPending && groupInfo.membership.memberRole >= .author))
|
||||
case .local: true
|
||||
case .contactRequest: false
|
||||
case .contactConnection: false
|
||||
@@ -1579,7 +1579,7 @@ public enum ChatInfo: Identifiable, Decodable, NamedChat, Hashable {
|
||||
switch(groupChatScope) {
|
||||
case .none:
|
||||
if groupInfo.membership.memberPending { return ("reviewed by admins", "Please contact group admin.") }
|
||||
if groupInfo.membership.memberRole == .observer {
|
||||
if groupInfo.membership.memberRole < .author {
|
||||
return groupInfo.useRelays ? ("you are subscriber", nil) : ("you are observer", "Please contact group admin.")
|
||||
}
|
||||
return nil
|
||||
@@ -2874,6 +2874,7 @@ public struct GroupMemberIds: Decodable, Hashable {
|
||||
public enum GroupMemberRole: String, Identifiable, CaseIterable, Comparable, Codable, Hashable {
|
||||
case relay
|
||||
case observer
|
||||
case commenter
|
||||
case author
|
||||
case member
|
||||
case moderator
|
||||
@@ -2888,6 +2889,7 @@ public enum GroupMemberRole: String, Identifiable, CaseIterable, Comparable, Cod
|
||||
switch self {
|
||||
case .relay: return NSLocalizedString("relay", comment: "member role")
|
||||
case .observer: return NSLocalizedString("observer", comment: "member role")
|
||||
case .commenter: return NSLocalizedString("commenter", comment: "member role")
|
||||
case .author: return NSLocalizedString("author", comment: "member role")
|
||||
case .member: return NSLocalizedString("member", comment: "member role")
|
||||
case .moderator: return NSLocalizedString("moderator", comment: "member role")
|
||||
@@ -2900,11 +2902,12 @@ public enum GroupMemberRole: String, Identifiable, CaseIterable, Comparable, Cod
|
||||
switch self {
|
||||
case .relay: 0
|
||||
case .observer: 1
|
||||
case .author: 2
|
||||
case .member: 3
|
||||
case .moderator: 4
|
||||
case .admin: 5
|
||||
case .owner: 6
|
||||
case .commenter: 2
|
||||
case .author: 3
|
||||
case .member: 4
|
||||
case .moderator: 5
|
||||
case .admin: 6
|
||||
case .owner: 7
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-2
@@ -1621,7 +1621,7 @@ sealed class ChatInfo: SomeChat, NamedChat {
|
||||
if (groupInfo.membership.memberPending) {
|
||||
return generalGetString(MR.strings.reviewed_by_admins) to generalGetString(MR.strings.observer_cant_send_message_desc)
|
||||
}
|
||||
if (groupInfo.membership.memberRole == GroupMemberRole.Observer) {
|
||||
if (groupInfo.membership.memberRole < GroupMemberRole.Author) {
|
||||
return if (groupInfo.useRelays) {
|
||||
generalGetString(MR.strings.you_are_subscriber) to null
|
||||
} else {
|
||||
@@ -1673,7 +1673,7 @@ sealed class ChatInfo: SomeChat, NamedChat {
|
||||
is Direct -> contact.sndReady
|
||||
is Group ->
|
||||
groupInfo.membership.memberActive
|
||||
&& (groupChatScope != null || (!groupInfo.membership.memberPending && groupInfo.membership.memberRole != GroupMemberRole.Observer))
|
||||
&& (groupChatScope != null || (!groupInfo.membership.memberPending && groupInfo.membership.memberRole >= GroupMemberRole.Author))
|
||||
is Local -> true
|
||||
is ContactRequest -> false
|
||||
is ContactConnection -> false
|
||||
@@ -2529,6 +2529,7 @@ data class GroupMemberIds(
|
||||
enum class GroupMemberRole(val memberRole: String) {
|
||||
@SerialName("relay") Relay("relay"), // order matters in comparisons
|
||||
@SerialName("observer") Observer("observer"),
|
||||
@SerialName("commenter") Commenter("commenter"),
|
||||
@SerialName("author") Author("author"),
|
||||
@SerialName("member") Member("member"),
|
||||
@SerialName("moderator") Moderator("moderator"),
|
||||
@@ -2542,6 +2543,7 @@ enum class GroupMemberRole(val memberRole: String) {
|
||||
val text: String get() = when (this) {
|
||||
Relay -> generalGetString(MR.strings.group_member_role_relay)
|
||||
Observer -> generalGetString(MR.strings.group_member_role_observer)
|
||||
Commenter -> generalGetString(MR.strings.group_member_role_commenter)
|
||||
Author -> generalGetString(MR.strings.group_member_role_author)
|
||||
Member -> generalGetString(MR.strings.group_member_role_member)
|
||||
Moderator -> generalGetString(MR.strings.group_member_role_moderator)
|
||||
|
||||
@@ -1772,6 +1772,7 @@
|
||||
|
||||
<!-- GroupMemberRole -->
|
||||
<string name="group_member_role_observer">observer</string>
|
||||
<string name="group_member_role_commenter">commenter</string>
|
||||
<string name="group_member_role_author">author</string>
|
||||
<string name="group_member_role_member">member</string>
|
||||
<string name="group_member_role_moderator">moderator</string>
|
||||
|
||||
Reference in New Issue
Block a user