From 4f0ab0ad21ce450b7856d50f98322a7899361386 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 22 九月 2020 10:30:01 +0800
Subject: [PATCH] 不要下载这个备份
---
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