ChangeEmailPopupView.m 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. //
  2. // ChangeEmailPopupView.m
  3. // OneCable
  4. //
  5. // Created by Jason Lee on 01/14/16.
  6. // Copyright (c) 2016 ntels. All rights reserved.
  7. //
  8. #import "JDObject.h"
  9. #import "RequestHandler.h"
  10. #import "JDJSONModel.h"
  11. #import "CustomLabel.h"
  12. #import "CustomTextField.h"
  13. #import "ValidateUtil.h"
  14. #import "ChangeEmailPopupView.h"
  15. @interface ChangeEmailPopupView () <CustomTextFieldDelegate>
  16. {
  17. }
  18. @end
  19. @implementation ChangeEmailPopupView
  20. - (id)initFromNib {
  21. for (UIView *view in [CommonUtil nibViews:@"ChangeEmailPopupView"]) {
  22. if ([view isKindOfClass:[ChangeEmailPopupView class]]) {
  23. self = (ChangeEmailPopupView *)view;
  24. //XIB의 경우, 현재 화면 사이즈로 맞춰줘야 함.
  25. self.frame = [UIScreen mainScreen].bounds;
  26. _txtTempEmail.keyboardType = UIKeyboardTypeEmailAddress;
  27. _txtTempEmail.returnKeyType = UIReturnKeyDone;
  28. [self.imgTitleBar setImage:[UIImage imageNamed:@"img_popup_bg_head"]inset:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  29. [self.btnConfirm setBackgroundImage:[UIImage imageNamed:@"img_popup_btn_right"] forState:UIControlStateNormal capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  30. [self.btnConfirm setBackgroundImage:[UIImage imageNamed:@"img_popup_btn_right_press"] forState:UIControlStateHighlighted capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  31. [self.btnCancel setBackgroundImage:[UIImage imageNamed:@"img_popup_btn_left"] forState:UIControlStateNormal capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  32. [self.btnCancel setBackgroundImage:[UIImage imageNamed:@"img_popup_btn_left_press"] forState:UIControlStateHighlighted capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  33. //Localization
  34. [self.btnConfirm setTitle:NSLocalizedString(@"확인", @"확인") forState:UIControlStateNormal];
  35. [self.btnCancel setTitle:NSLocalizedString(@"취소", @"취소") forState:UIControlStateNormal];
  36. }
  37. }
  38. return self;
  39. }
  40. - (void)didMoveToSuperview {
  41. _txtTempEmail.customTextFieldSuperview = CustomTextFieldSuperviewIsPopupContentView;
  42. }
  43. #pragma mark - Main Logic
  44. - (void)requestChangeEmail {
  45. //parameters
  46. NSDictionary *parameter = @{@"new_email_id": _txtTempEmail.text};
  47. NSString *path = [NSString stringWithFormat:API_PUT_MEMBER_UPDATE, [JDFacade facade].loginUser.memberId, @"email",@""];
  48. [[RequestHandler handler] sendAsyncPostRequestAPIPath:path parameters:parameter modelClass:[JDJSONModel class] completion:^(id responseObject) {
  49. [JDFacade facade].tmpEmailId = _txtTempEmail.text;
  50. [super btnConfirmTouched:nil];
  51. NSString *message1 = [NSString stringWithFormat:@"%@에서\n인증 메일을 확인하세요", [JDFacade facade].tmpEmailId];
  52. NSString *message2 = @"\n\n메일을 확인할 수 없는 경우에는\n스팸 메일함을 확인해보세요";
  53. CustomAlertView *alert = [[CustomAlertView alloc] initWithTitle:@"메일을 확인하세요" message:[NSString stringWithFormat:@"%@%@", message1, message2] delegate:nil OKButtonTitle:@"확인" cancelButtonTitle:nil];
  54. [alert.lblMessage1 setColor:kUITextColor02 text:message1];
  55. [alert show];
  56. } failure:^(id errorObject) {
  57. JDErrorModel *error = (JDErrorModel *)errorObject;
  58. [[JDFacade facade] alert:error.errorMessage];
  59. }];
  60. }
  61. #pragma mark - UI Events
  62. - (IBAction)btnConfirmTouched:(id)sender {
  63. //validate
  64. if (![ValidateUtil validateTextfiled:_txtTempEmail type:ValidateTypeEmail title:@"이메일"]) {
  65. return;
  66. }
  67. [self requestChangeEmail];
  68. }
  69. #pragma mark - CustomTextField
  70. - (BOOL)textFieldShouldReturn:(UITextField *)textField {
  71. if ([textField isEqual:_txtTempEmail]) {
  72. [self btnConfirmTouched:nil];
  73. }
  74. return YES;
  75. }
  76. @end