From 3f6685c77beeb12baf840733fb890860f4c26e7c Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 25 七月 2024 17:25:59 +0800 Subject: [PATCH] 2024年07月25日17:24:45 --- HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs | 311 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 301 insertions(+), 10 deletions(-) diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs index f6824e8..2bcf880 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs @@ -3,10 +3,16 @@ using HDL_ON.DAL.Server; using HDL_ON.Entity; using HDL_ON.UI.CSS; +using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock; +#if __Android__ +using Java.Interop; +using Android.Content; +using Hdl.Onpro; +#endif using Shared; namespace HDL_ON.UI { - public class DeviceListPage : FrameLayout + public class DeviceListPage : FrameLayout { FrameLayout bodyView; VerticalRefreshLayout contentView; @@ -28,13 +34,15 @@ page.LoadPage(contentView); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; - new TopViewDiv(bodyView, Language.StringByID(StringId.Devices)).LoadTopView_AddIcon("3ty", action); + var topView = new TopViewDiv(bodyView, Language.StringByID(StringId.Devices)); + topView.maginY = 10; + topView.LoadTopView_AddIcon("3ty", action); bodyView.BackgroundColor = CSS_Color.BackgroundColor; contentView = new VerticalRefreshLayout() { - Y = Application.GetRealHeight(64), - Height = Application.GetRealHeight(667 - 64), + Y = Application.GetRealHeight(64+10), + Height = Application.GetRealHeight(667 - 64-10), VerticalScrollBarEnabled = false, }; bodyView.AddChidren(contentView); @@ -54,7 +62,8 @@ { var waitPage = new Loading(); waitPage.Start(); - new System.Threading.Thread(() => { + new System.Threading.Thread(() => + { try { var pm = new HttpServerRequest(); @@ -72,7 +81,7 @@ } else { - var tipView = new EmptyTipView(Language.StringByID(StringId.NotAddedAnyDevices),160) + var tipView = new EmptyTipView(Language.StringByID(StringId.NotAddedAnyDevices), 160) { Gravity = Gravity.CenterHorizontal, }; @@ -91,7 +100,8 @@ } finally { - Application.RunOnMainThread(() => { + Application.RunOnMainThread(() => + { if (waitPage != null) { waitPage.RemoveFromParent(); @@ -108,10 +118,15 @@ bool isFrist = true; foreach (var device in deviceList) { - FrameLayout row = new FrameLayout() + //if (!this.CheckSupportDevice(device)) + //{ + // continue; + //} + var row = new RowLayout() { Height = Application.GetRealHeight(50), BackgroundColor = CSS_Color.MainBackgroundColor, + LineColor = 0x00000000, }; contentView.AddChidren(row); @@ -162,7 +177,8 @@ }; row.AddChidren(btnName); - btnName.MouseUpEventHandler = (sender, e) => { + btnName.MouseUpEventHandler = (sender, e) => + { switch (device.spk) { case SPK.IrModule: @@ -171,6 +187,7 @@ contentView.BeginHeaderRefreshing(); }); break; + case SPK.SensorMmvPose: case SPK.SenesorMegahealth: case SPK.SenesorMegahealth2: var smPage = new SenesorMegahealthManagerPage(); @@ -181,6 +198,7 @@ }; break; case SPK.SensorEnvironment: + case SPK.SensorEnvironmentHailin: case SPK.SensorEnvironment2: case SPK.SensorEnvironment3: var smPage1 = new SensorEnvironmentManagerPage(); @@ -190,9 +208,176 @@ contentView.BeginHeaderRefreshing(); }; break; + case SPK.VideoDoorLock: + { + CommonMethod.Current.MainThread(() => + { + //钀ょ煶瑙嗛闂ㄩ攣 + var form = new VideoDoorLockPage(device, btnName, new Button(), CommonMethod.Comerom.sanfan, () => + { + row.RemoveFromParent(); + }); + MainPage.BasePageView.AddChidren(form); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + form.Show(); + }); + } + break; } }; + + + + if (device.spk == SPK.IpCam_Imou) + { + var btnDel = new Button() + { + TextColor = CSS_Color.MainBackgroundColor, + BackgroundColor = CSS_Color.WarningColor, + TextID = StringId.Del, + TextAlignment = TextAlignment.Center, + }; + row.AddRightView(btnDel); + + btnDel.MouseUpEventHandler = (sender, e) => + { + Action action = () => + { + var waitPage = new Loading(); + this.AddChidren(waitPage); + waitPage.Start(""); + new System.Threading.Thread(() => + { + try + { + var http = new HttpServerRequest(); + var result = http.Delete3tyDevice(device.deviceId); + if (result.Code == StateCode.SUCCESS) + { + Application.RunOnMainThread(() => + { + Load3tyBrandDeviceList(); + }); + } + else + { + Application.RunOnMainThread(() => + { + new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.OperationFailed) + $"({result.Code})", true); + }); + } + } + catch (Exception ex) + { + MainPage.Log($"鍒犻櫎绗笁鏂硅澶囧け璐�:{ex.Message}"); + } + finally + { + Application.RunOnMainThread(() => + { + if (waitPage != null) + { + waitPage.RemoveFromParent(); + waitPage = null; + } + }); + } + }) + { IsBackground = true }.Start(); + }; + new PublicAssmebly().TipOptionMsg(StringId.Tip, Language.StringByID(StringId.AreYouSureToDeleteThisDevice), action); + }; + + var btnEdit = new Button() + { + Width = Application.GetRealWidth(150), + }; + row.AddChidren(btnEdit); + btnEdit.MouseUpEventHandler = (sender, e) => + { + Action<string> callBack = (str) => + { + if (string.IsNullOrEmpty(str)) + { + new Tip() + { + CloseTime = 1, + Text = Language.StringByID(StringId.NameCannotBeEmpty), + Direction = AMPopTipDirection.None, + }.Show(bodyView); + return; + } + if (str == device.name) + { + return; + } + var waitPage = new Loading(); + bodyView.AddChidren(waitPage); + waitPage.Start(Language.StringByID(StringId.PleaseWait)); + new System.Threading.Thread(() => + { + try + { + var resultObj = new HttpServerRequest().UpdataDevcieName(device, str); + if (resultObj.Code == StateCode.SUCCESS) + { + device.name = str; + var deviceNew = FunctionList.List.GetIpCamImouList().Find((obj) => obj.deviceId == device.deviceId); + if (deviceNew != null) + { + deviceNew.name = str; + } + Application.RunOnMainThread(() => + { + btnName.Text = str; + }); + } + else + { + //澶辫触鎻愮ず + IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code); + } + } + catch (Exception ex) + { + MainPage.Log($"update 3ty device name error : {ex.Message}"); + } + finally + { + Application.RunOnMainThread(() => + { + if (waitPage != null) + { + waitPage.RemoveFromParent(); + waitPage = null; + } + }); + } + }) + { IsBackground = true }.Start(); + }; + new PublicAssmebly().LoadDialog_EditParater(StringId.ChangeName, device.name, callBack, StringId.NameCannotBeEmpty, 0, new List<string>()); + }; + } + } + + } + + /// <summary> + /// 妫�鏌ユ槸鍚︽敮鎸� + /// </summary> + /// <param name="function"></param> + /// <returns></returns> + bool CheckSupportDevice(Function function) + { + + if (function == null) return false; + if (function.spk == SPK.VideoDoorLock) + { + return false; + } + return true; } @@ -206,5 +391,111 @@ { public List<Function> list = new List<Function>(); } - + + + +#if __Android__ + + //[Android.Content.BroadcastReceiver(Enabled = true, Exported = false)] + //public class ImouReceiver : Android.Content.BroadcastReceiver + //{ + // public override void OnReceive(Context context, Intent intent) + // { + // if (intent != null) + // { + // string action = intent.Action; + // if (action == "hdlUserDeviceBind") + // { + // string value = intent.GetStringExtra("data"); + // } + // } + // } + //} + + public class AddLcCam : Java.Lang.Object, Com.CallBack.IAddCamera + { + + public Action backAction; + + //public IntPtr Handle => throw new NotImplementedException(); + + //public int JniIdentityHashCode => throw new NotImplementedException(); + + //public JniObjectReference PeerReference => throw new NotImplementedException(); + + //public JniPeerMembers JniPeerMembers => throw new NotImplementedException(); + + //public JniManagedPeerStates JniManagedPeerState => throw new NotImplementedException(); + + public void Back() + { + backAction?.Invoke(); + } + + public void Dispose() + { + } + + public void Disposed() + { + } + + public void DisposeUnlessReferenced() + { + } + + public void Finalized() + { + } + + public void OnError(string p0) + { + } + + public void SetJniIdentityHashCode(int value) + { + } + + public void SetJniManagedPeerState(JniManagedPeerStates value) + { + } + + public void SetPeerReference(JniObjectReference reference) + { + } + + public void Success(string p0) + { + } + + public void UnregisterFromRuntime() + { + } + } + + public class BindDeviceFeedback : Java.Lang.Object, Hdl.Onpro.IRegisterDeviceFeedback + { + public Action<string,string> tipAction; + + public void Feedback(string method, string msg) + { + tipAction?.Invoke(method, msg); + } + } + +#else + public class AddLcCam + { + public Action backAction; + + public void Back() + { + backAction?.Invoke(); + } + } +#endif + + + + } -- Gitblit v1.8.0