//
|
// EZWifiConfigViewController.m
|
// EZOpenSDKDemo
|
//
|
// Created by DeJohn Dong on 15/10/29.
|
// Copyright © 2015年 Ezviz. All rights reserved.
|
//
|
|
#import "EZWifiConfigViewController.h"
|
#import "Masonry.h"
|
#import "DDKit.h"
|
#import "EZDeviceTableViewController.h"
|
#import "EZDdnsDeviceTableViewController.h"
|
|
// 设备bonjour搜索到的状态标示
|
typedef enum _DEVICE_STATE
|
{
|
STATE_NONE = 0, // 设备状态-无
|
STATE_WIFI, // wifi已连接
|
STATE_LINE, // 有线已连接
|
STATE_PLAT, // 平台已注册
|
STATE_SUCC, // 已添加成功
|
} DEVICE_STATE;
|
|
@interface EZWifiConfigViewController ()
|
{
|
NSTimer *_countTimer;
|
|
NSTimeInterval _interval;
|
}
|
|
@property (nonatomic, strong) UIImageView *timerImageView; //添加设备操作有效时间视图
|
@property (nonatomic, strong) UIView *failedTipsView; //添加失败提示视图
|
@property (nonatomic, strong) UIImageView *successWifiImageView; //Wi-Fi成功标签图
|
@property (nonatomic, strong) UIImageView *successRegisterImageView; //注册成功标签图
|
@property (nonatomic, strong) UIImageView *animationImageView; //添加设备动画视图
|
@property (nonatomic, strong) UIView *addTipsView; //添加设备阶段提示视图
|
@property (nonatomic, strong) UIButton *helpButton; //帮助链接按钮
|
|
@property (nonatomic, strong) UILabel *wifiLabel;
|
@property (nonatomic, strong) UILabel *registerLabel;
|
@property (nonatomic, strong) UILabel *bindLabel;
|
|
@property (nonatomic, strong) UILabel *completionLabel;
|
@property (nonatomic, strong) UIButton *completionButton; //设备添加完成按钮
|
|
@property (nonatomic) DEVICE_STATE enState;
|
|
@end
|
|
@implementation EZWifiConfigViewController
|
|
- (void)dealloc
|
{
|
|
}
|
|
- (void)viewDidLoad {
|
[super viewDidLoad];
|
// Do any additional setup after loading the view.
|
self.title = NSLocalizedString(@"wifi_add_device_title", @"第三步,添加设备");
|
|
// key为空可以传个任意字符过去
|
if ([self.password length] == 0)
|
{
|
self.password = nil;
|
}
|
|
[self wifiConfigStart];
|
}
|
|
- (void)viewWillDisappear:(BOOL)animated
|
{
|
if (!_isAddDeviceSuccessed)
|
{
|
[EZOPENSDK stopConfigWifi];
|
}
|
if (_countTimer)
|
{
|
[_countTimer invalidate];
|
_countTimer = nil;
|
}
|
[super viewWillDisappear:animated];
|
}
|
|
- (void)didReceiveMemoryWarning {
|
[super didReceiveMemoryWarning];
|
// Dispose of any resources that can be recreated.
|
}
|
|
/*
|
#pragma mark - Navigation
|
|
// In a storyboard-based application, you will often want to do a little preparation before navigation
|
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
|
// Get the new view controller using [segue destinationViewController].
|
// Pass the selected object to the new view controller.
|
}
|
*/
|
|
#pragma mark - UIAlertViewDelgate Methods
|
|
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
|
{
|
if (alertView.tag == 0xaa && buttonIndex == 1)
|
{
|
self.enState = STATE_PLAT;
|
[self createTimerWithTimeOut:30];
|
[GlobalKit shareKit].deviceVerifyCode = [alertView textFieldAtIndex:0].text;
|
// [EZOPENSDK addDevice:[GlobalKit shareKit].deviceSerialNo
|
// verifyCode:[GlobalKit shareKit].deviceVerifyCode
|
// completion:^(NSError *error) {
|
// [self handleTheError:error];
|
// }];
|
//2021-03-03 添加设备的方法都修改成河东的接口方法
|
[EZHttpUtil.sharedManager addDeviceByHDL:[GlobalKit shareKit].deviceSerialNo
|
verifyCode:[GlobalKit shareKit].deviceVerifyCode
|
completion:^(ResponseData *responseData) {
|
// [hud hide:YES];
|
[self handleTheError:responseData];
|
}];
|
}
|
else if (alertView.tag == 0xbb && buttonIndex == 1)
|
{
|
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"device_input_vierify_code", @"请输入设备验证码") message:@"" delegate:self cancelButtonTitle:NSLocalizedString(@"cancel",@"取消") otherButtonTitles:NSLocalizedString(@"done",@"确定"), nil];
|
alertView.alertViewStyle = UIAlertViewStyleSecureTextInput;
|
alertView.tag = 0xaa;
|
[alertView show];
|
}
|
}
|
|
|
#pragma mark - Custom UI Methods
|
|
- (void)wifiConfigStart
|
{
|
if(!_isAddDeviceSuccessed)
|
{
|
[self createAddDeviceInitView];
|
NSInteger mode = 0;
|
mode |= self.supportSmartMode?EZWiFiConfigSmart:0;
|
mode |= self.supportSoundMode?EZWiFiConfigWave:0;
|
|
__weak typeof(self) weakSelf = self;
|
[EZOPENSDK startConfigWifi:weakSelf.ssid
|
password:weakSelf.password
|
deviceSerial:[GlobalKit shareKit].deviceSerialNo
|
mode:mode
|
deviceStatus:^(EZWifiConfigStatus status, NSString *deviceSerial) {
|
if (status == DEVICE_WIFI_CONNECTING)
|
{
|
weakSelf.enState = STATE_NONE;
|
[weakSelf createTimerWithTimeOut:60];
|
}
|
else if (status == DEVICE_WIFI_CONNECTED)
|
{
|
if(weakSelf.enState != STATE_WIFI){
|
weakSelf.enState = STATE_WIFI;
|
[weakSelf createTimerWithTimeOut:60];
|
}
|
}
|
else if (status == DEVICE_PLATFORM_REGISTED)
|
{
|
weakSelf.enState = STATE_PLAT;
|
[weakSelf createTimerWithTimeOut:30];
|
if([GlobalKit shareKit].deviceVerifyCode != nil)
|
{
|
// [EZOPENSDK addDevice:[GlobalKit shareKit].deviceSerialNo
|
// verifyCode:[GlobalKit shareKit].deviceVerifyCode
|
// completion:^(NSError *error) {
|
// [weakSelf handleTheError:error];
|
// }];
|
[EZHttpUtil.sharedManager addDeviceByHDL:[GlobalKit shareKit].deviceSerialNo
|
verifyCode:[GlobalKit shareKit].deviceVerifyCode
|
completion:^(ResponseData *responseData) {
|
[weakSelf handleTheError:responseData];
|
}];
|
}
|
else
|
{
|
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"device_input_vierify_code", @"请输入设备验证码") message:@"" delegate:weakSelf cancelButtonTitle:NSLocalizedString(@"cancel",@"取消") otherButtonTitles:NSLocalizedString(@"done",@"确定"), nil];
|
alertView.alertViewStyle = UIAlertViewStyleSecureTextInput;
|
alertView.tag = 0xaa;
|
[alertView show];
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
if ([_countTimer isValid])
|
{
|
[_countTimer invalidate];
|
_countTimer = nil;
|
}
|
});
|
}
|
}
|
}];
|
}
|
else
|
{
|
[self createAddDeviceInitView];
|
|
_enState = STATE_SUCC;
|
[self showTipsView];
|
}
|
}
|
|
- (void)createTimerWithTimeOut:(NSInteger)timeout
|
{
|
if ([_countTimer isValid])
|
{
|
[_countTimer invalidate];
|
_countTimer = nil;
|
}
|
|
_interval = timeout; //各阶段UI显示时间
|
UILabel *timeLabel = (UILabel *)[self.timerImageView viewWithTag:0x11c];
|
timeLabel.text = [NSString stringWithFormat:@"%d",(int)timeout];
|
|
[self showTipsView];
|
|
_countTimer = [NSTimer scheduledTimerWithTimeInterval:1.0f
|
target:self
|
selector:@selector(countDownBindDevice)
|
userInfo:nil
|
repeats:YES];
|
}
|
|
/**
|
* 各阶段倒计时控制
|
**/
|
- (void)countDownBindDevice
|
{
|
_interval--;
|
|
if (_interval < 0)
|
{
|
_interval = 0;
|
|
if ([_countTimer isValid])
|
{
|
[_countTimer invalidate];
|
_countTimer = nil;
|
}
|
|
//超时以后查询一次设备信息
|
[EZOPENSDK probeDeviceInfo:[GlobalKit shareKit].deviceSerialNo
|
deviceType:[GlobalKit shareKit].deviceModel
|
completion:^(EZProbeDeviceInfo *deviceInfo, NSError *error) {
|
if (error)
|
{
|
//有错误直接显示错误的UI
|
[self showFailedView];
|
}
|
else
|
{
|
if ([GlobalKit shareKit].deviceVerifyCode != nil)
|
{
|
// [EZOPENSDK addDevice:[GlobalKit shareKit].deviceSerialNo
|
// verifyCode:[GlobalKit shareKit].deviceVerifyCode
|
// completion:^(NSError *error) {
|
// if (!error)
|
// {
|
// [self handleTheError:error];
|
// }
|
// else
|
// {
|
// [self showFailedView];
|
// }
|
// }];
|
|
[EZHttpUtil.sharedManager addDeviceByHDL:[GlobalKit shareKit].deviceSerialNo
|
verifyCode:[GlobalKit shareKit].deviceVerifyCode
|
completion:^(ResponseData *responseData) {
|
if (responseData.success)
|
{
|
[self handleTheError:responseData];
|
}
|
else
|
{
|
[self showFailedView];
|
}
|
}];
|
|
|
}
|
else
|
{
|
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"device_input_vierify_code", @"请输入设备验证码") message:@"" delegate:self cancelButtonTitle:NSLocalizedString(@"cancel",@"取消") otherButtonTitles:NSLocalizedString(@"done",@"确定"), nil];
|
alertView.alertViewStyle = UIAlertViewStyleSecureTextInput;
|
alertView.tag = 0xaa;
|
[alertView show];
|
}
|
}
|
}];
|
}
|
|
UILabel *timeLabel = (UILabel *)[self.timerImageView viewWithTag:0x11c];
|
timeLabel.text = [NSString stringWithFormat:@"%d",(int)_interval];
|
}
|
|
/*
|
* 设备添加初始界面构造
|
*/
|
- (void)createAddDeviceInitView
|
{
|
[self.view addSubview:self.animationImageView];
|
[self.animationImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.mas_equalTo(@64);
|
make.leading.trailing.mas_equalTo(@0);
|
make.height.mas_equalTo(@(185 * [UIScreen mainScreen].bounds.size.width/320.0f));
|
}];
|
|
if (STATE_LINE == _enState)
|
{
|
// 动画image
|
self.animationImageView.animationImages = [NSArray arrayWithObjects:
|
[UIImage imageNamed:@"link_account1"],
|
[UIImage imageNamed:@"link_account2"],
|
[UIImage imageNamed:@"link_account3"],
|
[UIImage imageNamed:@"link_account4"],
|
nil];
|
}
|
else
|
{
|
|
|
// 动画image
|
self.animationImageView.animationImages = [NSArray arrayWithObjects:
|
[UIImage imageNamed:@"connect_wifi1"],
|
[UIImage imageNamed:@"connect_wifi2"],
|
[UIImage imageNamed:@"connect_wifi3"],
|
[UIImage imageNamed:@"connect_wifi4"],
|
nil];
|
}
|
|
self.animationImageView.animationDuration = 1.5f;
|
[self.animationImageView startAnimating];
|
|
//配置添加阶段提示界面构造
|
[self createWifiConfigAddTipsView];
|
}
|
|
/*
|
* “设备wifi配置、添加”阶段提示界面构造
|
*
|
*/
|
- (void)createWifiConfigAddTipsView
|
{
|
[self.view addSubview:self.addTipsView];
|
|
[self.addTipsView mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.mas_equalTo(self.animationImageView.mas_bottom).offset(20);
|
make.leading.trailing.bottom.mas_equalTo(@0);
|
}];
|
|
//wifi配置阶段提示label
|
[self.addTipsView addSubview:self.wifiLabel];
|
|
[self.wifiLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.mas_equalTo(self.addTipsView.mas_top).offset(30);
|
make.leading.trailing.mas_equalTo(@0);
|
make.height.mas_equalTo(@35);
|
}];
|
|
//平台注册阶段提示label
|
[self.addTipsView addSubview:self.registerLabel];
|
|
[self.registerLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.mas_equalTo(self.wifiLabel.mas_bottom).offset(5);
|
make.leading.trailing.mas_equalTo(@0);
|
make.height.mas_equalTo(@35);
|
}];
|
|
//绑定账号阶段提示label
|
[self.addTipsView addSubview:self.bindLabel];
|
|
[self.bindLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.mas_equalTo(self.registerLabel.mas_bottom).offset(5);
|
make.leading.trailing.mas_equalTo(@0);
|
make.height.mas_equalTo(@35);
|
}];
|
|
//倒计时显示label
|
[self.addTipsView addSubview:self.timerImageView];
|
|
[self.timerImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
make.width.height.mas_equalTo(@25);
|
make.trailing.mas_equalTo(@-15);
|
make.centerY.mas_equalTo(self.wifiLabel.mas_centerY);
|
}];
|
|
if ([self.timerImageView viewWithTag:0x11c])
|
{
|
[[self.timerImageView viewWithTag:0x11c] removeFromSuperview];
|
}
|
|
UILabel *operationTime = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 25, 25)];
|
operationTime.font = [UIFont systemFontOfSize:14.0f];
|
operationTime.textColor = [UIColor dd_hexStringToColor:@"0xffffff"];
|
operationTime.backgroundColor = [UIColor clearColor];
|
operationTime.textAlignment = NSTextAlignmentCenter;
|
operationTime.tag = 0x11c;
|
operationTime.text = @"60";//默认60秒为添加流程总时耗
|
[self.timerImageView addSubview:operationTime];
|
|
//wifi成功标签图
|
[self.addTipsView addSubview:self.successWifiImageView];
|
[self.successWifiImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
make.width.height.mas_equalTo(@25);
|
make.trailing.mas_equalTo(@-15);
|
make.centerY.mas_equalTo(self.wifiLabel.mas_centerY);
|
}];
|
|
//注册成功标签图
|
[self.addTipsView addSubview:self.successRegisterImageView];
|
[self.successRegisterImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
make.width.height.mas_equalTo(@25);
|
make.trailing.mas_equalTo(@-15);
|
make.centerY.mas_equalTo(self.registerLabel.mas_centerY);
|
}];
|
|
//阶段成功标示图标,默认隐藏
|
self.successRegisterImageView.hidden = YES;
|
self.successWifiImageView.hidden = YES;
|
}
|
|
/**
|
* 显示提示界面,根据state可以标示不同的提示语
|
*/
|
- (void)showTipsView
|
{
|
self.failedTipsView.hidden = YES;
|
self.addTipsView.hidden = NO;
|
self.timerImageView.hidden = NO;
|
|
switch(_enState)
|
{
|
case STATE_NONE:
|
{
|
self.successWifiImageView.hidden = YES;
|
self.successRegisterImageView.hidden = YES;
|
|
//字体颜色设置
|
self.wifiLabel.font = [UIFont systemFontOfSize:17.0];
|
self.wifiLabel.textColor = [UIColor dd_hexStringToColor:@"0x333333"];
|
|
self.registerLabel.font = [UIFont systemFontOfSize:15.0f];
|
self.registerLabel.textColor = [UIColor dd_hexStringToColor:@"0x666666"];
|
|
self.bindLabel.font = [UIFont systemFontOfSize:15.0f];
|
self.bindLabel.textColor = [UIColor dd_hexStringToColor:@"0x666666"];
|
|
self.wifiLabel.text = NSLocalizedString(@"wifi_connecting_net", @"萤小石正在努力连接Wi-Fi网络");
|
self.registerLabel.text = NSLocalizedString(@"wifi_register_server", @"注册平台服务器");
|
self.bindLabel.text = NSLocalizedString(@"wifi_bind_account", @"绑定你的账号");
|
|
//计算文字的长度
|
CGSize labelSize = [self.wifiLabel.text sizeWithFont:self.wifiLabel.font];
|
//计算padding
|
CGFloat padding = (self.view.bounds.size.width - labelSize.width)/2.0f - 27.0f;
|
|
[self.timerImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
make.width.height.mas_equalTo(@25);
|
make.trailing.mas_equalTo(@(-padding));
|
make.centerY.mas_equalTo(self.wifiLabel.mas_centerY);
|
}];
|
}
|
break;
|
case STATE_WIFI:
|
{
|
self.successWifiImageView.hidden = NO;
|
self.successRegisterImageView.hidden = YES;
|
|
self.wifiLabel.font = [UIFont systemFontOfSize:15.0];
|
self.wifiLabel.textColor = [UIColor dd_hexStringToColor:@"0x666666"];
|
|
self.registerLabel.font = [UIFont systemFontOfSize:17.0f];
|
self.registerLabel.textColor = [UIColor dd_hexStringToColor:@"0x333333"];
|
|
self.bindLabel.font = [UIFont systemFontOfSize:15.0f];
|
self.bindLabel.textColor = [UIColor dd_hexStringToColor:@"0x666666"];
|
|
self.wifiLabel.text = NSLocalizedString(@"wifi_already_configed", @"已配置好Wi-Fi网络");
|
|
//计算文字的长度
|
CGSize labelSize = [self.wifiLabel.text sizeWithFont:self.wifiLabel.font];
|
//计算padding
|
CGFloat padding = (self.view.bounds.size.width - labelSize.width)/2.0f - 27.0f;
|
|
[self.successWifiImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
make.width.height.mas_equalTo(@25);
|
make.trailing.mas_equalTo(@(-padding));
|
make.centerY.mas_equalTo(self.wifiLabel.mas_centerY);
|
}];
|
|
self.registerLabel.text = NSLocalizedString(@"wifi_registering_server", @"快了快了,正在注册平台服务器");
|
self.bindLabel.text = NSLocalizedString(@"wifi_bind_account", @"绑定你的账号");
|
|
//计算文字的长度
|
labelSize = [self.registerLabel.text sizeWithFont:self.registerLabel.font];
|
//计算padding
|
padding = (self.view.bounds.size.width - labelSize.width)/2.0f - 27.0f;
|
|
[self.timerImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
make.width.height.mas_equalTo(@25);
|
make.trailing.mas_equalTo(@(-padding));
|
make.centerY.mas_equalTo(self.registerLabel.mas_centerY);
|
}];
|
|
break;
|
}
|
case STATE_LINE: //有线连接添加逻辑
|
{
|
self.successWifiImageView.hidden = YES;
|
self.successRegisterImageView.hidden = YES;
|
|
self.wifiLabel.hidden = YES;
|
self.registerLabel.hidden = YES;
|
self.timerImageView.hidden = NO;
|
|
self.bindLabel.font = [UIFont systemFontOfSize:17.0];
|
self.bindLabel.textColor = [UIColor dd_hexStringToColor:@"0x333333"];
|
self.bindLabel.text = NSLocalizedString(@"wifi_bind_account_result", @"绑到你的账号下就大功告成了哦");
|
|
//计算文字的长度
|
CGSize labelSize = [self.bindLabel.text sizeWithFont:self.bindLabel.font];
|
//计算padding
|
CGFloat padding = (self.view.bounds.size.width - labelSize.width)/2.0f - 27.0f;
|
|
[self.timerImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
make.width.height.mas_equalTo(@25);
|
make.trailing.mas_equalTo(@(-padding));
|
make.centerY.mas_equalTo(self.bindLabel.mas_centerY);
|
}];
|
|
break;
|
}
|
case STATE_PLAT:
|
{
|
self.successWifiImageView.hidden = NO;
|
self.successRegisterImageView.hidden = NO;
|
|
self.wifiLabel.font = [UIFont systemFontOfSize:15.0];
|
self.wifiLabel.textColor = [UIColor dd_hexStringToColor:@"0x666666"];
|
|
self.registerLabel.font = [UIFont systemFontOfSize:15.0f];
|
self.registerLabel.textColor = [UIColor dd_hexStringToColor:@"0x666666"];
|
|
self.bindLabel.font = [UIFont systemFontOfSize:17.0f];
|
self.bindLabel.textColor = [UIColor dd_hexStringToColor:@"0x333333"];
|
|
self.wifiLabel.text = NSLocalizedString(@"wifi_already_configed",@"已配置好Wi-Fi网络");
|
self.registerLabel.text = NSLocalizedString(@"wifi_already_registered_server", @"已注册到萤石平台");
|
//计算文字的长度
|
CGSize labelSize = [self.registerLabel.text sizeWithFont:self.registerLabel.font];
|
//计算padding
|
CGFloat padding = (self.view.bounds.size.width - labelSize.width)/2.0f - 27.0f;
|
|
[self.successWifiImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
make.width.height.mas_equalTo(@25);
|
make.trailing.mas_equalTo(@(-padding));
|
make.centerY.mas_equalTo(self.wifiLabel.mas_centerY);
|
}];
|
|
[self.successRegisterImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
make.width.height.mas_equalTo(@25);
|
make.trailing.mas_equalTo(@(-padding));
|
make.centerY.mas_equalTo(self.registerLabel.mas_centerY);
|
}];
|
|
self.bindLabel.text = NSLocalizedString(@"wifi_bind_account_result",@"绑到你的账号下就大功告成了哦");
|
|
//计算文字的长度
|
labelSize = [self.bindLabel.text sizeWithFont:self.bindLabel.font];
|
//计算padding
|
padding = (self.view.bounds.size.width - labelSize.width)/2.0f - 27.0f;
|
|
[self.timerImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
make.width.height.mas_equalTo(@25);
|
make.trailing.mas_equalTo(@(-padding));
|
make.centerY.mas_equalTo(self.bindLabel.mas_centerY);
|
}];
|
|
break;
|
}
|
case STATE_SUCC:
|
{
|
//隐藏阶段提示界面,展示成功界面
|
self.addTipsView.hidden = YES;
|
|
[self.animationImageView stopAnimating];
|
self.animationImageView.animationImages = nil;
|
//调整图片高度
|
|
self.animationImageView.image = [UIImage imageNamed:@"addDevice_success"];//成功标示图片
|
|
[self.animationImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
|
make.top.mas_equalTo(@90);
|
make.leading.trailing.mas_equalTo(@0);
|
make.height.mas_equalTo(@(185 * [UIScreen mainScreen].bounds.size.width/320.0f));
|
}];
|
|
[self.view addSubview:self.completionLabel];
|
|
[self.completionLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.mas_equalTo(self.animationImageView.mas_bottom).offset(10);
|
make.leading.trailing.mas_equalTo(@0);
|
make.height.mas_equalTo(@20);
|
}];
|
|
[self.view addSubview:self.completionButton];
|
|
[self.completionButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.mas_equalTo(self.completionLabel.mas_bottom).offset(15);
|
make.width.mas_equalTo(@285);
|
make.height.mas_equalTo(@38);
|
make.centerX.mas_equalTo(self.view.mas_centerX);
|
}];
|
|
break;
|
}
|
default:
|
break;
|
}
|
}
|
|
/**
|
* 显示失败界面,根据state可以标示不同的失败类型
|
*/
|
- (void)showFailedView
|
{
|
[EZOPENSDK stopConfigWifi];
|
|
//失败-移除阶段提示视图
|
self.addTipsView.hidden = YES;
|
|
//失败-配置特效动画停止
|
[self.animationImageView stopAnimating];
|
|
[self.view addSubview:self.failedTipsView];
|
|
[self.failedTipsView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
|
|
[self.failedTipsView mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.mas_equalTo(self.animationImageView.mas_bottom).offset(20);
|
make.leading.trailing.bottom.mas_equalTo(@0);
|
}];
|
|
UILabel *failedLabel = [[UILabel alloc] initWithFrame:CGRectZero];
|
failedLabel.numberOfLines = 0;
|
failedLabel.lineBreakMode = NSLineBreakByWordWrapping;
|
failedLabel.font = [UIFont systemFontOfSize:15.0f];
|
failedLabel.textColor = [UIColor dd_hexStringToColor:@"0x666666"];
|
failedLabel.textAlignment = NSTextAlignmentCenter;
|
failedLabel.backgroundColor = [UIColor clearColor];
|
failedLabel.tag = 0x22a;
|
[self.failedTipsView addSubview:failedLabel];
|
|
[failedLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.mas_equalTo(@0);
|
make.leading.mas_equalTo(@15);
|
make.trailing.mas_equalTo(@-15);
|
make.height.mas_equalTo(@45);
|
}];
|
|
UIButton *retryButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
[retryButton setBackgroundImage:[UIImage imageNamed:@"blue_button"] forState:UIControlStateNormal];
|
[retryButton setBackgroundImage:[UIImage imageNamed:@"blue_button_sel"] forState:UIControlStateHighlighted];
|
[retryButton setTitle:NSLocalizedString(@"retry", @"重试") forState:UIControlStateNormal];
|
[retryButton addTarget:self action:@selector(retryButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
|
|
retryButton.tag = 0x22c;
|
[self.failedTipsView addSubview:retryButton];
|
|
[retryButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.mas_equalTo(failedLabel.mas_bottom).offset(10);
|
make.width.mas_equalTo(@285);
|
make.height.mas_equalTo(@38);
|
make.centerX.mas_equalTo(self.view.mas_centerX);
|
}];
|
|
UILabel *failedLab = (UILabel *)[self.failedTipsView viewWithTag:0x22a];
|
|
switch (_enState)
|
{
|
case STATE_NONE:
|
{
|
failedLab.text = NSLocalizedString(@"wifi_config_fail", @"配置Wi-Fi失败,请重试或返回检查Wi-Fi密码是否输入正确");
|
|
self.animationImageView.image = [UIImage imageNamed:@"failure_wifi"]; //wifi连接失败
|
}
|
break;
|
case STATE_WIFI:
|
case STATE_LINE:
|
{
|
failedLab.text = NSLocalizedString(@"wifi_register_fail", @"Wi-Fi配置成功,注册平台失败,请检查设备网络后重试");
|
|
self.animationImageView.image = [UIImage imageNamed:@"failure_server"];//设备注册平台失败
|
}
|
break;
|
case STATE_PLAT:
|
{
|
failedLab.text = NSLocalizedString(@"wifi_bind_fail", @"Wi-Fi配置成功,绑定账号失败,请重试");
|
|
self.animationImageView.image = [UIImage imageNamed:@"failure_account"];//设备绑定失败
|
}
|
break;
|
default:
|
break;
|
}
|
|
self.failedTipsView.hidden = NO;
|
}
|
|
//- (void)handleTheError:(NSError *)error
|
//{
|
// [EZOPENSDK stopConfigWifi];
|
//
|
// if (!error)
|
// {
|
// if ([_countTimer isValid])
|
// {
|
// [_countTimer invalidate];
|
// _countTimer = nil;
|
// }
|
// _enState = STATE_SUCC;
|
// [self showTipsView];
|
// return;
|
// }
|
//
|
// if (error.code == 120010)
|
// {
|
// UIAlertView *retryAlertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"device_verify_code_wrong", @"验证码错误")
|
// message:nil delegate:self
|
// cancelButtonTitle:NSLocalizedString(@"cancel", @"取消")
|
// otherButtonTitles:NSLocalizedString(@"retry", @"重试"), nil];
|
// retryAlertView.tag = 0xbb;
|
// [retryAlertView show];
|
// }
|
// else if (error.code == 120020)
|
// {
|
// [UIView dd_showMessage:NSLocalizedString(@"ad_already_added", @"您已添加过此设备")];
|
// }
|
// else if (error.code == 120022)
|
// {
|
// [UIView dd_showMessage:NSLocalizedString(@"ad_added_by_others", @"此设备已被别人添加")];
|
// }
|
// else
|
// {
|
// [UIView dd_showMessage:NSLocalizedString(@"wifi_add_fail", @"添加失败")];
|
// }
|
//}
|
|
- (void)handleTheError:(ResponseData *)responseData
|
{
|
[EZOPENSDK stopConfigWifi];
|
|
if (responseData.success)
|
{
|
if ([_countTimer isValid])
|
{
|
[_countTimer invalidate];
|
_countTimer = nil;
|
}
|
_enState = STATE_SUCC;
|
[self showTipsView];
|
return;
|
}
|
|
if ([responseData.code isEqual: @"20010"])
|
{
|
UIAlertView *retryAlertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"device_verify_code_wrong", @"验证码错误")
|
message:nil delegate:self
|
cancelButtonTitle:NSLocalizedString(@"cancel", @"取消")
|
otherButtonTitles:NSLocalizedString(@"retry", @"重试"), nil];
|
retryAlertView.tag = 0xbb;
|
[retryAlertView show];
|
}
|
else if ([responseData.code isEqual: @"20017"])
|
{
|
[UIView dd_showMessage:NSLocalizedString(@"ad_already_added", @"您已添加过此设备")];
|
}
|
else if ([responseData.code isEqual: @"20013"])
|
{
|
[UIView dd_showMessage:NSLocalizedString(@"ad_added_by_others", @"此设备已被别人添加")];
|
}
|
else
|
{
|
[UIView dd_showMessage:NSLocalizedString(@"wifi_add_fail", @"添加失败")];
|
}
|
}
|
#pragma mark - Action Methods
|
|
- (void)completionButtonClicked:(id)sender
|
{
|
NSArray *viewControllers = self.navigationController.viewControllers;
|
for (UIViewController *vc in viewControllers)
|
{
|
if ([vc isKindOfClass:[EZDeviceTableViewController class]])
|
{
|
((EZDeviceTableViewController *)vc).needRefresh = YES;
|
[self.navigationController popToViewController:vc animated:YES];
|
break;
|
}
|
|
if ([vc isKindOfClass:[EZDdnsDeviceTableViewController class]])
|
{
|
((EZDdnsDeviceTableViewController *)vc).needRefresh = YES;
|
[self.navigationController popToViewController:vc animated:YES];
|
break;
|
}
|
}
|
}
|
|
- (void)retryButtonClicked:(id)sender
|
{
|
[self wifiConfigStart];
|
}
|
|
|
#pragma mark - Get & Set Methods
|
|
- (UIImageView *)animationImageView
|
{
|
if (!_animationImageView)
|
{
|
_animationImageView = [[UIImageView alloc] initWithFrame:CGRectZero];
|
}
|
return _animationImageView;
|
}
|
|
- (UIView *)addTipsView
|
{
|
if (!_addTipsView)
|
{
|
_addTipsView = [[UIView alloc] initWithFrame:CGRectZero];
|
_addTipsView.backgroundColor = [UIColor clearColor];
|
}
|
return _addTipsView;
|
}
|
|
- (UIImageView *)timerImageView
|
{
|
if (!_timerImageView)
|
{
|
|
UIImage *image = [UIImage dd_createImageWithCGSize:CGSizeMake(25.0, 25.0) color:[UIColor dd_hexStringToColor:@"0x1b9ee2"]];
|
|
_timerImageView = [[UIImageView alloc] initWithImage:image];
|
_timerImageView.clipsToBounds = YES;
|
_timerImageView.layer.cornerRadius = 25/2.0;
|
}
|
return _timerImageView;
|
}
|
|
- (UIImageView *)successRegisterImageView{
|
if (!_successRegisterImageView)
|
{
|
_successRegisterImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"add_success_icon"]];
|
}
|
return _successRegisterImageView;
|
}
|
|
- (UIImageView *)successWifiImageView
|
{
|
if (!_successWifiImageView)
|
{
|
_successWifiImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"add_success_icon"]];
|
}
|
return _successWifiImageView;
|
}
|
|
- (UILabel *)wifiLabel
|
{
|
if (!_wifiLabel)
|
{
|
_wifiLabel = [[UILabel alloc] initWithFrame:CGRectZero];
|
_wifiLabel.font = [UIFont systemFontOfSize:15.0f];
|
_wifiLabel.textColor = [UIColor dd_hexStringToColor:@"0x333333"];
|
_wifiLabel.backgroundColor = [UIColor clearColor];
|
_wifiLabel.textAlignment = NSTextAlignmentCenter;
|
_wifiLabel.text = NSLocalizedString(@"wifi_connecting_net", @"正在连接Wi-Fi网络");
|
}
|
return _wifiLabel;
|
}
|
|
- (UILabel *)registerLabel
|
{
|
if (!_registerLabel)
|
{
|
_registerLabel = [[UILabel alloc] initWithFrame:CGRectZero];
|
_registerLabel.font = [UIFont systemFontOfSize:15.0f];
|
_registerLabel.textColor = [UIColor dd_hexStringToColor:@"0x333333"];
|
_registerLabel.backgroundColor = [UIColor clearColor];
|
_registerLabel.textAlignment = NSTextAlignmentCenter;
|
_registerLabel.text = NSLocalizedString(@"wifi_register_server", @"注册平台服务器");
|
}
|
return _registerLabel;
|
}
|
|
- (UILabel *)bindLabel
|
{
|
if (!_bindLabel)
|
{
|
_bindLabel = [[UILabel alloc] initWithFrame:CGRectZero];
|
_bindLabel.font = [UIFont systemFontOfSize:15.0f];
|
_bindLabel.textColor = [UIColor dd_hexStringToColor:@"0x333333"];
|
_bindLabel.backgroundColor = [UIColor clearColor];
|
_bindLabel.textAlignment = NSTextAlignmentCenter;
|
_bindLabel.text = NSLocalizedString(@"wifi_bind_account", @"绑定你的账号");
|
}
|
return _bindLabel;
|
}
|
|
- (UIView *)failedTipsView
|
{
|
if(!_failedTipsView)
|
{
|
_failedTipsView = [[UIView alloc] initWithFrame:CGRectZero];
|
}
|
return _failedTipsView;
|
}
|
|
- (UILabel *)completionLabel
|
{
|
if (!_completionLabel)
|
{
|
_completionLabel = [[UILabel alloc] initWithFrame:CGRectZero];
|
_completionLabel.text = NSLocalizedString(@"wifi_add_success", @"添加成功");
|
_completionLabel.textAlignment = NSTextAlignmentCenter;
|
_completionLabel.font = [UIFont systemFontOfSize:15.0f];
|
_completionLabel.backgroundColor = [UIColor clearColor];
|
}
|
return _completionLabel;
|
}
|
|
- (UIButton *)completionButton
|
{
|
if (!_completionButton)
|
{
|
_completionButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
[_completionButton setBackgroundImage:[UIImage imageNamed:@"blue_button"] forState:UIControlStateNormal];
|
[_completionButton setBackgroundImage:[UIImage imageNamed:@"blue_button_sel"] forState:UIControlStateHighlighted];
|
[_completionButton setTitle:NSLocalizedString(@"complete", @"完成") forState:UIControlStateNormal];
|
[_completionButton addTarget:self action:@selector(completionButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
|
}
|
return _completionButton;
|
}
|
|
@end
|