From f1fcb9129c0b24b452db72e12d1bbd24f0f8789e Mon Sep 17 00:00:00 2001 From: "benoit.martins" Date: Fri, 7 Feb 2025 18:21:05 +0100 Subject: [PATCH] Fixed the bug that prevented users from logging out --- Linphone/UI/Main/ContentView.swift | 88 +++++++++++++++--------------- 1 file changed, 45 insertions(+), 43 deletions(-) diff --git a/Linphone/UI/Main/ContentView.swift b/Linphone/UI/Main/ContentView.swift index a0df243f0..b2a17b321 100644 --- a/Linphone/UI/Main/ContentView.swift +++ b/Linphone/UI/Main/ContentView.swift @@ -315,55 +315,57 @@ struct ContentView: View { VStack(spacing: 0) { if searchIsActive == false { HStack { - if sharedMainViewModel.defaultAvatar != nil { - AsyncImage(url: sharedMainViewModel.defaultAvatar) { image in - switch image { - case .empty: - ProgressView() - .frame(width: avatarSize, height: avatarSize) - case .success(let image): - image + if (accountProfileViewModel.accountModelIndex ?? 0) < CoreContext.shared.accounts.count { + if sharedMainViewModel.defaultAvatar != nil { + AsyncImage(url: sharedMainViewModel.defaultAvatar) { image in + switch image { + case .empty: + ProgressView() + .frame(width: avatarSize, height: avatarSize) + case .success(let image): + image + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: avatarSize, height: avatarSize) + .clipShape(Circle()) + case .failure: + Image(uiImage: contactsManager.textToImage( + firstName: CoreContext.shared.accounts[accountProfileViewModel.accountModelIndex ?? 0].avatarModel?.name ?? "", + lastName: "")) .resizable() - .aspectRatio(contentMode: .fill) .frame(width: avatarSize, height: avatarSize) .clipShape(Circle()) - case .failure: - Image(uiImage: contactsManager.textToImage( - firstName: CoreContext.shared.accounts[accountProfileViewModel.accountModelIndex ?? 0].avatarModel?.name ?? "", - lastName: "")) - .resizable() - .frame(width: avatarSize, height: avatarSize) - .clipShape(Circle()) - @unknown default: - EmptyView() + @unknown default: + EmptyView() + } } - } - .onTapGesture { - openMenu() - } - .onChange(of: CoreContext.shared.accounts[accountProfileViewModel.accountModelIndex ?? 0].usernaneAvatar) { _ in - if let accountModelIndex = accountProfileViewModel.accountModelIndex, - accountModelIndex < CoreContext.shared.accounts.count { - sharedMainViewModel.changeDefaultAvatar(defaultAvatarURL: CoreContext.shared.accounts[accountModelIndex].getImagePath()) + .onTapGesture { + openMenu() } - } - .onReceive(imageChanged) { _ in - if let accountModelIndex = accountProfileViewModel.accountModelIndex, - accountModelIndex < CoreContext.shared.accounts.count { - sharedMainViewModel.changeDefaultAvatar(defaultAvatarURL: CoreContext.shared.accounts[accountModelIndex].getImagePath()) + .onChange(of: CoreContext.shared.accounts[accountProfileViewModel.accountModelIndex ?? 0].usernaneAvatar) { _ in + if let accountModelIndex = accountProfileViewModel.accountModelIndex, + accountModelIndex < CoreContext.shared.accounts.count { + sharedMainViewModel.changeDefaultAvatar(defaultAvatarURL: CoreContext.shared.accounts[accountModelIndex].getImagePath()) + } } - } - } else { - Image(uiImage: contactsManager.textToImage( - firstName: CoreContext.shared.accounts[accountProfileViewModel.accountModelIndex ?? 0].avatarModel?.name ?? "", - lastName: "")) - .resizable() - .frame(width: avatarSize, height: avatarSize) - .clipShape(Circle()) - .onAppear { - if let accountModelIndex = accountProfileViewModel.accountModelIndex, - accountModelIndex < CoreContext.shared.accounts.count { - sharedMainViewModel.changeDefaultAvatar(defaultAvatarURL: CoreContext.shared.accounts[accountModelIndex].getImagePath()) + .onReceive(imageChanged) { _ in + if let accountModelIndex = accountProfileViewModel.accountModelIndex, + accountModelIndex < CoreContext.shared.accounts.count { + sharedMainViewModel.changeDefaultAvatar(defaultAvatarURL: CoreContext.shared.accounts[accountModelIndex].getImagePath()) + } + } + } else { + Image(uiImage: contactsManager.textToImage( + firstName: CoreContext.shared.accounts[accountProfileViewModel.accountModelIndex ?? 0].avatarModel?.name ?? "", + lastName: "")) + .resizable() + .frame(width: avatarSize, height: avatarSize) + .clipShape(Circle()) + .onAppear { + if let accountModelIndex = accountProfileViewModel.accountModelIndex, + accountModelIndex < CoreContext.shared.accounts.count { + sharedMainViewModel.changeDefaultAvatar(defaultAvatarURL: CoreContext.shared.accounts[accountModelIndex].getImagePath()) + } } } }