Merge branch 'feature/5799_add_settings_alert_save_changes' into 'develop'

MESSENGER-5799 add settings alert save changes

See merge request bwmessenger/bundesmessenger/bundesmessenger-ios!357
This commit is contained in:
JanNiklas Grabowski
2024-04-17 13:26:04 +00:00
4 changed files with 65 additions and 0 deletions

View File

@@ -230,6 +230,10 @@
"bwi_settings_ignored_users_text" = "Ignorierte Nutzer";
"settings_imprint" = "Impressum";
"settings_change_profile_avatar_hint" = "Auch Nutzer aus föderierten Organisationen können dein Profilbild sehen.";
"settings_custom_back_button" = "Zurück";
"settings_save_changes_alert_title" = "Möchtest du die Änderungen speichern?";
"settings_save_changes_alert_save_button" = "Ja";
"settings_save_changes_alert_do_not_save_button" = "Nein";
// MARK: - Room Details

View File

@@ -186,6 +186,10 @@
"settings_enable_inapp_notifications" = "Enable In-App notifications";
"settings_imprint" = "Imprint";
"settings_change_profile_avatar_hint" = "Users from federated organizations can also see your profile picture.";
"settings_custom_back_button" = "Back";
"settings_save_changes_alert_title" = "Do you want to save changes?";
"settings_save_changes_alert_save_button" = "Yes";
"settings_save_changes_alert_do_not_save_button" = "No";
// MARK: - Room Details

View File

@@ -1767,6 +1767,10 @@ public class BWIL10n: NSObject {
public static var settingsCopyright: String {
return BWIL10n.tr("Bwi", "settings_copyright")
}
/// Zurück
public static var settingsCustomBackButton: String {
return BWIL10n.tr("Bwi", "settings_custom_back_button")
}
/// Benachrichtigungen
public static var settingsDefault: String {
return BWIL10n.tr("Bwi", "settings_default")
@@ -1931,6 +1935,18 @@ public class BWIL10n: NSObject {
public static var settingsRoomUpgrades: String {
return BWIL10n.tr("Bwi", "settings_room_upgrades")
}
/// Nein
public static var settingsSaveChangesAlertDoNotSaveButton: String {
return BWIL10n.tr("Bwi", "settings_save_changes_alert_do_not_save_button")
}
/// Ja
public static var settingsSaveChangesAlertSaveButton: String {
return BWIL10n.tr("Bwi", "settings_save_changes_alert_save_button")
}
/// Möchtest du die Änderungen speichern?
public static var settingsSaveChangesAlertTitle: String {
return BWIL10n.tr("Bwi", "settings_save_changes_alert_title")
}
/// Support
public static var settingsSupport: String {
return BWIL10n.tr("Bwi", "settings_support")

View File

@@ -890,6 +890,10 @@ SSOAuthenticationPresenterDelegate>
self.tableView.sectionFooterHeight = UITableViewAutomaticDimension;
self.tableView.estimatedSectionFooterHeight = 50;
// bwi: #5799 show alert if user has changed the avatar without saving it
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:[BWIL10n settingsCustomBackButton] style:UIBarButtonItemStylePlain target:self action:@selector(customBackButtonAction)];
MXWeakify(self);
// Add observer to handle removed accounts
@@ -5560,6 +5564,43 @@ SSOAuthenticationPresenterDelegate>
}
- (void) customBackButtonAction {
// bwi: #5799 show alert if user has changed the avatar without saving it
if ((nil != newAvatarImage || shouldRemoveAvatarImage) && !isSavingInProgress)
{
MXWeakify(self);
[currentAlert dismissViewControllerAnimated:NO completion:nil];
UIAlertController *saveChangesAlert = [UIAlertController alertControllerWithTitle:[BWIL10n settingsSaveChangesAlertTitle]
message:nil
preferredStyle:UIAlertControllerStyleAlert];
[saveChangesAlert addAction:[UIAlertAction actionWithTitle:[BWIL10n settingsSaveChangesAlertDoNotSaveButton] style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
MXStrongifyAndReturnIfNil(self);
dispatch_async(dispatch_get_main_queue(), ^{
[self.navigationController popViewControllerAnimated:true];
});
self->currentAlert = nil;
}]];
[saveChangesAlert addAction:[UIAlertAction actionWithTitle:[BWIL10n settingsSaveChangesAlertSaveButton] style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
MXStrongifyAndReturnIfNil(self);
dispatch_async(dispatch_get_main_queue(), ^{
[self onSave:nil];
});
self->currentAlert = nil;
}]];
[self presentViewController:saveChangesAlert animated:YES completion:nil];
currentAlert = saveChangesAlert;
}
else
{
[self.navigationController popViewControllerAnimated:true];
}
}
#pragma mark - ThreadsBetaCoordinatorBridgePresenterDelegate
- (void)threadsBetaCoordinatorBridgePresenterDelegateDidTapEnable:(ThreadsBetaCoordinatorBridgePresenter *)coordinatorBridgePresenter