Show activity indicator during profile update; trim whitespace from profile names.

// FREEBIE
This commit is contained in:
Matthew Chen 2017-08-16 11:06:22 -04:00
parent 14b6fbcb04
commit 3ecd415b84
2 changed files with 33 additions and 12 deletions

View File

@ -223,22 +223,40 @@ NS_ASSUME_NONNULL_BEGIN
- (void)updateProfile
{
__weak ProfileViewController *weakSelf = self;
[OWSProfileManager.sharedManager updateLocalProfileName:self.nameTextField.text
avatarImage:self.avatar
success:^{
[weakSelf.navigationController popViewControllerAnimated:YES];
}
failure:^{
[OWSAlerts showAlertWithTitle:NSLocalizedString(@"ALERT_ERROR_TITLE", @"")
message:NSLocalizedString(@"PROFILE_VIEW_ERROR_UPDATE_FAILED",
@"Error message shown when a profile update fails.")];
}];
// Show an activity indicator to block the UI during the profile upload.
UIAlertController *alertController =
[UIAlertController alertControllerWithTitle:NSLocalizedString(@"PROFILE_VIEW_SAVING",
@"Indicates that the user's profile view is being saved.")
message:nil
preferredStyle:UIAlertControllerStyleAlert];
[self presentViewController:alertController
animated:YES
completion:^{
[alertController dismissViewControllerAnimated:NO completion:nil];
[OWSProfileManager.sharedManager updateLocalProfileName:[self normalizedProfileName]
avatarImage:self.avatar
success:^{
[weakSelf.navigationController popViewControllerAnimated:YES];
}
failure:^{
[OWSAlerts
showAlertWithTitle:NSLocalizedString(@"ALERT_ERROR_TITLE", @"")
message:NSLocalizedString(@"PROFILE_VIEW_ERROR_UPDATE_FAILED",
@"Error message shown when a profile update fails.")];
}];
}];
}
- (NSString *)normalizedProfileName
{
return [self.nameTextField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
}
#pragma mark - UITextFieldDelegate
// TODO: This logic resides in both RegistrationViewController and here.
// We should refactor it out into a utility function.
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)insertionText

View File

@ -1081,6 +1081,9 @@
/* Label for the profile name field of the profile view. */
"PROFILE_VIEW_NAME_SECTION_HEADER" = "Profile Name";
/* Indicates that the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving...";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "Profile";