mobile: hide observer role from UI (to be reverted after v4.5.4 is released)

This commit is contained in:
Evgeny Poberezkin
2023-03-16 22:58:00 +00:00
parent 2fda0454e3
commit 37d0bc2f14
6 changed files with 16 additions and 16 deletions

View File

@@ -942,7 +942,7 @@ data class GroupMember (
fun canChangeRoleTo(groupInfo: GroupInfo): List<GroupMemberRole>? = fun canChangeRoleTo(groupInfo: GroupInfo): List<GroupMemberRole>? =
if (!canBeRemoved(groupInfo)) null if (!canBeRemoved(groupInfo)) null
else groupInfo.membership.memberRole.let { userRole -> else groupInfo.membership.memberRole.let { userRole ->
GroupMemberRole.values().filter { it <= userRole } GroupMemberRole.values().filter { it <= userRole && it != GroupMemberRole.Observer }
} }
val memberIncognito = memberProfile.profileId != memberContactProfileId val memberIncognito = memberProfile.profileId != memberContactProfileId

View File

@@ -166,7 +166,7 @@ private fun RoleSelectionRow(groupInfo: GroupInfo, selectedRole: MutableState<Gr
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceBetween horizontalArrangement = Arrangement.SpaceBetween
) { ) {
val values = GroupMemberRole.values().filter { it <= groupInfo.membership.memberRole }.map { it to it.text } val values = GroupMemberRole.values().filter { it <= groupInfo.membership.memberRole && it != GroupMemberRole.Observer }.map { it to it.text }
ExposedDropDownSettingRow( ExposedDropDownSettingRow(
generalGetString(R.string.new_member_role), generalGetString(R.string.new_member_role),
values, values,

View File

@@ -120,9 +120,9 @@ fun GroupLinkLayout(
if (groupLink == null) { if (groupLink == null) {
SimpleButton(stringResource(R.string.button_create_group_link), icon = Icons.Outlined.AddLink, disabled = creatingLink, click = createLink) SimpleButton(stringResource(R.string.button_create_group_link), icon = Icons.Outlined.AddLink, disabled = creatingLink, click = createLink)
} else { } else {
SectionItemView(padding = PaddingValues(bottom = DEFAULT_PADDING)) { // SectionItemView(padding = PaddingValues(bottom = DEFAULT_PADDING)) {
RoleSelectionRow(groupInfo, groupLinkMemberRole) // RoleSelectionRow(groupInfo, groupLinkMemberRole)
} // }
var initialLaunch by remember { mutableStateOf(true) } var initialLaunch by remember { mutableStateOf(true) }
LaunchedEffect(groupLinkMemberRole.value) { LaunchedEffect(groupLinkMemberRole.value) {
if (!initialLaunch) { if (!initialLaunch) {

View File

@@ -140,7 +140,7 @@ struct AddGroupMembersView: View {
private func rolePicker() -> some View { private func rolePicker() -> some View {
Picker("New member role", selection: $selectedRole) { Picker("New member role", selection: $selectedRole) {
ForEach(GroupMemberRole.allCases) { role in ForEach(GroupMemberRole.allCases) { role in
if role <= groupInfo.membership.memberRole { if role <= groupInfo.membership.memberRole && role != .observer {
Text(role.text) Text(role.text)
} }
} }

View File

@@ -34,15 +34,15 @@ struct GroupLinkView: View {
Text("You can share a link or a QR code - anybody will be able to join the group. You won't lose members of the group if you later delete it.") Text("You can share a link or a QR code - anybody will be able to join the group. You won't lose members of the group if you later delete it.")
.padding(.bottom) .padding(.bottom)
if let groupLink = groupLink { if let groupLink = groupLink {
HStack { // HStack {
Text("Initial role") // Text("Initial role")
Picker("Initial role", selection: $groupLinkMemberRole) { // Picker("Initial role", selection: $groupLinkMemberRole) {
ForEach([GroupMemberRole.member, GroupMemberRole.observer]) { role in // ForEach([GroupMemberRole.member, GroupMemberRole.observer]) { role in
Text(role.text) // Text(role.text)
} // }
} // }
} // }
.frame(maxWidth: .infinity, alignment: .leading) // .frame(maxWidth: .infinity, alignment: .leading)
QRCode(uri: groupLink) QRCode(uri: groupLink)
HStack { HStack {
Button { Button {

View File

@@ -1517,7 +1517,7 @@ public struct GroupMember: Identifiable, Decodable {
public func canChangeRoleTo(groupInfo: GroupInfo) -> [GroupMemberRole]? { public func canChangeRoleTo(groupInfo: GroupInfo) -> [GroupMemberRole]? {
if !canBeRemoved(groupInfo: groupInfo) { return nil } if !canBeRemoved(groupInfo: groupInfo) { return nil }
let userRole = groupInfo.membership.memberRole let userRole = groupInfo.membership.memberRole
return GroupMemberRole.allCases.filter { $0 <= userRole } return GroupMemberRole.allCases.filter { $0 <= userRole && $0 != .observer }
} }
public var memberIncognito: Bool { public var memberIncognito: Bool {