|
|
|
@ -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
|
|
|
|
|