From 7ff70bc7c9460c395b59952d55df6e5d6a12a718 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期三, 15 二月 2023 16:27:32 +0800 Subject: [PATCH] Merge branch 'Dev-Wxr' --- HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs | 338 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 332 insertions(+), 6 deletions(-) diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs index 048ce36..2496657 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs @@ -3,6 +3,9 @@ using HDL_ON.DAL.Server; using HDL_ON.Entity; using HDL_ON.UI.CSS; +#if __Android__ +using Java.Interop; +#endif using Shared; namespace HDL_ON.UI { @@ -23,10 +26,124 @@ { Action<string, string> action = (s, a) => { - var page = new AddDevciePage(brand); - MainPage.BasePageView.AddChidren(page); - page.LoadPage(contentView); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + if (brand.productBrand == "IMOU") + { +#if __ANDROID__ + + FunctionList.List.GetIpCamImouList(); + + + if (string.IsNullOrEmpty(Com.Utils.HdlToLcUtils.Instance.SubAccessToken)) + { + + var waitPage = new Loading(); + MainPage.BaseView.AddChidren(waitPage); + waitPage.Start(""); + new System.Threading.Thread(() => + { + try + { + +#if DEBUG + Com.Utils.HdlToLcUtils.Instance.ShowErrorInfo(true); +#endif + + var http = new HttpServerRequest(); + var pack = http.GetLcSubAccountToken(); + if (pack.Code == StateCode.SUCCESS) + { + if (pack.Data == null || string.IsNullOrEmpty(pack.Data.ToString())) + { + Application.RunOnMainThread(() => + { + new PublicAssmebly().TipMsg(Language.StringByID(StringId.Tip), Language.StringByID(StringId.Get3tyIotInfoFailed)); + return; + }); + } + Com.Utils.HdlToLcUtils.Instance.InitData(Shared.Application.Activity, "HDL-HOME-APP-TEST", "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss", OnAppConfig.Instance.RequestHttpsHost); + Com.Utils.HdlToLcUtils.Instance.HomeId = DB_ResidenceData.Instance.CurrentRegion.id; + Com.Utils.HdlToLcUtils.Instance.Token = UserInfo.Current.AccessToken; + Com.Utils.HdlToLcUtils.Instance.SubAccessToken = pack.Data.ToString(); +#if __ANDROID__ + Application.RunOnMainThread(() => + { + try + { + + var result = Com.Utils.HdlToLcUtils.Instance.CheckCameraPermissions(); + if (result) + { + var backTemp = new AddLcCam(); + backTemp.backAction = () => + { + Load3tyBrandDeviceList(); + }; + Com.Utils.HdlToLcUtils.Instance.AddCamera(backTemp); + } + else + { + Com.Utils.HdlToLcUtils.Instance.RequestCameraPermissions(); + } + } + catch (Exception ex) + { + + } + }); +#endif + } + else + { + Application.RunOnMainThread(() => + { + new PublicAssmebly().TipMsg(Language.StringByID(StringId.Tip), Language.StringByID(StringId.huoqushujushibao) + $"({pack.Code})"); + }); + } + } + catch (Exception ex) + { + MainPage.Log("鍔犺浇涔愭鎽勫儚澶村紓甯�"); + } + finally + { + Application.RunOnMainThread(() => + { + if (waitPage != null) + { + waitPage.RemoveFromParent(); + waitPage = null; + } + }); + } + }) + { IsBackground = true }.Start(); + } + else + { + var result = Com.Utils.HdlToLcUtils.Instance.CheckCameraPermissions(); + if (result) + { + var backTemp = new AddLcCam(); + backTemp.backAction = () => + { + Load3tyBrandDeviceList(); + }; + Com.Utils.HdlToLcUtils.Instance.AddCamera(backTemp); + } + else + { + Com.Utils.HdlToLcUtils.Instance.RequestCameraPermissions(); + } + } +#endif + } + else + { + var page = new AddDevciePage(brand); + MainPage.BasePageView.AddChidren(page); + page.LoadPage(contentView); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + } }; new TopViewDiv(bodyView, Language.StringByID(StringId.Devices)).LoadTopView_AddIcon("3ty", action); bodyView.BackgroundColor = CSS_Color.BackgroundColor; @@ -108,10 +225,11 @@ bool isFrist = true; foreach (var device in deviceList) { - FrameLayout row = new FrameLayout() + var row = new RowLayout() { Height = Application.GetRealHeight(50), BackgroundColor = CSS_Color.MainBackgroundColor, + LineColor = 0x00000000, }; contentView.AddChidren(row); @@ -193,6 +311,140 @@ 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>()); + }; + } + } } @@ -207,5 +459,79 @@ { public List<Function> list = new List<Function>(); } - + + + +#if __Android__ + 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() + { + } + } +#else + public class AddLcCam + { + public Action backAction; + + public void Back() + { + backAction?.Invoke(); + } + } +#endif } -- Gitblit v1.8.0