EZDemo/HDLEZDemo/HDLEZDemo/AppDelegate.m
@@ -25,10 +25,10 @@ // Override point for customization after application launch. [[EZSDK sharedInstance] initLibWithAppKey:@"1aa98a90489b4838b966b57018b4b04b" globalAppKey:@"1aa98a90489b4838b966b57018b4b04b"]; // [[EZSDK sharedInstance] initLibWithAppKey:@"941b1b72b6294998acfd36c14931b675" globalAppKey:@"941b1b72b6294998acfd36c14931b675"]; [[EZSDK sharedInstance] setHDlAccessToken:@"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiI5ZmI0M2UyOTdjMTk0NTliOTVlMDUzNzIwZjNiNjYyZiIsImNvbXBhbnlJZCI6IjAiLCJyb2xlIjoiIiwiaGVhZGVyUHJlZml4IjoiQmVhcmVyICIsInVzZXJBY2NvdW50Ijoid3hyIiwidGVuYW50SWQiOiIyMCIsInVzZXJUeXBlIjoiVVNFUl9DIiwidG9rZW5UeXBlIjoiYWNjZXNzX3Rva2VuIiwidXNlck5hbWUiOiJ3eHIiLCJ1c2VyRGF0YVJpZ2h0IjoiMSIsIm9wZW5BcHBsaWNhdGlvbklkIjoiMCIsInVzZXJJZCI6IjEzOTIwMzU1NjgyMDQ0MjMxNjkiLCJleHAiOjE2ODgwMTY4MTQsIm5iZiI6MTY4ODAwOTYxNH0.kJ-NPJIU314yz0pvD4ccmnA7_bwjbB94bpo-FBQZUPUrVz6BVSOvheiP_zzVnW16m2pArt-3O_Y8v4SfnnGWfW5X95AbAHsDwKT0Uva2PZMQaCm07HPbz02tZcRT4ssRCDMQEiDqTqzvp_fL3dhC6IrPLmUbYFy03VEPEJ4Zwtc" refreshToken:@"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiI3YTI1NjE5YTUzNDk0NWE3YTE2MGViODZlZGM3ZmFiNiIsImNvbXBhbnlJZCI6IjAiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidGVuYW50SWQiOiIyMCIsInRva2VuVHlwZSI6InJlZnJlc2hfdG9rZW4iLCJvcGVuQXBwbGljYXRpb25JZCI6IjAiLCJ1c2VySWQiOiIxMzkyMDM1NTY4MjA0NDIzMTY5IiwiZXhwIjoxNjg4NjE0NDE0LCJuYmYiOjE2ODgwMDk2MTR9.NnwX6Bpzv5s3EOTs-o13UB65bCFj_d8K81O9HQkjLbwtQamWs1QY902E1e4j2QM8E5tDFcz5Z5uGcVRyDb2_S09MU6uYArSU3xcKggt4lvdhvxIENrSmFQFBKbA40lNflYo7jZ5Mr2x-vgC0wdYw9s3JMe_jBnNm-KuQKr-rWUo"]; [[EZSDK sharedInstance] setHDlAccessToken:@"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiIyOTRkNmI1ZGIyZTE0OTBiOGVjZGZjMGE1YmZkMzM0MCIsImNvbXBhbnlJZCI6IjAiLCJyb2xlIjoiIiwiaGVhZGVyUHJlZml4IjoiQmVhcmVyICIsInVzZXJBY2NvdW50Ijoid3hyIiwidGVuYW50SWQiOiIyMCIsInVzZXJUeXBlIjoiVVNFUl9DIiwidG9rZW5UeXBlIjoiYWNjZXNzX3Rva2VuIiwidXNlck5hbWUiOiJ3eHIiLCJ1c2VyRGF0YVJpZ2h0IjoiMSIsIm9wZW5BcHBsaWNhdGlvbklkIjoiMCIsInVzZXJJZCI6IjEzOTIwMzU1NjgyMDQ0MjMxNjkiLCJleHAiOjE2ODg3Mjg5MTQsIm5iZiI6MTY4ODcyMTcxNH0.M-Q-M1o0FFIxdU8jjoFP3kHJn9YCtDGa1QDfmEd71fpxP_MfXKLITfZ08OL4ORpgLGM6pKvWHduG-WrR6qJqDiUkL-xFV10pdXXN2OXN6uBRL06Ab5uo3ybOn1YDJTd_LY6HuZxblnckmXNcCCoDEfGqIpTTl00HcEw2E4uexoM" refreshToken:@"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiI1NGRhMzk1ZGE0ZGM0YzgwODYyNGMyY2JlYWZiMjFmNiIsImNvbXBhbnlJZCI6IjAiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidGVuYW50SWQiOiIyMCIsInRva2VuVHlwZSI6InJlZnJlc2hfdG9rZW4iLCJvcGVuQXBwbGljYXRpb25JZCI6IjAiLCJ1c2VySWQiOiIxMzkyMDM1NTY4MjA0NDIzMTY5IiwiZXhwIjoxNjg5MzI2NTE0LCJuYmYiOjE2ODg3MjE3MTR9.FPQUh_0HyO-TYzNhm1gnr8Gpbe2q3LMXkvJR10wZvk1NwYpsU7x4ekBMWYBL_PZ9BT_pEQ_0GzZRIkPQsZ-NgZtx2NmJ9CcE_qTwtyi9JLnpFsYDWn7sWSSpwDYJYmfT04Oqfu466Pgthibc59HZcZo629CjN7FkJCV5Wv3lL5k"]; [[EZSDK sharedInstance] setRequestHttpsHostAndPlatform:@"https://test-gz.hdlcontrol.com" platform:1 homeId:@"1547099040465408002"]; // [[EZSDK sharedInstance] setRequestHttpsHostAndPlatform:@"https://nearest.hdlcontrol.com" platform:1 homeId:@"1546324800135176193"]; [[EZSDK sharedInstance] setEZAccessToken:@"ra.7k5en870837dvic92xsbtkoa4y01rfgr-3nr377z09k-1mihhva-yifqlowra"]; [[EZSDK sharedInstance] setEZAccessToken:@"ra.5b950z7g0d00zrtl62938p9mcq6fr7yj-1e833bz5oi-1lfptjs-2hswa4ysz"]; // [[EZSDK sharedInstance] setEZAccessToken:@"ra.3hkirwcadrpfmaa89wep99io3wto4yds-7zptb10d20-1wxg4f3-ygiojudee"]; EZDemo/HDLEZDemo/HDLEZDemo/Assets.xcassets/hdl_ez_msg_placeholder.imageset/Contents.json
New file @@ -0,0 +1,22 @@ { "images" : [ { "idiom" : "universal", "scale" : "1x" }, { "filename" : "hdl_ez_msg_placeholder@2x.png", "idiom" : "universal", "scale" : "2x" }, { "filename" : "hdl_ez_msg_placeholder@3x.png", "idiom" : "universal", "scale" : "3x" } ], "info" : { "author" : "xcode", "version" : 1 } } EZDemo/HDLEZDemo/HDLEZDemo/Assets.xcassets/hdl_ez_msg_placeholder.imageset/hdl_ez_msg_placeholder@2x.png
EZDemo/HDLEZDemo/HDLEZDemo/Assets.xcassets/hdl_ez_msg_placeholder.imageset/hdl_ez_msg_placeholder@3x.png
EZDemo/HDLEZDemo/HDLEZDemo/EZMain.storyboard
@@ -2072,11 +2072,11 @@ <action selector="HDChanged:" destination="3ZH-14-C2h" eventType="valueChanged" id="fHK-6L-vL6"/> </connections> </switch> <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="rv3-Sh-Gib"> <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" id="rv3-Sh-Gib"> <rect key="frame" x="0.0" y="0.0" width="51" height="31"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <connections> <action selector="privacyMasking:" destination="3ZH-14-C2h" eventType="valueChanged" id="Tj0-Ec-Wey"/> <action selector="privacyMasking:" destination="3ZH-14-C2h" eventType="valueChanged" id="X9h-ed-zD5"/> </connections> </switch> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="hdl_ez_list_next" id="PR2-qZ-cVt"> EZDemo/HDLEZDemo/HDLEZDemo/Info.plist
@@ -9,7 +9,7 @@ <key>NSPhotoLibraryUsageDescription</key> <string>此 App 需要您的同意才能读取媒体资料库</string> <key>NSPhotoLibraryAddUsageDescription</key> <string>此 App 需要您的同意才能读取媒体资料库</string> <string>此 App 需要您的同意才能访问相册权限</string> <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> EZDemo/HDLEZDemo/HDLEZDemo/ViewController.m
@@ -10,9 +10,9 @@ //萤石门锁spk #define HDLEZ_DOOR_SPK @"security.door.ezviz" #define HDLEZ_DEVICEID @"1673936447243640833" #define HDLEZ_DEVICEID @"1678282604879122434" //#define HDLEZ_DEVICESERIAL @"K36229010" #define HDLEZ_DEVICESERIAL @"J92513662" #define HDLEZ_DEVICESERIAL @"L32590140" @interface ViewController ()<EZSDKDelegate> EZDemo/HDLEZDemo/HDLEZDemo/libEZSDK.aBinary files differ
EZDemo/HDLEZDemo/HDLEZDemo/resources/en.lproj/Localizable.strings
@@ -118,6 +118,8 @@ "device_full_scene_sound_off" = "Sound off"; "device_full_scene_quality" = "Articulation"; "device_full_scene_exit_full" = "Exit"; "device_callout_answer" = "Answered"; "device_callout_no_answer" = "Missed"; "dmessage_title"="Message"; "message_read"="Mark as Read"; @@ -156,6 +158,10 @@ "setting_formatting_alert_message" = "You are currently formatting an SD card"; "setting_opration_fail"="Operation failed."; "setting_opration_success"="Completed."; "setting_privacy_masking_ing"="Running, please try again later"; "setting_privacy_masking_fail"="Setup failed, please try again later"; "setting_sd_card_success"="Successful formatting"; "setting_sd_card_fail"="Formatting failed, please try again"; "setting_switching"="Switching. Please wait..."; "setting_device_security_check"="Security Authentication"; "setting_input_code_plz"="Input the device verification code (6 characters on the device label)."; @@ -239,3 +245,11 @@ //通用 "hdl_ez_common_no_data"="No Data"; "hdl_ez_download"="Download"; "hdl_ez_download_selectPhotos" = "Select a photo"; "hdl_ez_download_takePhoto" = "Take a picture"; "hdl_ez_download_selectFrAlbum" = "Select from the albums"; "hdl_ez_download_cancle"= "Cancle"; "hdl_ez_download_tip" = "Tips"; "hdl_ez_download_auth" = "Please authorize access"; "hdl_ez_download_sure" = "Sure"; "hdl_ez_download_toSet" = "Setting"; EZDemo/HDLEZDemo/HDLEZDemo/resources/zh-Hans.lproj/Localizable.strings
@@ -78,6 +78,8 @@ "device_full_scene_sound_off" = "静音"; "device_full_scene_quality" = "清晰度"; "device_full_scene_exit_full" = "退出全屏"; "device_callout_answer" = "已接"; "device_callout_no_answer" = "未接"; "device_open"="开门"; "device_open_success"="开门成功!"; @@ -157,6 +159,10 @@ "setting_formatting_alert_message" = "您当前正在格式化SD卡"; "setting_opration_fail"="操作失败"; "setting_opration_success"="操作成功"; "setting_privacy_masking_ing"="正在执行中,请稍后再试"; "setting_privacy_masking_fail"="设置失败,请稍后再试"; "setting_sd_card_success"="格式化成功"; "setting_sd_card_fail"="格式化失败,请重新再试"; "setting_switching"="正在切换,请稍候..."; "setting_device_security_check"="设备操作安全验证"; "setting_input_code_plz"="请输入该设备的设备验证码(设备标签上的6位字母)"; @@ -240,3 +246,11 @@ //通用 "hdl_ez_common_no_data"="暂无数据"; "hdl_ez_download"="下载"; "hdl_ez_download_selectPhotos" = "选取照片"; "hdl_ez_download_takePhoto" = "拍照"; "hdl_ez_download_selectFrAlbum" = "从相册选取"; "hdl_ez_download_cancle"= "取消"; "hdl_ez_download_tip" = "温馨提示"; "hdl_ez_download_auth" = "请打开访问权限"; "hdl_ez_download_sure" = "确定"; "hdl_ez_download_toSet" = "去设置"; EZSDK.IOS/EZSDK.IOS/ApiDefinition.cs
@@ -3,97 +3,101 @@ namespace EZSDK.IOS { // @protocol EZSDKDelegate <NSObject> [Protocol, Model(AutoGeneratedName = true)] [BaseType(typeof(NSObject))] interface EZSDKDelegate { // @required -(void)addDeviceSuccessed:(NSString *)deviceSerial; [Abstract] [Export("addDeviceSuccessed:")] void AddDeviceSuccessed(string deviceSerial); } // @protocol EZSDKDelegate <NSObject> [Protocol, Model(AutoGeneratedName = true)] [BaseType(typeof(NSObject))] interface EZSDKDelegate { // @required -(void)addDeviceSuccessed:(NSString *)deviceSerial; [Abstract] [Export("addDeviceSuccessed:")] void AddDeviceSuccessed(string deviceSerial); } // @interface EZSDK : NSObject [BaseType(typeof(NSObject))] interface EZSDK { [Wrap("WeakDelegate")] EZSDKDelegate Delegate { get; set; } // @interface EZSDK : NSObject [BaseType(typeof(NSObject))] interface EZSDK { [Wrap("WeakDelegate")] EZSDKDelegate Delegate { get; set; } // @property (nonatomic, weak) id<EZSDKDelegate> delegate; [NullAllowed, Export("delegate", ArgumentSemantic.Weak)] NSObject WeakDelegate { get; set; } // @property (nonatomic, weak) id<EZSDKDelegate> delegate; [NullAllowed, Export("delegate", ArgumentSemantic.Weak)] NSObject WeakDelegate { get; set; } // @property (nonatomic, strong) NSArray * connectTipModels; [Export("connectTipModels", ArgumentSemantic.Strong)] //[Verify(StronglyTypedNSArray)] NSObject[] ConnectTipModels { get; set; } // @property (nonatomic, strong) NSArray * connectTipModels; [Export("connectTipModels", ArgumentSemantic.Strong)] // [Verify(StronglyTypedNSArray)] NSObject[] ConnectTipModels { get; set; } // +(instancetype)sharedInstance; [Static] [Export("sharedInstance")] EZSDK SharedInstance(); // +(instancetype)sharedInstance; [Static] [Export("sharedInstance")] EZSDK SharedInstance(); // -(BOOL)initLibWithAppKey:(NSString *)appKey globalAppKey:(NSString *)globalAppKey; [Export("initLibWithAppKey:globalAppKey:")] bool InitLibWithAppKey(string appKey, string globalAppKey); // -(BOOL)initLibWithAppKey:(NSString *)appKey globalAppKey:(NSString *)globalAppKey; [Export("initLibWithAppKey:globalAppKey:")] bool InitLibWithAppKey(string appKey, string globalAppKey); // -(void)setEZAccessToken:(NSString *)accessToken; [Export("setEZAccessToken:")] void SetEZAccessToken(string accessToken); // -(void)setEZAccessToken:(NSString *)accessToken; [Export("setEZAccessToken:")] void SetEZAccessToken(string accessToken); // -(void)setHDlAccessToken:(NSString *)accessToken refreshToken:(NSString *)refreshToken; [Export("setHDlAccessToken:refreshToken:")] void SetHDlAccessToken(string accessToken, string refreshToken); // -(void)setHDlAccessToken:(NSString *)accessToken refreshToken:(NSString *)refreshToken; [Export("setHDlAccessToken:refreshToken:")] void SetHDlAccessToken(string accessToken, string refreshToken); // -(void)setRequestHttpsHostAndPlatform:(NSString *)requestHttpsHost platform:(int)platform homeId:(NSString *)homeId; [Export("setRequestHttpsHostAndPlatform:platform:homeId:")] void SetRequestHttpsHostAndPlatform(string requestHttpsHost, int platform, string homeId); // -(void)setRequestHttpsHostAndPlatform:(NSString *)requestHttpsHost platform:(int)platform homeId:(NSString *)homeId; [Export("setRequestHttpsHostAndPlatform:platform:homeId:")] void SetRequestHttpsHostAndPlatform(string requestHttpsHost, int platform, string homeId); // -(void)go2EZvizMonitor; [Export("go2EZvizMonitor")] void Go2EZvizMonitor(); // -(void)go2EZvizMonitor; [Export("go2EZvizMonitor")] void Go2EZvizMonitor(); // -(void)toEZDeviceListViewWithFilterTypes:(NSArray *)filterTepes; [Export("toEZDeviceListViewWithFilterTypes:")] //[Verify(StronglyTypedNSArray)] void ToEZDeviceListViewWithFilterTypes(NSObject[] filterTepes); // -(void)toEZDeviceListViewWithFilterTypes:(NSArray *)filterTepes; [Export("toEZDeviceListViewWithFilterTypes:")] // [Verify(StronglyTypedNSArray)] void ToEZDeviceListViewWithFilterTypes(NSObject[] filterTepes); // -(void)addEzvizMonitor; [Export("addEzvizMonitor")] void AddEzvizMonitor(); // -(void)addEzvizMonitor; [Export("addEzvizMonitor")] void AddEzvizMonitor(); // -(void)addEzvizMonitorWithDeviceType:(NSString *)deviceType; [Export("addEzvizMonitorWithDeviceType:")] void AddEzvizMonitorWithDeviceType(string deviceType); // -(void)addEzvizMonitorWithDeviceType:(NSString *)deviceType; [Export("addEzvizMonitorWithDeviceType:")] void AddEzvizMonitorWithDeviceType(string deviceType); // -(void)Play:(id)deviceInfo; [Export("Play:")] void Play(NSObject deviceInfo); // -(void)Play:(id)deviceInfo; [Export("Play:")] void Play(NSObject deviceInfo); // -(void)PlayWithDeviceSerial:(NSString *)deviceSerial; [Export("PlayWithDeviceSerial:")] void PlayWithDeviceSerial(string deviceSerial); // -(void)Play:(id)deviceInfo showCallout:(BOOL)isShow; [Export("Play:showCallout:")] void Play(NSObject deviceInfo, bool isShow); // -(void)PlayWithDeviceSerial:(NSString *)deviceSerial deviceId:(NSString *)deviceId deviceType:(NSString *)deviceType; [Export("PlayWithDeviceSerial:deviceId:deviceType:")] void PlayWithDeviceSerial(string deviceSerial, string deviceId, string deviceType); // -(void)PlayWithDeviceSerial:(NSString *)deviceSerial; [Export("PlayWithDeviceSerial:")] void PlayWithDeviceSerial(string deviceSerial); // -(void)setting:(id)deviceInfo; [Export("setting:")] void Setting(NSObject deviceInfo); // -(void)PlayWithDeviceSerial:(NSString *)deviceSerial deviceId:(NSString *)deviceId deviceType:(NSString *)deviceType; [Export("PlayWithDeviceSerial:deviceId:deviceType:")] void PlayWithDeviceSerial(string deviceSerial, string deviceId, string deviceType); // -(void)playBackVideo:(id)deviceInfo; [Export("playBackVideo:")] void PlayBackVideo(NSObject deviceInfo); // -(void)setting:(id)deviceInfo; [Export("setting:")] void Setting(NSObject deviceInfo); // -(void)toTemPassView:(NSString *)deviceId; [Export("toTemPassView:")] void ToTemPassView(string deviceId); // -(void)playBackVideo:(id)deviceInfo; [Export("playBackVideo:")] void PlayBackVideo(NSObject deviceInfo); // -(void)toDeviceMsgListView:(NSString *)deviceId; [Export("toDeviceMsgListView:")] void ToDeviceMsgListView(string deviceId); } // -(void)toTemPassView:(NSString *)deviceId; [Export("toTemPassView:")] void ToTemPassView(string deviceId); // -(void)toDeviceMsgListView:(NSString *)deviceId; [Export("toDeviceMsgListView:")] void ToDeviceMsgListView(string deviceId); } } EZSDK.IOS/EZSDK.IOS/EZSDK.IOS.csproj
@@ -46,18 +46,15 @@ <ObjcBindingCoreSource Include="Structs.cs" /> </ItemGroup> <ItemGroup> <NativeReference Include="Library\libEZSDK.a"> <Kind>Static</Kind> <Frameworks>UIKit Foundation OpenAL CoreMedia GLKit AudioToolbox ExternalAccessory VideoToolbox MobileCoreServices SystemConfiguration NetworkExtension AVFoundation</Frameworks> <LinkerFlags> -dead_strip -lc++ -lsqlite3.0 -lz -liconv.2.4.0 -lbz2 -ObjC</LinkerFlags> <IsCxx>True</IsCxx> <ForceLoad>True</ForceLoad> </NativeReference> <NativeReference Include="Library\lib\FQDateTimeSDK.framework"> <Kind>Framework</Kind> </NativeReference> <NativeReference Include="Library\lib\EZOpenSDKFramework.framework"> <Kind>Framework</Kind> </NativeReference> <NativeReference Include="Library\libEZSDK.a"> <Kind>Static</Kind> <SmartLink>False</SmartLink> </NativeReference> </ItemGroup> <ItemGroup> @@ -83,6 +80,30 @@ <BundleResource Include="Resources\hdl_ez_wifi_connect_step2%403x.png" /> <BundleResource Include="Resources\hdl_ez_add_device_success%403x.png" /> <BundleResource Include="Resources\hdl_ez_add_device_success%402x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_balance%402x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_balance%403x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_exit%402x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_exit%403x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_hang_up%402x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_hang_up%403x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_hd_full%402x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_hd_full%403x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_pause%402x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_pause%403x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_play%402x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_play%403x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_smooth%402x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_smooth%403x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_sound_off%402x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_sound_off%403x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_volume%402x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_full_volume%403x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_hang_up%402x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_hang_up%403x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_ignore%402x.png" /> <BundleResource Include="Resources\hdl_ez_cat_eyes_ignore%403x.png" /> <BundleResource Include="Resources\large_back_btn%402x.png" /> <BundleResource Include="Resources\large_back_btn%403x.png" /> </ItemGroup> <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" /> </Project> EZSDK.IOS/EZSDK.IOS/Library/libEZSDK.aBinary files differ
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_balance@2x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_balance@3x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_exit@2x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_exit@3x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_hang_up@2x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_hang_up@3x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_hd_full@2x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_hd_full@3x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_pause@2x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_pause@3x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_play@2x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_play@3x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_smooth@2x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_smooth@3x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_sound_off@2x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_sound_off@3x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_volume@2x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_full_volume@3x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_hang_up@2x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_hang_up@3x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_ignore@2x.png
EZSDK.IOS/EZSDK.IOS/Resources/hdl_ez_cat_eyes_ignore@3x.png
EZSDK.IOS/EZSDK.IOS/Resources/large_back_btn@2x.png
EZSDK.IOS/EZSDK.IOS/Resources/large_back_btn@3x.png
EZSDK/EZSDK/EZ/Global/EZHttpUtil.h
@@ -145,19 +145,19 @@ /** * @since 河东获取设备消息 * @param deviceId 设备id * @param deviceSerial 设备序列号 * @param completion 回调block,error为空时表示成功 */ - (void)getCoverSwitchStatus:(NSString *)deviceId - (void)getCoverSwitchStatus:(NSString *)deviceSerial completion:(void (^)(ResponseData *responseData))completion; /** * @since 河东获取设备消息 * @param deviceId 设备id * @param deviceSerial 设备序列号 * @param enable 隐私遮蔽状态 * @param completion 回调block,error为空时表示成功 */ - (void)getCoverSwitchStatus:(NSString *)deviceId - (void)coverSwitchStatus:(NSString *)deviceSerial enable:(NSInteger)enable completion:(void (^)(ResponseData *responseData))completion; EZSDK/EZSDK/EZ/Global/EZHttpUtil.m
@@ -425,18 +425,18 @@ } /** * @since 河东获取设备消息 * @param deviceId 设备id * @since 获取镜头隐私遮蔽状态 * @param deviceSerial 设备序列号 * @param completion 回调block,error为空时表示成功 */ - (void)getCoverSwitchStatus:(NSString *)deviceId - (void)getCoverSwitchStatus:(NSString *)deviceSerial completion:(void (^)(ResponseData *responseData))completion { //设置请求参数 NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; [parameters setValue:deviceId forKey:@"deviceId"]; [parameters setValue:deviceSerial forKey:@"deviceSerial"]; [parameters setValue:@(1) forKey:@"platform"]; [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"]; [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"]; [parameters setValue:@([[GlobalKit shareKit].hdlHomeId integerValue]) forKey:@"homeId"]; parameters = [self GetSignRequestDictionary:parameters]; @@ -450,17 +450,17 @@ } /** * @since 河东获取设备消息 * @param deviceId 设备id * @since 设置镜头隐私遮蔽状态 * @param deviceSerial 设备序列号 * @param enable 隐私遮蔽状态 * @param completion 回调block,error为空时表示成功 */ - (void)getCoverSwitchStatus:(NSString *)deviceId - (void)coverSwitchStatus:(NSString *)deviceSerial enable:(NSInteger)enable completion:(void (^)(ResponseData *responseData))completion { //设置请求参数 NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; [parameters setValue:deviceId forKey:@"deviceId"]; [parameters setValue:deviceSerial forKey:@"deviceSerial"]; [parameters setValue:@(enable) forKey:@"enable"]; [parameters setValue:@(1) forKey:@"platform"]; [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"]; EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZDeviceMsgListViewController.m
@@ -110,39 +110,15 @@ weakSelf.msgListModel=[HDLEZDevMsgListModel yy_modelWithDictionary:responseData.data]; if (responseData.success) { weakSelf.msgListModel=[HDLEZDevMsgListModel yy_modelWithDictionary:responseData.data]; if (weakSelf.msgListModel.list.count!=0) { [weakSelf.msgList addObjectsFromArray:weakSelf.msgListModel.list]; weakSelf.msgListV.msgList=weakSelf.msgList; if (weakSelf.currentPageNo == 1) { [weakSelf.msgList removeAllObjects]; } [weakSelf.msgList addObjectsFromArray:weakSelf.msgListModel.list]; weakSelf.msgListV.msgList=weakSelf.msgList; if (weakSelf.msgListModel.list.count == weakSelf.pageSize) { weakSelf.currentPageNo+=1; }else{ #warning mock if (weakSelf.msgList.count == 0) { HDLEZDeviceMsgInfoModel *model = [[HDLEZDeviceMsgInfoModel alloc] init]; model.title = @"mock title 你好你好我是超长的测试标题,你来看下是否超出长度,你好你好我是超长的测试标题,你来看下是否超出长度"; model.createTime = @"2023.06.15"; model.content = @"mock content"; model.imageUrl = @"https://upload-images.jianshu.io/upload_images/5809200-a99419bb94924e6d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"; [weakSelf.msgList addObject:model]; HDLEZDeviceMsgInfoModel *model1 = [[HDLEZDeviceMsgInfoModel alloc] init]; model1.title = @"mock title1,你好你好"; model1.createTime = @"2023.06.15"; model1.content = @"mock content1"; model1.imageUrl = @"http://b.hiphotos.baidu.com/image/pic/item/e824b899a9014c08878b2c4c0e7b02087af4f4a3.jpg"; [weakSelf.msgList addObject:model1]; HDLEZDeviceMsgInfoModel *model2 = [[HDLEZDeviceMsgInfoModel alloc] init]; model2.title = @"mock title2"; model2.createTime = @"2023.06.15"; model2.content = @"mock content2"; model2.imageUrl = @"https://fastly.picsum.photos/id/452/1000/3000.jpg?hmac=g6GQYs1wmiPeoKOdwI3ot1y4MInIj_dnPk_jCYbVYfk"; [weakSelf.msgList addObject:model2]; } weakSelf.msgListV.msgList=weakSelf.msgList; [weakSelf.footer endRefreshingWithNoMoreData]; } [weakSelf.footer endRefreshingWithNoMoreData]; }else{ [weakSelf.view makeToast:responseData.message duration:1.5 @@ -168,6 +144,18 @@ } - (void)didClickDownLoad:(MWPhotoBrowser *)photoBrowser { __weak __typeof(self)weakSelf = self; [self authPhotoLibraries:^(BOOL isAblity) { if (isAblity) { [weakSelf downloadTheImage]; } else { [weakSelf guideUserOpenAuth]; } }]; } - (void)downloadTheImage { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ if (!self.currentPreviewPhoto || self.currentPreviewPhoto.length == 0) { [UIView dd_showMessage:NSLocalizedString(@"device_save_gallery_failure", @"下载失败")]; @@ -201,9 +189,59 @@ } else { message = [error description]; message = NSLocalizedString(@"device_save_gallery_failure", @"下载失败"); NSLog(@"#######图片保存失败:%@", [error description]); } [UIView dd_showMessage:message]; } /*访问相册权限 */ -(void)authPhotoLibraries:(void(^)(BOOL isAblity))result { PHAuthorizationStatus author =[PHPhotoLibrary authorizationStatus]; if (author == PHAuthorizationStatusRestricted || author ==PHAuthorizationStatusDenied){ if (result) { result(NO); } } else if (author == PHAuthorizationStatusNotDetermined) { // 首次授权 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(queue, ^{ [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) { if (status != PHAuthorizationStatusAuthorized) { if (result) { result(NO); } } else { if (result) { result(YES); } } }]; }); } else { if (result) { result(YES); } } } /*引导用户授权获取图片 */ - (void)guideUserOpenAuth{ UIAlertController *alertC = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"hdl_ez_download_tip", @"温馨提示") message:NSLocalizedString(@"hdl_ez_download_auth", @"请打开访问权限") preferredStyle:(UIAlertControllerStyleAlert)]; UIAlertAction *alertA = [UIAlertAction actionWithTitle:NSLocalizedString(@"hdl_ez_download_cancle", @"取消") style:(UIAlertActionStyleDefault) handler:nil]; UIAlertAction *act = [UIAlertAction actionWithTitle:NSLocalizedString(@"hdl_ez_download_toSet", @"去设置") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { // 引导用户设置 NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; if ([[UIApplication sharedApplication] canOpenURL:url]) { [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil]; } }]; [alertC addAction:alertA]; [alertC addAction:act]; [self presentViewController:alertC animated:YES completion:nil]; } #pragma mark PrivateMethod @@ -212,6 +250,7 @@ self.photos = [NSMutableArray array]; [self.photos addObject:[MWPhoto photoWithURL:[NSURL URLWithString:picUrl]]]; MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self]; browser.zoomPhotosToFill = NO; [browser showDownloadBtn]; [self.navigationController pushViewController:browser animated:NO]; EZSDK/EZSDK/EZ/TempPassword/Models/HDLEZDeviceMsgInfoModel.h
@@ -7,6 +7,13 @@ #import <Foundation/Foundation.h> @interface HDLEZDeviceMsgExtInfoModel : NSObject @property (nonatomic, copy)NSString *picUrl; //截屏图片链接 @property (nonatomic, copy)NSString *answerStatus; // 接听状态 answer 已接听 no_answer 未接听 @end NS_ASSUME_NONNULL_BEGIN @interface HDLEZDeviceMsgInfoModel : NSObject @@ -14,7 +21,7 @@ @property (nonatomic, copy)NSString *content;//内容 @property (nonatomic, copy)NSString *level;//消息等级 @property (nonatomic, copy)NSString *createTime;//创建时间 @property (nonatomic, copy)NSString *imageUrl;//截屏图片链接 @property (nonatomic, strong) HDLEZDeviceMsgExtInfoModel *extInfo; // 2.0版本扩展信息 @end NS_ASSUME_NONNULL_END EZSDK/EZSDK/EZ/TempPassword/Models/HDLEZDeviceMsgInfoModel.m
@@ -9,4 +9,12 @@ @implementation HDLEZDeviceMsgInfoModel + (NSDictionary *)modelContainerPropertyGenericClass { return @{@"extInfo" : [HDLEZDeviceMsgExtInfoModel class]}; } @end @implementation HDLEZDeviceMsgExtInfoModel @end EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZDeviceMsgListView.m
@@ -74,8 +74,8 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (self.msgList.count <= indexPath.row) return; HDLEZDeviceMsgInfoModel *messageModel = self.msgList[indexPath.row]; if (self.previewPic && messageModel.imageUrl && messageModel.imageUrl.length > 0) { self.previewPic(messageModel.imageUrl); if (self.previewPic && messageModel.extInfo.picUrl && messageModel.extInfo.picUrl.length > 0) { self.previewPic(messageModel.extInfo.picUrl); } } @@ -90,19 +90,17 @@ HDLEZDeviceMsgInfoModel *messageModel = self.msgList[indexPath.row]; #warning mock NSString *stataus = @""; if (indexPath.row == 0) { stataus = @"未接"; messageModel.createTime = @""; } else if (indexPath.row == 1) { stataus = @"已接"; NSString *status = @""; if ([messageModel.extInfo.answerStatus isEqualToString:@"answer"]) { status = HDLEZLocallizedString(@"device_callout_answer"); } else if (([messageModel.extInfo.answerStatus isEqualToString:@"no_answer"])) { status = HDLEZLocallizedString(@"device_callout_no_answer"); } if (messageModel.createTime && messageModel.createTime.length == 13) { if (messageModel.createTime && messageModel.createTime.length == 13) { // 毫秒转秒 messageModel.createTime = [messageModel.createTime substringToIndex:10]; } NSString *messageTime = [self turnDate:messageModel.createTime]; [cell configMessageInfoWithTitle:messageModel.content deviceStatus:stataus messageTime:messageTime messageImage:indexPath.row != 0 ? messageModel.imageUrl : @""]; [cell configMessageInfoWithTitle:messageModel.content deviceStatus:status messageTime:messageTime messageImage:messageModel.extInfo.picUrl]; [cell showSpearator:(self.msgList.count != indexPath.row + 1)]; } EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVideoDoorMsgCell.m
@@ -91,7 +91,7 @@ self.timeLabel.text = time; } if (messageUrl && messageUrl.length > 0) { [self.messageImageView sd_setImageWithURL:[NSURL URLWithString:messageUrl] placeholderImageScale:[UIImage imageNamed:@""]]; [self.messageImageView sd_setImageWithURL:[NSURL URLWithString:messageUrl] placeholderImageScale:[UIImage imageNamed:@"hdl_ez_msg_placeholder"]]; [self.messageImageView mas_updateConstraints:^(MASConstraintMaker *make) { make.width.mas_equalTo(72.); }]; EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVideoDoorToolView.h
@@ -46,6 +46,10 @@ /// - Parameter isRing: 是否正在响铃🔔 - (void)ringRingRing:(BOOL)isRing; /// 隐藏/展示视频清晰度弹框(全屏状态下) /// - Parameter isSelected: 隐藏 - (void)qualityStatusChanged:(BOOL)isSelected; @end NS_ASSUME_NONNULL_END EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVideoDoorToolView.m
@@ -178,6 +178,7 @@ - (void)playAction { [self playStatus:!self.isPlaying]; [self qualityStatusChanged:YES]; if (self.fullOperation) { self.fullOperation(self.isPlaying ? HDLEZVideoFullSceneOperationOfPause : HDLEZVideoFullSceneOperationOfPlay); } @@ -185,22 +186,29 @@ - (void)volumeAction { [self soundOn:!self.soundOn]; [self qualityStatusChanged:YES]; if (self.fullOperation) { self.fullOperation(self.soundOn ? HDLEZVideoFullSceneOperationOfSound : HDLEZVideoFullSceneOperationOfSoundOff); } } - (void)qualityAction { // if (self.qualityControlBlock) { // self.qualityControlBlock(self.videoLevel); // } self.qualityButton.selected = !self.qualityButton.selected; self.qualityBox.hidden = !self.qualityButton.selected; self.hangUpButton.enabled = !self.qualityButton.selected; self.hangUpButton.alpha = self.qualityButton.selected ? 0.5 : 1; // self.qualityButton.selected = !self.qualityButton.selected; // self.qualityBox.hidden = !self.qualityButton.selected; // self.hangUpButton.enabled = !self.qualityButton.selected; // self.hangUpButton.alpha = self.qualityButton.selected ? 0.5 : 1; [self qualityStatusChanged:self.qualityButton.selected]; } - (void)qualityStatusChanged:(BOOL)isSelected { self.qualityButton.selected = !isSelected; self.qualityBox.hidden = isSelected; self.hangUpButton.enabled = isSelected; self.hangUpButton.alpha = !isSelected ? 0.5 : 1; } - (void)fullSceneAction { [self qualityStatusChanged:YES]; if (self.fullOperation) { self.fullOperation(HDLEZVideoFullSceneOperationOfExitFull); } EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
@@ -149,6 +149,7 @@ //初始化相关数据 [self initialData]; [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:HDLEZHEXCOLOR(0x1B2D4D, 1.),NSFontAttributeName:[UIFont systemFontOfSize:18]}]; // self.talkButton.enabled = self.deviceInfo.isSupportTalk; // self.controlButton.enabled = self.deviceInfo.isSupportPTZ; @@ -1728,13 +1729,11 @@ } break; case HDLEZVideoFullSceneOperationOfSound: { // 开启音量 [_player openSound]; NSLog(@"#######开启音量"); [self voiceButtonClicked:self.voiceButton]; } break; case HDLEZVideoFullSceneOperationOfSoundOff: { // 静音 [_player closeSound]; NSLog(@"#######静音"); [self voiceButtonClicked:self.voiceButton]; } break; case HDLEZVideoFullSceneOperationOfSmooth: { // 流畅 @@ -1758,6 +1757,12 @@ } } - (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { if (!self.fullSceneToolView.hidden) { [self.fullSceneToolView qualityStatusChanged:YES]; } } #pragma Setter - (void)setIsShowAlert:(BOOL)isShowAlert { _isShowAlert = isShowAlert; EZSDK/EZSDK/EZ/UIViewControllers/EZSettingViewController.m
@@ -34,8 +34,11 @@ @property (nonatomic, weak) IBOutlet UILabel *nVersionLabel; @property (nonatomic, weak) IBOutlet UIImageView *updateImageView; @property (nonatomic, strong) UIButton *deleteButton; @property (nonatomic, strong) UIButton *privacyMaskButton; // 隐私遮蔽执行过程提醒按钮 @property (nonatomic, strong) EZDeviceVersion *deviceVersion; @property (nonatomic, strong) NSTimer *timer; @property (nonatomic, assign) BOOL isCatEye; // 是否为猫眼 @property (nonatomic, assign) BOOL privacyMasking; // 隐私遮蔽设置中 @end @@ -50,6 +53,14 @@ [super viewDidLoad]; self.title = NSLocalizedString(@"setting_device_set_title", @"设备设置"); // 猫眼 CS-DH1, CS-DP1, CS-CV336, CS-CTQ1P // 门锁 DL30V,Y3000FV,DL20VC,DL31FS,DL30F,DL30,Y3000FVS,Y3000F self.isCatEye = NO; self.privacyMasking = NO; self.privacyMaskSwitch.on = NO; if ([self.deviceInfo.deviceType containsString:@"CS-DH1"] || [self.deviceInfo.deviceType containsString:@"CS-DP1"] || [self.deviceInfo.deviceType containsString:@"CS-CV336"] || [self.deviceInfo.deviceType containsString:@"CS-CTQ1P"]) { self.isCatEye = YES; } // Uncomment the following line to preserve selection between presentations. // self.clearsSelectionOnViewWillAppear = NO; @@ -81,8 +92,10 @@ self.videoSwitch.on = self.deviceInfo.isEncrypt; } [_settingList addObject:@[NSLocalizedString(@"setting_hardware_decoding", @"硬解码")]]; [_settingList addObject:@[NSLocalizedString(@"setting_privacy_masking", @"隐私遮蔽")]]; [_settingList addObject:@[NSLocalizedString(@"setting_sd_card_formatting", @"SD卡格式化")]]; if (!self.isCatEye) { [_settingList addObject:@[NSLocalizedString(@"setting_privacy_masking", @"隐私遮蔽")]]; [_settingList addObject:@[NSLocalizedString(@"setting_sd_card_formatting", @"SD卡格式化")]]; } [_settingList addObject:@[NSLocalizedString(@"delete", @"删除")]]; self.serialLabel.text = self.deviceInfo.deviceSerial; @@ -104,6 +117,12 @@ [self.privacyMaskSwitch setOn:NO]; [self getPrivacyMaskSwitchStatus]; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; [self.privacyMaskSwitch addSubview:self.privacyMaskButton]; [self.privacyMaskButton addTarget:self action:@selector(privacyMaskingAction:) forControlEvents:UIControlEventTouchUpInside]; [self.privacyMaskButton mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.mas_equalTo(UIEdgeInsetsZero); }]; // [[EzvizDeviceManager sharedManager] startP2PHolePunching:_cameraInfo.cameraId completion:^(BOOL result, NSError *error) { // NSLog(@"result = %d, error = %@", result, error); // }]; @@ -170,7 +189,15 @@ __weak __typeof(self)weakSelf = self; [EZHttpUtil.sharedManager getCoverSwitchStatus:self.deviceInfo.deviceSerial completion:^(ResponseData * _Nonnull responseData) { if(responseData.success) { NSLog(@"#############打印数据:%@", responseData); NSDictionary *dataDic = responseData.data; if (dataDic && [[dataDic allKeys] containsObject:@"enable"]) { // 包含隐私遮蔽功能属性 weakSelf.privacyMaskSwitch.enabled = YES; [weakSelf.privacyMaskSwitch setOn:[[dataDic objectForKey:@"enable"] boolValue]]; } else { // 不包含该功能 weakSelf.privacyMaskSwitch.enabled = NO; } } else { weakSelf.privacyMaskSwitch.enabled = NO; } }]; } @@ -195,6 +222,7 @@ cell.textLabel.textColor = HDLEZHEXCOLOR(0x1B2D4D, 1.0); cell.textLabel.textAlignment = NSTextAlignmentLeft; cell.accessoryType = UITableViewCellAccessoryNone; cell.accessoryView = nil; if (indexPath.section == 0) { [cell.contentView addSubview:self.nameLabel]; @@ -235,14 +263,27 @@ } else if (indexPath.section == 6) { [cell.contentView addSubview:self.privacyMaskSwitch]; [self.privacyMaskSwitch mas_remakeConstraints:^(MASConstraintMaker *make) { make.trailing.mas_equalTo(@(-17)); make.centerY.mas_equalTo(cell.contentView.mas_centerY); make.width.mas_equalTo(@51); make.height.mas_equalTo(@31); }]; self.privacyMaskSwitch.on = !self.privacyMaskSwitch.on; if (self.isCatEye) { // 猫眼 cell.backgroundColor = [UIColor clearColor]; cell.contentView.backgroundColor = [UIColor clearColor]; cell.textLabel.text = @""; [cell.contentView addSubview:self.deleteButton]; [self.deleteButton addTarget:self action:@selector(deleteAction) forControlEvents:UIControlEventTouchUpInside]; [self.deleteButton mas_remakeConstraints:^(MASConstraintMaker *make) { make.centerX.mas_equalTo(cell.contentView.mas_centerX); make.left.mas_equalTo(cell.contentView.mas_left).offset(77.); make.bottom.mas_equalTo(cell.contentView.mas_bottom); make.height.mas_equalTo(@44); }]; } else { // 摄像头 [cell.contentView addSubview:self.privacyMaskSwitch]; [self.privacyMaskSwitch mas_remakeConstraints:^(MASConstraintMaker *make) { make.trailing.mas_equalTo(@(-17)); make.centerY.mas_equalTo(cell.contentView.mas_centerY); make.width.mas_equalTo(@51); make.height.mas_equalTo(@31); }]; } } else if (indexPath.section == 7) { @@ -321,7 +362,7 @@ } - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return (indexPath.section == 8) ? 92 : 50.; return ((!self.isCatEye && indexPath.section == 8) || (self.isCatEye && indexPath.section == 6)) ? 92 : 50.; } - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { @@ -329,7 +370,7 @@ } - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { return (section == 0 || section == 2 || section == 6) ? 8.0f : 0.001f; return (section == 0 || section == 2 || (!self.isCatEye && section == 6)) ? 8.0f : 0.001f; } - (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { @@ -382,13 +423,17 @@ UIAlertController *alert=[UIAlertController alertControllerWithTitle:HDLEZLocallizedString(@"alert_title") message:HDLEZLocallizedString(@"setting_formatting_alert_message") preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *cancle=[UIAlertAction actionWithTitle:HDLEZLocallizedString(@"device_temp_cancle") style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { }]; __weak __typeof(self)weakSelf = self; UIAlertAction *sure=[UIAlertAction actionWithTitle:HDLEZLocallizedString(@"device_temp_sure") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [EZOPENSDK formatStorage:self.deviceInfo.deviceSerial storageIndex:0 completion:^(NSError *error) { NSLog(@"format command error = %@", error); [UIView dd_showMessage:error.description]; if (error) { NSLog(@"format command error = %@", error); [UIView dd_showMessage:NSLocalizedString(@"setting_sd_card_fail", @"格式化失败,请重新再试")]; } else { NSLog(@"format command error = %@", error); [UIView dd_showMessage:NSLocalizedString(@"setting_sd_card_success", @"格式化成功")]; } }]; }]; [alert addAction:cancle]; @@ -588,6 +633,37 @@ - (IBAction)privacyMasking:(id)sender { UISwitch *pmSwitch = (UISwitch*)sender; BOOL status = pmSwitch.isOn; // if (self.privacyMasking) { // self.privacyMaskSwitch.on = !status; // [UIView dd_showMessage:@"正在执行中,请稍后再试"]; // return; // } // // NSLog(@"#############设置状态:%@", status ? @"开启" : @"关闭"); __weak __typeof(self)weakSelf = self; self.privacyMaskSwitch.enabled = NO; self.privacyMaskButton.hidden = NO; [self performSelector:@selector(delayPrivacyMasking) withObject:nil afterDelay:10.0]; [EZHttpUtil.sharedManager coverSwitchStatus:self.deviceInfo.deviceSerial enable:(status ? 1 : 0) completion:^(ResponseData * _Nonnull responseData) { if(responseData.success) { NSLog(@"#############设置成功:%@", responseData.data); } else { NSLog(@"#############设置失败:%@", responseData.message); [UIView dd_showMessage:NSLocalizedString(@"setting_privacy_masking_fail", @"设置失败,请稍后再试")]; [weakSelf.privacyMaskSwitch setOn:!status]; } weakSelf.privacyMaskSwitch.enabled = YES; }]; } - (void)privacyMaskingAction:(id)sender { [UIView dd_showMessage:NSLocalizedString(@"setting_privacy_masking_ing", @"正在执行中,请稍后再试")]; } - (void)delayPrivacyMasking { self.privacyMaskButton.hidden = YES; // self.privacyMaskSwitch.enabled = YES; } - (IBAction)encryptChanged:(id)sender @@ -653,4 +729,13 @@ return _deleteButton; } - (UIButton *)privacyMaskButton { if (!_privacyMaskButton) { _privacyMaskButton = [UIButton buttonWithType:UIButtonTypeCustom]; _privacyMaskButton.backgroundColor = [UIColor clearColor]; _privacyMaskButton.hidden = YES; } return _privacyMaskButton; } @end