JLChen
2021-01-11 5a5a2b696866f947b6025d26c3302e8ffef46435
Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs
@@ -265,7 +265,7 @@
                                                        uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
                                                            Command = (int)Command.UpdataCurtainModelStutas, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
                                                            DeviceName = device.Name, DeviceType = "CurtainModule", LoopId = device.LoopID,
                                                            DataString = device.Status.ToString ()
                                                            DataString = ((byte)device.Status).ToString ()
                                                        });
                                                    }
                                                } else if (common.Type == DeviceType.CurtainRoller) {
@@ -274,7 +274,7 @@
                                                        uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
                                                            Command = (int)Command.UpdataCurtainModelStutas, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
                                                            DeviceName = device.Name, DeviceType = "CurtainRoller", LoopId = device.LoopID,
                                                            DataString = (device.Status + 3).ToString ()
                                                            DataString = ((byte)device.CurtainProress + 3).ToString ()
                                                        });
                                                    }
                                                } else if (common.Type == DeviceType.CurtainTrietex) {
@@ -283,7 +283,7 @@
                                                        uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
                                                            Command = (int)Command.UpdataCurtainModelStutas, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
                                                            DeviceName = device.Name, DeviceType = "CurtainRoller", LoopId = device.LoopID,
                                                            DataString = (device.Status + 3).ToString ()
                                                            DataString = ((byte)device.CurtainProress + 3).ToString ()
                                                        });
                                                    }
                                                } else if (common.Type == DeviceType.HVAC || common.Type == DeviceType.ACInfrared) {
@@ -317,6 +317,15 @@
                                                            Command = (int)Command.SetScene, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
                                                            DeviceName = device.Name, DeviceType = "SceneControl", LoopId = device.AreaID,
                                                            DataString = device.AreaSceneID.ToString ()
                                                        });
                                                    }
                                                } else if (common.Type == DeviceType.UniversalDevice) {//2020-09-02 新增通用开关
                                                    var device = Newtonsoft.Json.JsonConvert.DeserializeObject<UniversalDevice> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
                                                    if (device != null) {
                                                        uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () {
                                                            Command = (int)Command.SetCommonSwitch, SubnetId = device.SubnetID, DeviceId = device.DeviceID,
                                                            DeviceName = device.Name, DeviceType = "UniversalDevice", LoopId = device.LoopID,
                                                            DataString = device.SendBytes[1].ToString(),
                                                        });
                                                    }
                                                }
@@ -415,6 +424,7 @@
                            }
                            alexaDeviceLista = ReadDeviceList ();
                            Application.RunOnMainThread (() => {
                                InitDevcieRow (alexaDeviceLista, bodyView);
@@ -488,7 +498,7 @@
            var requestObj = new GetDeviceListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id };
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
            var revertObj = MainPage.RequestHttps (API.GetDeviceList, requestJson);
            if (revertObj.StateCode.ToUpper () == "SUCCESS") {
            if (revertObj.StateCode.ToUpper () == StateCode.SUCCESS) {
                deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UpdateDeviceObj>> (revertObj.ResponseData.ToString ());
            } else {
                //2020-06-29 弹窗提示错误
@@ -517,7 +527,7 @@
            //var requestObj = new UploadDevicesObj () { Device = uploadDevice };
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (uploadDevice);
            var revertObj = MainPage.RequestHttps (API.UploadDevices, requestJson);
            if (revertObj.StateCode.ToUpper() == "SUCCESS") {
            if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) {
                return true;
            }else if (revertObj.StateCode == "Exist") {
                Application.RunOnMainThread (() => {
@@ -606,7 +616,7 @@
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mUpdateAlexaDeviceObj);
            var revertObj = MainPage.RequestHttps (API.UpdateDevice, requestJson);
            if (revertObj.StateCode.ToUpper () == "SUCCESS") {
            if (revertObj.StateCode.ToUpper () == StateCode.SUCCESS) {
                return true;
            } else if (revertObj.StateCode == "Exist") {
                Application.RunOnMainThread (() => {
@@ -628,7 +638,7 @@
            var requestObj = new DelDeviceObj () { Id = commonId };
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
            var revertObj = MainPage.RequestHttps (API.DeleteDevice, requestJson);
            if (revertObj.StateCode.ToUpper() == "SUCCESS") {
            if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) {
                return true;
            } else {
                //2020-06-29 弹窗提示错误
@@ -648,7 +658,7 @@
            var requestObj = new SceneByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id };
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
            var revertObj = MainPage.RequestHttps (API.GetSceneList, requestJson);
            if (revertObj.StateCode.ToUpper() == "SUCCESS") {
            if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) {
                sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SceneByRegion>> (revertObj.ResponseData.ToString ());
            } else {
                //2020-06-29 弹窗提示错误
@@ -664,11 +674,11 @@
        {
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (sceneMark);
            var revertObj = MainPage.RequestHttps (API.AddSceneAndDeviceList, requestJson);
            if (revertObj.StateCode.ToUpper() == "SUCCESS") {
            if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) {
                //var requestAddDeviceObj = new BindDeviceToSceneItemObj () { SceneId = sceneId, Command = command, DeviceID = 0, DataString = dataString };
                //var requestAddDeviceJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestAddDeviceObj);
                //var revertAddDeviceObj = MainPage.RequestHttps ("BindDeviceToSceneItem", requestAddDeviceJson);
                //if (revertAddDeviceObj.StateCode.ToUpper() == "SUCCESS") {
                //if (revertAddDeviceObj.StateCode.ToUpper() == StateCode.SUCCESS) {
                    return true;
                //}
            } else if (revertObj.StateCode == "Exist") {
@@ -692,7 +702,7 @@
        //    var requestAddDeviceObj = new BindDeviceToSceneItemObj () { SceneId = sceneId, Command = command, DeviceID = 0, DataString = dataString };
        //    var requestAddDeviceJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestAddDeviceObj);
        //    var revertAddDeviceObj = MainPage.RequestHttps ("BindDeviceToSceneItem", requestAddDeviceJson);
        //    if (revertAddDeviceObj.StateCode.ToUpper() == "SUCCESS") {
        //    if (revertAddDeviceObj.StateCode.ToUpper() == StateCode.SUCCESS) {
        //        return true;
        //    }
        //    return false;
@@ -706,7 +716,7 @@
            var requestObj = new DeleteSceneObj () { Id = sceneId };
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
            var revertObj = MainPage.RequestHttps (API.DeleteScene, requestJson);
            if (revertObj.StateCode.ToUpper() == "SUCCESS") {
            if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) {
                return true;
            } else {
                //2020-06-29 弹窗提示错误
@@ -717,11 +727,53 @@
        #endregion
        /// <summary>
        ///
        /// </summary>
        /// <param name="bodyView"></param>
        /// <param name="isScene"></param>
        void AddTopTitleView (VerticalScrolViewLayout bodyView, bool isScene = false) {
            var chooseTypeView = new RowLayout () {
                Height = Application.GetRealHeight (80),
                BackgroundColor = SkinStyle.Current.TitileView,
            };
            bodyView.AddChidren (chooseTypeView);
            Button btnEquipmentIcon = new Button () {
                Width = Application.GetRealHeight (65),
                Height = Application.GetRealHeight (65),
                UnSelectedImagePath = "Item/LogicModule.png",
                X = Application.GetRealWidth (30),
                Gravity = Gravity.CenterVertical,
            };
            chooseTypeView.AddChidren (btnEquipmentIcon);
            Button btnEquipmentType = new Button () {
                Width = Application.GetRealHeight (460),
                X = btnEquipmentIcon.Right,
                TextAlignment = TextAlignment.CenterLeft,
                Text = Language.StringByID (R.MyInternationalizationString.Device),
                TextColor = SkinStyle.Current.TextColor1,
                SelectedTextColor = SkinStyle.Current.DialogTextColor
            };
            chooseTypeView.AddChidren (btnEquipmentType);
            if (isScene) {
                btnEquipmentIcon.UnSelectedImagePath = "Scene/Scene.png";
                btnEquipmentType.Text = Language.StringByID (R.MyInternationalizationString.Scenes);
            }
        }
        /// <summary>
        /// 添加设备界面
        /// </summary>
        public void InitDevcieRow (List<UpdateDeviceObj> list, VerticalScrolViewLayout bodyView)
        {
            bodyView.RemoveAll ();
            if (list.Count > 0) {
                //添加标题
                AddTopTitleView (bodyView);
            }
            foreach (var device in list) {
                var rowView = new RowLayout () {
                    Height = Application.GetRealHeight (110),
@@ -747,10 +799,31 @@
                    alert.Show ();
                    alert.ResultEventHandler += (s, dd) => {
                        if (dd) {
                            if (DelDevice (device.Id)) {
                                rowView.RemoveFromParent ();
                                list.Remove (device);
                            }
                            //if (DelDevice (device.Id)) {
                            //    rowView.RemoveFromParent ();
                            //    list.Remove (device);
                            //}
                            System.Threading.Tasks.Task.Run (() => {
                                Application.RunOnMainThread (() => {
                                    MainPage.Loading.Start (Language.StringByID (R.MyInternationalizationString.load));
                                });
                                try {
                                    var result = DelDevice (device.Id);
                                    Application.RunOnMainThread (() => {
                                        if (result) {
                                            rowView.RemoveFromParent ();
                                            list.Remove (device);
                                        }
                                    });
                                } catch { } finally {
                                    Application.RunOnMainThread (() => {
                                        MainPage.Loading.Hide ();
                                    });
                                }
                            });
                        }
                    };
                };
@@ -762,6 +835,11 @@
        /// </summary>
        public void InitSceneRow (List<SceneByRegion> list, VerticalScrolViewLayout bodyView)
        {
            if (list.Count > 0) {
                //添加标题
                AddTopTitleView (bodyView, true);
            }
            foreach (var scene in list) {
                var rowView = new RowLayout () {
                    Height = Application.GetRealHeight (110),
@@ -793,10 +871,31 @@
                    alert.Show ();
                    alert.ResultEventHandler += (s, dd) => {
                        if (dd) {
                            if (DelScene (scene.SceneId)) {
                                rowView.RemoveFromParent ();
                                list.Remove (scene);
                            }
                            //if (DelScene (scene.SceneId)) {
                            //    rowView.RemoveFromParent ();
                            //    list.Remove (scene);
                            //}
                            System.Threading.Tasks.Task.Run (() => {
                                Application.RunOnMainThread (() => {
                                    MainPage.Loading.Start (Language.StringByID (R.MyInternationalizationString.load));
                                });
                                try {
                                    var result = DelScene (scene.SceneId);
                                    Application.RunOnMainThread (() => {
                                        if (result) {
                                            rowView.RemoveFromParent ();
                                            list.Remove (scene);
                                        }
                                    });
                                } catch { } finally {
                                    Application.RunOnMainThread (() => {
                                        MainPage.Loading.Hide ();
                                    });
                                }
                            });
                        }
                    };
                };