| | |
| | | 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; |
| | |
| | | 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); |
| | |
| | | { |
| | | var waitPage = new Loading(); |
| | | waitPage.Start(); |
| | | new System.Threading.Thread(() => { |
| | | new System.Threading.Thread(() => |
| | | { |
| | | try |
| | | { |
| | | var pm = new HttpServerRequest(); |
| | |
| | | } |
| | | else |
| | | { |
| | | var tipView = new EmptyTipView(Language.StringByID(StringId.NotAddedAnyDevices),160) |
| | | var tipView = new EmptyTipView(Language.StringByID(StringId.NotAddedAnyDevices), 160) |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | }; |
| | |
| | | } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (waitPage != null) |
| | | { |
| | | waitPage.RemoveFromParent(); |
| | |
| | | bool isFrist = true; |
| | | foreach (var device in deviceList) |
| | | { |
| | | //if (!this.CheckSupportDevice(device)) |
| | | //{ |
| | | // continue; |
| | | //} |
| | | var row = new RowLayout() |
| | | { |
| | | Height = Application.GetRealHeight(50), |
| | |
| | | LineColor = 0x00000000, |
| | | }; |
| | | contentView.AddChidren(row); |
| | | if(device.spk == SPK.IpCam_Imou) |
| | | { |
| | | var btnDel = new Button() |
| | | { |
| | | TextColor = CSS_Color.TextualColor, |
| | | 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("3452daf");// device.deviceId); |
| | | if (result.Code == StateCode.SUCCESS) |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | Load3tyBrandDeviceList(); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.OperationFailed)+$"\r\n({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); |
| | | }; |
| | | } |
| | | |
| | | if (isFrist) |
| | | { |
| | |
| | | }; |
| | | row.AddChidren(btnName); |
| | | |
| | | btnName.MouseUpEventHandler = (sender, e) => { |
| | | btnName.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | switch (device.spk) |
| | | { |
| | | case SPK.IrModule: |
| | |
| | | }; |
| | | break; |
| | | case SPK.SensorEnvironment: |
| | | case SPK.SensorEnvironmentHailin: |
| | | case SPK.SensorEnvironment2: |
| | | case SPK.SensorEnvironment3: |
| | | var smPage1 = new SensorEnvironmentManagerPage(); |
| | |
| | | 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; |
| | | |
| | | } |
| | | |
| | |
| | | { |
| | | 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 |
| | | |
| | | |
| | | |
| | | |
| | | } |