ifish/Ifish/controllers/IfishTabControllers/我的/mineControllers/SettingResetViewController.m

178 lines
6.5 KiB
Objective-C

//
// SettingResetViewController.m
// Ifish
//
// Created by Minghao Xue on 2018/7/24.
// Copyright © 2018年 lianlian. All rights reserved.
//
#import "SettingResetViewController.h"
#import "IFishHotpotUDPHelper.h"
#import "ConnectHotspotTipViewController.h"
#import "DeviceCameraModel.h"
#import "DeviceModel.h"
#import "MBProgressHUD.h"
#import<SystemConfiguration/CaptiveNetwork.h>
@interface SettingResetViewController ()<IFishHotpotUDPHelperDelegate>
@property (nonatomic, strong) DeviceModel *currentDevice;
@property (nonatomic, strong) MBProgressHUD *HUD;
@property (nonatomic, assign) BOOL isDeleteingDevice;
@property (nonatomic, strong) NSTimer *deleteTimer;
@property (nonatomic, assign) NSInteger retryTimes;
@end
@implementation SettingResetViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"恢复出厂设置";
}
- (IBAction)reset:(id)sender {
if (![[self currentWifiSSID].lowercaseString hasPrefix:@"ifish"]) {
[self.view makeToast:@"请先将手机连接到wifi:ifish-xxxx"];
return;
}
[IFishHotpotUDPHelper sharedInstance].delegate = self;
[[IFishHotpotUDPHelper sharedInstance] broadCastRestCommand];
}
- (void)deleteNow {
BOOL networkOk = NO;
AFNetworkReachabilityStatus status = [AFNetworkReachabilityManager sharedManager].networkReachabilityStatus;
if (status == AFNetworkReachabilityStatusReachableViaWiFi) {
if (![[self currentWifiSSID].lowercaseString hasPrefix:@"ifish"]) {
networkOk = YES;
}
} else if (status == AFNetworkReachabilityStatusReachableViaWWAN) {
networkOk = YES;
}
if (!networkOk) {
return;
}
if (self.isDeleteingDevice) {
return;
}
if (self.deleteTimer) {
[self.deleteTimer invalidate];
self.deleteTimer = nil;
}
self.isDeleteingDevice = YES;
[self deletDevice];
}
- (IBAction)tipBtnClicked:(id)sender {
ConnectHotspotTipViewController *vc = [[ConnectHotspotTipViewController alloc] initWithNibName:nil bundle:nil];
[self.navigationController pushViewController:vc animated:YES];
}
#pragma mark - IFishHotpotUDPHelperDelegate
- (void)udpHelperCommandExecutedSuccess:(IFishUDPHelperBackMsgModel *)backModel {
[self.view makeToast:@"设备已重置"];
[self.navigationController popViewControllerAnimated:YES];
// self.HUD.labelText = @"设备正在恢复出厂设置";
// NSArray*deviceArry=[[DataCenter defaultDtacenter]valueForKey:@"deviceInfo"];
// [deviceArry enumerateObjectsUsingBlock:^(DeviceModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
// if ([obj.macAddress isEqualToString:backModel.senderMacAddress]) {
// self.currentDevice = obj;
// self.deleteTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(deleteNow) userInfo:nil repeats:YES];
// *stop = YES;
// }
// }];
}
- (void)udpHelperMessage:(NSString *)msg {
// [self.view makeToast:msg];
}
#pragma mark - 删除设备
- (NSString *)currentWifiSSID {
NSString *ssid = @"Not Found";
CFArrayRef myArray = CNCopySupportedInterfaces();
if (myArray != nil) {
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
if (myDict != nil) {
NSDictionary *dict = (NSDictionary *)CFBridgingRelease(myDict);
ssid = [dict valueForKey:@"SSID"];
}
}
return ssid;
}
-(void)deletDevice{
self.HUD.labelText = @"正在删除设备";
//先判断此设备是否有关联 摄像头
//DeviceModel*deviceModel=[_deviceArr objectAtIndex:indexpath.row];
//要删除的设设备id
NSMutableArray *guanxiiArr= [[DataCenter defaultDtacenter] valueForKey:@"devicamerArr"];
for (DeviceCameraModel *model in guanxiiArr) {
if (self.currentDevice.deviceId == model.deviceId ) {
[guanxiiArr removeObject:model];
//保存新关系数组
[[DataCenter defaultDtacenter] setValue:guanxiiArr forKey:@"devicamerArr"];
}
}
self.retryTimes = 0;
[self deleteDeviceRequset];
}
-(void)deleteDeviceRequset{
AFHTTPRequestOperationManager*mannager=[AFHTTPRequestOperationManager manager];
mannager.responseSerializer=[AFHTTPResponseSerializer serializer];
NSMutableDictionary * para = [NSMutableDictionary dictionary];
NSString *priId=self.currentDevice.deviceId;
NSString*userId=self.currentDevice.userId;
[para setValue:priId forKey:@"priId.deviceId"];
[para setValue:userId forKey:@"priId.userId"];
// __weak typeof (self)weakSelf=self;
[mannager POST:kDeleteDeviceUser parameters:para success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (responseObject) {
NSDictionary*resultDic=[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
NSLog(@"result:%@",resultDic[@"result"]);
if ([resultDic[@"result"] isEqualToString:@"100"]) {
self.HUD.labelText = @"设备删除成功";
//重置数据库
NSArray*deviceArry=[[DataCenter defaultDtacenter]valueForKey:@"deviceInfo"];
NSMutableArray *newArr = [NSMutableArray arrayWithArray:deviceArry];
for (DeviceModel *model in deviceArry) {
if ([model.deviceId isEqual:self.currentDevice.deviceId]) {
[newArr removeObject:model];
}
}
[[DataCenter defaultDtacenter] setValue: newArr forKey:@"deviceInfo"];
[self.navigationController popViewControllerAnimated:YES];
}else if ([resultDic[@"result"] isEqualToString:@"101"]){
self.HUD.labelText = @"设备删除失败";
}else if ([resultDic[@"result"] isEqualToString:@"301"]){
self.HUD.labelText = @"请求验证失败,请重新登陆";
}else if ([resultDic[@"result"] isEqualToString:@"302"]){
self.HUD.labelText = @"请求被舍弃,未执行";
}
[self.HUD hide:YES afterDelay:2];
} else {
self.HUD.labelText = @"删除失败";
[self.HUD hide:YES afterDelay:2];
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (self.retryTimes < 3) {
[self deleteDeviceRequset];
self.retryTimes += 1;
} else {
self.HUD.labelText = @"请求异常";
[self.HUD hide:YES afterDelay:2];
}
}];
}
@end