RC option to hide contact edition - ui/hide_contact_edition

This commit is contained in:
Christophe Deschamps 2026-03-18 16:27:11 +01:00
parent 5615d51e27
commit 54b8ae4b02
8 changed files with 35 additions and 22 deletions

View file

@ -150,6 +150,15 @@ class CorePreferences: ObservableObject {
}
}
var hideContactEdition: Bool {
get {
config.getBool(section: "ui", key: "hide_contact_edition", defaultValue: false)
}
set {
config.setBool(section: "ui", key: "hide_contact_edition", value: newValue)
}
}
var disableAddContact: Bool {
get {
config.getBool(section: "ui", key: "disable_add_contact", defaultValue: false)

View file

@ -32,7 +32,7 @@ struct ContactsView: View {
ZStack(alignment: .bottomTrailing) {
ContactsFragment(isShowDeletePopup: $isShowDeletePopup, text: $text)
if !AppServices.corePreferences.disableAddContact {
if !AppServices.corePreferences.disableAddContact && !AppServices.corePreferences.hideContactEdition {
Button {
withAnimation {
contactsListViewModel.selectedEditFriend = nil

View file

@ -490,7 +490,7 @@ struct ContactInnerActionsFragment: View {
.background(Color.gray100)
VStack(spacing: 0) {
if !contactAvatarModel.isReadOnly {
if !contactAvatarModel.isReadOnly && !AppServices.corePreferences.hideContactEdition {
if !contactAvatarModel.editable {
Button {
actionEditButton()
@ -599,7 +599,7 @@ struct ContactInnerActionsFragment: View {
.padding(.horizontal, 20)
}
if !contactAvatarModel.isReadOnly {
if !contactAvatarModel.isReadOnly && !AppServices.corePreferences.hideContactEdition {
VStack {
Divider()
}

View file

@ -77,7 +77,7 @@ struct ContactInnerFragment: View {
Spacer()
if !contactAvatarModel.isReadOnly {
if !contactAvatarModel.isReadOnly && !AppServices.corePreferences.hideContactEdition {
if !contactAvatarModel.editable {
Button(action: {
editNativeContact()

View file

@ -55,7 +55,7 @@ struct ContactsListBottomSheet: View {
.padding(.trailing)
}
if !contactsListViewModel.selectedFriend!.isReadOnly {
if !contactsListViewModel.selectedFriend!.isReadOnly && !AppServices.corePreferences.hideContactEdition {
Spacer()
Button {
@ -137,7 +137,7 @@ struct ContactsListBottomSheet: View {
.padding(.horizontal, 30)
.background(Color.gray100)
if !contactsListViewModel.selectedFriend!.isReadOnly {
if !contactsListViewModel.selectedFriend!.isReadOnly && !AppServices.corePreferences.hideContactEdition {
VStack {
Divider()
}

View file

@ -436,8 +436,9 @@ struct ConversationInfoFragment: View {
where: {$0.friend!.addresses.contains(where: {$0.asStringUriOnly() == addressConv})})
let disableAddContact = AppServices.corePreferences.disableAddContact
let hideContactEdition = AppServices.corePreferences.hideContactEdition
if (!disableAddContact || (disableAddContact && friendIndex != nil)) {
if (!disableAddContact || (disableAddContact && friendIndex != nil)) && !hideContactEdition {
Button(
action: {
let addressConv = participantConversationModel.address
@ -679,8 +680,9 @@ struct ConversationInfoFragment: View {
where: {$0.friend!.addresses.contains(where: {$0.asStringUriOnly() == addressConv})})
let disableAddContact = AppServices.corePreferences.disableAddContact
let hideContactEdition = AppServices.corePreferences.hideContactEdition
if !SharedMainViewModel.shared.displayedConversation!.isGroup && (!disableAddContact || (disableAddContact && friendIndex != nil)) {
if !SharedMainViewModel.shared.displayedConversation!.isGroup && (!disableAddContact || (disableAddContact && friendIndex != nil)) && !hideContactEdition {
Button(
action: {
if SharedMainViewModel.shared.displayedConversation != nil {

View file

@ -71,9 +71,10 @@ struct HistoryContactFragment: View {
Menu {
let disableAddContact = AppServices.corePreferences.disableAddContact
let hideContactEdition = AppServices.corePreferences.hideContactEdition
let isFriend = historyModel.isFriend == true
if !historyModel.isConf && (!disableAddContact || (disableAddContact && isFriend)) {
if !historyModel.isConf && (!disableAddContact || (disableAddContact && isFriend)) && !hideContactEdition {
Button {
isMenuOpen = false

View file

@ -60,9 +60,10 @@ struct HistoryListBottomSheet: View {
Spacer()
let disableAddContact = AppServices.corePreferences.disableAddContact
let hideContactEdition = AppServices.corePreferences.hideContactEdition
let isFriend = historyListViewModel.selectedCall?.isFriend == true
if !disableAddContact || (disableAddContact && isFriend) {
if (!disableAddContact || (disableAddContact && isFriend)) && !hideContactEdition {
Button {
if #available(iOS 16.0, *) {