From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期二, 30 八月 2022 09:37:38 +0800 Subject: [PATCH] 合并了IOS的代码 --- ZigbeeApp/Shared/Phone/MainPage/Controls/SceneCardControl.cs | 158 +++++++++++++++++++++++++++++++--------------------- 1 files changed, 94 insertions(+), 64 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/SceneCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/SceneCardControl.cs index def39fb..c674940 100755 --- a/ZigbeeApp/Shared/Phone/MainPage/Controls/SceneCardControl.cs +++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/SceneCardControl.cs @@ -8,7 +8,7 @@ /// <summary> /// 鍦烘櫙鍗$墖鎺т欢 /// </summary> - public class SceneCardControl : FrameLayoutControl + public class SceneCardControl : FrameLayoutStatuControl { #region 鈻� 鍙橀噺澹版槑___________________________ @@ -51,17 +51,16 @@ public SceneCardControl() { //鍥剧墖鐪熷疄瀹藉害+鍥剧墖鑷韩宸﹀彸绌虹櫧 - this.Width = Application.GetMinRealAverage(458 + 14 * 2); + this.Width = HdlControlLogic.Current.GetPictrueRealSize(458 + 14 * 2); //鍥剧墖楂樺害+闃村奖 - this.Height = Application.GetMinRealAverage(305 + 43); + this.Height = HdlControlLogic.Current.GetPictrueRealSize(305 + 43); //鍙栨秷鐐瑰嚮鐗规晥 this.UseClickStatu = false; this.ButtonClickEvent += (sender, e) => { - //寮�鍚疞oading鐗规晥 - this.StartLoadingApreal(); //璋冪敤鍦烘櫙 + this.CanClick = false; this.SetSceneAction(); }; } @@ -73,39 +72,78 @@ public void InitControl(Common.SceneUI i_scene) { this.SceneId = i_scene.Id; + string hourText = Language.StringByID(R.MyInternationalizationString.Hour); + string minuText = Language.StringByID(R.MyInternationalizationString.Minute); + string secondText = Language.StringByID(R.MyInternationalizationString.Second); //鍦烘櫙鍥剧墖鎺т欢 this.btnScenePic = new ImageView(); - btnScenePic.X = Application.GetMinRealAverage(14); - btnScenePic.Width = Application.GetMinRealAverage(458); - btnScenePic.Height = Application.GetMinRealAverage(305); - btnScenePic.Radius = (uint)Application.GetMinRealAverage(17); + btnScenePic.X = HdlControlLogic.Current.GetPictrueRealSize(14); + btnScenePic.Width = HdlControlLogic.Current.GetPictrueRealSize(458); + btnScenePic.Height = HdlControlLogic.Current.GetPictrueRealSize(305); + btnScenePic.Radius = (uint)Application.GetRealHeight(17); this.AddChidren(btnScenePic, ChidrenBindMode.NotBind); //鍦烘櫙鑳屾櫙鍥炬帶浠� this.btnSceneBackGroud = new PicViewControl(this.Width, this.Height, false); btnSceneBackGroud.UnSelectedImagePath = "Scene/Background.png"; - this.AddChidren(btnSceneBackGroud, ChidrenBindMode.BindEventOnly); + this.AddChidren(btnSceneBackGroud, ChidrenBindMode.BindEvent); //寤舵椂鏃堕棿鏄剧ず鎺т欢 - this.btnTimeView = new NormalViewControl(Application.GetMinRealAverage(280), Application.GetMinRealAverage(63), false); - btnTimeView.X = Application.GetMinRealAverage(37); - btnTimeView.Y = Application.GetMinRealAverage(10); + this.btnTimeView = new NormalViewControl(HdlControlLogic.Current.GetPictrueRealSize(280), HdlControlLogic.Current.GetPictrueRealSize(63), false); + btnTimeView.X = HdlControlLogic.Current.GetPictrueRealSize(37); + btnTimeView.Y = HdlControlLogic.Current.GetPictrueRealSize(10); btnTimeView.TextColor = 0xffffb400; btnTimeView.IsBold = true; - this.AddChidren(btnTimeView, ChidrenBindMode.BindEventOnly); + if (i_scene.SceneDelayTime > 0) + { + btnTimeView.Text= this.GetTimeString(i_scene.SceneDelayTime, hourText, minuText, secondText); + } + this.AddChidren(btnTimeView, ChidrenBindMode.BindEvent); //鏃堕棿鍥炬爣鎺т欢 this.btnTimeIcon = new IconViewControl(63); - btnTimeIcon.X = Application.GetMinRealAverage(37); - btnTimeIcon.Y = Application.GetMinRealAverage(20); + btnTimeIcon.X = HdlControlLogic.Current.GetPictrueRealSize(37); + btnTimeIcon.Y = HdlControlLogic.Current.GetPictrueRealSize(20); btnTimeIcon.UnSelectedImagePath = "Item/Time.png"; - this.AddChidren(btnTimeIcon, ChidrenBindMode.BindEventOnly); + this.AddChidren(btnTimeIcon, ChidrenBindMode.NotBind); + if (i_scene.SceneDelayTime > 0) + { + btnTimeIcon.Visible = false; + } + btnTimeIcon.ButtonClickEvent += (sender, e) => + { + if (i_scene.RemainTime > 0) + { + //璇ュ満鏅鍦ㄥ欢鏃讹紝璇风◢鍚� + var msgContr = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.TheSceneIsDelaying)); + msgContr.Show(); + return; + } + var timeSelect = new Device.CommonForm.SelectTime(); + Common.CommonPage.Instance.AddChidren(timeSelect); + timeSelect.TempTime = i_scene.SceneDelayTime; + timeSelect.Init(); + timeSelect.TimeAction = (time) => + { + //閫夋嫨鐨勬槸涓嶅紑鍚� + if (time == 0) { return; } + + i_scene.SceneDelayTime = time; + + //鏃堕棿鍥炬爣涓嶆樉绀� + this.btnTimeIcon.Visible = false; + //鏄剧ず鍓╀綑鐨勬椂闂� + this.btnTimeView.Text = this.GetTimeString(time, hourText, minuText, secondText); + //閫夋嫨寤舵椂鏃�,闇�瑕佸埛鏂颁富椤� + UserView.UserPage.Instance.RefreshAllForm = true; + }; + }; //鏀惰棌鎺т欢 var btnCollect = new IconViewControl(107); - btnCollect.X = Application.GetMinRealAverage(350); - btnCollect.Y = Application.GetMinRealAverage(12); + btnCollect.X = HdlControlLogic.Current.GetPictrueRealSize(350); + btnCollect.Y = HdlControlLogic.Current.GetPictrueRealSize(12); btnCollect.UnSelectedImagePath = "Item/Collection1.png"; btnCollect.SelectedImagePath = "Item/CollectionSelected1.png"; this.AddChidren(btnCollect, ChidrenBindMode.NotBind); @@ -118,7 +156,7 @@ { //鍙栨秷鏀惰棌 HdlSceneLogic.Current.DeleteLoveScene(i_scene); - if (HdlRoomLogic.Current.CurrentRoom.IsLove == true) + if (HdlRoomLogic.Current.NowMainPageRoom.IsLove == true) { //濡傛灉褰撳墠鎴块棿鏄垜鐨勫枩鐖辩殑璇�,鍥炶皟鍗$墖琚垹闄ょ殑浜嬩欢 this.CardNeedRemoveEvent?.Invoke(); @@ -132,12 +170,12 @@ }; //鍦烘櫙鍚嶇О鎺т欢 - this.btnSceneName = new NormalViewControl(Application.GetMinRealAverage(280), Application.GetMinRealAverage(63), false); - btnSceneName.X = Application.GetMinRealAverage(37); - btnSceneName.Y = Application.GetMinRealAverage(236); + this.btnSceneName = new NormalViewControl(HdlControlLogic.Current.GetPictrueRealSize(280), HdlControlLogic.Current.GetPictrueRealSize(63), false); + btnSceneName.X = HdlControlLogic.Current.GetPictrueRealSize(37); + btnSceneName.Y = HdlControlLogic.Current.GetPictrueRealSize(236); btnSceneName.IsBold = true; btnSceneName.TextColor = UserCenterColor.Current.White; - this.AddChidren(btnSceneName, ChidrenBindMode.BindEventOnly); + this.AddChidren(btnSceneName, ChidrenBindMode.BindEvent); //鍒锋柊鎺т欢鐘舵�� this.RefreshControlInfo(i_scene); @@ -154,38 +192,28 @@ { //杩欎釜鍦烘櫙涓嶈鐨勬儏鍐靛簲璇ヤ笉鍙兘 var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(this.SceneId); - if (scene.RemainTime > 0 ) + if (scene.SceneDelayTime <= 0 && scene.RemainTime <= 0) { - //璇ュ満鏅鍦ㄥ欢鏃讹紝璇风◢鍚� - var msgContr = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.TheSceneIsDelaying)); - msgContr.Show(); - return; + //濡傛灉娌℃湁寤惰繜鐨勮瘽,鐩存帴寮�鍚疞oading鐗规晥 + this.StartLoadingApreal(); } //鎵ц璋冪敤鍦烘櫙 - var result = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime); - if (result == null || result.sceneOpenData == null) + var result = await HdlSceneLogic.Current.ControlScene(scene); + if (result == false) { - //鎺у埗鍦烘櫙澶辫触 - string msg = Language.StringByID(R.MyInternationalizationString.ControlSceneFail); - //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg - msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, result); - var msgContr = new ShowMsgControl(ShowMsgType.Tip, msg); - msgContr.Show(); + this.CanClick = true; return; } - if (result.sceneOpenData.Result == 0) + if (scene.SceneDelayTime > 0) { - //鎺у埗鍦烘櫙澶辫触 - string msg = Language.StringByID(R.MyInternationalizationString.ControlSceneFail); - var msgContr = new ShowMsgControl(ShowMsgType.Tip, msg); - msgContr.Show(); - return; + //璋冪敤鏈夊欢鏃剁殑鍦烘櫙,闇�瑕佸埛鏂颁富椤� + UserView.UserPage.Instance.RefreshAllForm = true; } //淇敼鏃堕棿 scene.RemainTime = scene.SceneDelayTime; scene.SceneDelayTime = 0; //寮�鍚欢鏃跺�掕鏃剁壒鏁� - this.StartRemainTimeApreal(scene, true); + this.StartRemainTimeApreal(scene); } #endregion @@ -203,9 +231,11 @@ //鍒锋柊鍥剧墖 if (i_scene.IconPathType == 0) { - if (this.btnScenePic.ImagePath != i_scene.IconPath) + //涓婚〉鐨勫満鏅崱鐗囩敤鐨勬槸鍙﹀鐨勫浘 + string newPath = i_scene.IconPath.Replace("SceneIcon", "SceneCardIcon"); + if (this.btnScenePic.ImagePath != newPath) { - this.btnScenePic.ImagePath = i_scene.IconPath; + this.btnScenePic.ImagePath = newPath; } } else @@ -218,7 +248,8 @@ } //寮�鍚欢鏃跺�掕鏃剁壒鏁� - this.StartRemainTimeApreal(i_scene, false); + this.CanClick = false; + this.StartRemainTimeApreal(i_scene); } #endregion @@ -229,11 +260,11 @@ /// 寮�鍚欢鏃跺�掕鏃剁壒鏁� /// </summary> /// <param name="i_scene"></param> - /// <param name="setTime">鏄惁鏇存敼鍦烘櫙瀵硅薄閲岄潰鐨勯偅涓椂闂�,鏃ㄥ湪瀵瑰簲鍚屼竴涓満鏅湪澶氫釜鍦版柟鏄剧ず鐨勫悓姝ラ棶棰�</param> - private void StartRemainTimeApreal(Common.SceneUI i_scene, bool setTime) + private void StartRemainTimeApreal(Common.SceneUI i_scene) { if (i_scene.RemainTime <= 0) { + this.CanClick = true; return; } int remainTine = i_scene.RemainTime; @@ -246,30 +277,29 @@ //鏄剧ず鍓╀綑鐨勬椂闂� this.btnTimeView.Text = this.GetTimeString(i_scene.RemainTime, hourText, minuText, secondText); + //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾) + HdlSceneLogic.Current.StartDelayTimeThread(i_scene); + new System.Threading.Thread(() => { - while (remainTine > 0) + while (remainTine > 0 && this.Parent != null) { System.Threading.Thread.Sleep(1000); - Application.RunOnMainThread(() => + HdlThreadLogic.Current.RunMain(() => { this.btnTimeView.Text = this.GetTimeString(remainTine, hourText, minuText, secondText); - }); - if (setTime == true) - { - //瑕嗙洊鍓╀綑鏃堕棿 - i_scene.RemainTime = remainTine; - } + }, ShowErrorMode.NO); + remainTine--; } - Application.RunOnMainThread(() => + HdlThreadLogic.Current.RunMain(() => { - //鏃犳潯浠惰鐩栧墿浣欐椂闂� - i_scene.RemainTime = 0; - //鍊掕鏃剁粨鏉熸椂锛屾椂闂村浘鏍囨樉绀� this.btnTimeIcon.Visible = true; this.btnTimeView.Text = string.Empty; - }); + //鐩存帴寮�鍚疞oading鐗规晥 + this.StartLoadingApreal(); + this.CanClick = true; + }, ShowErrorMode.NO); }) { IsBackground = true }.Start(); } @@ -291,7 +321,7 @@ var loadContr = new MyProgressLoading(); loadContr.LoadingBackgroundColor = UserCenterColor.Current.Transparent; frameBack.AddChidren(loadContr); - loadContr.StartLoading(); + loadContr.StartLoading(1000); loadContr.DisponeEvent += () => { frameBack.RemoveFromParent(); @@ -330,7 +360,7 @@ int hour = second / 3600; int minu = second % 3600 / 60; int sec = second % 60; - if (hour >= 0) + if (hour > 0) { timeStr += hour + hourText; } -- Gitblit v1.8.0