From 23d7cefd31bd431dd177b3b5267331e070c5fc5f Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期一, 17 七月 2023 13:26:01 +0800 Subject: [PATCH] 视频门锁 --- HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage2.png | 0 HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage3.png | 0 HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs | 4 HDL-ON_Android/Assets/Language.ini | 30 + HDL-ON_iOS/HDL-ON_iOS.csproj | 4 HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockAudioSetupPage.cs | 444 ++++++++++++++++++++++++ HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockFaceUnlockTriggerSettingPage.cs | 92 +++- HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage1.png | 0 HDL_ON/HDL_ON.projitems | 2 HDL-ON_Android/HDL-ON_Android.csproj | 4 HDL-ON_iOS/Resources/Language.ini | 149 ++++++++ HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage2.png | 0 HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage3.png | 0 HDL_ON/Common/HDLCommon.cs | 23 HDL_ON/UI/MainPage.cs | 2 HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockFaceUnlockHelpPage.cs | 160 ++++++++ HDL_ON/Entity/Function/Scene.cs | 2 HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs | 54 +- HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/UnlockSettingFacePage.cs | 7 HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage1.png | 0 HDL_ON/DAL/Server/NewAPI.cs | 16 HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage4.png | 0 HDL_ON/Common/R.cs | 21 + HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage4.png | 0 HDL_ON/DAL/Server/HttpServerRequest.cs | 63 +++ 25 files changed, 1,015 insertions(+), 62 deletions(-) diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini index 3288112..2f08a7f 100644 --- a/HDL-ON_Android/Assets/Language.ini +++ b/HDL-ON_Android/Assets/Language.ini @@ -657,6 +657,12 @@ 670=After entering the detection range, the door lock will automatically recognize the face and unlock it 671=Note: The distance for recognizing faces is affected by the trigger sensitivity, and the higher the sensitivity, the farther the recognition distance. 672=Need to touch the door lock number button, wake up the door lock, recognize the face, and unlock it +673=Door lock system volume +674=Doorbell volume +675=Low +676=Moderate +677=High + @@ -1987,7 +1993,11 @@ 670=杩涘叆妫�娴嬭寖鍥村悗锛岄棬閿佸皢鑷姩璇嗗埆浜鸿劯骞跺紑閿� 671=娉細璇嗗埆浜鸿劯鐨勮窛绂伙紝浼氬彈瑙﹀彂鐏垫晱搴﹀奖鍝嶏紝鐏垫晱搴﹁秺楂橈紝璇嗗埆璺濈瓒婅繙銆� 672=闇�瑕佽Е鎽搁棬閿佹暟瀛楁寜閿紝鍞ら啋闂ㄩ攣鍚庤瘑鍒汉鑴稿苟寮�閿� - +673=闂ㄩ攣绯荤粺闊抽噺 +674=闂ㄩ搩闊抽噺 +675=浣� +676=涓� +677=楂� 2532=璁垮閭�璇疯褰� @@ -3316,6 +3326,12 @@ 670=After entering the detection range, the door lock will automatically recognize the face and unlock it 671=Note: The distance for recognizing faces is affected by the trigger sensitivity, and the higher the sensitivity, the farther the recognition distance. 672=Need to touch the door lock number button, wake up the door lock, recognize the face, and unlock it +673=Door lock system volume +674=Doorbell volume +675=Low +676=Moderate +677=High + @@ -4642,6 +4658,12 @@ 670=After entering the detection range, the door lock will automatically recognize the face and unlock it 671=Note: The distance for recognizing faces is affected by the trigger sensitivity, and the higher the sensitivity, the farther the recognition distance. 672=Need to touch the door lock number button, wake up the door lock, recognize the face, and unlock it +673=Door lock system volume +674=Doorbell volume +675=Low +676=Moderate +677=High + @@ -5955,6 +5977,12 @@ 670=After entering the detection range, the door lock will automatically recognize the face and unlock it 671=Note: The distance for recognizing faces is affected by the trigger sensitivity, and the higher the sensitivity, the farther the recognition distance. 672=Need to touch the door lock number button, wake up the door lock, recognize the face, and unlock it +673=Door lock system volume +674=Doorbell volume +675=Low +676=Moderate +677=High + diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage1.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage1.png new file mode 100644 index 0000000..5efa4a0 --- /dev/null +++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage1.png Binary files differ diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage2.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage2.png new file mode 100644 index 0000000..6a5c024 --- /dev/null +++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage2.png Binary files differ diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage3.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage3.png new file mode 100644 index 0000000..926fc67 --- /dev/null +++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage3.png Binary files differ diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage4.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage4.png new file mode 100644 index 0000000..0976ecb --- /dev/null +++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/DoorlockHelpImage4.png Binary files differ diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj index 0123a86..6e57475 100644 --- a/HDL-ON_Android/HDL-ON_Android.csproj +++ b/HDL-ON_Android/HDL-ON_Android.csproj @@ -450,6 +450,10 @@ <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\ManualTriggerIcon_blue.png" /> <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\ManualTriggerIcon_white.png" /> <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\TouchUnlcokImage.png" /> + <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\DoorlockHelpImage1.png" /> + <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\DoorlockHelpImage2.png" /> + <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\DoorlockHelpImage3.png" /> + <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\DoorlockHelpImage4.png" /> </ItemGroup> <ItemGroup> <AndroidResource Include="Resources\values\colors.xml" /> diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj index c5546d5..de9bfc0 100644 --- a/HDL-ON_iOS/HDL-ON_iOS.csproj +++ b/HDL-ON_iOS/HDL-ON_iOS.csproj @@ -1610,6 +1610,10 @@ <BundleResource Include="Resources\Phone\FunctionIcon\DoorLock\ManualTriggerIcon_blue.png" /> <BundleResource Include="Resources\Phone\FunctionIcon\DoorLock\ManualTriggerIcon_white.png" /> <BundleResource Include="Resources\Phone\FunctionIcon\DoorLock\TouchUnlcokImage.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\DoorLock\DoorlockHelpImage1.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\DoorLock\DoorlockHelpImage2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\DoorLock\DoorlockHelpImage3.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\DoorLock\DoorlockHelpImage4.png" /> </ItemGroup> <ItemGroup> <ITunesArtwork Include="iTunesArtwork" /> diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini index 190536e..2f08a7f 100644 --- a/HDL-ON_iOS/Resources/Language.ini +++ b/HDL-ON_iOS/Resources/Language.ini @@ -634,6 +634,36 @@ 647=Face key 648=Delete user 649=Activity detection +650=Do you want to delete this user? +651=Successfully deleted +652=Unlock settings +653=Face unlock settings +654=Press the button to unlock twice +655=To unlock indoors, press the unlock button twice to prevent children or pets from accidentally touching the lock +656=Child lock mode +657=After opening, the door cannot be unlocked through buttons, only the emergency knob can be used to unlock +658=Anti lock mode +659=After opening, ordinary users cannot unlock, while the main user can still unlock. After opening the door with the indoor button, the anti lock mode will automatically close +660=Deployment mode +661=It is recommended to change the mode when leaving home for a long time. It can also be activated by pressing the blue button that lights up on the door lock keyboard after closing the door +662=Audio settings +663=Battery management +664=Face unlocking +665=After opening, the device can perform facial recognition and unlock +666=Trigger mode +667=Face entry help +668=Manual triggering +669=Automatic triggering +670=After entering the detection range, the door lock will automatically recognize the face and unlock it +671=Note: The distance for recognizing faces is affected by the trigger sensitivity, and the higher the sensitivity, the farther the recognition distance. +672=Need to touch the door lock number button, wake up the door lock, recognize the face, and unlock it +673=Door lock system volume +674=Doorbell volume +675=Low +676=Moderate +677=High + + @@ -1940,7 +1970,34 @@ 647=浜鸿劯閽ュ寵 648=鍒犻櫎鐢ㄦ埛 649=娲诲姩妫�娴� - +650=鏄惁鍒犻櫎璇ョ敤鎴凤紵 +651=鍒犻櫎鎴愬姛 +652=寮�閿佽缃� +653=浜鸿劯寮�閿佽缃� +654=鎸夐敭涓ゆ寮�閿� +655=瀹ゅ唴寮�閿侊紝闇�鎸変袱娆″紑閿侀敭锛屼互闃插効绔ャ�佸疇鐗╄瑙﹀紑閿� +656=绔ラ攣妯″紡 +657=寮�鍚悗,瀹ゅ唴涓嶈兘閫氳繃鎸夐敭寮�閿�,浠呭彲浣跨敤搴旀�ユ棆閽紑閿� +658=鍙嶉攣妯″紡 +659=寮�鍚悗,鏅�氱敤鎴蜂笉鍙紑閿�,涓荤敤鎴蜂粛鍙紑閿�,瀹ゅ唴鎸夐敭寮�闂ㄥ悗鍙嶉攣妯″紡灏嗚嚜鍔ㄥ叧闂� +660=甯冮槻妯″紡 +661=闀挎湡绂诲寤鸿寮�鍚敼妯″紡,涔熷彲閫氳繃鍏抽棬鍚庢寜鍘嬮棬閿侀敭鐩樹寒璧风殑钃濊壊鎸夐敭寮�鍚� +662=闊抽璁剧疆 +663=鐢垫睜绠$悊 +664=浜鸿劯寮�閿� +665=寮�鍚悗,璁惧鍙互杩涜浜鸿劯璇嗗埆寮�閿� +666=瑙﹀彂鏂瑰紡 +667=浜鸿劯褰曞叆甯姪 +668=鎵嬪姩瑙﹀彂 +669=鑷姩瑙﹀彂 +670=杩涘叆妫�娴嬭寖鍥村悗锛岄棬閿佸皢鑷姩璇嗗埆浜鸿劯骞跺紑閿� +671=娉細璇嗗埆浜鸿劯鐨勮窛绂伙紝浼氬彈瑙﹀彂鐏垫晱搴﹀奖鍝嶏紝鐏垫晱搴﹁秺楂橈紝璇嗗埆璺濈瓒婅繙銆� +672=闇�瑕佽Е鎽搁棬閿佹暟瀛楁寜閿紝鍞ら啋闂ㄩ攣鍚庤瘑鍒汉鑴稿苟寮�閿� +673=闂ㄩ攣绯荤粺闊抽噺 +674=闂ㄩ搩闊抽噺 +675=浣� +676=涓� +677=楂� 2532=璁垮閭�璇疯褰� @@ -3246,6 +3303,37 @@ 647=Face key 648=Delete user 649=Activity detection +650=Do you want to delete this user? +651=Successfully deleted +652=Unlock settings +653=Face unlock settings +654=Press the button to unlock twice +655=To unlock indoors, press the unlock button twice to prevent children or pets from accidentally touching the lock +656=Child lock mode +657=After opening, the door cannot be unlocked through buttons, only the emergency knob can be used to unlock +658=Anti lock mode +659=After opening, ordinary users cannot unlock, while the main user can still unlock. After opening the door with the indoor button, the anti lock mode will automatically close +660=Deployment mode +661=It is recommended to change the mode when leaving home for a long time. It can also be activated by pressing the blue button that lights up on the door lock keyboard after closing the door +662=Audio settings +663=Battery management +664=Face unlocking +665=After opening, the device can perform facial recognition and unlock +666=Trigger mode +667=Face entry help +668=Manual triggering +669=Automatic triggering +670=After entering the detection range, the door lock will automatically recognize the face and unlock it +671=Note: The distance for recognizing faces is affected by the trigger sensitivity, and the higher the sensitivity, the farther the recognition distance. +672=Need to touch the door lock number button, wake up the door lock, recognize the face, and unlock it +673=Door lock system volume +674=Doorbell volume +675=Low +676=Moderate +677=High + + + @@ -4547,6 +4635,36 @@ 647=Face key 648=Delete user 649=Activity detection +650=Do you want to delete this user? +651=Successfully deleted +652=Unlock settings +653=Face unlock settings +654=Press the button to unlock twice +655=To unlock indoors, press the unlock button twice to prevent children or pets from accidentally touching the lock +656=Child lock mode +657=After opening, the door cannot be unlocked through buttons, only the emergency knob can be used to unlock +658=Anti lock mode +659=After opening, ordinary users cannot unlock, while the main user can still unlock. After opening the door with the indoor button, the anti lock mode will automatically close +660=Deployment mode +661=It is recommended to change the mode when leaving home for a long time. It can also be activated by pressing the blue button that lights up on the door lock keyboard after closing the door +662=Audio settings +663=Battery management +664=Face unlocking +665=After opening, the device can perform facial recognition and unlock +666=Trigger mode +667=Face entry help +668=Manual triggering +669=Automatic triggering +670=After entering the detection range, the door lock will automatically recognize the face and unlock it +671=Note: The distance for recognizing faces is affected by the trigger sensitivity, and the higher the sensitivity, the farther the recognition distance. +672=Need to touch the door lock number button, wake up the door lock, recognize the face, and unlock it +673=Door lock system volume +674=Doorbell volume +675=Low +676=Moderate +677=High + + @@ -5836,6 +5954,35 @@ 647=Face key 648=Delete user 649=Activity detection +650=Do you want to delete this user? +651=Successfully deleted +652=Unlock settings +653=Face unlock settings +654=Press the button to unlock twice +655=To unlock indoors, press the unlock button twice to prevent children or pets from accidentally touching the lock +656=Child lock mode +657=After opening, the door cannot be unlocked through buttons, only the emergency knob can be used to unlock +658=Anti lock mode +659=After opening, ordinary users cannot unlock, while the main user can still unlock. After opening the door with the indoor button, the anti lock mode will automatically close +660=Deployment mode +661=It is recommended to change the mode when leaving home for a long time. It can also be activated by pressing the blue button that lights up on the door lock keyboard after closing the door +662=Audio settings +663=Battery management +664=Face unlocking +665=After opening, the device can perform facial recognition and unlock +666=Trigger mode +667=Face entry help +668=Manual triggering +669=Automatic triggering +670=After entering the detection range, the door lock will automatically recognize the face and unlock it +671=Note: The distance for recognizing faces is affected by the trigger sensitivity, and the higher the sensitivity, the farther the recognition distance. +672=Need to touch the door lock number button, wake up the door lock, recognize the face, and unlock it +673=Door lock system volume +674=Doorbell volume +675=Low +676=Moderate +677=High + diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage1.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage1.png new file mode 100644 index 0000000..5efa4a0 --- /dev/null +++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage1.png Binary files differ diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage2.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage2.png new file mode 100644 index 0000000..6a5c024 --- /dev/null +++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage2.png Binary files differ diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage3.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage3.png new file mode 100644 index 0000000..926fc67 --- /dev/null +++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage3.png Binary files differ diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage4.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage4.png new file mode 100644 index 0000000..0976ecb --- /dev/null +++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/DoorlockHelpImage4.png Binary files differ diff --git a/HDL_ON/Common/HDLCommon.cs b/HDL_ON/Common/HDLCommon.cs index 14d03fa..ba7989b 100644 --- a/HDL_ON/Common/HDLCommon.cs +++ b/HDL_ON/Common/HDLCommon.cs @@ -258,12 +258,12 @@ { try { - MainPage.Log($"鎺ユ敹鍒版帹閫�"); + MainPage.Log($"鎺ユ敹鍒版帹閫�.\r\n{Newtonsoft.Json.JsonConvert.SerializeObject(jpushMessageInfo).ToString()}"); //Extras涓虹┖涓嶅鐞� if (string.IsNullOrEmpty(jpushMessageInfo.Extras)) return; - if (jpushMessageInfo.Extras.Contains(PushMessageType.OffLine.ToString())) + if (jpushMessageInfo.Extras == (PushMessageType.OffLine.ToString())) { CheckLogout(); } @@ -275,14 +275,14 @@ if (string.IsNullOrEmpty(jpushMessageInfo.messageType)) return; //鎶ヨ鎺ㄩ�佹墠寮圭獥鎻愮ず锛坢essageType鍖呭惈Alarm鍏抽敭瀛楃殑锛� - if (jpushMessageInfo.messageType.Contains(PushMessageType.Alarm.ToString())) + if (jpushMessageInfo.messageType == (PushMessageType.Alarm.ToString())) { //鎶ヨ鎺ㄩ�佸脊绐楁彁绀� ShowAlarmPushMessage(jpushMessageInfo, true); //钀ょ煶闂ㄩ攣鎺ㄩ�� HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DoorLockPush(jpushMessageInfo); } - else if (jpushMessageInfo.messageType.Contains(PushMessageType.FLCall.ToString())) + else if (jpushMessageInfo.messageType == (PushMessageType.FLCall.ToString())) { if (string.IsNullOrEmpty(jpushMessageInfo.expantContent)) return; @@ -305,7 +305,7 @@ ESOnVideo.Current.ShowESvideoVideoIntercom(eSVideoInfo, InterphoneType.FLVI.ToString()); } - else if (jpushMessageInfo.messageType.Contains(PushMessageType.HDL_INTERPHONE.ToString())) + else if (jpushMessageInfo.messageType == (PushMessageType.HDL_INTERPHONE.ToString())) { if (string.IsNullOrEmpty(jpushMessageInfo.expantContent)) return; @@ -314,7 +314,16 @@ var json = Newtonsoft.Json.Linq.JObject.Parse(jpushMessageInfo.expantContent); try { + //var pushHomeId = json["homeId"]; + //if (pushHomeId == null || string.IsNullOrEmpty(pushHomeId.ToString())){ + // Console.WriteLine("homeId is null"); + // return; + //} var pushTime = json["pushTime"]; + if(pushTime == null) + { + return; + } if (!string.IsNullOrEmpty(pushTime.ToString())) { var pushDateTime = Utlis.UnixToDateTimeMS(Convert.ToInt64(pushTime)); @@ -386,13 +395,13 @@ ESOnVideo.Current.ShowESvideoVideoIntercom(eSVideoInfo, interphoneTypeEnum); } - else if (jpushMessageInfo.messageType.Contains(PushMessageType.Prompt.ToString())) + else if (jpushMessageInfo.messageType == (PushMessageType.Prompt.ToString())) { ShowAlarmPushMessage(jpushMessageInfo, false); //钀ょ煶闂ㄩ攣鎺ㄩ�� HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DoorLockPush(jpushMessageInfo); } - else if (jpushMessageInfo.messageType.Contains(PushMessageType.DOOR_BELL.ToString())) + else if (jpushMessageInfo.messageType == (PushMessageType.DOOR_BELL.ToString())) { //钀ょ煶闂ㄩ攣鎺ㄩ�� HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DoorLockPush(jpushMessageInfo); diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs index 2b4727a..efe31ce 100644 --- a/HDL_ON/Common/R.cs +++ b/HDL_ON/Common/R.cs @@ -4,7 +4,26 @@ { public static class StringId { - + /// <summary> + /// 楂� + /// </summary> + public const int High = 677; + /// <summary> + /// 涓� + /// </summary> + public const int Moderate = 676; + /// <summary> + /// 浣� + /// </summary> + public const int Low = 675; + /// <summary> + /// 闂ㄩ搩闊抽噺 + /// </summary> + public const int DoorbellVolume = 674; + /// <summary> + /// 闂ㄩ攣绯荤粺闊抽噺 + /// </summary> + public const int DoorlockSystemVolume = 673; /// <summary> /// 闇�瑕佽Е鎽搁棬閿佹暟瀛楁寜閿紝鍞ら啋闂ㄩ攣鍚庤瘑鍒汉鑴稿苟寮�閿� /// </summary> diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs index 30e9b71..4e6e381 100644 --- a/HDL_ON/DAL/Server/HttpServerRequest.cs +++ b/HDL_ON/DAL/Server/HttpServerRequest.cs @@ -3384,6 +3384,69 @@ return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_SetFaceRecognitionUnlockCfg, requestJson); } + /// <summary> + /// 鏌ヨ闂ㄩ攣绯荤粺澹伴煶 + /// </summary> + /// <param name="deviceId"></param> + /// <returns></returns> + public ResponsePackNew GetDoorLockSystemSound(string deviceId) + { + var d = new Dictionary<string, object>(); + d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); + d.Add("deviceId", deviceId); + var requestJson = HttpUtil.GetSignRequestJson(d); + return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDoorLockSystemSound, requestJson); + } + + /// <summary> + /// 璁剧疆闂ㄩ攣绯荤粺澹伴煶 + /// </summary> + /// <param name="deviceId"></param> + /// <param name="sound"></param> + /// <returns></returns> + public ResponsePackNew SetDoorLockSystemSound(string deviceId,string sound) + { + var d = new Dictionary<string, object>(); + d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); + d.Add("deviceId", deviceId); + d.Add("sound", sound); + var requestJson = HttpUtil.GetSignRequestJson(d); + return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_SetDoorLockSystemSound, requestJson); + } + + /// <summary> + /// 鏌ヨ闂ㄩ搩鎻愮ず闊� + /// </summary> + /// <param name="deviceId"></param> + /// <returns></returns> + public ResponsePackNew GetDoorBellTone(string deviceId) + { + var d = new Dictionary<string, object>(); + d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); + d.Add("deviceId", deviceId); + var requestJson = HttpUtil.GetSignRequestJson(d); + return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDoorBellTone, requestJson); + } + + /// <summary> + /// 璁剧疆闂ㄩ搩鎻愮ず闊� + /// </summary> + /// <param name="deviceId"></param> + /// <param name="volume"></param> + /// <returns></returns> + public ResponsePackNew SetDoorBellTone(string deviceId, string volume) + { + var d = new Dictionary<string, object>(); + d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); + d.Add("deviceId", deviceId); + d.Add("volume", volume); + var requestJson = HttpUtil.GetSignRequestJson(d); + return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_SetDoorBellTone, requestJson); + } + + + + #endregion #endregion diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs index fdd9472..975830e 100644 --- a/HDL_ON/DAL/Server/NewAPI.cs +++ b/HDL_ON/DAL/Server/NewAPI.cs @@ -965,6 +965,22 @@ /// 璁剧疆浜鸿劯璇嗗埆瑙i攣閰嶇疆 /// </summary> public const string Api_Post_SetFaceRecognitionUnlockCfg = "/home-wisdom/platform/yingshi/lock/setFaceRecognitionUnlockCfg"; + /// <summary> + /// 鏌ヨ闂ㄩ攣绯荤粺澹伴煶 + /// </summary> + public const string Api_Post_GetDoorLockSystemSound = "/home-wisdom/platform/yingshi/lock/getDoorLockSystemSound"; + /// <summary> + /// 璁剧疆闂ㄩ攣绯荤粺澹伴煶 + /// </summary> + public const string Api_Post_SetDoorLockSystemSound = "/home-wisdom/platform/yingshi/lock/setDoorLockSystemSound"; + /// <summary> + /// 鏌ヨ闂ㄩ搩鎻愮ず闊� + /// </summary> + public const string Api_Post_GetDoorBellTone = "/home-wisdom/platform/yingshi/lock/getDoorBellTone"; + /// <summary> + /// 璁剧疆闂ㄩ搩鎻愮ず闊� + /// </summary> + public const string Api_Post_SetDoorBellTone = "/home-wisdom/platform/yingshi/lock/setDoorBellTone"; diff --git a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs index 8badede..620bd9d 100644 --- a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs +++ b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs @@ -358,6 +358,10 @@ Application.RunOnMainThread(() => { + if(revertObj == null) + { + return; + } #if __IOS__ if (revertObj.Code == StateCode.SUCCESS) diff --git a/HDL_ON/Entity/Function/Scene.cs b/HDL_ON/Entity/Function/Scene.cs index 9be9505..3b00095 100644 --- a/HDL_ON/Entity/Function/Scene.cs +++ b/HDL_ON/Entity/Function/Scene.cs @@ -706,7 +706,7 @@ /// </summary> public string GetUintString() { - if (!string.IsNullOrEmpty(UintString)) + if (!string.IsNullOrEmpty(UintString) && UintString!= "{}") { return UintString; } diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems index db55a35..1a3d3f2 100644 --- a/HDL_ON/HDL_ON.projitems +++ b/HDL_ON/HDL_ON.projitems @@ -562,6 +562,8 @@ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\VideoDoorLock\UnlockSettingPage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\VideoDoorLock\UnlockSettingFacePage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\VideoDoorLock\VideoDoorlockFaceUnlockTriggerSettingPage.cs" /> + <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\VideoDoorLock\VideoDoorlockFaceUnlockHelpPage.cs" /> + <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\VideoDoorLock\VideoDoorlockAudioSetupPage.cs" /> </ItemGroup> <ItemGroup> <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" /> diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs index 91c3948..a237a77 100644 --- a/HDL_ON/UI/MainPage.cs +++ b/HDL_ON/UI/MainPage.cs @@ -26,7 +26,7 @@ /// <summary> /// 鐗堟湰鍙� /// </summary> - public static string VersionString = "1.8.1"; + public static string VersionString = "1.8.0"; ///// <summary> ///// 瀹㈡埛绔被鍨� ///// </summary> diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs index 631c295..49ec379 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs @@ -323,30 +323,40 @@ this.MainThread(() => { if (string.IsNullOrEmpty(jpushMessageInfo.expantContent)) return; - //{ "deviceSid":"J92513662","type":"opendoormsg","extDevId":"J92513662","deviceId":"1641010144999936001","spk":"security.door.ezviz"} - var expantContent = Newtonsoft.Json.JsonConvert.DeserializeObject<ExpantContent>(jpushMessageInfo.expantContent); - if (expantContent == null) + try { - return; - } - if (expantContent.spk != SPK.VideoDoorLock) + //{ "deviceSid":"J92513662","type":"opendoormsg","extDevId":"J92513662","deviceId":"1641010144999936001","spk":"security.door.ezviz"} + var expantContent = Newtonsoft.Json.JsonConvert.DeserializeObject<ExpantContent>(jpushMessageInfo.expantContent); + if (expantContent == null) + { + return; + } + if (expantContent.spk == null) + { + return; + } + if ( expantContent.spk != SPK.VideoDoorLock) + { + return; + } + if (jpushMessageInfo.messageType.Contains(PushMessageType.DOOR_BELL.ToString())) + { + ///鎵撳紑瑙嗛闂ㄩ攣 + this.SkipRTVActivity(expantContent.devSerial, expantContent.deviceId, expantContent.spk, true); + } + else if (jpushMessageInfo.messageType.Contains(PushMessageType.Alarm.ToString())) + { + //浣庣數閲忔帹閫� + this.UpdateDoorLockState(PushMessageType.Alarm); + } + else if (jpushMessageInfo.messageType.Contains(PushMessageType.Prompt.ToString())) + { + //寮�闂ㄦ帹閫� + this.UpdateDoorLockState(PushMessageType.Prompt); + } + }catch(Exception ex) { - return; - } - if (jpushMessageInfo.messageType.Contains(PushMessageType.DOOR_BELL.ToString())) - { - ///鎵撳紑瑙嗛闂ㄩ攣 - this.SkipRTVActivity(expantContent.devSerial, expantContent.deviceId, expantContent.spk, true); - } - else if (jpushMessageInfo.messageType.Contains(PushMessageType.Alarm.ToString())) - { - //浣庣數閲忔帹閫� - this.UpdateDoorLockState(PushMessageType.Alarm); - } - else if (jpushMessageInfo.messageType.Contains(PushMessageType.Prompt.ToString())) - { - //寮�闂ㄦ帹閫� - this.UpdateDoorLockState(PushMessageType.Prompt); + } }); diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/UnlockSettingFacePage.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/UnlockSettingFacePage.cs index 090921c..b20ce5f 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/UnlockSettingFacePage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/UnlockSettingFacePage.cs @@ -33,6 +33,7 @@ Y = Application.GetRealHeight(64), Height = Application.GetRealHeight(600), ScrollEnabled = false, + BackgroundColor = CSS_Color.BackgroundColor, }; bodyView.AddChidren(contentView); @@ -173,6 +174,7 @@ var btnTriggerModeStateText = new Button() { + X = Application.GetRealWidth(100), Width = Application.GetRealWidth(223), TextAlignment = TextAlignment.CenterRight, TextSize = CSS_FontSize.TextFontSize, @@ -238,7 +240,10 @@ faceEntryHelpView.AddChidren(btnFaceEntryHelpText); btnFaceEntryHelpText.MouseUpEventHandler = (sender, e) => { - + var page = new VideoDoorlockFaceUnlockHelpPage(); + MainPage.BasePageView.AddChidren(page); + page.LoadPage(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; #endregion diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockAudioSetupPage.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockAudioSetupPage.cs new file mode 100644 index 0000000..fda1210 --- /dev/null +++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockAudioSetupPage.cs @@ -0,0 +1,444 @@ +锘縰sing System; +using System.Collections.Generic; +using HDL_ON.Common; +using HDL_ON.DAL.Server; +using HDL_ON.Entity; +using HDL_ON.UI.CSS; +using Shared; +namespace HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock +{ + public class VideoDoorlockAudioSetupPage : FrameLayout + { + FrameLayout bodyView; + + Function device; + public VideoDoorlockAudioSetupPage(Function function) + { + device = function; + bodyView = this; + } + + public void LoadPage() + { + new TopViewDiv(bodyView, Language.StringByID(StringId.AudioSetup)).LoadTopView(); + bodyView.BackgroundColor = CSS_Color.BackgroundColor; + + + #region 闂ㄩ攣绯荤粺闊抽噺 + var doorlockSystemVolumeView = new FrameLayout() + { + Y = Application.GetRealHeight(64), + Height = Application.GetRealHeight(50), + BackgroundColor = CSS.CSS_Color.MainBackgroundColor, + }; + bodyView.AddChidren(doorlockSystemVolumeView); + + var btnDoorlockSystemVolumeRight = new Button() + { + X = Application.GetRealWidth(339), + Gravity = Gravity.CenterVertical, + Width = Application.GetMinRealAverage(16), + Height = Application.GetMinRealAverage(16), + UnSelectedImagePath = "Public/Right.png", + }; + doorlockSystemVolumeView.AddChidren(btnDoorlockSystemVolumeRight); + + var btnDoorlockSystemVolumeStateText = new Button() + { + X = Application.GetRealWidth(100), + Width = Application.GetRealWidth(223), + TextAlignment = TextAlignment.CenterRight, + TextSize = CSS_FontSize.TextFontSize, + TextColor = CSS_Color.PromptingColor1, + }; + doorlockSystemVolumeView.AddChidren(btnDoorlockSystemVolumeStateText); + + var btnDoorlockSystemVolumeText = new Button() + { + X = Application.GetRealWidth(16), + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.FirstLevelTitleColor, + TextAlignment = TextAlignment.CenterLeft, + TextID = StringId.DoorlockSystemVolume, + }; + doorlockSystemVolumeView.AddChidren(btnDoorlockSystemVolumeText); + + btnDoorlockSystemVolumeText.MouseUpEventHandler = (sender, e) => + { + + }; + #endregion + + #region 闂ㄩ搩闊抽噺 + var viewDoorbellVolume = new FrameLayout() + { + Y = doorlockSystemVolumeView.Bottom, + Height = Application.GetRealHeight(50), + BackgroundColor = CSS.CSS_Color.MainBackgroundColor, + }; + bodyView.AddChidren(viewDoorbellVolume); + viewDoorbellVolume.AddChidren(new Button + { + Height = 1, + BackgroundColor = CSS_Color.DividingLineColor, + }); + + var btnDoorbellVolumeRight = new Button() + { + X = Application.GetRealWidth(339), + Gravity = Gravity.CenterVertical, + Width = Application.GetMinRealAverage(16), + Height = Application.GetMinRealAverage(16), + UnSelectedImagePath = "Public/Right.png", + }; + viewDoorbellVolume.AddChidren(btnDoorbellVolumeRight); + + var btnDoorbellVolumeStateText = new Button() + { + X = Application.GetRealWidth(100), + Width = Application.GetRealWidth(223), + TextAlignment = TextAlignment.CenterRight, + TextSize = CSS_FontSize.TextFontSize, + TextColor = CSS_Color.PromptingColor1, + }; + viewDoorbellVolume.AddChidren(btnDoorbellVolumeStateText); + + var btnDoorbellVolumeText = new Button() + { + X = Application.GetRealWidth(16), + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.FirstLevelTitleColor, + TextAlignment = TextAlignment.CenterLeft, + TextID = StringId.DoorbellVolume, + }; + viewDoorbellVolume.AddChidren(btnDoorbellVolumeText); + + btnDoorbellVolumeText.MouseUpEventHandler = (sender, e) => + { + + }; + #endregion + + + + + + + + + var waitPage = new Loading(); + bodyView.AddChidren(waitPage); + waitPage.Start(""); + + new System.Threading.Thread(() => { + try + { + var pack = ApiUtlis.Ins.HttpRequest.GetDoorLockSystemSound(device.deviceId); + if (pack != null && pack.Code == StateCode.SUCCESS) + { + Application.RunOnMainThread(() => + { + //鏇存柊鐣岄潰 + var doorLockSystemSound = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLockSystemSound>(pack.Data.ToString()); + if(doorLockSystemSound != null) + { + switch (doorLockSystemSound.sound) + { + case 0: + btnDoorlockSystemVolumeStateText.TextID = StringId.Mute; + break; + case 1: + btnDoorlockSystemVolumeStateText.TextID = StringId.Low; + break; + case 2: + btnDoorlockSystemVolumeStateText.TextID = StringId.Moderate; + break; + case 3: + btnDoorlockSystemVolumeStateText.TextID = StringId.High; + break; + } + } + }); + } + else + { + //澶辫触鎻愮ず + Application.RunOnMainThread(() => + { + if (!string.IsNullOrEmpty(pack.message)) + { + var tip = new Tip() + { + MaxWidth = Application.GetRealWidth(300), + Text = $"{pack.message}({pack.Code})", + CloseTime = 3, + Direction = AMPopTipDirection.None + }; + tip.Show(MainPage.BaseView); + } + }); + } + + + pack = ApiUtlis.Ins.HttpRequest.GetDoorBellTone(device.deviceId); + if (pack != null && pack.Code == StateCode.SUCCESS) + { + Application.RunOnMainThread(() => + { + //鏇存柊鐣岄潰 + var doorbellTone = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorBellTone>(pack.Data.ToString()); + if (doorbellTone != null) + { + if (doorbellTone.volume == 0) + { + btnDoorbellVolumeStateText.TextID = StringId.Mute; + } + else if (doorbellTone.volume > 0 && doorbellTone.volume < 35) + { + btnDoorbellVolumeStateText.TextID = StringId.Low; + } + else if (doorbellTone.volume > 35 && doorbellTone.volume < 70) + { + btnDoorbellVolumeStateText.TextID = StringId.Moderate; + } + else if (doorbellTone.volume > 70) + { + btnDoorbellVolumeStateText.TextID = StringId.High; + } + } + }); + } + else + { + //澶辫触鎻愮ず + Application.RunOnMainThread(() => + { + if (!string.IsNullOrEmpty(pack.message)) + { + var tip = new Tip() + { + MaxWidth = Application.GetRealWidth(300), + Text = $"{pack.message}({pack.Code})", + CloseTime = 3, + Direction = AMPopTipDirection.None + }; + tip.Show(MainPage.BaseView); + } + }); + } + + + } + catch (Exception ex) + { + MainPage.Log($"UnlockSettingPage error : {ex.Message}"); + } + finally + { + Application.RunOnMainThread(() => + { + waitPage.Hide(); + }); + } + + }) + { IsBackground = true }.Start(); + + + + } + + + + /// <summary> + /// 鍔犺浇鍔熻兘灞炴�ф暟鎹�夋嫨寮圭獥 + /// </summary> + void LoadEditDialog_FunctionPar(int titleId, int index, Button btn) + { + Button lastButton = new Button(); + var lastData = ""; + var lastText = ""; + Dialog dialog = new Dialog(); + + var pView = new FrameLayout() + { + BackgroundColor = CSS_Color.DialogTransparentColor1, + }; + dialog.AddChidren(pView); + + var optionBaseView = new FrameLayout() + { + Y = Application.GetRealHeight(579 - 50 * 4), + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(50 * 4 + 50), + AnimateSpeed = 0.3f, + Animate = Animate.DownToUp, + BackgroundColor = CSS_Color.MainBackgroundColor, + Radius = (uint)Application.GetRealWidth(12), + }; + pView.AddChidren(optionBaseView); + + var topView = new FrameLayout() + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(50), + BackgroundColor = CSS_Color.MainBackgroundColor, + Radius = (uint)Application.GetRealWidth(12), + }; + optionBaseView.AddChidren(topView); + + var btnTitle = new Button() + { + Gravity = Gravity.CenterHorizontal, + TextAlignment = TextAlignment.Center, + Width = Application.GetRealWidth(100), + TextID = titleId, + IsBold = true, + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.SubheadingFontSize, + }; + topView.AddChidren(btnTitle); + + var btnCancel = new Button() + { + X = Application.GetRealWidth(21), + Width = Application.GetRealWidth(100), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.TextFontSize, + TextID = StringId.Cancel, + }; + topView.AddChidren(btnCancel); + + var btnConfrim = new Button() + { + Width = Application.GetRealWidth(320), + TextAlignment = TextAlignment.CenterRight, + TextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.TextFontSize, + TextID = StringId.Complete, + }; + topView.AddChidren(btnConfrim); + int hei = 1; + var statusList = new List<string> + { + Language.StringByID(StringId.High), + Language.StringByID(StringId.Moderate), + Language.StringByID(StringId.Low), + Language.StringByID(StringId.Mute), + }; + + foreach (var m in statusList) + { + var row = new FrameLayout() + { + Y = Application.GetRealHeight(50 * hei), + Height = Application.GetRealHeight(50), + }; + optionBaseView.AddChidren(row); + if (statusList.Count > hei) + { + optionBaseView.AddChidren(new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = row.Bottom, + Width = Application.GetRealWidth(343), + BackgroundColor = CSS_Color.DividingLineColor, + Height = 1, + }); + } + hei++; + + var btnChoose = new Button() + { + X = Application.GetRealWidth(303), + Gravity = Gravity.CenterVertical, + Width = Application.GetMinRealAverage(28), + Height = Application.GetMinRealAverage(28), + UnSelectedImagePath = "Public/ChooseIcon.png", + SelectedImagePath = "Public/ChooseOnIcon.png", + + }; + row.AddChidren(btnChoose); + if (index == hei - 1) + { + lastButton = btnChoose; + btnChoose.IsSelected = true; + } + var btnPropertyTitle = new Button() + { + X = Application.GetRealWidth(16), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.TextFontSize, + Tag = index, + Text = m + }; + row.AddChidren(btnPropertyTitle); + + btnPropertyTitle.MouseUpEventHandler = (sender, e) => { + btnChoose.IsSelected = true; + if (lastButton != null) + { + lastButton.IsSelected = false; + } + lastButton = btnChoose; + lastData = btnPropertyTitle.Tag.ToString(); + lastText = btnPropertyTitle.Text; + }; + } + + + + + dialog.Show(); + + pView.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + }; + + btnCancel.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + }; + btnConfrim.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + trait.value = lastData; + //sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.curValue.ToString() ; + btn.Text = lastText; + }; + + } + + + + + + } + + /// <summary> + /// 闂ㄩ攣绯荤粺澹伴煶 + /// </summary> + public class DoorLockSystemSound + { + /// <summary> + /// 澹伴煶 + /// 0-闈欓煶 1-浣庨煶 2-涓煶 3-楂橀煶 4-鑷姩 + /// </summary> + public int sound = 0; + } + /// <summary> + /// 闂ㄩ搩鎻愮ず闊抽噺 + /// </summary> + public class DoorBellTone + { + /// <summary> + /// 闊抽噺 鑼冨洿0-100 + /// </summary> + public int volume = 0; + } + + + +} diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockFaceUnlockHelpPage.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockFaceUnlockHelpPage.cs new file mode 100644 index 0000000..03cb26b --- /dev/null +++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockFaceUnlockHelpPage.cs @@ -0,0 +1,160 @@ +锘縰sing System; +using HDL_ON.UI.CSS; +using Shared; + +namespace HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock +{ + public class VideoDoorlockFaceUnlockHelpPage : FrameLayout + { + FrameLayout bodyView; + + + public VideoDoorlockFaceUnlockHelpPage() + { + bodyView = this; + } + + + public void LoadPage() + { + + new TopViewDiv(bodyView, Language.StringByID(StringId.TriggerMode)).LoadTopView(); + bodyView.BackgroundColor = CSS_Color.MainBackgroundColor; + + var contentView = new VerticalScrolViewLayout() + { + Y = Application.GetRealHeight(64), + Height = Application.GetRealHeight(667 - 64), + }; + bodyView.AddChidren(contentView); + + //DoorlockHelpImage + + var btnImage1 = new Button() + { + Height = Application.GetRealWidth(180), + UnSelectedImagePath = "FunctionIcon/DoorLock/DoorlockHelpImage1.png" + }; + contentView.AddChidren(btnImage1); + + var msgView1 = new FrameLayout() + { + Height = Application.GetRealHeight(253), + }; + contentView.AddChidren(msgView1); + + var btnMsg1Title = new Button() + { + X = Application.GetRealWidth(16), + Y = Application.GetRealHeight(20), + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(49), + TextAlignment = TextAlignment.CenterLeft, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.FirstLevelTitleColor, + Text = "褰曞叆鍓�" + }; + msgView1.AddChidren(btnMsg1Title); + + var btnMsg1Tip = new Button() + { + X = Application.GetRealWidth(16), + Y = btnMsg1Title.Bottom, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(184), + TextAlignment = TextAlignment.CenterLeft, + IsMoreLines = true, + TextSize = CSS_FontSize.TextFontSize, + TextColor = CSS_Color.FirstLevelTitleColor, + Text = "璇峰埌闂ㄩ攣鏃侊紝鎸夐棬閿乻et閿紝浣跨敤涓荤敤鎴风櫥褰曡彍鍗曪紝閫夋嫨鈥滄坊鍔犵敤鎴�-娣诲姞浜鸿劯鈥�/鈥滅敤鎴风鐞�-鐢ㄦ埛缂栧彿-娣诲姞浜鸿劯鈥濄�備互涓嬫槸鍑犱釜闇�瑕佹敞鎰忕殑鐐癸細\r\n" + + "\r\n1銆佷负浜嗕繚璇佸綍鍏ユ晥鏋滐紝璇峰湪鍏抽棬鐨勬儏鍐典笅褰曞叆浜鸿劯锛堝叧闂ㄥ墠璇风‘淇濇湁鍏朵粬寮�闂ㄦ柟寮忓彲杩涢棬锛夈�俓r\n" + + "\r\n2銆佸綍鍏ユ椂璇烽湶鍑烘竻鏅扮殑闈㈤儴鐗瑰緛锛屼笉瑕佷僵鎴村附瀛愩�佸彛缃┿�俓r\n" + }; + msgView1.AddChidren(btnMsg1Tip); + + var btnImage2 = new Button() + { + Height = Application.GetRealWidth(132), + UnSelectedImagePath = "FunctionIcon/DoorLock/DoorlockHelpImage2.png" + }; + contentView.AddChidren(btnImage2); + + var msgView2 = new FrameLayout() + { + Height = Application.GetRealHeight(129), + }; + contentView.AddChidren(msgView2); + + var btnMsg2Title = new Button() + { + X = Application.GetRealWidth(16), + Y = Application.GetRealHeight(20), + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(49), + TextAlignment = TextAlignment.CenterLeft, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.FirstLevelTitleColor, + Text = "褰曞叆涓�" + }; + msgView2.AddChidren(btnMsg2Title); + + var btnMsg2Tip = new Button() + { + X = Application.GetRealWidth(16), + Y = btnMsg1Title.Bottom, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(60), + TextAlignment = TextAlignment.CenterLeft, + IsMoreLines = true, + TextSize = CSS_FontSize.TextFontSize, + TextColor = CSS_Color.FirstLevelTitleColor, + Text = "1銆佽绔欏湪閿佹鍓嶆柟锛屽苟涓庨攣鍏蜂繚鎸佷竴鑷傝窛绂伙紙50cm宸﹀彸锛夎繘琛岄噰闆嗐�俓r\n", + }; + msgView2.AddChidren(btnMsg2Tip); + + var btnImage3 = new Button() + { + Height = Application.GetRealWidth(180), + UnSelectedImagePath = "FunctionIcon/DoorLock/DoorlockHelpImage3.png" + }; + contentView.AddChidren(btnImage3); + + var btnMsg3 = new Button() + { + X = Application.GetRealWidth(16), + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(104), + TextAlignment = TextAlignment.CenterLeft, + IsMoreLines = true, + TextSize = CSS_FontSize.TextFontSize, + TextColor = CSS_Color.FirstLevelTitleColor, + Text = "2銆佸綍鍏ユ椂璇疯窡闅忚闊虫寚瀵煎井寰浆鍔ㄥご閮紝浠ョ珫鐩存垨姘村钩绾夸负杞达紝杞姩骞呭害璇锋帶鍒跺湪30搴︿互鍐呫�俓r\n" + }; + contentView.AddChidren(btnMsg3); + + var btnImage4 = new Button() + { + Height = Application.GetRealWidth(204), + UnSelectedImagePath = "FunctionIcon/DoorLock/DoorlockHelpImage4.png" + }; + contentView.AddChidren(btnImage4); + + if(Language.CurrentLanguage != "Chinese") + { + btnMsg1Title.Text = "Before entry"; + + btnMsg1Tip.Text = "Please go to the door lock, press the door lock set key, use the main user login menu, select 'Add User -Add Face'/'User Management -User ID - Add Face'. Here are a few points to note: \r\n" + + "\r\n1.To ensure the recording effect, please input your face while closing the door(please ensure that there are other door opening methods available before closing the door). \r\n" + + "\r\n2.Please show clear facial features when entering, and do not wear hats or masks.\r\n"; + + btnMsg2Title.Text = "Entering"; + + btnMsg2Tip.Text = "1. Please stand in front of the lock and maintain an arm's distance (approximately 50cm) from the lock for collection.\r\n"; + + btnMsg3.Text = "2. When entering, please follow the voice guidance to slightly rotate the head, using a vertical or horizontal line as the axis, and the rotation amplitude should be controlled within 30 degrees.\r\n"; + + } + + } + } +} diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockFaceUnlockTriggerSettingPage.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockFaceUnlockTriggerSettingPage.cs index 3305afc..7faddc9 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockFaceUnlockTriggerSettingPage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockFaceUnlockTriggerSettingPage.cs @@ -41,9 +41,10 @@ Y = Application.GetRealHeight(20), Width = Application.GetRealWidth(164), Height = Application.GetRealWidth(60), - Radius = (uint)Application.GetRealWidth(30), + Radius = (uint)Application.GetRealWidth(12), BackgroundColor = faceUnlockSetup.mode == 0 ? CSS_Color.MainColor : CSS_Color.MainBackgroundColor, BorderColor = CSS_Color.MainColor, + BorderWidth = 1, }; contentView.AddChidren(autoView); @@ -60,10 +61,11 @@ var btnAutoText = new Button { X = btnAutoIcon.Right + Application.GetRealWidth(4), - Width = Application.GetRealWidth(50), + Width = Application.GetRealWidth(90), TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.HeadlineFontSize, TextColor = faceUnlockSetup.mode == 1 ? CSS_Color.MainColor : CSS_Color.MainBackgroundColor, + TextID = StringId.AutomaticTriggering, }; autoView.AddChidren(btnAutoText); @@ -74,13 +76,14 @@ #region 鎵嬪姩瑙﹀彂 var manualView = new FrameLayout() { - X = Application.GetRealWidth(16), + X = Application.GetRealWidth(196), Y = Application.GetRealHeight(20), Width = Application.GetRealWidth(164), Height = Application.GetRealWidth(60), - Radius = (uint)Application.GetRealWidth(30), + Radius = (uint)Application.GetRealWidth(12), BackgroundColor = faceUnlockSetup.mode == 1 ? CSS_Color.MainColor : CSS_Color.MainBackgroundColor, BorderColor = CSS_Color.MainColor, + BorderWidth = 1, }; contentView.AddChidren(manualView); @@ -97,10 +100,11 @@ var btnManualText = new Button { X = btnManualIcon.Right + Application.GetRealWidth(4), - Width = Application.GetRealWidth(50), + Width = Application.GetRealWidth(90), TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.HeadlineFontSize, TextColor = faceUnlockSetup.mode == 0 ? CSS_Color.MainColor : CSS_Color.MainBackgroundColor, + TextID = StringId.ManualTriggering, }; manualView.AddChidren(btnManualText); btnManualText.MouseUpEventHandler = (sender, e) => { @@ -134,7 +138,9 @@ btnAutoText.TextColor = CSS_Color.MainBackgroundColor; manualView.BackgroundColor = CSS_Color.MainBackgroundColor; btnManualIcon.UnSelectedImagePath = "FunctionIcon/DoorLock/ManualTriggerIcon_blue.png"; - btnAutoText.TextColor = CSS_Color.MainColor; + btnManualText.TextColor = CSS_Color.MainColor; + automaitcTipView.Visible = true; + manualTipView.Visible = false; }); } @@ -198,7 +204,9 @@ btnAutoText.TextColor = CSS_Color.MainColor; manualView.BackgroundColor = CSS_Color.MainColor; btnManualIcon.UnSelectedImagePath = "FunctionIcon/DoorLock/ManualTriggerIcon_white.png"; - btnAutoText.TextColor = CSS_Color.MainBackgroundColor; + btnManualText.TextColor = CSS_Color.MainBackgroundColor; + automaitcTipView.Visible = false; + manualTipView.Visible = true; }); } @@ -242,31 +250,31 @@ if(faceUnlockSetup.mode == 0) { - automaitcView.Visible = true; - manualView.Visible = false; + automaitcTipView.Visible = true; + manualTipView.Visible = false; } else { - automaitcView.Visible = false; - manualView.Visible = true; + automaitcTipView.Visible = false; + manualTipView.Visible = true; } } - FrameLayout automaitcView; - FrameLayout manualView; + FrameLayout automaitcTipView; + FrameLayout manualTipView; /// <summary> /// 鍔犺浇鑷姩瑙﹀彂鏂瑰紡鎻愮ず /// </summary> void loadAutomaitcTipView() { - automaitcView = new FrameLayout() + automaitcTipView = new FrameLayout() { - Y = Application.GetRealHeight(128), + Y = Application.GetRealHeight(128 + 64), Height = Application.GetRealHeight(667 - 128 - 64), BackgroundColor = CSS_Color.MainBackgroundColor }; - bodyView.AddChidren(automaitcView); + bodyView.AddChidren(automaitcTipView); var btnAutomaitcImage = new Button() { @@ -275,7 +283,7 @@ Height = Application.GetRealWidth(200), UnSelectedImagePath = "FunctionIcon/DoorLock/FaceUnlockImage.png", }; - automaitcView.AddChidren(btnAutomaitcImage); + automaitcTipView.AddChidren(btnAutomaitcImage); var btnAutomaitcTip = new Button() { @@ -289,7 +297,7 @@ IsMoreLines = true, TextID = StringId.FaceUnlockTip }; - automaitcView.AddChidren(btnAutomaitcTip); + automaitcTipView.AddChidren(btnAutomaitcTip); var btnAutomaitcNote = new Button() { @@ -301,7 +309,7 @@ TextColor = CSS_Color.PromptingColor1, TextID = StringId.FaceUnlockNote, }; - automaitcView.AddChidren(btnAutomaitcNote); + automaitcTipView.AddChidren(btnAutomaitcNote); } /// <summary> @@ -309,35 +317,65 @@ /// </summary> void loadManualTipView() { - manualView = new FrameLayout() + manualTipView = new FrameLayout() { - Y = Application.GetRealHeight(128), + Y = Application.GetRealHeight(128 + 64), Height = Application.GetRealHeight(667 - 128 - 64), BackgroundColor = CSS_Color.MainBackgroundColor }; - bodyView.AddChidren(manualView); + bodyView.AddChidren(manualTipView); + + var btnNumber1 = new Button() + { + X = Application.GetRealWidth(84), + //Y = Application.GetRealHeight() + Width = Application.GetRealWidth(24), + Height = Application.GetRealWidth(24), + Radius = (uint)Application.GetRealWidth(12), + BorderColor = CSS_Color.MainColor, + BorderWidth = 1, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.MainColor, + TextAlignment = TextAlignment.Center, + Text = "1", + }; + manualTipView.AddChidren(btnNumber1); + + var btnNumber2 = new Button() + { + X = Application.GetRealWidth(267), + //Y = Application.GetRealHeight() + Width = Application.GetRealWidth(24), + Height = Application.GetRealWidth(24), + Radius = (uint)Application.GetRealWidth(12), + BorderColor = CSS_Color.MainColor, + BorderWidth = 1, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.MainColor, + TextAlignment = TextAlignment.Center, + Text = "2", + }; + manualTipView.AddChidren(btnNumber2); var btnImage1 = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(31), - Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(160), Height = Application.GetRealWidth(160), UnSelectedImagePath = "FunctionIcon/DoorLock/TouchUnlcokImage.png", }; - manualView.AddChidren(btnImage1); + manualTipView.AddChidren(btnImage1); var btnAutomaitcImage = new Button() { X = btnImage1.Right + Application.GetRealWidth(24), Y = Application.GetRealHeight(31), - Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(160), Height = Application.GetRealWidth(160), UnSelectedImagePath = "FunctionIcon/DoorLock/FaceUnlockImage.png", }; - manualView.AddChidren(btnAutomaitcImage); + manualTipView.AddChidren(btnAutomaitcImage); var btnManualTip = new Button() { @@ -351,7 +389,7 @@ IsMoreLines = true, TextID = StringId.FaceManualUnlockTip }; - manualView.AddChidren(btnManualTip); + manualTipView.AddChidren(btnManualTip); } } } -- Gitblit v1.8.0