diff --git a/Ring/Ring/Bridging/AccountCreation/AccountAdapter.h b/Ring/Ring/Bridging/AccountCreation/AccountAdapter.h index 9ff185b340c29c037847f2bca876218301ae976b..4109aefc44d5c4bd955b0c01c632abaf81afb883 100644 --- a/Ring/Ring/Bridging/AccountCreation/AccountAdapter.h +++ b/Ring/Ring/Bridging/AccountCreation/AccountAdapter.h @@ -91,6 +91,8 @@ password:(NSString *)password; -(void)updateProfile:(NSString *)accountId displayName:(NSString *)displayName - avatar:(NSString *)avatar; + avatar:(NSString *)avatar + fileType:(NSString *)fileType; + @end diff --git a/Ring/Ring/Bridging/AccountCreation/AccountAdapter.mm b/Ring/Ring/Bridging/AccountCreation/AccountAdapter.mm index cbfb8e091d7d16950dfaa2681a15564d944d36f2..ee0c93476828cf2ff079b2a7147f264012aff933 100644 --- a/Ring/Ring/Bridging/AccountCreation/AccountAdapter.mm +++ b/Ring/Ring/Bridging/AccountCreation/AccountAdapter.mm @@ -227,11 +227,12 @@ static id <AccountAdapterDelegate> _delegate; -(void)updateProfile:(NSString *)accountId displayName:(NSString *)displayName - avatar:(NSString *)avatar { + avatar:(NSString *)avatar + fileType:(NSString *)fileType { updateProfile(std::string([accountId UTF8String]), std::string([displayName UTF8String]), - "", - std::string([avatar UTF8String]), 1); + std::string([avatar UTF8String]), + std::string([fileType UTF8String]), 1); } -(void)setAccountsActive:(BOOL) active { diff --git a/Ring/Ring/Features/Settings/Me/AccountSummaryView.swift b/Ring/Ring/Features/Settings/Me/AccountSummaryView.swift index 254a716600b01d63d6965130b2f9b451a150f7ec..e08e110f451e37d25a82afc4477e789107d6eb46 100644 --- a/Ring/Ring/Features/Settings/Me/AccountSummaryView.swift +++ b/Ring/Ring/Features/Settings/Me/AccountSummaryView.swift @@ -144,12 +144,7 @@ struct AccountSummaryView: View { showEditPrpofile = true } .sheet(isPresented: $showEditPrpofile) { - EditProfileView(injectionBag: model.injectionBag, - account: model.account, - profileImage: model.profileImage, - profileName: model.profileName, - username: model.username, - avatarSize: model.avatarSize, + EditProfileView(accountModel: model, isPresented: $showEditPrpofile) } } diff --git a/Ring/Ring/Features/Settings/Me/EditProfileVM.swift b/Ring/Ring/Features/Settings/Me/EditProfileVM.swift index a103f2e676dd0b16b4c0e906ddd11da7813094cc..41bfb612c2781a592fc282eb2cfd02abcade4709 100644 --- a/Ring/Ring/Features/Settings/Me/EditProfileVM.swift +++ b/Ring/Ring/Features/Settings/Me/EditProfileVM.swift @@ -53,7 +53,7 @@ class EditProfileVM: ObservableObject, AvatarViewDataModel { let avatar: String = photo ?? "" - await self.accountService.updateProfile(accountId: self.account.id, displayName: self.profileName, avatar: avatar) + await self.accountService.updateProfile(accountId: self.account.id, displayName: self.profileName, avatar: avatar, fileType: "JPEG") } } } diff --git a/Ring/Ring/Features/Settings/Me/EditProfileView.swift b/Ring/Ring/Features/Settings/Me/EditProfileView.swift index f829032fd456d9273d11278f7cd3ed8cb6444317..1347bef5f2c8fd88d3e51a78804bbdb88a44377b 100644 --- a/Ring/Ring/Features/Settings/Me/EditProfileView.swift +++ b/Ring/Ring/Features/Settings/Me/EditProfileView.swift @@ -24,11 +24,13 @@ struct EditProfileView: View { @Binding var isPresented: Bool @StateObject var model: EditProfileVM var avatarSize: CGFloat + @ObservedObject var accountModel: AccountSummaryVM - init(injectionBag: InjectionBag, account: AccountModel, profileImage: UIImage?, profileName: String, username: String?, avatarSize: CGFloat, isPresented: Binding<Bool>) { - _model = StateObject(wrappedValue: EditProfileVM(injectionBag: injectionBag, account: account, profileImage: profileImage, profileName: profileName, username: username)) + init(accountModel: AccountSummaryVM, isPresented: Binding<Bool>) { + _model = StateObject(wrappedValue: EditProfileVM(injectionBag: accountModel.injectionBag, account: accountModel.account, profileImage: accountModel.profileImage, profileName: accountModel.profileName, username: accountModel.username)) + self.accountModel = accountModel _isPresented = isPresented - self.avatarSize = avatarSize + self.avatarSize = accountModel.avatarSize } @SwiftUI.State private var profileImage: Image? = Image(systemName: "person.circle") @@ -100,6 +102,7 @@ struct EditProfileView: View { }), trailing: Button(action: { model.updateProfile() + accountModel.profileImage = model.profileImage isPresented = false }, label: { Text(L10n.Global.save) diff --git a/Ring/Ring/Features/Walkthrough/Models/WelcomeVM.swift b/Ring/Ring/Features/Walkthrough/Models/WelcomeVM.swift index 93f7181d46b09c1fec82f477500fcf1d503788a4..d52559e0706888385dec9a4a41de137d6c825c0c 100644 --- a/Ring/Ring/Features/Walkthrough/Models/WelcomeVM.swift +++ b/Ring/Ring/Features/Walkthrough/Models/WelcomeVM.swift @@ -243,7 +243,7 @@ extension WelcomeVM { let avatar: String = photo ?? "" - await self.accountService.updateProfile(accountId: account.id, displayName: self.profileName, avatar: avatar) + await self.accountService.updateProfile(accountId: account.id, displayName: self.profileName, avatar: avatar, fileType: "JPEG") } } diff --git a/Ring/Ring/Services/AccountsService.swift b/Ring/Ring/Services/AccountsService.swift index 94d3f215fd8ebdb882933fedced1c4eaae73f500..a7ea0a8098111d6d23ae08c06f162f3369174168 100644 --- a/Ring/Ring/Services/AccountsService.swift +++ b/Ring/Ring/Services/AccountsService.swift @@ -382,8 +382,8 @@ class AccountsService: AccountAdapterDelegate { accountAdapter.revokeDevice(account, password: password, deviceId: deviceId) } - func updateProfile(accountId: String, displayName: String, avatar: String) async { - accountAdapter.updateProfile(accountId, displayName: displayName, avatar: avatar) + func updateProfile(accountId: String, displayName: String, avatar: String, fileType: String) async { + accountAdapter.updateProfile(accountId, displayName: displayName, avatar: avatar, fileType: fileType) } /**