You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
875 lines
31 KiB
875 lines
31 KiB
// |
|
// DeviceTabViewController.m |
|
// tongxin |
|
// |
|
// Created by ecell on 2023/6/14. |
|
// Copyright © 2023 xTT. All rights reserved. |
|
// |
|
|
|
#import "DeviceTabViewController.h" |
|
#import "DeviceMenuTableViewCell.h" |
|
#import "DeviceTabHeaderView.h" |
|
#import "DeviceSubmenuTableViewCell.h" |
|
#import "MyMQTT.h" |
|
|
|
#import "JCManager.h" |
|
#import "BRManager.h" |
|
#import "TihuManager.h" |
|
#import "CallViewController.h" |
|
|
|
#define ROWHH 40; |
|
@interface DeviceTabViewController ()<UITableViewDelegate,UITableViewDataSource> |
|
|
|
@property (nonatomic ,strong) UITableView *deviceTable; |
|
|
|
@property (nonatomic ,strong) DeviceTabHeaderView *headerView; |
|
|
|
@property (nonatomic ,strong) NSMutableArray *ImageArr; |
|
@property (nonatomic ,strong) NSMutableArray *TitleArr; |
|
|
|
@property (nonatomic ,strong) NSMutableArray *senerTitleArr; |
|
@property (nonatomic ,strong) NSMutableArray *senerImageArr; |
|
|
|
@property (nonatomic ,strong) NSNumber *unreadTotal; |
|
|
|
|
|
@end |
|
|
|
@implementation DeviceTabViewController |
|
|
|
- (void)viewDidLoad { |
|
[super viewDidLoad]; |
|
// Do any additional setup after loading the view. |
|
self.zx_navLeftBtn.titleLabel.font = FontBold_(18); |
|
[self.zx_navLeftBtn setTitleColor:KKWhiteColorColor forState:0]; |
|
self.view.backgroundColor = RGB(244, 250, 255); |
|
|
|
|
|
[self zx_setRightBtnWithImg:ImageName_(@"icon_switch_devices") clickedBlock:^(ZXNavItemBtn * _Nonnull btn) { |
|
[self rightBtnTouch]; |
|
}]; |
|
[self.view addSubview:self.deviceTable]; |
|
|
|
//MARK : 收到新的聊天消息推送 |
|
[[NSNotificationCenter defaultCenter] addObserverForName:PUSH_type_chatGroupMessage |
|
object:nil |
|
queue:[NSOperationQueue mainQueue] |
|
usingBlock:^(NSNotification * _Nonnull note) |
|
{ |
|
[self getChatMsgNum]; |
|
}]; |
|
|
|
} |
|
|
|
|
|
- (void)viewWillAppear:(BOOL)animated |
|
{ |
|
[super viewWillAppear:animated]; |
|
[self setDeviceMenu]; |
|
[self getChatMsgNum]; |
|
} |
|
|
|
- (UITableView *)deviceTable |
|
{ |
|
if (!_deviceTable) |
|
{ |
|
_deviceTable = [[UITableView alloc] initWithFrame:CGRectMake(20, iPhoneX_NavHeight, ScreenWidth-40, ScreenHeight-iPhoneX_NavHeight-TabBarHeight) style:UITableViewStyleGrouped]; |
|
_deviceTable.delegate = self; |
|
_deviceTable.dataSource = self; |
|
//_disTableView.separatorStyle = UITableViewCellSeparatorStyleNone; |
|
_deviceTable.backgroundColor = KKClearColor; |
|
_deviceTable.tableHeaderView = self.headerView; |
|
_deviceTable.tableHeaderView.height = 155; |
|
_deviceTable.showsHorizontalScrollIndicator = NO; |
|
_deviceTable.showsVerticalScrollIndicator = NO; |
|
_deviceTable.showsHorizontalScrollIndicator = NO; |
|
_deviceTable.showsVerticalScrollIndicator = NO; |
|
_deviceTable.separatorStyle = UITableViewCellSelectionStyleNone; |
|
[_deviceTable registerClass:DeviceMenuTableViewCell.class forCellReuseIdentifier:NSStringFromClass(DeviceMenuTableViewCell.class)]; |
|
[_deviceTable registerClass:DeviceSubmenuTableViewCell.class forCellReuseIdentifier:NSStringFromClass(DeviceSubmenuTableViewCell.class)]; |
|
} |
|
return _deviceTable; |
|
} |
|
|
|
- (DeviceTabHeaderView *)headerView |
|
{ |
|
if (!_headerView) |
|
{ |
|
_headerView = [[DeviceTabHeaderView alloc] initWithFrame:CGRectMake(0, 15, ScreenWidth-32, 155)]; |
|
} |
|
return _headerView; |
|
} |
|
|
|
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section |
|
{ |
|
if (section == 0) |
|
return self.ImageArr.count; |
|
else |
|
return self.senerTitleArr.count; |
|
} |
|
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView |
|
{ |
|
return 2; |
|
} |
|
|
|
|
|
|
|
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
if(indexPath.section == 0) |
|
{ |
|
if (indexPath.row == 0) |
|
return 120; |
|
else if (indexPath.row == 1) |
|
{ |
|
CGFloat hh = (ScreenWidth-40)/4.5; |
|
NSInteger count = [self.TitleArr[indexPath.row] count]; |
|
if (count < 5) return hh+ROWHH; |
|
if (count < 9) return hh*2+ROWHH; |
|
if (count < 13) return hh*3+ROWHH; |
|
if (count < 17) return hh*4+ROWHH; |
|
if (count < 21) return hh*5+ROWHH; |
|
if (count > 20) return hh*6+ROWHH; |
|
} |
|
else |
|
{ |
|
return 120; |
|
} |
|
} |
|
else |
|
return 55; |
|
return 0; |
|
} |
|
|
|
|
|
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
if (indexPath.section == 0) |
|
{ |
|
DeviceMenuTableViewCell *cell = [DeviceMenuTableViewCell cellWithTableView:tableView indexPath:indexPath]; |
|
cell.titleStr = indexPath.row == 0 ? @"快捷功能" : indexPath.row == 1 ? @"基础功能" : @"特色功能"; |
|
cell.ImageArr = self.ImageArr[indexPath.row]; |
|
cell.TitleArr = self.TitleArr[indexPath.row]; |
|
if (indexPath.row == 0 && self.unreadTotal) |
|
cell.chatMsgNum = self.unreadTotal.integerValue; |
|
return cell; |
|
} |
|
else |
|
{ |
|
DeviceSubmenuTableViewCell *cell = [DeviceSubmenuTableViewCell cellWithTableView:tableView indexPath:indexPath]; |
|
NSString *title = self.senerTitleArr[indexPath.row]; |
|
cell.titleStr = title; |
|
cell.imageStr = self.senerImageArr[indexPath.row]; |
|
[UICommon tableView:tableView willDisplayCell:cell forRowAtIndexPath:indexPath cellCoutn:self.senerTitleArr.count sizeH:0]; |
|
cell.line.hidden = indexPath.row == self.senerTitleArr.count-1 ? YES : NO; |
|
if ([title isEqualToString:@"定位模式"]) |
|
{ |
|
NSString *tempStr = @""; |
|
if ([cUser.cDevice.opLocationMode integerValue] == [cUser.cDevice.location_interval1 integerValue]) { |
|
tempStr = cUser.cDevice.location_model1; //@"省电模式"; |
|
}else if ([cUser.cDevice.opLocationMode integerValue] == [cUser.cDevice.location_interval2 integerValue]){ |
|
tempStr = cUser.cDevice.location_model2; //@"正常模式"; |
|
}else if ([cUser.cDevice.opLocationMode integerValue] == [cUser.cDevice.location_interval3 integerValue]){ |
|
tempStr = cUser.cDevice.location_model3;//@"高频模式"; |
|
} else { |
|
tempStr = cUser.cDevice.location_model2; |
|
} |
|
|
|
cell.textsLabel.text = tempStr; |
|
} |
|
else if ([title isEqualToString:@"拒绝陌生人来电"]) |
|
{ |
|
UISwitch *uiSwitch = cell.customSwitch; |
|
uiSwitch.on = [cUser.cDevice.opRejectStrangeCall boolValue]; |
|
cell.cellBack = ^(UISwitch *uiSwitch, DeviceSubmenuTableViewCell *blockCell) { |
|
|
|
// add by lsz 2021-06-10 |
|
UIAlertController *alert = nil; |
|
NSString *tmp = title; |
|
alert = [myHelper getAlertWithTitle:tmp |
|
message:@"\n开启时,只有通讯录的联系人才能双向通话,防止陌生人骚扰" |
|
actionTitles:@[@"确定"] |
|
style:UIAlertControllerStyleAlert |
|
block:^(UIAlertAction *action) |
|
{ |
|
NSLog(@"%@ -- %d", action.title, uiSwitch.on); |
|
if ([action.title isEqualToString:@"确定"]) { |
|
[cUser.cDevice editOperationDeviceInfoWithParameters:@{@"opRejectStrangeCall":@(uiSwitch.on)} |
|
success:^(id responseObject) { |
|
cUser.cDevice.opRejectStrangeCall = @(uiSwitch.on); |
|
} failure:^(id faiObject) { |
|
uiSwitch.on = !uiSwitch.on; |
|
}]; |
|
} |
|
|
|
if([action.title isEqualToString:@"取消"]) { |
|
uiSwitch.on = !uiSwitch.on; |
|
} |
|
} |
|
]; |
|
[self presentViewController:alert animated:YES completion:nil]; |
|
|
|
}; |
|
} |
|
else if ([title isEqualToString:@"拨号盘开关"]) |
|
{ |
|
UISwitch *uiSwitch = cell.customSwitch; |
|
uiSwitch.on = [cUser.cDevice.opDialSwitch boolValue]; |
|
cell.cellBack = ^(UISwitch *uiSwitch, DeviceSubmenuTableViewCell *blockCell) { |
|
[cUser.cDevice editOperationDeviceInfoWithParameters:@{@"opCallPhone":@(uiSwitch.on)} |
|
success:^(id responseObject) { |
|
cUser.cDevice.opDialSwitch = @(uiSwitch.on); |
|
} failure:^(id faiObject) { |
|
uiSwitch.on = !uiSwitch.on; |
|
}]; |
|
}; |
|
} |
|
return cell; |
|
} |
|
|
|
return nil; |
|
} |
|
|
|
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { |
|
|
|
return section == 0 ? 0.1 : 38.5; |
|
} |
|
|
|
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { |
|
return section == 0 ? 0.1 : 140; |
|
} |
|
|
|
- (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section |
|
{ |
|
if (section == 1) |
|
{ |
|
UILabel *titleLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentLeft font:FontBold_(14) textColor:KKTextColor text:@"设备设置" Radius:0]; |
|
titleLabel.frame = CGRectMake(20, 15, ScreenWidth-40, 13.5); |
|
return titleLabel; |
|
} |
|
return nil; |
|
} |
|
|
|
- (nullable UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section |
|
{ |
|
WeakSelf |
|
UIView *view = [[UIView alloc] initWithFrame:CGRectZero]; |
|
view.backgroundColor = KKClearColor; |
|
if(section == 1) |
|
{ |
|
UIButton *powerBtn = [UICommon ui_buttonSimple:CGRectZero font:FontBold_(18) normalColor:KKWhiteColorColor normalText:@"远程关机" click:^(id x) { |
|
UIAlertController *alert = [myHelper getAlertWithTitle:@"远程关机" |
|
message:@"\n设备将会远程关机,“是否”确认" |
|
actionTitles:@[@"确定"] |
|
style:UIAlertControllerStyleAlert |
|
block:^(UIAlertAction *action) |
|
{ |
|
if ([action.title isEqualToString:@"确定"]) { |
|
[weakSelf performOperation]; |
|
} |
|
}]; |
|
[weakSelf presentViewController:alert animated:YES completion:nil]; |
|
}]; |
|
powerBtn.backgroundColor = mainColor; |
|
powerBtn.layer.cornerRadius = 25; |
|
powerBtn.layer.masksToBounds = YES; |
|
[view addSubview:powerBtn]; |
|
[powerBtn mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.right.equalTo(view); |
|
make.top.equalTo(view).offset(20); |
|
make.height.mas_equalTo(50); |
|
}]; |
|
|
|
UIButton *untieBtn = [UICommon ui_buttonSimple:CGRectZero font:FontBold_(18) normalColor:mainColor normalText:@"解除与设备的绑定" click:^(id x) { |
|
[weakSelf unbundlingBtn]; |
|
}]; |
|
untieBtn.backgroundColor = KKClearColor; |
|
untieBtn.layer.borderWidth = 1; |
|
untieBtn.layer.borderColor = mainColor.CGColor; |
|
untieBtn.layer.cornerRadius = 25; |
|
[view addSubview:untieBtn]; |
|
[untieBtn mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.right.equalTo(view); |
|
make.top.equalTo(powerBtn.mas_bottom).offset(15); |
|
make.height.mas_equalTo(50); |
|
}]; |
|
} |
|
|
|
return view; |
|
} |
|
|
|
|
|
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
if (indexPath.section == 1) |
|
{ |
|
if (indexPath.row == 0) |
|
{ |
|
[UICommon pusXibViewController:@"LocationModeViewController"]; |
|
} |
|
} |
|
} |
|
|
|
|
|
- (void)setDeviceMenu |
|
{ |
|
self.ImageArr = [[NSMutableArray alloc] init]; |
|
self.TitleArr = [[NSMutableArray alloc] init]; |
|
self.senerTitleArr = [[NSMutableArray alloc] init]; |
|
self.senerImageArr = [[NSMutableArray alloc] init]; |
|
|
|
NSMutableArray *menuTitleArr1 = [[NSMutableArray alloc] init]; |
|
NSMutableArray *menuTitleArr2 = [[NSMutableArray alloc] init]; |
|
NSMutableArray *menuTitleArr3 = [[NSMutableArray alloc] init]; |
|
|
|
NSMutableArray *menuImageArr1 = [[NSMutableArray alloc] init]; |
|
NSMutableArray *menuImageArr2 = [[NSMutableArray alloc] init]; |
|
NSMutableArray *menuImageArr3 = [[NSMutableArray alloc] init]; |
|
|
|
[menuTitleArr1 addObject:@"家庭成员"]; |
|
[menuImageArr1 addObject:@"icon_member"]; |
|
//if (cUser.cDevice.support_whiteList && ) |
|
{ |
|
[menuTitleArr1 addObject:cUser.cDevice.support_whiteList.intValue == 0 ? @"电话本" : @"管理员"]; |
|
[menuImageArr1 addObject:@"icon_phonebook"]; |
|
} |
|
// if(cUser.cDevice.support_video.intValue == 4 || cUser.cDevice.support_video.intValue == 5 || cUser.cDevice.support_video.intValue == 1) |
|
if(cUser.cDevice.support_video) |
|
{ |
|
[menuTitleArr1 addObject:@"视频通话"]; |
|
[menuImageArr1 addObject:@"icon_home_video_call"]; |
|
} |
|
|
|
//if (cUser.cDevice.support_chat && cUser.cDevice.support_chat.intValue == 0) |
|
{ |
|
[menuTitleArr1 addObject:@"微聊"]; |
|
[menuImageArr1 addObject:@"icon_small_talk"]; |
|
} |
|
/*********************** 第三个菜单 *************************/ |
|
// [menuTitleArr2 addObject:@"打电话"]; |
|
// [menuImageArr2 addObject:@"icon_answer"]; |
|
|
|
if (cUser.cDevice.support_alarm && cUser.cDevice.support_alarm.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"设备闹钟"]; |
|
[menuImageArr2 addObject:@"icon_alarm"]; |
|
} |
|
|
|
if (cUser.cDevice.support_disturb && cUser.cDevice.support_disturb.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"上课禁用"]; |
|
[menuImageArr2 addObject:@"icon_disabled"]; |
|
} |
|
|
|
if (cUser.cDevice.support_sos && cUser.cDevice.support_sos.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"SOS号码"]; |
|
[menuImageArr2 addObject:@"icon_sosnumber"]; |
|
} |
|
|
|
if(cUser.cDevice.support_timingSwitch && cUser.cDevice.support_timingSwitch.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"定时开关机"]; |
|
[menuImageArr2 addObject:@"icon_off"]; |
|
} |
|
if(cUser.cDevice.support_find && cUser.cDevice.support_find.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"查找设备"]; |
|
[menuImageArr2 addObject:@"icon_find_devices"]; |
|
} |
|
|
|
if(cUser.cDevice.support_schedul && cUser.cDevice.support_schedul.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"课程表"]; |
|
[menuImageArr2 addObject:@"icon_fun_schedule"]; |
|
} |
|
if(cUser.cDevice.support_family && cUser.cDevice.support_family.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"亲情号"]; |
|
[menuImageArr2 addObject:@"icon_family"]; |
|
} |
|
if(cUser.cDevice.support_ppFriend && cUser.cDevice.support_ppFriend.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"好友列表"]; |
|
[menuImageArr2 addObject:@"icon_fun_friends"]; |
|
} |
|
|
|
if(cUser.cDevice.support_step && cUser.cDevice.support_step.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"计步"]; |
|
[menuImageArr2 addObject:@"icon_Pedometer"]; |
|
} |
|
|
|
if(cUser.cDevice.deviceType && cUser.cDevice.deviceType.intValue == 2) |
|
{ |
|
[menuTitleArr2 addObject:@"学生资料"]; |
|
[menuImageArr2 addObject:@"icon_more_watch_data"]; |
|
} |
|
|
|
[menuTitleArr2 addObject:@"设备资料"]; |
|
[menuImageArr2 addObject:@"icon_watch_data"]; |
|
|
|
if(cUser.cDevice.support_hht && cUser.cDevice.support_hht.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"VIP客服"]; |
|
[menuImageArr2 addObject:@"icon_vip_service"]; |
|
} |
|
|
|
if(cUser.cDevice.support_wifi && cUser.cDevice.support_wifi.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"设备WIFI"]; |
|
[menuImageArr2 addObject:@"icon_wifi"]; |
|
} |
|
|
|
if(cUser.cDevice.support_monitor && cUser.cDevice.support_monitor.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"设备监听"]; |
|
[menuImageArr2 addObject:@"icon_monitor"]; |
|
} |
|
|
|
if(cUser.cDevice.support_appControl && cUser.cDevice.support_appControl.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"应用管理"]; |
|
[menuImageArr2 addObject:@"icon_app_management"]; |
|
} |
|
|
|
// if(cUser.cDevice.support_blood && cUser.cDevice.support_blood.intValue == 1) |
|
// { |
|
// [menuTitleArr2 addObject:@"血压检测"]; |
|
// [menuImageArr2 addObject:@"icon_details_blood"]; |
|
// } |
|
// |
|
// if(cUser.cDevice.support_oxygen && cUser.cDevice.support_oxygen.intValue == 1) |
|
// { |
|
// [menuTitleArr2 addObject:@"血氧检测"]; |
|
// [menuImageArr2 addObject:@"icon_details_oxygen"]; |
|
// } |
|
// |
|
// if(cUser.cDevice.support_heartRate.intValue == 1) |
|
// { |
|
// [menuTitleArr2 addObject:@"心率检测"]; |
|
// [menuImageArr2 addObject:@"icon_heartrate"]; |
|
// } |
|
// if(cUser.cDevice.support_temperature.intValue == 1) |
|
// { |
|
// [menuTitleArr2 addObject:@"体温检测"]; |
|
// [menuImageArr2 addObject:@"icon_temperature"]; |
|
// } |
|
if (cUser.cDevice.support_whiteList && cUser.cDevice.support_whiteList.intValue != 0) { |
|
[menuTitleArr2 addObject:@"通讯录"]; |
|
[menuImageArr2 addObject:@"icon_phonebook"]; |
|
} |
|
if(cUser.cDevice.support_photo && cUser.cDevice.support_photo.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"远程拍照"]; |
|
[menuImageArr2 addObject:@"icon_photography"]; |
|
} |
|
if(cUser.cDevice.support_healthCode && cUser.cDevice.support_healthCode.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"健康码"]; |
|
[menuImageArr2 addObject:@"icon_ttcode_qrcode"]; |
|
} |
|
|
|
if(cUser.cDevice.support_hsCode && cUser.cDevice.support_hsCode.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"核酸码"]; |
|
// [menuImageArr2 addObject:@"icon_nucleicacid"]; |
|
[menuImageArr2 addObject:@"icon_ttcode_qrcode"]; |
|
} |
|
|
|
if(cUser.cDevice.support_sms && cUser.cDevice.support_sms.intValue == 1) |
|
{ |
|
[menuTitleArr2 addObject:@"手表短信"]; |
|
[menuImageArr2 addObject:@"icon_dmessage"]; |
|
} |
|
|
|
/*********************** 第四个菜单 *************************/ |
|
|
|
// if(cUser.cDevice.support_BT_Avoid_Losing && cUser.cDevice.support_BT_Avoid_Losing.intValue == 1) |
|
{ |
|
[menuTitleArr3 addObject:@"蓝牙防丢"]; |
|
//[menuImageArr3 addObject:@"icon_anti_lost"]; |
|
[menuImageArr3 addObject:@"icon_find_devices"]; |
|
} |
|
|
|
// if(cUser.cDevice.support_downDial && cUser.cDevice.support_downDial.intValue == 1) |
|
{ |
|
[menuTitleArr3 addObject:@"表盘中心"]; |
|
[menuImageArr3 addObject:@"icon_dial"]; |
|
} |
|
|
|
// [menuTitleArr3 addObject:@"钱包"]; |
|
// [menuImageArr3 addObject:@"icon_wallet"]; |
|
|
|
[self.ImageArr addObject:menuImageArr1]; |
|
[self.TitleArr addObject:menuTitleArr1]; |
|
|
|
if (menuImageArr2.count > 0) |
|
{ |
|
[self.ImageArr addObject:menuImageArr2]; |
|
[self.TitleArr addObject:menuTitleArr2]; |
|
} |
|
if (menuImageArr3.count > 0) |
|
{ |
|
[self.ImageArr addObject:menuImageArr3]; |
|
[self.TitleArr addObject:menuTitleArr3]; |
|
} |
|
[self.senerTitleArr addObject:@"定位模式"]; |
|
[self.senerImageArr addObject:@"icon_locate_mode"]; |
|
[self.senerTitleArr addObject:@"拒绝陌生人来电"]; |
|
[self.senerImageArr addObject:@"icon_incoming"]; |
|
if (cUser.cDevice.support_callPhone && cUser.cDevice.support_callPhone.intValue == 1) |
|
[self.senerTitleArr addObject:@"拨号盘开关"]; |
|
[self.senerImageArr addObject:@"icon_dial_switch"]; |
|
|
|
|
|
[self.zx_navLeftBtn setTitle:cUser.cDevice.name forState:0]; |
|
[self.headerView setModel]; |
|
[self.deviceTable reloadData]; |
|
} |
|
|
|
- (void)rightBtnTouch |
|
{ |
|
WeakSelf |
|
[DeviceSwitchover.sharedManager showMenuViewWithAdd:NO Point:CGPointMake(ScreenWidth - 30, getRectNavAndStatusHight - 10)]; |
|
[DeviceSwitchover.sharedManager setSwitchDevice:^(NSInteger index) { |
|
Device *device = cUser.myDevices[index]; |
|
[weakSelf switchDeviceWithDevice:device]; |
|
}]; |
|
} |
|
|
|
//MARK: 切换设备 |
|
/** |
|
切换设备 |
|
@param mainDevice 设备信息 |
|
*/ |
|
-(void)switchDeviceWithDevice:(Device*) mainDevice |
|
{ |
|
cUser.cDevice = mainDevice; |
|
|
|
//MARK: add by lsz 2020-12-28 记录当前设备imei |
|
[User saveDefaultImei:mainDevice.imei]; |
|
|
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ |
|
[self setMainDevWithMainDevCell:cUser.cDevice]; |
|
}); |
|
|
|
xLog(@"-------switchDeviceWithDevice-----------"); |
|
|
|
} |
|
|
|
- (void)setMainDevWithMainDevCell:(Device*)mainDevice |
|
{ |
|
[self setDeviceMenu]; |
|
} |
|
|
|
|
|
/** |
|
解除绑定 方法 |
|
*/ |
|
- (void)unbundlingBtn |
|
{ |
|
// 管理员显示--- 您是设备的管理员,如果您进行解绑,其他绑定该设备的用户,将自动解绑,确认解除绑定吗? F |
|
NSString *title = @"解绑设备"; |
|
NSString *msg = @"\n解除绑定后,将无法对设备进行监护,设备将重启,其他绑定该设备的用户,将自动解绑"; |
|
if([cUser.cDevice.identity isEqualToString:@"admin"]){ |
|
msg = @"\n您是设备的管理员,如果您进行解绑,其他绑定该设备的用户,将自动解绑,确认解除绑定吗?"; |
|
} |
|
|
|
//如果是 imei号登陆 |
|
int type = [myHelper getNowAccoutType:cUser]; |
|
if(type == 3) |
|
{ |
|
msg = @"\n解除绑定后,设备将被恢复出厂设置,确认解除绑定吗?"; |
|
} |
|
UIAlertController *sheet = [myHelper getAlertWithTitle:title |
|
message:msg |
|
actionTitles:@[@"确定"] |
|
style:UIAlertControllerStyleAlert |
|
block:^(UIAlertAction *action) |
|
{ |
|
if ([action.title isEqualToString:@"确定"]) |
|
{ |
|
NSMutableDictionary * parameters = [NSMutableDictionary dictionary]; |
|
[parameters setObject:cUser.cDevice.imei forKey:@"imei"]; |
|
[cUser deleteDeviceSuccess:^(id responseObject) { |
|
int type = [myHelper getNowAccoutType:cUser]; |
|
if(type == 3) |
|
{ |
|
//如果是 imei 号 直接 退出登录 |
|
[[NSNotificationCenter defaultCenter] postNotificationName:@"outLogin" object:nil]; |
|
} |
|
else |
|
{ |
|
//回到首页 |
|
[self updataDeviceListModel]; |
|
} |
|
|
|
} failure:^(id faiObject) { |
|
|
|
}]; |
|
} |
|
}]; |
|
[self presentViewController:sheet animated:YES completion:nil]; |
|
|
|
} |
|
|
|
#pragma mark 远程关机 |
|
/// 远程关机 |
|
- (void)performOperation |
|
{ |
|
NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; |
|
[parameters setObject:@(YES) forKey:@"opPowerOff"]; |
|
[cUser.cDevice editOperationDeviceInfoWithParameters:parameters success:^(id responseObject) { |
|
[SVProgressHUD showSuccessWithStatus:@"远程关机成功"]; |
|
} failure:^(id faiObject) { |
|
|
|
}]; |
|
} |
|
|
|
|
|
- (void)updataDeviceListModel |
|
{ |
|
WEAKSELF |
|
//刷新 关联数据 |
|
if(!cUser){ |
|
[[NSNotificationCenter defaultCenter] postNotificationName:@"outLogin" object:nil]; |
|
return; |
|
} |
|
|
|
Device *defaultDev = nil; |
|
NSString *defaultImei = [User getDefaultImei]; |
|
if (defaultImei && cUser.myDevices) { |
|
for (Device *dev in cUser.myDevices) { |
|
if ([defaultImei isEqualToString:dev.imei]) { |
|
defaultDev = dev; |
|
break; |
|
} |
|
} |
|
} |
|
|
|
if (defaultDev) |
|
{ |
|
cUser.cDevice = defaultDev; |
|
NSLog(@"===default:%@",defaultImei); |
|
} |
|
else if (![cUser.myDevices containsObject:cUser.cDevice] && cUser.myDevices.count > 0) |
|
{ |
|
cUser.cDevice = [cUser.myDevices firstObject]; |
|
} |
|
|
|
[cUser getRelatedDeviceSuccess:^(id responseObject) { |
|
[cUser getUserInfoSuccess:^(id responseObject) { |
|
|
|
BOOL haveJuphoonDevice = NO; |
|
for (Device* item in cUser.myDevices) { |
|
if (item.support_video.integerValue == 4) { |
|
haveJuphoonDevice = YES; |
|
} |
|
} |
|
|
|
if(haveJuphoonDevice) |
|
{ |
|
//MARK:拥有菊风的设备,需要登录 账号 (调试时期暂时停止) |
|
if(![JCManager shared].client) |
|
{ |
|
[[JCManager shared] initializeWithAPPKey:cUser.juphoonKey]; |
|
JCClientLoginParam* loginParam = [[JCClientLoginParam alloc] init]; |
|
loginParam.directConnectEnable = YES; |
|
[[JCManager shared].client setServerAddress:@"http:cn.router.justalkcloud.com:8080"]; |
|
[[JCManager shared].client login:cUser.openid password:@"test" loginParam:loginParam]; |
|
[[JCManager shared].mediaDevice enableSpeaker:YES]; |
|
[JCManager shared].gMianVC = self; |
|
} |
|
} |
|
BOOL haveBairuiDevice = NO; |
|
for (Device* item in cUser.myDevices) |
|
{ |
|
if (item.support_video.integerValue == 5) |
|
{ |
|
haveBairuiDevice = YES; |
|
} |
|
} |
|
|
|
if(haveBairuiDevice) |
|
{ |
|
//MARK:拥有佰锐的设备,需要登录 账号 |
|
if (![[BRManager shared] isUserLogin]) |
|
{ |
|
[[BRManager shared] initialize]; |
|
[BRManager shared].gMianVC = self; |
|
[[BRManager shared] login:cUser.bairui_id nick:cUser.name]; |
|
} |
|
xLog(@"佰锐账号是:%d", [cUser.bairui_id intValue]); |
|
} |
|
BOOL haveTihuDevice = NO; |
|
for (Device* item in cUser.myDevices) |
|
{ |
|
if (item.support_video.integerValue == 6) |
|
{ |
|
haveTihuDevice = YES; |
|
} |
|
} |
|
|
|
if(haveTihuDevice) |
|
{ |
|
//MARK:拥有鹈鹕的设备,需要登录账号 |
|
if (![[TihuManager shared] isUserLogin]) |
|
{ |
|
[[TihuManager shared] initialize]; |
|
[TihuManager shared].gMianVC = self; |
|
[[TihuManager shared] login:cUser.openid pwd:@"123456"]; |
|
|
|
xLog(@"鹈鹕账号是:%@", cUser.openid); |
|
} |
|
} |
|
|
|
//MARK:拥有声网的设备,需要调用查询接口,判断是否有用户在正在通话中的 |
|
for (Device *item in cUser.myDevices) |
|
{ |
|
if (item.support_video.integerValue == 1) |
|
{ |
|
[cUser getVideoInfoWithDeviceImei:item.imei CallType:0 Success:^(NSDictionary *responseObject) { |
|
if ([responseObject valueForKey:@"video_id"]){ |
|
NSLog(@"===%@",responseObject); |
|
if(![[self getCurrentVC] isKindOfClass:[CallViewController class]]) |
|
{ |
|
[weakSelf showCallViewWithDic:responseObject]; |
|
} |
|
|
|
// [[NSNotificationCenter defaultCenter] postNotificationName:@"VideoCall" object:responseObject userInfo:responseObject]; |
|
} |
|
} failure:^{ |
|
|
|
}]; |
|
} |
|
} |
|
} failure:nil]; |
|
|
|
if (cUser.myDevices.count > 0) |
|
{ |
|
[cUser getRelatedChatGroupSuccess:^(id responseObject) { |
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ // TODO 0.5-->0.1 |
|
[weakSelf reloadDisSelectDevicesArr]; |
|
}); |
|
} failure:nil]; |
|
} |
|
else |
|
{ |
|
[weakSelf reloadDisSelectDevicesArr]; |
|
} |
|
|
|
NSString *agreeImei = [User agreeImei]; |
|
Device *agreeDevice; |
|
if (agreeImei && cUser.myDevices) |
|
{ |
|
for (Device *dev in cUser.myDevices) |
|
{ |
|
if ([agreeImei isEqualToString:dev.imei]) |
|
{ |
|
agreeDevice = dev; |
|
break; |
|
} |
|
} |
|
} |
|
|
|
if(agreeDevice) |
|
{ |
|
[weakSelf switchDeviceWithDevice:agreeDevice]; |
|
[User removeAgreeImei]; |
|
} |
|
// MARK 切换到同意的绑定设备 ===================================== |
|
|
|
} failure:nil]; |
|
|
|
|
|
} |
|
/** |
|
刷新 数据,判断设备 是否 被解绑或者新添加了设备 |
|
*/ |
|
-(void)reloadDisSelectDevicesArr |
|
{ |
|
if(cUser.myDevices.count != 0) |
|
{ |
|
//查找 当前的 设备是否是 在 myDevices 中 ,如果不在 , cDevice 用第一个 |
|
Device *mainDevice = cUser.cDevice; |
|
//是否 存在 在列表中 |
|
BOOL isExist = NO; |
|
for (Device* tempDevice in cUser.myDevices) |
|
{ |
|
if([tempDevice.imei isEqualToString:mainDevice.imei]) |
|
{ |
|
isExist = YES; |
|
} |
|
} |
|
if(!isExist) |
|
{ |
|
mainDevice = cUser.myDevices.firstObject; |
|
cUser.cDevice = mainDevice; |
|
} |
|
[self switchDeviceWithDevice:mainDevice]; |
|
} |
|
else |
|
{ |
|
self.tabBarController.selectedIndex = 0; |
|
} |
|
} |
|
|
|
//获取当前屏幕显示的viewcontroller |
|
- (UIViewController *)getCurrentVC |
|
{ |
|
UIViewController *rootViewController = [UIApplication sharedApplication].keyWindow.rootViewController; |
|
UIViewController *currentVC = [self getCurrentVCFrom:rootViewController]; |
|
return currentVC; |
|
} |
|
- (UIViewController *)getCurrentVCFrom:(UIViewController *)rootVC |
|
{ |
|
UIViewController *currentVC; |
|
if ([rootVC presentedViewController]) |
|
{ |
|
// 视图是被presented出来的 |
|
rootVC = [rootVC presentedViewController]; |
|
} |
|
if ([rootVC isKindOfClass:[UITabBarController class]]) |
|
{ |
|
// 根视图为UITabBarController |
|
currentVC = [self getCurrentVCFrom:[(UITabBarController *)rootVC selectedViewController]]; |
|
|
|
} |
|
else if ([rootVC isKindOfClass:[UINavigationController class]]) |
|
{ |
|
// 根视图为UINavigationController |
|
currentVC = [self getCurrentVCFrom:[(UINavigationController *)rootVC visibleViewController]]; |
|
} |
|
else |
|
{ |
|
// 根视图为非导航类 |
|
currentVC = rootVC; |
|
} |
|
return currentVC; |
|
} |
|
|
|
/// 获取单聊群聊未读总数 |
|
- (void)getChatMsgNum |
|
{ |
|
[cUser.cDevice getChatGroupsUnreadTotalSuccess:^(id responseObject) { |
|
|
|
self.unreadTotal = responseObject[@"unreadTotal"]; |
|
[self.deviceTable reloadData]; |
|
|
|
} failure:^(id faiObject) { |
|
|
|
}]; |
|
} |
|
|
|
/* |
|
#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. |
|
} |
|
*/ |
|
|
|
@end
|
|
|