From 9c607e921ca7c379799e4dd88b140265a1d5d5c5 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期五, 22 十一月 2019 16:35:30 +0800 Subject: [PATCH] 需要合并 --- ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 298 ++++++++++++----------------------------------------------- 1 files changed, 63 insertions(+), 235 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs index fa4e930..ed78c9f 100644 --- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs +++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs @@ -1616,244 +1616,14 @@ } else { - var sceneScrolView = new VerticalScrolViewLayout - { - //Y = Application.GetRealHeight(58) - }; + var sceneScrolView = new VerticalScrolViewLayout { }; functionSceneBodyView.AddChidren(sceneScrolView); foreach (var scene in sceneList) { - var sceneFL = new FrameLayout() - { - Height = Application.GetRealHeight(446), - BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, - Tag = scene - }; - sceneScrolView.AddChidren(sceneFL); - var sceneRowLayout = new RowLayout - { - Y = Application.GetRealHeight(46), - Height = Application.GetRealHeight(446 - 46), - LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor, - Radius = CommonPage.BigFormRadius - }; - sceneFL.AddChidren(sceneRowLayout); - - var sceneImg = new Button() - { - X = Application.GetRealWidth(179), - Width = Application.GetRealWidth(844), - Height = Application.GetRealHeight(400), - UnSelectedImagePath = scene.IconPath, - Radius = (uint)Application.GetRealHeight(17) - }; - sceneRowLayout.AddChidren(sceneImg); - - var leftFL = new FrameLayout - { - X = Application.GetRealWidth(CommonFormResouce.X_Left), - Y = Application.GetRealHeight(58), - Width = Application.GetRealWidth(251), - Height = Application.GetRealHeight(282), - BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor2, - Radius = (uint)Application.GetRealHeight(17) - }; - sceneRowLayout.AddChidren(leftFL); - - var collectionBtn = new Button - { - X = Application.GetRealWidth(23), - Y = Application.GetRealHeight(23), - Width = Application.GetMinRealAverage(65), - Height = Application.GetMinRealAverage(65), - UnSelectedImagePath = "Item/Collection.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(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 - { - TextID = R.MyInternationalizationString.Delay, - Tag = scene.SceneDelayTime - }; - sceneRowLayout.AddLeftView(delayBtn); - - //缂栬緫 - var settingBtn = new Device.CommonForm.RowLayoutEditButton() - { - TextID = R.MyInternationalizationString.Editor, - Tag = scene.SceneDelayTime - }; - //鍒犻櫎 - var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton - { - Tag = scene - }; - - - if(room.IsSharedRoom) - { - - } - else - { - if(room.IsLove) - { - sceneRowLayout.AddRightView(deleteBtn); - } - else - { - sceneRowLayout.AddRightView(settingBtn); - sceneRowLayout.AddRightView(deleteBtn); - } - } - - - //璋冪敤鍦烘櫙 - EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) => - { - //1鎴愬姛 0澶辫触 - //鍚庨潰琛ヤ笂鐩稿叧鎻愮ず - //瑕佸厛浠庣綉鍏宠鍙栧欢鏃舵槸鍚︽鍦ㄦ墽琛岋紝濡傛灉鏄繘琛屽�掕鏃讹紝涓嶅厑璁稿湪鐐瑰嚮 - var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime); - //涓荤綉鍏充笉鍦ㄧ嚎 - if (sceneOpenAllData == null) - { - //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine); - CommonPage.Instance.FailureToServer(); - return; - } - if (sceneOpenAllData.sceneOpenData == null) - { - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); - return; - } - //鎴愬姛 - if (sceneOpenAllData.sceneOpenData.Result == 1) - { - - } - //澶辫触 - else - { - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); - return; - } - }; - sceneImg.MouseUpEventHandler += sceneUpHandler; - //鍒犻櫎鍦烘櫙 - EventHandler<MouseEventArgs> delEvent = (sender, e) => - { - if(room.IsLove) - { - 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) => - { - if (e1) - { - //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; - } - } - }; - } - - }; - deleteBtn.MouseUpEventHandler += delEvent; - //缂栬緫鍦烘櫙 - settingBtn.MouseUpEventHandler += (sender, e) => - { - SceneUI.EditScene(scene, room); - }; - //缂栬緫寤舵椂 - delayBtn.MouseUpEventHandler += (sender, e) => - { - var timeSelect = new SelectTime(); - CommonPage.Instance.AddChidren(timeSelect); - timeSelect.TempTime = scene.SceneDelayTime; - timeSelect.Init(); - timeSelect.TimeAction = (t) => - { - scene.SceneDelayTime = t; - }; - }; + var sceneView = new SceneCategoryView(0, 0); + sceneScrolView.AddChidren(sceneView); + sceneView.Init(scene, room); + GetDelayScene(sceneScrolView); } } } @@ -1888,6 +1658,64 @@ } + /// <summary> + /// GetDelayScene + /// </summary> + /// <param name="scrolViewLayout"></param> + private void GetDelayScene(VerticalScrolViewLayout scrolViewLayout) + { + new System.Threading.Thread(async () => + { + var catDelaySceneResponseAllData = await Scene.CatDelaySceneAsync(); + if (catDelaySceneResponseAllData == null) + { + return; + } + var catDelaySceneResponseData = catDelaySceneResponseAllData.catDelaySceneResponseData; + if (catDelaySceneResponseData == null || catDelaySceneResponseData.DelayScenesList.Count == 0) + { + return; + } + var delayList = catDelaySceneResponseData.DelayScenesList; + + Application.RunOnMainThread(() => + { + for (int i = 0; scrolViewLayout != null && i < scrolViewLayout.ChildrenCount; i++) + { + var sceneView = scrolViewLayout.GetChildren(i) as SceneCategoryView; + foreach (var delayScenesListResponseInfo in delayList) + { + if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id) + { + var times = delayScenesListResponseInfo.RemainTime; + sceneView.scene.RemainTime = times; + new System.Threading.Thread(() => + { + while (times > 0) + { + System.Threading.Thread.Sleep(1000); + Application.RunOnMainThread(() => + { + sceneView.SetTimeText(CommonFormResouce.GetTimeString(times)); + }); + times -= 1; + } + Application.RunOnMainThread(() => + { + sceneView.SetTimeImage(); + }); + }) + { IsBackground = true }.Start(); + + break; + } + } + } + }); + }) + { IsBackground = true }.Start(); + } + #endregion -- Gitblit v1.8.0