inputPWDViewController.m 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681
  1. //
  2. // inputPWDViewController.m
  3. // 隐私保护
  4. //
  5. // Created by xd h on 2023/10/12.
  6. //
  7. #import "inputPWDViewController.h"
  8. #import "connectDeviceManager.h"
  9. #import "RSATool.h"
  10. #import "forgetPwdViewController.h"
  11. #import "SceneDelegate.h"
  12. #import "TipsQRCodeForChangeDeviceViewController.h"
  13. #import "BaseNavigationController.h"
  14. #import "QRCodeScanForChangeDeviceViewController.h"
  15. #import "customToastVew.h"
  16. @interface inputPWDViewController (){
  17. NSString *pwd;
  18. UILabel *pointView0;
  19. UILabel *pointView1;
  20. UILabel *pointView2;
  21. UILabel *pointView3;
  22. }
  23. @property(nonatomic,strong)UILabel *pwdErrorTip;
  24. @property(nonatomic,strong)UIButton *leftButton;
  25. @end
  26. @implementation inputPWDViewController
  27. - (void)viewDidLoad {
  28. [super viewDidLoad];
  29. // Do any additional setup after loading the view.
  30. pwd = @"";
  31. [self drawAnyView];
  32. //每次进入刷新密码
  33. [[netWorkManager shareInstance] RefreshThridMsg];
  34. }
  35. - (void)viewWillAppear:(BOOL)animated
  36. {
  37. [super viewWillAppear:animated];
  38. if(_isCheckPwdType && !_leftButton){
  39. [self initLeftButtonFun];
  40. }
  41. }
  42. #pragma mark UI
  43. - (void)initLeftButtonFun
  44. {
  45. CGFloat btn_w_h = 40;
  46. CGFloat btn_show = 28;
  47. _leftButton = [[UIButton alloc] init];
  48. [self.view addSubview:_leftButton];
  49. [_leftButton mas_makeConstraints:^(MASConstraintMaker *make) {
  50. make.top.mas_equalTo(H_STATE_BAR + (64.f - btn_w_h)/2.f);
  51. make.left.mas_equalTo(10);
  52. make.width.mas_equalTo(btn_w_h);
  53. make.height.mas_equalTo(btn_w_h);
  54. }];
  55. [_leftButton setImage:[UIImage imageNamed:@"icon_base_back"] forState:(UIControlStateNormal)];
  56. [_leftButton setImageEdgeInsets:(UIEdgeInsetsMake((btn_w_h - btn_show)/2.f, (btn_w_h - btn_show)/2.f, (btn_w_h - btn_show)/2.f, (btn_w_h - btn_show)/2.f))];
  57. [_leftButton addTarget:self
  58. action:@selector(backBtnPressed)
  59. forControlEvents:(UIControlEventTouchUpInside)];
  60. }
  61. - (void)drawAnyView{
  62. [self.navigationBar setHidden:YES];
  63. [self.toolBar setHidden:YES];
  64. [self.view setBackgroundColor:HWF5F7FAColor];
  65. //扫一扫 切换设置
  66. UIButton *saobut = [[UIButton alloc] init];
  67. [saobut setImage:[UIImage imageNamed:@"saoyisao"] forState:UIControlStateNormal];
  68. [self.view addSubview:saobut];
  69. //saobut.backgroundColor = [UIColor greenColor];
  70. [saobut addTarget:self action:@selector(scanToChangeDeviceFun) forControlEvents:UIControlEventTouchUpInside];
  71. [saobut mas_makeConstraints:^(MASConstraintMaker *make) {
  72. make.width.mas_equalTo(40);
  73. make.height.mas_equalTo(40);
  74. make.right.mas_equalTo(-20);
  75. make.top.mas_equalTo(30.f + safeArea);
  76. }];
  77. if(_isCheckPwdType){
  78. saobut.hidden = YES;
  79. }
  80. /*设置密码标题*/
  81. UILabel *topLabel = [[UILabel alloc] init];
  82. [topLabel setFont:[UIFont boldSystemFontOfSize:16.f]];
  83. [topLabel setTextColor:HW333333Color];
  84. [topLabel setTextAlignment:(NSTextAlignmentCenter)];
  85. [topLabel setText:NSLocalizedString(@"guide_input_pwd_title",nil)];
  86. [self.view addSubview:topLabel];
  87. [topLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  88. make.left.mas_equalTo(20);
  89. make.right.mas_equalTo(-20);
  90. make.top.mas_equalTo(99.f + H_STATE_BAR);
  91. }];
  92. CGFloat w_pwd = 24.f;
  93. CGFloat h_pwd = 24.f;
  94. CGFloat pointFont = 20.f;
  95. /*密码视图*/
  96. pointView0 = [[UILabel alloc] init];
  97. [pointView0 setTextColor:HW0A132BColor];
  98. [pointView0 setBackgroundColor:HWE3E8F1Color];
  99. [pointView0 setClipsToBounds:YES];
  100. [pointView0 setTextAlignment:(NSTextAlignmentCenter)];
  101. [pointView0 setFont:[UIFont systemFontOfSize:pointFont]];
  102. [pointView0.layer setCornerRadius:w_pwd/2.f];
  103. [self.view addSubview:pointView0];
  104. [pointView0 mas_makeConstraints:^(MASConstraintMaker *make) {
  105. make.left.equalTo(self.view.mas_centerX).offset((0-2)*(w_pwd+w_pwd) + w_pwd/2.f);
  106. make.height.mas_equalTo(h_pwd);
  107. make.width.mas_equalTo(w_pwd);
  108. make.top.mas_equalTo(151.f + H_STATE_BAR);
  109. }];
  110. pointView1 = [[UILabel alloc] init];
  111. [pointView1 setTextColor:HW0A132BColor];
  112. [pointView1 setBackgroundColor:HWE3E8F1Color];
  113. [pointView1 setClipsToBounds:YES];
  114. [pointView1 setTextAlignment:(NSTextAlignmentCenter)];
  115. [pointView1 setFont:[UIFont systemFontOfSize:pointFont]];
  116. [pointView1.layer setCornerRadius:w_pwd/2.f];
  117. [self.view addSubview:pointView1];
  118. [pointView1 mas_makeConstraints:^(MASConstraintMaker *make) {
  119. make.left.equalTo(self.view.mas_centerX).offset((1-2)*(w_pwd+w_pwd) + w_pwd/2.f);
  120. make.height.mas_equalTo(h_pwd);
  121. make.width.mas_equalTo(w_pwd);
  122. make.top.mas_equalTo(151.f + H_STATE_BAR);
  123. }];
  124. pointView2 = [[UILabel alloc] init];
  125. [pointView2 setTextColor:HW0A132BColor];
  126. [pointView2 setBackgroundColor:HWE3E8F1Color];
  127. [pointView2 setClipsToBounds:YES];
  128. [pointView2 setTextAlignment:(NSTextAlignmentCenter)];
  129. [pointView2 setFont:[UIFont systemFontOfSize:pointFont]];
  130. [pointView2.layer setCornerRadius:w_pwd/2.f];
  131. [self.view addSubview:pointView2];
  132. [pointView2 mas_makeConstraints:^(MASConstraintMaker *make) {
  133. make.left.equalTo(self.view.mas_centerX).offset((2-2)*(w_pwd+w_pwd) + w_pwd/2.f);
  134. make.height.mas_equalTo(h_pwd);
  135. make.width.mas_equalTo(w_pwd);
  136. make.top.mas_equalTo(151.f + H_STATE_BAR);
  137. }];
  138. pointView3 = [[UILabel alloc] init];
  139. [pointView3 setTextColor:HW0A132BColor];
  140. [pointView3 setBackgroundColor:HWE3E8F1Color];
  141. [pointView3 setClipsToBounds:YES];
  142. [pointView3 setTextAlignment:(NSTextAlignmentCenter)];
  143. [pointView3 setFont:[UIFont systemFontOfSize:pointFont]];
  144. [pointView3.layer setCornerRadius:w_pwd/2.f];
  145. [self.view addSubview:pointView3];
  146. [pointView3 mas_makeConstraints:^(MASConstraintMaker *make) {
  147. make.left.equalTo(self.view.mas_centerX).offset((3-2)*(w_pwd+w_pwd) + w_pwd/2.f);
  148. make.height.mas_equalTo(h_pwd);
  149. make.width.mas_equalTo(w_pwd);
  150. make.top.mas_equalTo(151.f + H_STATE_BAR);
  151. }];
  152. //忘记密码按钮
  153. UIButton *forgetPwdBut = [[UIButton alloc] init];
  154. [forgetPwdBut setTitle:NSLocalizedString(@"input_pwd_forget_pwd",nil) forState:(UIControlStateNormal)];
  155. [forgetPwdBut setTitleColor:[UIColor hwColor:@"#13B2EB" alpha:1.0] forState:(UIControlStateNormal)];
  156. [forgetPwdBut addTarget:self action:@selector(forgetPwdFun) forControlEvents:UIControlEventTouchUpInside];
  157. //forgetPwdBut.backgroundColor = [UIColor redColor];
  158. [self.view addSubview:forgetPwdBut];
  159. [forgetPwdBut mas_makeConstraints:^(MASConstraintMaker *make) {
  160. make.top.mas_equalTo(pointView3.mas_bottom).offset(20.f);
  161. make.centerX.mas_equalTo(0.f);
  162. make.width.mas_equalTo(300);
  163. make.height.mas_equalTo(40);
  164. }];
  165. /*下方绘制键盘按钮*/
  166. UIView *bgViewForNumberBoard = [[UIView alloc] init];
  167. [bgViewForNumberBoard setBackgroundColor:[UIColor clearColor]];
  168. CGFloat w_bgViewForNumberBoard = SCREEN_W - 2*22.f*AUTOSCALE;
  169. CGFloat h_bgViewForNumberBoard = 330.f;
  170. [self.view addSubview:bgViewForNumberBoard];
  171. [bgViewForNumberBoard mas_makeConstraints:^(MASConstraintMaker *make) {
  172. make.left.mas_equalTo(22.f*AUTOSCALE);
  173. make.height.mas_equalTo(h_bgViewForNumberBoard);
  174. make.width.mas_equalTo(w_bgViewForNumberBoard);
  175. make.bottom.mas_equalTo(-70.f);
  176. }];
  177. CGFloat w_key_btn = w_bgViewForNumberBoard/3.f;
  178. CGFloat h_key_btn = h_bgViewForNumberBoard/4.f;
  179. /*绘制键盘 1~9*/
  180. for (NSInteger nFori = 0; nFori < 9; nFori++) {
  181. CGFloat x_key_btn = (nFori%3)*w_key_btn;
  182. CGFloat y_key_btn = (nFori/3)*h_key_btn;
  183. UIButton *keyBoardBtn = [[UIButton alloc] init];
  184. [keyBoardBtn setBackgroundColor:[UIColor clearColor]];
  185. [keyBoardBtn setTitleColor:HW0A132BColor forState:(UIControlStateNormal)];
  186. [keyBoardBtn.titleLabel setFont:[UIFont boldSystemFontOfSize:40.f]];
  187. [keyBoardBtn setTitle:[NSString stringWithFormat:@"%ld",nFori+1] forState:(UIControlStateNormal)];
  188. [keyBoardBtn addTarget:self action:@selector(keyBoardBtnPressed:) forControlEvents:(UIControlEventTouchUpInside)];
  189. [bgViewForNumberBoard addSubview:keyBoardBtn];
  190. [keyBoardBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  191. make.left.mas_equalTo(x_key_btn);
  192. make.top.mas_equalTo(y_key_btn);
  193. make.width.mas_equalTo(w_key_btn);
  194. make.height.mas_equalTo(h_key_btn);
  195. }];
  196. }
  197. /*删除按钮*/
  198. UIButton *deleteBoardBtn = [[UIButton alloc] init];
  199. [deleteBoardBtn setBackgroundColor:[UIColor clearColor]];
  200. [deleteBoardBtn addTarget:self action:@selector(deleteBoardBtnPressed) forControlEvents:(UIControlEventTouchUpInside)];
  201. [deleteBoardBtn setImage:[UIImage imageNamed:@"key_board_delete"] forState:(UIControlStateNormal)];
  202. [bgViewForNumberBoard addSubview:deleteBoardBtn];
  203. [deleteBoardBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  204. make.left.mas_equalTo(0);
  205. make.bottom.mas_equalTo(0);
  206. make.width.mas_equalTo(w_key_btn);
  207. make.height.mas_equalTo(h_key_btn);
  208. }];
  209. /*0*/
  210. UIButton *keyBoardBtn0 = [[UIButton alloc] init];
  211. [keyBoardBtn0 setBackgroundColor:[UIColor clearColor]];
  212. [keyBoardBtn0 setTitleColor:HW0A132BColor forState:(UIControlStateNormal)];
  213. [keyBoardBtn0.titleLabel setFont:[UIFont boldSystemFontOfSize:40.f]];
  214. [keyBoardBtn0 setTitle:@"0" forState:(UIControlStateNormal)];
  215. [keyBoardBtn0 addTarget:self action:@selector(keyBoardBtnPressed:) forControlEvents:(UIControlEventTouchUpInside)];
  216. [bgViewForNumberBoard addSubview:keyBoardBtn0];
  217. [keyBoardBtn0 mas_makeConstraints:^(MASConstraintMaker *make) {
  218. make.left.mas_equalTo(w_key_btn);
  219. make.bottom.mas_equalTo(0);
  220. make.width.mas_equalTo(w_key_btn);
  221. make.height.mas_equalTo(h_key_btn);
  222. }];
  223. /*OK*/
  224. UIButton *keyBoardBtnOK = [[UIButton alloc] init];
  225. [keyBoardBtnOK setBackgroundColor:[UIColor clearColor]];
  226. [keyBoardBtnOK setTitleColor:HW13B2EBColor forState:(UIControlStateNormal)];
  227. [keyBoardBtnOK.titleLabel setFont:[UIFont boldSystemFontOfSize:30.f]];
  228. [keyBoardBtnOK setTitle:@"OK" forState:(UIControlStateNormal)];
  229. [keyBoardBtnOK addTarget:self action:@selector(keyBoardBtnOKPressed) forControlEvents:(UIControlEventTouchUpInside)];
  230. [bgViewForNumberBoard addSubview:keyBoardBtnOK];
  231. [keyBoardBtnOK mas_makeConstraints:^(MASConstraintMaker *make) {
  232. make.left.mas_equalTo(2*w_key_btn);
  233. make.bottom.mas_equalTo(0);
  234. make.width.mas_equalTo(w_key_btn);
  235. make.height.mas_equalTo(h_key_btn);
  236. }];
  237. /*绘制引导视图*/
  238. //[self addGuideView];
  239. }
  240. - (void)addGuideView{
  241. UIView *bgView = [[UIView alloc] init];
  242. [bgView setBackgroundColor:HW000000Color60];
  243. [self.view addSubview:bgView];
  244. [bgView mas_makeConstraints:^(MASConstraintMaker *make) {
  245. make.left.mas_equalTo(0);
  246. make.bottom.mas_equalTo(0);
  247. make.right.mas_equalTo(0);
  248. make.top.mas_equalTo(0);
  249. }];
  250. /*密码背景*/
  251. UIView *pwdBgView = [[UIView alloc] init];
  252. [pwdBgView setBackgroundColor:HWF5F7FAColor];
  253. pwdBgView.layer.cornerRadius = 26.f;
  254. [bgView addSubview:pwdBgView];
  255. [pwdBgView mas_makeConstraints:^(MASConstraintMaker *make) {
  256. make.centerX.equalTo(bgView.mas_centerX);
  257. make.top.mas_equalTo(68.f + H_STATE_BAR);
  258. make.width.mas_equalTo(248);
  259. make.height.mas_equalTo(138);
  260. }];
  261. /*密码*/
  262. UILabel *topLabel = [[UILabel alloc] init];
  263. [topLabel setFont:[UIFont boldSystemFontOfSize:16.f]];
  264. [topLabel setTextColor:HW333333Color];
  265. [topLabel setTextAlignment:(NSTextAlignmentCenter)];
  266. [topLabel setText:NSLocalizedString(@"guide_set_pwd_title",nil)];
  267. [pwdBgView addSubview:topLabel];
  268. [topLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  269. make.left.mas_equalTo(20);
  270. make.right.mas_equalTo(-20);
  271. make.top.mas_equalTo(31.f);
  272. }];
  273. for (NSInteger nfori = 0; nfori < 4; nfori++) {
  274. CGFloat w_pwd = 24.f;
  275. CGFloat h_pwd = 24.f;
  276. /*密码视图*/
  277. UILabel *pointView = [[UILabel alloc] init];
  278. [pointView setBackgroundColor:HWE3E8F1Color];
  279. [pointView setClipsToBounds:YES];
  280. [pointView.layer setCornerRadius:w_pwd/2.f];
  281. [pwdBgView addSubview:pointView];
  282. [pointView mas_makeConstraints:^(MASConstraintMaker *make) {
  283. make.left.mas_equalTo(40.f + (w_pwd + w_pwd)*nfori);
  284. make.height.mas_equalTo(h_pwd);
  285. make.width.mas_equalTo(w_pwd);
  286. make.top.mas_equalTo(83.f);
  287. }];
  288. }
  289. /*箭头视图*/
  290. UIImageView *flagImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"guide_set_pwd_flag"]];
  291. [bgView addSubview:flagImageView];
  292. [flagImageView mas_makeConstraints:^(MASConstraintMaker *make) {
  293. make.left.equalTo(pwdBgView.mas_left).offset(49);
  294. make.height.mas_equalTo(56);
  295. make.width.mas_equalTo(14);
  296. make.top.equalTo(pwdBgView.mas_bottom);
  297. }];
  298. /*不可点击btn*/
  299. UIButton *unableBtn = [[UIButton alloc] init];
  300. unableBtn.frame = CGRectMake(0, 0, 250, 40.f);
  301. // gradient
  302. CAGradientLayer *gl = [CAGradientLayer layer];
  303. gl.frame = CGRectMake(0,0,250,40.f);
  304. gl.startPoint = CGPointMake(0, 0.5);
  305. gl.endPoint = CGPointMake(1, 0.5);
  306. gl.colors = @[(__bridge id)HW0CDEFDColor.CGColor, (__bridge id)HW058DFBColor.CGColor];
  307. gl.locations = @[@(0), @(1.0f)];
  308. [unableBtn.layer addSublayer:gl];
  309. [unableBtn setUserInteractionEnabled:NO];
  310. [unableBtn setTitle:NSLocalizedString(@"guide_set_pwd_guide",nil) forState:(UIControlStateNormal)];
  311. [unableBtn setTitleColor:[UIColor whiteColor] forState:(UIControlStateNormal)];
  312. [unableBtn.titleLabel setFont:[UIFont systemFontOfSize:14.f]];
  313. [unableBtn.layer setCornerRadius:8.f];
  314. unableBtn.clipsToBounds = YES;
  315. [bgView addSubview:unableBtn];
  316. [unableBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  317. make.left.equalTo(pwdBgView.mas_left).offset(16);
  318. make.width.mas_equalTo(250);
  319. make.top.equalTo(flagImageView.mas_bottom);
  320. make.height.mas_equalTo(40.f);
  321. }];
  322. UIButton *knowBtn = [[UIButton alloc] init];
  323. [knowBtn setBackgroundColor:[UIColor clearColor]];
  324. [knowBtn.layer setCornerRadius:18.f];
  325. [knowBtn.layer setBorderColor:HWFFFFFFColor.CGColor];
  326. [knowBtn.layer setBorderWidth:1];
  327. [knowBtn setTitle:NSLocalizedString(@"guide_set_pwd_guide_know",nil) forState:(UIControlStateNormal)];
  328. [knowBtn setTitleColor:[UIColor whiteColor] forState:(UIControlStateNormal)];
  329. [knowBtn.titleLabel setFont:[UIFont systemFontOfSize:16]];
  330. [bgView addSubview:knowBtn];
  331. [knowBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  332. make.right.equalTo(pwdBgView.mas_right).offset(-10);
  333. make.width.mas_equalTo(120);
  334. make.top.equalTo(unableBtn.mas_bottom).offset(25);
  335. make.height.mas_equalTo(36.f);
  336. }];
  337. [knowBtn addTarget:bgView
  338. action:@selector(removeFromSuperview)
  339. forControlEvents:(UIControlEventTouchUpInside)];
  340. }
  341. - (void)deleteBoardBtnPressed{
  342. if (pwd.length > 0){
  343. NSInteger numberLength = pwd.length;
  344. if (numberLength == 1){
  345. [pointView0 setText:@""];
  346. [pointView0 setBackgroundColor:HWE3E8F1Color];
  347. }else if (numberLength == 2){
  348. [pointView1 setText:@""];
  349. [pointView1 setBackgroundColor:HWE3E8F1Color];
  350. }else if (numberLength == 3){
  351. [pointView2 setText:@""];
  352. [pointView2 setBackgroundColor:HWE3E8F1Color];
  353. }else if (numberLength == 4){
  354. [pointView3 setText:@""];
  355. [pointView3 setBackgroundColor:HWE3E8F1Color];
  356. }
  357. pwd = [pwd substringToIndex:numberLength-1];
  358. }
  359. }
  360. - (void)keyBoardBtnOKPressed{
  361. if (pwd.length == 4){
  362. /*进入下一级推拉流界面*/
  363. [self verifyPwdFun:pwd];
  364. return;
  365. // //是否已经有密码了 有就是输入密码 没有就是设置密码
  366. // NSString *curPwd = ksharedAppDelegate.DeviceThirdIdMod.data.password;
  367. //
  368. // NSString*desPwdStr = [RSATool AES128Decrypt:curPwd key:AESCODEKEEYY];
  369. //
  370. // if([desPwdStr isEqualToString:pwd]){
  371. // [connectDeviceManager shareInstance].isFirstInputPwdDone = YES;
  372. // if(_isQRCodeType){
  373. // [[NSNotificationCenter defaultCenter] postNotificationName:GuideOkNotification object:nil];
  374. // }
  375. //
  376. // dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  377. // [[NSNotificationCenter defaultCenter] postNotificationName:ShowImgAndVoiceNotification object:nil];
  378. // });
  379. //
  380. // //view 加载在windows上
  381. // [self.view removeFromSuperview];
  382. //
  383. // }
  384. // else{
  385. // [self deleteBoardBtnPressed];
  386. // [self deleteBoardBtnPressed];
  387. // [self deleteBoardBtnPressed];
  388. // [self deleteBoardBtnPressed];
  389. //
  390. // //[[iToast makeText:NSLocalizedString(@"logo_input_pwd_fail",nil)] show];
  391. // //[[iToast makeText:@"111"] show];
  392. //
  393. // _pwdErrorTip = [[UILabel alloc] init];
  394. // _pwdErrorTip.text = NSLocalizedString(@"logo_input_pwd_fail",nil);
  395. // _pwdErrorTip.textAlignment = NSTextAlignmentCenter;
  396. // _pwdErrorTip.textColor = [UIColor whiteColor];
  397. // _pwdErrorTip.backgroundColor = [UIColor hwColor:@"000000" alpha:0.7];
  398. // [self.view addSubview:_pwdErrorTip];
  399. //
  400. // _pwdErrorTip.layer.masksToBounds = YES;
  401. // _pwdErrorTip.layer.cornerRadius = 10;
  402. //
  403. // [_pwdErrorTip mas_makeConstraints:^(MASConstraintMaker *make) {
  404. // make.center.mas_equalTo(0);
  405. // make.width.mas_equalTo(200);
  406. // make.height.mas_equalTo(40.f);
  407. // }];
  408. //
  409. // ///
  410. // [NSTimer scheduledTimerWithTimeInterval:3 repeats:NO block:^(NSTimer * _Nonnull timer) {
  411. //
  412. // [self->_pwdErrorTip removeFromSuperview];
  413. // self->_pwdErrorTip = nil;
  414. // }];
  415. // }
  416. }
  417. }
  418. #pragma mark 验证密码是否正确
  419. -(void)verifyPwdFun:(NSString*)text
  420. {
  421. /*先判断本地有无设备 无设备时需要先扫码添加设备*/
  422. NSDictionary *deviceDict = [HWDataManager getObjectWithKey:Const_Have_Add_Device];
  423. if (deviceDict && [[deviceDict allKeys] containsObject:Const_Have_Add_Device_SN]){
  424. //有设备了先去做链接准备 // 80bec9c5
  425. NSString *SNStr = deviceDict[@"Const_Have_Add_Device_SN"];
  426. if(SNStr){
  427. NSString *curPwd = nil;
  428. NSString*desPwdStr = nil;
  429. if(ksharedAppDelegate.DeviceThirdIdMod.data.password
  430. && ksharedAppDelegate.DeviceThirdIdMod.data.password.length > 0){
  431. curPwd = ksharedAppDelegate.DeviceThirdIdMod.data.password;
  432. desPwdStr = [RSATool AES128Decrypt:curPwd key:AESCODEKEEYY];
  433. }
  434. else{
  435. if(deviceDict && [[deviceDict allKeys] containsObject:Const_Have_Add_Device_PWD])
  436. {
  437. desPwdStr = deviceDict[Const_Have_Add_Device_PWD];
  438. }
  439. }
  440. if ([desPwdStr isEqualToString:text]){
  441. [self verifyPwdRightFun];
  442. }
  443. else{
  444. [self verifyPwdWrongFun:NO];
  445. }
  446. }
  447. }
  448. }
  449. #pragma mark 验证密码正常
  450. -(void)verifyPwdRightFun
  451. {
  452. //隐私模式验证密码 不走后续流程
  453. if(_isCheckPwdType){
  454. [self.navigationController popViewControllerAnimated:NO];
  455. if(_didInputRightPwdFun){
  456. _didInputRightPwdFun();
  457. }
  458. return;
  459. }
  460. if([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
  461. {
  462. //[[iToast makeText:NSLocalizedString(@"phone_network_fail_Tips",nil)] show];
  463. customToastVew *view = [customToastVew makeText:NSLocalizedString(@"phone_network_fail_Tips",nil)];
  464. [view show];
  465. [self.view addSubview:view];
  466. return;
  467. }
  468. ksharedAppDelegate.isFirstInputPwdDone = YES;
  469. ksharedAppDelegate.isDidShowPwdType = NO;
  470. if(_isQRCodeType){
  471. [[NSNotificationCenter defaultCenter] postNotificationName:GuideOkNotification object:nil];
  472. }
  473. //非隐私模式被别的设备挤下线 重新链接 如果是链接中 走这个函数会被return
  474. if(![webRtcManager shareManager].isWaitShowLogoutAlert){
  475. [[webRtcManager shareManager] beginToLinkWebRtcFun];
  476. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  477. [[NSNotificationCenter defaultCenter] postNotificationName:didInputPWDNotification object:nil];
  478. });
  479. }
  480. //view 加载在windows上
  481. [self.view removeFromSuperview];
  482. }
  483. #pragma mark 验证密码错误
  484. -(void)verifyPwdWrongFun:(BOOL)isNetFail
  485. {
  486. [self deleteBoardBtnPressed];
  487. [self deleteBoardBtnPressed];
  488. [self deleteBoardBtnPressed];
  489. [self deleteBoardBtnPressed];
  490. //[[iToast makeText:NSLocalizedString(@"logo_input_pwd_fail",nil)] show];
  491. //[[iToast makeText:@"111"] show];
  492. _pwdErrorTip = [[UILabel alloc] init];
  493. NSString *curTipStr = nil;
  494. if(isNetFail){
  495. curTipStr = NSLocalizedString(@"log_login_system_busy",nil);
  496. }
  497. else{
  498. curTipStr = NSLocalizedString(@"logo_input_pwd_fail",nil);
  499. }
  500. _pwdErrorTip.text = curTipStr;
  501. _pwdErrorTip.numberOfLines = 0;
  502. _pwdErrorTip.textAlignment = NSTextAlignmentCenter;
  503. _pwdErrorTip.textColor = [UIColor whiteColor];
  504. _pwdErrorTip.font = [UIFont systemFontOfSize:16.0];
  505. _pwdErrorTip.backgroundColor = [UIColor hwColor:@"000000" alpha:0.7];
  506. [self.view addSubview:_pwdErrorTip];
  507. _pwdErrorTip.layer.masksToBounds = YES;
  508. _pwdErrorTip.layer.cornerRadius = 10;
  509. CGSize curSize = [curTipStr boundingRectWithSize:CGSizeMake(SCREEN_W - 20 - 20 -20, 1000) options:(NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16.0]} context:nil].size;
  510. CGFloat curWidth = curSize.width;
  511. CGFloat curheight = curSize.height;
  512. if(curWidth < (SCREEN_W - 20 - 20)){
  513. curWidth += 20;
  514. }
  515. if(curheight < 30){
  516. curheight = 40;
  517. }
  518. else{
  519. curheight += 10;
  520. }
  521. [_pwdErrorTip mas_makeConstraints:^(MASConstraintMaker *make) {
  522. make.center.mas_equalTo(0);
  523. make.width.mas_equalTo(curWidth);
  524. make.height.mas_equalTo(curheight);
  525. }];
  526. ///
  527. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  528. [self->_pwdErrorTip removeFromSuperview];
  529. self->_pwdErrorTip = nil;
  530. });
  531. }
  532. - (void)keyBoardBtnPressed:(id)sender{
  533. UIButton *btn = (UIButton *)sender;
  534. NSString *selectNumberStr = btn.titleLabel.text;
  535. if (pwd.length < 4){
  536. NSInteger numberLength = pwd.length;
  537. if (numberLength == 0){
  538. [pointView0 setText:selectNumberStr];
  539. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  540. [self->pointView0 setBackgroundColor:HW0A132BColor];
  541. });
  542. }else if (numberLength == 1){
  543. [pointView1 setText:selectNumberStr];
  544. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  545. [self->pointView1 setBackgroundColor:HW0A132BColor];
  546. });
  547. }else if (numberLength == 2){
  548. [pointView2 setText:selectNumberStr];
  549. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  550. [self->pointView2 setBackgroundColor:HW0A132BColor];
  551. });
  552. }else if (numberLength == 3){
  553. [pointView3 setText:selectNumberStr];
  554. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  555. [self->pointView3 setBackgroundColor:HW0A132BColor];
  556. [self keyBoardBtnOKPressed];
  557. });
  558. }
  559. pwd = [pwd stringByAppendingString:selectNumberStr];
  560. }
  561. }
  562. #pragma mark 点击忘记密码
  563. - (void)forgetPwdFun
  564. {
  565. if(_isCheckPwdType){
  566. forgetPwdViewController *vc = [forgetPwdViewController new];
  567. vc.isCheckPwdType = YES;
  568. [self.navigationController pushViewController:vc animated:YES];
  569. return;
  570. }
  571. //发个通知 记录进入了设置密码
  572. [[NSNotificationCenter defaultCenter] postNotificationName:forgetPwdNotification object:nil];
  573. //SceneDelegate *sceneDelegate = (SceneDelegate *)self.window.rootViewController;
  574. }
  575. #pragma mark 扫一扫 切换设备
  576. - (void)scanToChangeDeviceFun
  577. {
  578. //TipsQRCodeForChangeDeviceViewController *vc = [[TipsQRCodeForChangeDeviceViewController alloc] init];
  579. QRCodeScanForChangeDeviceViewController *vc = [[QRCodeScanForChangeDeviceViewController alloc] init];
  580. if(self.navigationController){
  581. [self.navigationController pushViewController:vc animated:YES];
  582. }
  583. else{
  584. //发个通知
  585. [[NSNotificationCenter defaultCenter] postNotificationName:scanChangeDeviceNotification object:nil];
  586. //view 加载在windows上
  587. [self.view removeFromSuperview];
  588. }
  589. }
  590. @end