mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-17 02:58:07 +00:00
Revert "Fix crash when editing a contact by safely unwrapping friend/photo"
This reverts commit 112029d0df.
This commit is contained in:
parent
112029d0df
commit
1e53619eaa
1 changed files with 53 additions and 45 deletions
|
|
@ -526,48 +526,47 @@ struct EditContactFragment: View {
|
|||
imageData: ""
|
||||
)
|
||||
|
||||
if let sel = editContactViewModel.selectedEditFriend,
|
||||
let friend = sel.friend,
|
||||
selectedImage == nil,
|
||||
!removedImage,
|
||||
let photo = friend.photo,
|
||||
!photo.hasSuffix("default.png") {
|
||||
|
||||
let photoResult = String(photo.dropFirst(6))
|
||||
let friendName = friend.name ?? ""
|
||||
let friendAddress = friend.address?.clone()?.asStringUriOnly() ?? ""
|
||||
|
||||
DispatchQueue.main.async {
|
||||
ContactsManager.shared.saveFriend(
|
||||
result: photoResult,
|
||||
contact: newContact,
|
||||
existingFriend: friend
|
||||
) { _ in
|
||||
SharedMainViewModel.shared.displayedFriend?.resetContactAvatarModel(
|
||||
friend: friend,
|
||||
name: friendName,
|
||||
address: friendAddress,
|
||||
withPresence: SharedMainViewModel.shared.displayedFriend?.withPresence
|
||||
)
|
||||
delayColorDismiss()
|
||||
withAnimation { isShowEditContactFragment = false }
|
||||
if editContactViewModel.selectedEditFriend != nil && editContactViewModel.selectedEditFriend!.friend != nil && selectedImage == nil &&
|
||||
!removedImage && editContactViewModel.selectedEditFriend!.friend!.photo!.suffix(11) != "default.png" {
|
||||
ContactsManager.shared.saveFriend(
|
||||
result: String(editContactViewModel.selectedEditFriend!.friend!.photo!.dropFirst(6)),
|
||||
contact: newContact,
|
||||
existingFriend: editContactViewModel.selectedEditFriend!.friend, completion: {_ in
|
||||
if let selectedFriendTmp = editContactViewModel.selectedEditFriend?.friend {
|
||||
let addressTmp = selectedFriendTmp.address?.clone()?.asStringUriOnly() ?? ""
|
||||
SharedMainViewModel.shared.displayedFriend?.resetContactAvatarModel(
|
||||
friend: selectedFriendTmp,
|
||||
name: selectedFriendTmp.name ?? "",
|
||||
address: addressTmp,
|
||||
withPresence: SharedMainViewModel.shared.displayedFriend?.withPresence
|
||||
)
|
||||
}
|
||||
let friendIsNil = editContactViewModel.selectedEditFriend?.friend == nil
|
||||
DispatchQueue.main.async {
|
||||
delayColorDismiss()
|
||||
if friendIsNil {
|
||||
withAnimation {
|
||||
isShowEditContactFragment.toggle()
|
||||
}
|
||||
} else {
|
||||
withAnimation {
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
editContactViewModel.resetValues()
|
||||
}
|
||||
}
|
||||
)
|
||||
} else {
|
||||
let imageToSave = selectedImage ?? ContactsManager.shared.textToImage(firstName: editContactViewModel.firstName, lastName: editContactViewModel.lastName)
|
||||
let nameToUse = editContactViewModel.firstName + editContactViewModel.lastName
|
||||
let prefix = ((selectedImage == nil) ? "-default" : "")
|
||||
|
||||
DispatchQueue.main.async {
|
||||
ContactsManager.shared.saveImage(
|
||||
image: imageToSave,
|
||||
name: nameToUse,
|
||||
prefix: prefix,
|
||||
contact: newContact,
|
||||
linphoneFriend: "Linphone address-book",
|
||||
existingFriend: editContactViewModel.selectedEditFriend?.friend
|
||||
) {
|
||||
ContactsManager.shared.saveImage(
|
||||
image: selectedImage
|
||||
?? ContactsManager.shared.textToImage(
|
||||
firstName: editContactViewModel.firstName, lastName: editContactViewModel.lastName),
|
||||
name: editContactViewModel.firstName
|
||||
+ editContactViewModel.lastName,
|
||||
prefix: ((selectedImage == nil) ? "-default" : ""),
|
||||
contact: newContact, linphoneFriend: "Linphone address-book", existingFriend: editContactViewModel.selectedEditFriend?.friend) {
|
||||
if let selectedFriendTmp = editContactViewModel.selectedEditFriend?.friend {
|
||||
let addressTmp = selectedFriendTmp.address?.clone()?.asStringUriOnly() ?? ""
|
||||
SharedMainViewModel.shared.displayedFriend?.resetContactAvatarModel(
|
||||
|
|
@ -580,15 +579,24 @@ struct EditContactFragment: View {
|
|||
MagicSearchSingleton.shared.searchForContacts()
|
||||
ContactsManager.shared.updateSubscriptionsLinphoneList()
|
||||
}
|
||||
delayColorDismiss()
|
||||
withAnimation {
|
||||
if editContactViewModel.selectedEditFriend?.friend == nil {
|
||||
isShowEditContactFragment.toggle()
|
||||
} else { dismiss() }
|
||||
|
||||
let friendIsNil = editContactViewModel.selectedEditFriend?.friend == nil
|
||||
|
||||
DispatchQueue.main.async {
|
||||
delayColorDismiss()
|
||||
if friendIsNil {
|
||||
withAnimation {
|
||||
isShowEditContactFragment.toggle()
|
||||
}
|
||||
} else {
|
||||
withAnimation {
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
editContactViewModel.resetValues()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue