ApexMobileFirstViewController.m 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. //
  2. // ApexMobileFirstViewController.m
  3. // Apex Mobile
  4. //
  5. // Created by Ray on 14-2-24.
  6. // Copyright (c) 2014年 United Software Applications, Inc. All rights reserved.
  7. //
  8. #import "ApexMobileFirstViewController.h"
  9. #import "FunctionSelectViewController.h"
  10. @interface ApexMobileFirstViewController ()
  11. //-(void)Authorize : (NSString*) user :(NSString*) password;
  12. //-(void)Authorize : (NSString*) user password:(NSString*) password;
  13. @end
  14. @implementation ApexMobileFirstViewController
  15. - (IBAction)RetrieveButtonClick:(UIButton *)sender {
  16. [self performSegueWithIdentifier:@"RETRIEVE" sender:self];
  17. }
  18. - (IBAction)LoginButtonClick:(UIButton *)sender {
  19. NSString*password= self.editPassword.text;
  20. NSString*user = self.editUser.text;
  21. if(user.length==0||password.length==0)
  22. {
  23. UIAlertView * alert = [[UIAlertView alloc] initWithTitle: NSLocalizedString(@"alert_title_error", nil) message:NSLocalizedString(@"alert_msg_upcanotempty", nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"ok", nil) otherButtonTitles:nil, nil];
  24. // UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Error!" message:@"User&Password can not be empty!" delegate:nil cancelButtonTitle:NSLocalizedString(@"ok", nil) , nil];
  25. [alert show];
  26. return;
  27. }
  28. DebugLog(@"Login... user= %@ ; password= %@",self.editUser.text,self.editPassword.text);
  29. self.loginButton.enabled = false;
  30. self.mum.hidden=false;
  31. dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
  32. int ret=[RANetwork Authorize:self.editUser.text password:self.editPassword.text];
  33. dispatch_async(dispatch_get_main_queue(), ^{
  34. self.mum.hidden=true;
  35. self.loginButton.enabled = true;
  36. if (ret==RESULT_TRUE)
  37. {
  38. NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
  39. [defaults removeObjectForKey:@"user"];
  40. [defaults removeObjectForKey:@"password"];
  41. // if(self.checkSavePassword.selected)
  42. {
  43. [defaults setValue:[AESCrypt encrypt:self.editUser.text password:@"usai"] forKey:@"user"];
  44. [defaults setValue:[AESCrypt encrypt:self.editPassword.text password:@"usai"] forKey:@"password"];
  45. [defaults setBool:TRUE forKey:@"autologin"];
  46. }
  47. [defaults synchronize];
  48. [self dismissViewControllerAnimated:true completion:^{
  49. ;
  50. }];
  51. // [self performSegueWithIdentifier:@"LOGIN" sender:self];
  52. }
  53. else
  54. {
  55. // int a = RESULT_NET_NOTAVAILABLE;
  56. NSString* message = nil;
  57. switch (ret) {
  58. case RESULT_NET_NOTAVAILABLE:
  59. message = NSLocalizedString(@"net_not_available", nil);
  60. break;
  61. case RESULT_NET_ERROR:
  62. message = NSLocalizedString(@"net_error", nil);
  63. break;
  64. case RESULT_FALSE:
  65. message = NSLocalizedString(@"auth_error", nil);
  66. break;
  67. case RESULT_VER_LOW:
  68. message = NSLocalizedString(@"ver_low", nil);
  69. break;
  70. default:
  71. message=[NSString stringWithFormat:@"Failed to login code %d",ret];
  72. break;
  73. }
  74. UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"alert_title_error", nil) message:message delegate:nil cancelButtonTitle:NSLocalizedString(@"ok", nil) otherButtonTitles:nil, nil];
  75. [alert show];
  76. }
  77. });
  78. });
  79. }
  80. - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
  81. [[self view] endEditing:YES];
  82. }
  83. -(void)checkboxClick:(UIButton *)btn
  84. {
  85. btn.selected = !btn.selected;
  86. }
  87. //- (IBAction)onRetrievePassword:(UIButton *)sender {
  88. //}
  89. - (void)viewDidLoad
  90. {
  91. [super viewDidLoad];
  92. [self.checkSavePassword setImage:[UIImage imageNamed:@"unchecked_32.png"] forState:UIControlStateNormal];
  93. [self.checkSavePassword setImage:[UIImage imageNamed:@"checked_32.png"] forState:UIControlStateSelected];
  94. NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
  95. NSString * user = [AESCrypt decrypt:[defaults stringForKey:@"user"] password:@"usai"];
  96. self.editUser.delegate = self;
  97. self.editPassword.delegate = self;
  98. self.resize = false;
  99. self.ioffset = 0;
  100. NSString * password = [AESCrypt decrypt:[defaults stringForKey:@"password"] password:@"usai"];
  101. if(user.length>0&&password.length>0)
  102. {
  103. self.editUser.text=user;
  104. self.editPassword.text=password;
  105. self.checkSavePassword.selected=true;
  106. }
  107. [self.checkSavePassword addTarget:self action:@selector(checkboxClick:) forControlEvents:UIControlEventTouchUpInside];
  108. // [self.view addSubview:checkSavePassword];
  109. // Do any additional setup after loading the view, typically from a nib.
  110. }
  111. - (void)didReceiveMemoryWarning
  112. {
  113. [super didReceiveMemoryWarning];
  114. // Dispose of any resources that can be recreated.
  115. }
  116. -(BOOL)textFieldShouldReturn:(UITextField *)textField {
  117. [textField resignFirstResponder];
  118. return YES;
  119. }
  120. -(void) textFieldDidBeginEditing:(UITextField *)textField
  121. {
  122. // CGRect textFrame = self.loginButton.frame;
  123. int loginpos = self.loginButton.frame.origin.y+self.loginButton.frame.size.height;
  124. self.ioffset = 216 -(self.view.frame.size.height-loginpos);
  125. if(self.ioffset>0)
  126. {
  127. self.resize = true;
  128. NSTimeInterval animationDuration = 0.30f;
  129. CGRect frame = self.view.frame;
  130. frame.origin.y -=self.ioffset;//view的Y轴上移
  131. frame.size.height +=self.ioffset; //View的高度增加
  132. self.view.frame = frame;
  133. [UIView beginAnimations:@"ResizeView" context:nil];
  134. [UIView setAnimationDuration:animationDuration];
  135. self.view.frame = frame;
  136. [UIView commitAnimations];//设置调整界面的动画效果
  137. }
  138. }
  139. /**
  140. 结束编辑UITextField的方法,让原来的界面还原高度
  141. */
  142. -(void) textFieldDidEndEditing:(UITextField *)textField
  143. {
  144. // if(prewTag == -1) //当编辑的View不是需要移动的View
  145. // {
  146. // return;
  147. // }
  148. // float moveY ;
  149. if(self.resize)
  150. {
  151. NSTimeInterval animationDuration = 0.30f;
  152. CGRect frame = self.view.frame;
  153. // if(prewTag == textField.tag) //当结束编辑的View的TAG是上次的就移动
  154. // { //还原界面
  155. // moveY = prewMoveY;
  156. frame.origin.y +=self.ioffset;
  157. frame.size. height -=self.ioffset;
  158. self.view.frame = frame;
  159. // }
  160. //self.view移回原位置
  161. [UIView beginAnimations:@"ResizeView" context:nil];
  162. [UIView setAnimationDuration:animationDuration];
  163. self.view.frame = frame;
  164. [UIView commitAnimations];
  165. [textField resignFirstResponder];
  166. self.ioffset=0;
  167. }
  168. }
  169. @end