Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // PMRegisterViewController.m
- // Panacea
- //
- // Created by Jacques Questiaux on 2013/11/13.
- // Copyright (c) 2013 Cobiinteractive. All rights reserved.
- //
- #import "PMRegisterViewController.h"
- #import "PMSettings.h"
- #import "PMCountrySelectViewController.h"
- @interface PMRegisterViewController ()
- @end
- @implementation PMRegisterViewController
- @synthesize phoneNumberTextField;
- @synthesize verificationCodeTextField;
- @synthesize registerButton;
- @synthesize countryButton;
- @synthesize countryCode;
- - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
- {
- self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
- if (self) {
- // Custom initialization
- }
- return self;
- }
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- // Do any additional setup after loading the view.
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleRegisterResponse:) name:@"REGISTER" object:nil];
- [self.view endEditing:YES];
- }
- - (void) viewWillAppear:(BOOL)animated {
- [self setCountryButton];
- }
- - (void) setCountryButton {
- NSString *code = [NSString stringWithFormat:@"+%@", [PMSettings getCountryCode]];
- countryCode.text = code;
- [countryButton setTitle:[PMSettings getCountry] forState:UIControlStateNormal];
- }
- - (void)didReceiveMemoryWarning
- {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- - (void) verificationState {
- phoneNumberTextField.enabled = false;
- verificationCodeTextField.enabled = true;
- [registerButton setTitle:@"Verify" forState:UIControlStateNormal];
- }
- - (void) phoneNumberState {
- phoneNumberTextField.enabled = true;
- verificationCodeTextField.enabled = false;
- [registerButton setTitle:@"Send PIN via SMS" forState:UIControlStateNormal];
- }
- - (IBAction)registerButtonPressed:(id)sender {
- if(phoneNumberTextField.enabled){
- //combine area code with the number
- NSString *phoneNumber = [[PMSettings getCountryCode] stringByAppendingString:phoneNumberTextField.text];
- [[Panacea sharedInstance] registerPhoneNumber:phoneNumber WithTag:self];
- [phoneNumberTextField resignFirstResponder];
- phoneNumberTextField.enabled = false;
- }
- else {
- [[Panacea sharedInstance] registerVerification:verificationCodeTextField.text WithTag:self];
- [verificationCodeTextField resignFirstResponder];
- verificationCodeTextField.enabled = false;
- }
- }
- - (IBAction)countryButtonPressed:(id)sender {
- UIStoryboard *inboxStoryBoard = [Panacea getPanaceaStoryBoard];
- UINavigationController *nav = (UINavigationController*)[inboxStoryBoard instantiateViewControllerWithIdentifier:@"PMCountryNavigationController"];
- PMCountrySelectViewController *csvc = (PMCountrySelectViewController *)[inboxStoryBoard instantiateViewControllerWithIdentifier:@"PMCountrySelectViewController"];
- csvc.previousViewController = self;
- [nav setViewControllers:@[csvc]];
- if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
- nav.modalPresentationStyle = UIModalPresentationFormSheet;
- [self presentViewController:nav animated:YES completion:nil];
- }
- #pragma mark - WebService Response
- - (void) handleRegisterResponse: (NSNotification*) notification {
- id tag = [notification.userInfo objectForKey:@"tag"];
- if(tag != self)
- return;
- NSString *result = [notification.userInfo objectForKey:@"result"];
- NSLog(@"result: %@", result);
- if([result isEqualToString:@"REQUEST_PHONE_NUMBER"]){
- [self phoneNumberState];
- }
- else if ([result isEqualToString:@"REQUIRE_VERIFICATION_CODE"]){
- [self verificationState];
- }
- else if ([result isEqualToString:@"REGISTER_SUCCESS"]){
- [self performSegueWithIdentifier:@"registered" sender:self];
- }
- else if ([result isEqualToString:@"INVALID_VERIFICATION_CODE"]){
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Invalid Verification Code" message:@"The Verification Code you submitted is invalid, please try again" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles: nil];
- [alert show];
- [self verificationState];
- }
- }
- #pragma mark - UITextField Delegate
- - (BOOL) textFieldShouldReturn:(UITextField *)textField {
- [textField resignFirstResponder];
- return YES;
- }
- @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement