From 4f0ab0ad21ce450b7856d50f98322a7899361386 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 22 九月 2020 10:30:01 +0800
Subject: [PATCH] 不要下载这个备份
---
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs | 355 +++++++++++------------------------------------------------
1 files changed, 67 insertions(+), 288 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
index 7e93794..9856a3c 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -17,12 +17,24 @@
public UserDoorLockPage(Room room, CommonDevice doorLock)
{
//寰愭鐨勯棬閿佺晫闈㈡墦寮�(缃戝叧鍏ㄥ眬鎺ユ敹鏃朵娇鐢�)
- ControlCommonResourse.IsDoorLockPageOpen = true;
+ //ControlCommonResourse.IsDoorLockPageOpen = true;
this.doorLock = doorLock as ZigBee.Device.DoorLock;
currentRoom = room;
deviceUI = doorLock;
BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor;
ZbGateway.StatusList.Add(this);
+ Application.RunOnMainThread(() =>
+ {
+ UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction += (DoorlockKey, status) =>
+ {
+ var key = doorLock.DeviceAddr;
+ if (DoorlockKey == key)
+ {
+ DoorLockCommonInfo.NormallyOpenModeValue(this.doorLock, status);
+ UpdateNomallyOpenStatus();
+ }
+ };
+ });
}
#region 鍙橀噺鐢虫槑
@@ -42,11 +54,6 @@
/// 閫昏緫涓槸鍚︽湁甯稿紑妯″紡
/// </summary>
private bool haveLogicNormallyOpenMode = false;
-
- /// <summary>
- /// 闂ㄩ攣娣卞害鎺у埗涓婃姤绐楀彛鏄惁寮瑰嚭
- /// </summary>
- public static bool canShowDialog = true;
/// <summary>
/// 褰撳墠鐢甸噺
@@ -83,7 +90,7 @@
/// <summary>
/// 涓儴甯冨眬涓棬閿佸悕绉版樉绀�
/// </summary>
- Button btnDoorLockTitle;
+ NormalViewControl btnDoorLockTitle;
/// <summary>
/// 鍒嗕韩
/// </summary>
@@ -252,18 +259,15 @@
};
this.midFrameLayout.AddChidren(midTopFrameLayout);
- //闂ㄩ攣鏍囬
- btnDoorLockTitle = new Button()
- {
- Width = Application.GetRealWidth(250),
- Height = Application.GetRealHeight(60),
- X = Application.GetRealWidth(372),
- Y = Application.GetRealHeight(46),
- TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
- TextSize = 15,
- TextAlignment = TextAlignment.Center,
- IsBold = true,
- };
+ //璁惧鍚嶇О
+ btnDoorLockTitle = new NormalViewControl(100, 60, true);
+ btnDoorLockTitle.Y = Application.GetRealHeight(46);
+ btnDoorLockTitle.TextSize = 15;
+ btnDoorLockTitle.IsBold = true;
+ btnDoorLockTitle.Text = Common.LocalDevice.Current.GetDeviceMacName(doorLock);
+ btnDoorLockTitle.Width = btnDoorLockTitle.GetRealWidthByText();
+ btnDoorLockTitle.TextAlignment = TextAlignment.Center;
+ btnDoorLockTitle.Gravity = Gravity.CenterHorizontal;
midTopFrameLayout.AddChidren(btnDoorLockTitle);
//璁板綍
@@ -671,7 +675,7 @@
canOpenNormallyMode = DoorLockCommonInfo.CanNormallyOpen(doorLock);
if (canOpenNormallyMode)
{
- //鑾峰彇闂ㄩ攣甯稿紑妯″紡
+ //1銆佽幏鍙栭棬閿佸父寮�妯″紡
var resultRes = await DoorLockCommonInfo.GetNormallyOpenMode(doorLock);
if (resultRes == null)
{
@@ -695,16 +699,17 @@
tempRes = false;
}
DoorLockCommonInfo.NormallyOpenModeValue(doorLock, tempRes);
+
Application.RunOnMainThread(async () =>
{
- var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3,doorLock);
- if (resTemp == 1)
- {
- haveLogicNormallyOpenMode = true;
- }
- else if (resTemp == 0)
+ var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(2, doorLock);
+ if (resTemp == 0)
{
haveLogicNormallyOpenMode = false;
+ }
+ else
+ {
+ haveLogicNormallyOpenMode = true;
}
});
}
@@ -721,7 +726,7 @@
canVolume = DoorLockCommonInfo.CanVolume(doorLock);
if (canVolume)
{
- //璇诲彇闊抽噺
+ //2銆佽鍙栭煶閲�
var resultRes = await doorLock.GetVolumeAsync();
if (resultRes == null || resultRes.volumeResponseData == null)
{
@@ -755,7 +760,7 @@
});
}
- //璇诲彇闂ㄩ攣鐢甸噺锛氱皣ID锛�1 灞炴�D 33
+ //3銆佽鍙栭棬閿佺數閲忥細绨嘔D锛�1 灞炴�D 33
doorLock.ReadAttri(Cluster_ID.Power, AttriButeId.DoorLockPower);
//涓婃姤鐢甸噺绛�1绉�
System.Threading.Thread.Sleep(1000);
@@ -801,7 +806,7 @@
Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
functionSetting.Show();
- canShowDialog = false;
+ //DoorLockCommonInfo.canShowDialog = false;
functionSetting.devicNameAction += (deviceRename) =>
{
if (!string.IsNullOrEmpty(deviceRename))
@@ -832,7 +837,7 @@
//鍘嗗彶璁板綍 ---- stan
var form = new DeviceDoorLock.DoorLockHistoryLogForm();
form.AddForm(this.doorLock.DeviceAddr);
- canShowDialog = false;
+ //DoorLockCommonInfo.canShowDialog = false;
};
btnRecordFrameLayout.MouseDownEventHandler += handerRecord;
btnRecord.MouseDownEventHandler += handerRecord;
@@ -856,14 +861,17 @@
//寮�閿佷簨浠�
EventHandler<MouseEventArgs> hander1 = async (sender, e) =>
{
- canShowDialog = true;
if (doorLock.IsDoorLockNormallyMode)
{
if (canOpenNormallyMode)
{
Application.RunOnMainThread(() =>
{
- NomallyOpenModeInvalidDialog();
+ Action<bool> action = (obj) =>
+ {
+ UpdateNomallyOpenStatus();
+ };
+ DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action);
});
}
else
@@ -886,14 +894,17 @@
//鍏抽攣浜嬩欢
EventHandler<MouseEventArgs> hander2 = (sender, e) =>
{
- canShowDialog = true;
if (canOpenNormallyMode)
{
if (doorLock.IsDoorLockNormallyMode)
{
Application.RunOnMainThread(() =>
{
- NomallyOpenModeInvalidDialog();
+ Action<bool> action = (obj) =>
+ {
+ UpdateNomallyOpenStatus();
+ };
+ DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action);
});
}
}
@@ -1043,7 +1054,6 @@
/// </summary>
private async void NomallyOpenDialog()
{
- #region 鍚庣画鐗堟湰
if (UserCenterResourse.UserInfo.AuthorityNo != 1)
{
this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
@@ -1058,7 +1068,7 @@
action = () =>
{
- //绯荤粺瀵嗙爜鏀寔鎿嶄綔闂ㄩ攣鍚庯紝璋冪敤娓╁眳鍩庣殑鐣岄潰銆愬父寮�鑷姩鍖栥��
+ //WJC鐨勪唬鐮侊細绯荤粺瀵嗙爜鏀寔鎿嶄綔闂ㄩ攣鍚庯紝璋冪敤娓╁眳鍩庣殑鐣岄潰銆愬父寮�鑷姩鍖栥��
if (doorLock == null)
{
///闃叉鎶涘紓甯�
@@ -1076,261 +1086,31 @@
UserView.HomePage.Instance.AddChidren(addLogicPage);
UserView.HomePage.Instance.PageIndex += 1;
addLogicPage.Show();
- addLogicPage.action += (w) =>
- {
- doorLock.IsDoorLockNormallyMode = w;
- ///鐣欑粰寰愭鐢ㄧ殑
- UpdateNomallyOpenStatus();
- };
+ addLogicPage.action += async (w) =>
+ {
+ DoorLockCommonInfo.NormallyOpenModeValue(doorLock, w);
+ UpdateNomallyOpenStatus();
+ //杩斿洖鎸夐敭娓呯┖褰撳墠閫昏緫瀹氫箟鐨凩ogicAction
+ UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = null;
+ //鏄惁瀛樺湪甯稿紑妯″紡
+ var resTemp = Shared.Common.Logic.SoneLogicList;
+ if (resTemp.Count == 0)
+ {
+ haveLogicNormallyOpenMode = false;
+ }
+ else
+ {
+ haveLogicNormallyOpenMode = true;
+ }
+
+ UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction -= addLogicPage.updateCurrentDoorlockActionTemp;
+ };
};
HdlCheckLogic.Current.CheckSecondarySecurity(action);
- #endregion
+
}
/// <summary>
- /// 甯稿紑妯″紡澶辨晥澶勭悊
- /// </summary>
- public void NomallyOpenModeInvalidDialog(bool IsFromReport = false)
- {
- if (!canShowDialog)
- {
- return;
- }
-
- if (UserCenterResourse.UserInfo.AuthorityNo != 1)
- {
- this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
- return;
- }
- string msg = Language.StringByID(R.MyInternationalizationString.NomallyModeIsCanceled).Replace("{0}", "\r\n");
- var confirm = Language.StringByID(R.MyInternationalizationString.SureCancel);
- var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.NomallyOpenMode, msg, confirm);
- if (haveLogicNormallyOpenMode)
- {
- //鏈夐�昏緫璁剧疆鐨勫脊绐�
- alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.CancelNomallyOpenModeWithLogic, msg, confirm);
- }
- alert.Show();
-
- alert.MsgControlClickEvent += async () =>
- {
- if (IsFromReport)
- {
- //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑堬紝app榛樿浜嗏�滃父寮�妯″紡鈥濊鍙栨秷
- DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
- Application.RunOnMainThread(() =>
- {
- UpdateNomallyOpenStatus();
- });
-
- if (haveLogicNormallyOpenMode)
- {
- //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
- var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
- }
- }
- else
- {
- //app榛樿鈥滃父寮�妯″紡鈥濊繕鏄紑鍚�
- DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
- Application.RunOnMainThread(() =>
- {
- UpdateNomallyOpenStatus();
- });
- }
- };
-
- alert.CancelClickEvent += async () =>
- {
- if (IsFromReport)
- {
- //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑�
- Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
-
- if (haveLogicNormallyOpenMode)
- {
- //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
- var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
- }
- //app閲嶆柊寮�鍚�滃父寮�妯″紡鈥�
- var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
- if (result == null || result.defaultControlResponseData == null)
- {
- Application.RunOnMainThread(() =>
- {
- string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
- this.ShowTipMsg(msg0);
- DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
- UpdateNomallyOpenStatus();
- });
- return;
- }
- if (result.defaultControlResponseData.status != 0)
- {
- string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed);
- this.ShowTipMsg(msg1);
- DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
- Application.RunOnMainThread(() =>
- {
- UpdateNomallyOpenStatus();
- });
- return;
- }
- else
- {
- //淇濇寔鈥滃父寮�鎴愬姛鈥�
- DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
- Application.RunOnMainThread(() =>
- {
- UpdateNomallyOpenStatus();
- });
-
- //鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫
- var resu = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
- //if (!resu)
- //{
- // string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed);
- // this.ShowTipMsg(msg0);
- //}
-
- CommonPage.Loading.Hide();
- }
- }
- else
- {
- //app鎿嶄綔涓嶅彇娑堚�滃父寮�妯″紡鈥�
- DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
- Application.RunOnMainThread(() =>
- {
- UpdateNomallyOpenStatus();
- });
- }
- };
-
- alert.ConfirmClickEvent += async () =>
- {
- if (IsFromReport)
- {
- //涓婃姤闂ㄩ攣鈥滃父寮�妯″紡鈥濆凡缁忓彇娑堬紝鐜板湪app纭鈥滃父寮�妯″紡鈥濆彇娑�
- DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
- Application.RunOnMainThread(() =>
- {
- UpdateNomallyOpenStatus();
- });
-
- if (haveLogicNormallyOpenMode)
- {
- //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
- var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
- }
- }
- else
- {
- //app鎿嶄綔鍙栨秷鈥滃父寮�妯″紡鈥�
- Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
- var result = await doorLock.SetNormallyOpenModeFuncAsync(false);
- if (result == null || result.defaultControlResponseData == null)
- {
- string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
- this.ShowTipMsg(msg0);
- return;
- }
- if (result.defaultControlResponseData.status != 0)
- {
- string msg1 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeFailed);
- this.ShowTipMsg(msg1);
- return;
- }
- else
- {
- //娣诲姞App寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
- HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(this.doorLock, 9002, string.Empty);
-
- //app纭鍙栨秷鈥滃父寮�妯″紡鈥濇垚鍔�
- DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
- Application.RunOnMainThread(() =>
- {
- UpdateNomallyOpenStatus();
- });
-
- if (haveLogicNormallyOpenMode)
- {
- //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
- var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
- }
- string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess);
- this.ShowTipMsg(msg2);
- }
- }
- };
- }
-
- /// <summary>
- /// 宸茬粡寮�鍚父寮�妯″紡鎻愮ず
- /// </summary>
- public void AlreadyOpenNormallyMode()
- {
- //甯稿紑妯″紡寮�鍚彁绀�
- string msgNomallyModeIsTurnOn = Language.StringByID(R.MyInternationalizationString.NomallyModeIsTurnOn);
- var doorLockInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockInValidSetting);
- var alertNomallyModeIsTurnOn = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.DoorLockLogic, msgNomallyModeIsTurnOn, doorLockInValidSetting);
- alertNomallyModeIsTurnOn.Show();
- alertNomallyModeIsTurnOn.MsgControlClickEvent += async () =>
- {
- //榛樿鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫
- var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
- //if (!res)
- //{
- //string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed);
- // this.ShowTipMsg(msg0);
- //return;
- //}
- };
- //鐐瑰嚮鑷姩鍖�
- alertNomallyModeIsTurnOn.LogicClickEvent += () =>
- {
- //閫昏緫璋冪敤鍓嶈寰楃Щ闄�
- ZbGateway.StatusList.Remove(this);
- //璋冪敤閫昏緫鐣岄潰
- Shared.Phone.Device.Logic.SkipView.SkipAddLogic(2, doorLock);
- };
- alertNomallyModeIsTurnOn.InvalidClickEvent += async () =>
- {
- NomallyOpenModeInvalidTimeDialog();
- };
- }
-
- /// <summary>
- /// 甯稿紑妯″紡澶辨晥鏃堕棿澶勭悊
- /// </summary>
- private void NomallyOpenModeInvalidTimeDialog()
- {
- //澶辨晥璁剧疆
- string msgTimeInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockOpenAllTheTime);
- var timeConfrim = Language.StringByID(R.MyInternationalizationString.Confrim);
- var alertTimeInValidSetting = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting, timeConfrim);
- alertTimeInValidSetting.Show();
-
- alertTimeInValidSetting.InvalidTimeAction += async (obj) =>
- {
- //甯稿紑妯″紡澶辨晥鏃堕棿璁剧疆鎴愬姛
- var temp = int.Parse(obj);
- DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp;
- //榛樿鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫
- var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
- if (res == 0)
- {
- //榛樿鍒涘缓甯稿紑妯″紡澶辫触
- string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed);
- var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal, msg0, Language.StringByID(R.MyInternationalizationString.confrim));
- alert.Show();
- //浜屾鍔犺浇寮圭獥 甯稿紑妯″紡寮�鍚彁绀�
- NomallyOpenModeInvalidTimeDialog();
- }
- };
- }
-
- /// <summary>
/// 甯稿紑妯″紡鐘舵�佹洿鏂�
/// </summary>
private void UpdateNomallyOpenStatus()
@@ -1430,8 +1210,7 @@
/// </summary>
public override void RemoveFromParent()
{
- //寰愭鐨勯棬閿佺晫闈㈠叧闂�(缃戝叧鍏ㄥ眬鎺ユ敹鏃朵娇鐢�)
- ControlCommonResourse.IsDoorLockPageOpen = false;
+ UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction = null;
if (IsDrawerLockMode)
{
CommonPage.Instance.IsDrawerLockMode = false;
--
Gitblit v1.8.0