gxc
2019-10-28 b4d83ac63947214471b6a6bb0fb14ec5a9f23de4
ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -90,7 +90,7 @@
        /// <summary>
        /// 设备类型RowLayout
        /// </summary>
        private RowLayout typeRowLayout;
        private FrameLayout typeRowLayout;
        /// <summary>
        /// 楼层
        /// </summary>
@@ -585,7 +585,7 @@
            var midFL = new FrameLayout
            {
                Y = topView.Bottom,
                Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - topView.Bottom,
                Height = Application.GetRealHeight(1549),
                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
            };
            AddChidren(midFL);
@@ -596,18 +596,17 @@
                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
            };
            midFL.AddChidren(functionSceneAutoBG);
            //功能
            functionBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34, 150, 68);
            functionSceneAutoBG.AddChidren(functionBtn);
            functionBtn.Init();
            functionBtn.SetTitle(R.MyInternationalizationString.Function);
            //场景
            sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34, 150, 68);
            sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34, 150, 68);
            functionSceneAutoBG.AddChidren(sceneBtn);
            sceneBtn.Init();
            sceneBtn.SetTitle(R.MyInternationalizationString.Scence);
            //功能
            functionBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34, 150, 68);
            functionSceneAutoBG.AddChidren(functionBtn);
            functionBtn.Init();
            functionBtn.SetTitle(R.MyInternationalizationString.Function);
            //自动化
            automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20, 34, 150, 68);
            automationBtn.Init();
@@ -705,7 +704,7 @@
        {
            var floors = new SelectFloor ();
            AddChidren(floors);
            floors.Init(599,357,Direction.Right);
            floors.Init(580,330,Direction.Right);
            floors.FloorAction += (floorName) =>
            {
                floorBtn.Text = floorName;
@@ -786,13 +785,7 @@
            var scene = new CategoryAddScene();
            UserView.HomePage.Instance.AddChidren(scene);
            UserView.HomePage.Instance.PageIndex += 1;
            CategoryAddScene.sceneTargetDevicesList?.Clear();
            CategoryAddScene.SceneText = "";
            scene.curRoom = Shared.Common.Room.CurrentRoom;
            CategoryAddScene.ModifySceneUI = null;
            CategoryAddScene.Modify = false;
            CategoryAddScene.ImagePath = "SceneIcon/1.png";
            scene.Show(scene.curRoom);
            scene.Show();
        }
        /// <summary>
@@ -901,11 +894,10 @@
                deviceListScrolView = new VerticalScrolViewLayout
                {
                    X = Application.GetRealWidth(CommonFormResouce.X_Left),
                    Y = functionTypeScrowView.Bottom + Application.GetRealHeight(50),
                    Y = Application.GetRealHeight(35+275),
                    Width = Application.GetRealWidth(1028),
                    Height = functionSceneBodyView.Height - Application.GetRealHeight(279 + 50) - 1,
                    Height = Application.GetRealHeight(938) - 1,
                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
                };
                functionSceneBodyView.AddChidren(deviceListScrolView);
                tempFunctionTypeBtn = new FunctionButton();
@@ -993,18 +985,18 @@
                            var deviceTypeRowLayout = new RowLayout()
                            {
                                Height = Application.GetRealHeight(127 + 35),
                                Height = Application.GetRealHeight(129 + 35),
                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                Tag = deviceUI
                            };
                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                            var deviceRow = new FunctionRow(0, 35);
                            var deviceRow = new CategoryFunctionRow(0, 35);
                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                            deviceRow.SetStatu(light.IsOnline == 1);
                            deviceRow.SetZoneText(deviceUI.GetZone());
                            deviceTypeRowLayout.AddChidren(deviceRow);
                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                            {
@@ -1012,8 +1004,9 @@
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
                                (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
                                if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                deviceRow.IsSelected = (send2 as Button).IsSelected;
                                if ((send2 as Button).IsSelected)
                                {
                                    light.SwitchControl(1);
                                }
@@ -1036,6 +1029,15 @@
                                });
                            };
                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                            {
                                var lightControl = new Phone.Device.Light.LightControl();
                                UserView.HomePage.Instance.AddChidren(lightControl);
                                UserView.HomePage.Instance.PageIndex += 1;
                                lightControl.action = RefreshBodyView;
                                lightControl.Show(deviceUI, room);
                            };
                            var editBtn = new CommonForm.RowLayoutEditButton()
                            {
                                Tag = deviceUI,
@@ -1086,10 +1088,11 @@
                            };
                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                            var deviceRow = new FunctionRow(0, 35);
                            var deviceRow = new CategoryFunctionRow(0, 35);
                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                            deviceRow.SetStatu(airSwitch.IsOnline == 1);
                            deviceRow.SetZoneText(deviceUI.GetZone());
                            deviceTypeRowLayout.AddChidren(deviceRow);
                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
@@ -1121,6 +1124,15 @@
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                    }
                                });
                            };
                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                            {
                                var lightControl = new Phone.Device.Light.LightControl();
                                UserView.HomePage.Instance.AddChidren(lightControl);
                                UserView.HomePage.Instance.PageIndex += 1;
                                lightControl.action = RefreshBodyView;
                                lightControl.Show(deviceUI, room);
                            };
                            var editBtn = new CommonForm.RowLayoutEditButton()
@@ -1169,16 +1181,17 @@
                            var deviceTypeRowLayout = new RowLayout()
                            {
                                Height = Application.GetRealHeight(127 + 35),
                                Height = Application.GetRealHeight(129 + 35),
                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                Tag = deviceUI
                            };
                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                            var deviceRow = new FunctionRow(0, 35);
                            var deviceRow = new CategoryFunctionRow(0, 35);
                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                            deviceRow.SetStatu(dimmableLight.IsOnline == 1);
                            deviceRow.SetZoneText(deviceUI.GetZone());
                            deviceTypeRowLayout.AddChidren(deviceRow);
                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
@@ -1210,6 +1223,16 @@
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                    }
                                });
                            };
                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                            {
                                var dimmableLightControl = new Phone.Device.Light.DimmableLightControl();
                                UserView.HomePage.Instance.AddChidren(dimmableLightControl);
                                UserView.HomePage.Instance.PageIndex += 1;
                                UserView.HomePage.Instance.ScrollEnabled = false;
                                dimmableLightControl.action = RefreshBodyView;
                                dimmableLightControl.Show(deviceUI, room);
                            };
                            var editBtn = new CommonForm.RowLayoutEditButton()
@@ -1424,10 +1447,9 @@
                foreach (var deviceType in Common.Room.GetdeviceTypes(room))
                {
                    typeRowLayout = new RowLayout()
                    typeRowLayout = new FrameLayout()
                    {
                        Width = Application.GetRealWidth(CommonPage.AppRealWidth / 5),
                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                        Tag = deviceType
                    };
                    functionTypeScrowView.AddChidren(typeRowLayout);
@@ -1440,19 +1462,14 @@
                    functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType));
                    typeRowLayout.AddChidren(functionTypeIMG);
                    functionTypeIMG.ImageBtn.MouseUpEventHandler += ShowSameTypeFunction;
                    functionTypeIMG.NameBtn.MouseUpEventHandler += ShowSameTypeFunction;
                    functionTypeIMG.ImageBG.MouseUpEventHandler += ShowSameTypeFunction;
                    functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction;
                    if (deviceType == room.DeviceUIList[0].CommonDevice.Type)
                    {
                        ShowSameTypeFunction(functionTypeIMG.ImageBtn, null);
                    }
                }
            }
        }
@@ -1464,7 +1481,7 @@
            var roomFL = new HorizontalScrolViewLayout()
            {
                X = Application.GetRealWidth(CommonFormResouce.X_Left),
                Height = Application.GetRealHeight(167),
                Height = Application.GetRealHeight(170),
                Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonFormResouce.X_Left),
                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
            };
@@ -1474,7 +1491,7 @@
            functionSceneBodyView = new FrameLayout()
            {
                Y = roomFL.Bottom,
                Height = Application.GetRealHeight(1316),
                Height = Application.GetRealHeight(973+279),
                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
            };
            functionSceneAutoBodyView.AddChidren(functionSceneBodyView);
@@ -1482,11 +1499,10 @@
            Button curBtn = new Button();
            foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom())
            {
                var row = new RowLayout()
                var row = new FrameLayout()
                {
                    Width = Application.GetRealWidth(187 + 50),
                    Height = Application.GetRealHeight(167),
                    LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor
                    Height = Application.GetRealHeight(167)
                };
                roomFL.AddChidren(row);
@@ -1559,6 +1575,7 @@
        /// <param name="room"></param>
        public void RefreshScene(Common.Room room)
        {
            functionSceneBodyView.RemoveAll();
            var sceneList = room.SceneUIList;
            if (sceneList.Count == 0)
            {
@@ -1568,7 +1585,7 @@
            {
                var sceneScrolView = new VerticalScrolViewLayout
                {
                    Y = Application.GetRealHeight(58)
                    //Y = Application.GetRealHeight(58)
                };
                functionSceneBodyView.AddChidren(sceneScrolView);
                foreach (var scene in sceneList)
@@ -1618,20 +1635,48 @@
                        Width = Application.GetMinRealAverage(65),
                        Height = Application.GetMinRealAverage(65),
                        UnSelectedImagePath = "Item/Collection.png",
                        SelectedImagePath = "Item/CollectionSelected.png"
                        SelectedImagePath = "Item/CollectionSelected.png",
                        IsSelected = Common.Room.CurrentRoom.GetLoveRoom().SceneUIFilePathList.Contains(scene.FileName),
                        Tag = scene
                    };
                    leftFL.AddChidren(collectionBtn);
                    var sceneNameBtn = new Button()
                    {
                        Width = Application.GetRealWidth(176),
                        Height = Application.GetRealHeight(200),
                        Height = Application.GetRealHeight(150),
                        TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
                        Text = scene.Name,
                        Gravity = Gravity.Center,
                        IsMoreLines = true
                    };
                    leftFL.AddChidren(sceneNameBtn);
                    var collection = new Button
                    {
                        Tag=scene
                    };
                    leftFL.AddChidren(collection);
                    collection.MouseUpEventHandler += (sender, e) =>
                    {
                        if (room.IsLove)
                        {
                            Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene);
                            sceneScrolView.RemoveViewByTag(collectionBtn.Tag);
                        }
                        else
                        {
                            collectionBtn.IsSelected = !collectionBtn.IsSelected;
                            if (collectionBtn.IsSelected)
                            {
                                Common.Room.CurrentRoom.GetLoveRoom().AddScene(scene);
                            }
                            else
                            {
                                Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene);
                            }
                        }
                    };
                    //定时
                    var delayBtn = new RowLayoutDeleteButton
@@ -1644,7 +1689,7 @@
                    //编辑
                    var settingBtn = new Device.CommonForm.RowLayoutEditButton()
                    {
                        TextID = R.MyInternationalizationString.Setting,
                        TextID = R.MyInternationalizationString.Editor,
                        Tag = scene.SceneDelayTime
                    };
                    //删除
@@ -1694,83 +1739,75 @@
                    //删除场景
                    EventHandler<MouseEventArgs> delEvent = (sender, e) =>
                    {
                        var tip = new CustomAlert { };
                        AddChidren(tip);
                        tip.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete));
                        //var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.ConfirmDelete), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
                        //alert.Show();
                        tip.ResultEventHandler += async (e1) =>
                        if(room.IsLove)
                        {
                            if (e1)
                            Shared.Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene);
                            sceneScrolView.RemoveViewByTag((sender as Button).Tag);
                        }
                        else
                        {
                            var tip = new CustomAlert { };
                            AddChidren(tip);
                            tip.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete));
                            //var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.ConfirmDelete), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
                            //alert.Show();
                            tip.ResultEventHandler += async (e1) =>
                            {
                                //0 移除失败 1 移除成功 2 没有该场景
                                var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id);
                                if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null)
                                if (e1)
                                {
                                    //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine);
                                    CommonPage.Instance.FailureToServer();
                                    return;
                                    //0 移除失败 1 移除成功 2 没有该场景
                                    var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id);
                                    if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null)
                                    {
                                        //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine);
                                        CommonPage.Instance.FailureToServer();
                                        return;
                                    }
                                    //1成功
                                    if (removeSceneAllData.removeSceneData.Result == 1)
                                    {
                                        room.RemoveScene(scene);
                                        //RefreshBodyView();
                                        sceneScrolView.RemoveViewByTag((sender as Button).Tag);
                                    }
                                    //0 移除失败
                                    else if (removeSceneAllData.removeSceneData.Result == 0)
                                    {
                                        CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
                                        return;
                                    }
                                    //2 没有该场景
                                    else if (removeSceneAllData.removeSceneData.Result == 2)
                                    {
                                        room.RemoveScene(scene);
                                        //RefreshBodyView();
                                        sceneScrolView.RemoveViewByTag((sender as Button).Tag);
                                        CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull);
                                        return;
                                    }
                                }
                                //1成功
                                if (removeSceneAllData.removeSceneData.Result == 1)
                                {
                                    room.RemoveScene(scene);
                                    //RefreshBodyView();
                                    sceneScrolView.RemoveViewByTag((sender as Button).Tag);
                                }
                                //0 移除失败
                                else if (removeSceneAllData.removeSceneData.Result == 0)
                                {
                                    CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
                                    return;
                                }
                                //2 没有该场景
                                else if (removeSceneAllData.removeSceneData.Result == 2)
                                {
                                    room.RemoveScene(scene);
                                    //RefreshBodyView();
                                    sceneScrolView.RemoveViewByTag((sender as Button).Tag);
                                    CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull);
                                    return;
                                }
                            }
                        };
                            };
                        }
                    };
                    deleteBtn.MouseUpEventHandler += delEvent;
                    //编辑场景
                    settingBtn.MouseUpEventHandler += (sender, e) =>
                    {
                        SceneRoomUI.EditScene(scene,room);
                        SceneUI.EditScene(scene, room);
                    };
                    //编辑延时
                    delayBtn.MouseUpEventHandler += (sender, e) =>
                    {
                        var tList = new List<string>() { };
                        for (int i = 0; i < 60; i++)
                        var timeSelect = new SelectTime();
                        CommonPage.Instance.AddChidren(timeSelect);
                        timeSelect.TempTime = scene.SceneDelayTime;
                        timeSelect.Init();
                        timeSelect.TimeAction = (t) =>
                        {
                            tList.Add($"{i} {Language.StringByID(R.MyInternationalizationString.Second)}");
                        }
                        //int beforeIndex = (int)(sender as CommonForm.RowLayoutEditButton).Tag;
                        //PickerView.Show(tList, (obj) =>
                        //{
                        //    var tempRoom = Shared.Common.Room.GetRoomByFilePath(sceneRoomUI.room.FileName);
                        //    if (tempRoom == null)
                        //    {
                        //        return;
                        //    }
                        //    foreach (var ss in tempRoom.SceneUIList)
                        //    {
                        //        if (ss.Id == sceneRoomUI.sceneUI.Id)
                        //        {
                        //            //ss.SceneDelayTime = int.Parse(obj.Split(' ')[0]);
                        //            sceneRoomUI.room.Save();
                        //            RefreshBodyView();
                        //            return;
                        //        }
                        //    }
                        //}, Language.StringByID(R.MyInternationalizationString.Confrim), tList[(int)(sender as CommonForm.RowLayoutEditButton).Tag]);
                            scene.SceneDelayTime = t;
                        };
                    };
                }
            }