| | |
| | | |
| | | namespace HDL_ON.UI |
| | | { |
| | | public partial class HomePage : FrameLayout |
| | | public partial class HomePage : VerticalRefreshLayout |
| | | { |
| | | |
| | | #region 控件列表 |
| | | static HomePage bodyView; |
| | | |
| | | //FrameLayout bodyView; |
| | | /// <summary> |
| | | /// 顶部信息区域 |
| | | /// </summary> |
| | |
| | | /// </summary> |
| | | FrameLayout environmentalView; |
| | | /// <summary> |
| | | /// 当前温度信息 |
| | | /// 当前温度信息-室外 |
| | | /// </summary> |
| | | TextButton btnTempValues; |
| | | /// <summary> |
| | | /// 当前湿度信息 |
| | | /// 当前湿度信息-室外 |
| | | /// </summary> |
| | | TextButton btnHumidityValues; |
| | | /// <summary> |
| | | /// 当前温度信息-室内 |
| | | /// </summary> |
| | | TextButton btnIndoorTempValues; |
| | | /// <summary> |
| | | /// 当前湿度信息-室内 |
| | | /// </summary> |
| | | TextButton btnIndoorHumiValues; |
| | | /// <summary> |
| | | /// 当前pm2.5状态 |
| | | /// </summary> |
| | |
| | | { |
| | | bodyView = this; |
| | | bodyView.BackgroundColor = CSS_Color.BackgroundColor; |
| | | |
| | | this.VerticalScrollBarEnabled = false; |
| | | #if __IOS__ |
| | | //自动偏移取消 |
| | | if (UIKit.UIDevice.CurrentDevice.CheckSystemVersion(11, 0)) |
| | | { |
| | | (this.uiView as UIKit.UIScrollView).ContentInsetAdjustmentBehavior = UIKit.UIScrollViewContentInsetAdjustmentBehavior.Never; |
| | | } |
| | | #endif |
| | | } |
| | | |
| | | public override void RemoveFromParent() |
| | | { |
| | | UnregisterGetPushMessageAction(); |
| | | base.RemoveFromParent(); |
| | | } |
| | | |
| | | public void LoadPage() |
| | | { |
| | | MainPage.CurPageIndex = 0; |
| | | try |
| | | { |
| | | this.BeginHeaderRefreshingAction = () => |
| | | { |
| | | this.EndHeaderRefreshing(); |
| | | Common.ApiUtlis.Ins.DownloadData(); |
| | | LoadContentView(); |
| | | }; |
| | | |
| | | #region topView |
| | | |
| | | bodyView.RemoveAll(); |
| | | |
| | | topView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(216), |
| | |
| | | Radius = (uint)Application.GetRealWidth(3), |
| | | }; |
| | | topView.AddChidren(btnLinkStateTip); |
| | | if (Control.Ins.GatewayOnline) |
| | | { |
| | | if (Control.Ins.IsRemote) |
| | | { |
| | | bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipRemote; |
| | | } |
| | | else |
| | | { |
| | | bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.MainColor; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipFail; |
| | | } |
| | | //更新链接状态icon颜色 |
| | | CheckLinkStatus();//2020-12-22 |
| | | |
| | | |
| | | btnResidenceName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(26), |
| | | Y = Application.GetRealHeight(32), |
| | | Width = Application.GetRealWidth(400), |
| | | Width = Application.GetRealWidth(300), |
| | | Height = Application.GetRealHeight(33), |
| | | TextColor = CSS_Color.MainBackgroundColor, |
| | | TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = DB_ResidenceData.Instance.CurrentRegion.Name, |
| | | Text = DB_ResidenceData.Instance.CurrentRegion.homeName, |
| | | IsBold = true |
| | | }; |
| | | topView.AddChidren(btnResidenceName); |
| | |
| | | //搜索网关 |
| | | btnResidenceName.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | System.Threading.Tasks.Task.Run(() => |
| | | { |
| | | //DriverLayer.Control.Ins.SearchLoaclGateway(); |
| | | MainPage.InitializationData(); |
| | | //DriverLayer.Control.Ins.IsRemote = true; |
| | | }); |
| | | |
| | | }; |
| | | #endif |
| | | |
| | |
| | | }; |
| | | topView.AddChidren(environmentalView); |
| | | #region 环境数据 |
| | | var tempSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorTemperature); |
| | | var humiSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorHumidity); |
| | | |
| | | var btnEnvirValuesTitle = new Button() { |
| | | X = Application.GetRealWidth(12), |
| | | Gravity = Gravity.CenterVertical, |
| | | TextColor = CSS_Color.MainBackgroundColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextID = StringId.Outdoor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | if (tempSensorList.Count > 0 || humiSensorList.Count > 0) |
| | | { |
| | | btnEnvirValuesTitle.TextID = StringId.InOutdoor; |
| | | } |
| | | btnEnvirValuesTitle.Width = Application.GetRealWidth(8) + btnEnvirValuesTitle.GetTextWidth(); |
| | | environmentalView.AddChidren(btnEnvirValuesTitle); |
| | | |
| | | Button btnTempIcon = new Button() |
| | | { |
| | | X = Application.GetRealWidth(12), |
| | | X = btnEnvirValuesTitle.Right, |
| | | Gravity = Gravity.CenterVertical, |
| | | Width = Application.GetMinRealAverage(16), |
| | | Height = Application.GetMinRealAverage(16), |
| | |
| | | btnTempValues = new TextButton() |
| | | { |
| | | X = btnTempIcon.Right + Application.GetRealWidth(4), |
| | | Width = Application.GetRealWidth(30), |
| | | Gravity = Gravity.CenterVertical, |
| | | TextColor = CSS_Color.MainBackgroundColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | Text = MainPage.cityInfo.temperature + "°", |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | btnTempValues.Width = btnTempValues.GetTextWidth(); |
| | | environmentalView.AddChidren(btnTempValues); |
| | | |
| | | btnIndoorTempValues = new TextButton() |
| | | { |
| | | X = btnTempValues.Right, |
| | | Gravity = Gravity.CenterVertical, |
| | | TextColor = CSS_Color.MainBackgroundColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = "" |
| | | }; |
| | | if (tempSensorList.Count > 0) |
| | | { |
| | | btnIndoorTempValues.Text = "/--°"; |
| | | double tempTotalValues = 0; |
| | | foreach (var temp in tempSensorList) |
| | | { |
| | | double tempValue = 0; |
| | | double.TryParse(temp.GetAttrState(FunctionAttributeKey.Value), out tempValue); |
| | | tempTotalValues += tempValue; |
| | | } |
| | | if (tempTotalValues > 0) |
| | | { |
| | | btnIndoorTempValues.Text = "/" + tempTotalValues + "°"; |
| | | } |
| | | } |
| | | btnIndoorTempValues.Width = btnIndoorTempValues.GetTextWidth(); |
| | | environmentalView.AddChidren(btnIndoorTempValues); |
| | | |
| | | Button btnHumidityIcon = new Button() |
| | | { |
| | | X = btnTempValues.Right + Application.GetRealWidth(2), |
| | | X = btnIndoorTempValues.Right + Application.GetRealWidth(8), |
| | | Gravity = Gravity.CenterVertical, |
| | | Width = Application.GetMinRealAverage(16), |
| | | Height = Application.GetMinRealAverage(16), |
| | |
| | | btnHumidityValues = new TextButton() |
| | | { |
| | | X = btnHumidityIcon.Right + Application.GetRealWidth(4), |
| | | Width = Application.GetRealWidth(30), |
| | | Gravity = Gravity.CenterVertical, |
| | | TextColor = CSS_Color.MainBackgroundColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | Text = MainPage.cityInfo.humidity + "%", |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | btnHumidityValues.Width = btnHumidityValues.GetTextWidth(); |
| | | environmentalView.AddChidren(btnHumidityValues); |
| | | |
| | | btnIndoorHumiValues = new TextButton() |
| | | { |
| | | X = btnHumidityValues.Right, |
| | | Gravity = Gravity.CenterVertical, |
| | | TextColor = CSS_Color.MainBackgroundColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = "" |
| | | }; |
| | | if (tempSensorList.Count > 0) |
| | | { |
| | | btnIndoorHumiValues.Text = "/--%"; |
| | | double humiTotalValues = 0; |
| | | foreach (var humi in humiSensorList) |
| | | { |
| | | double humiValue = 0; |
| | | double.TryParse(humi.GetAttrState(FunctionAttributeKey.Value), out humiValue); |
| | | humiTotalValues += humiValue; |
| | | } |
| | | if (humiTotalValues > 0) |
| | | { |
| | | btnIndoorHumiValues.Text = "/" + humiTotalValues + "%"; |
| | | } |
| | | } |
| | | btnIndoorHumiValues.Width = btnIndoorHumiValues.GetTextWidth(); |
| | | environmentalView.AddChidren(btnIndoorHumiValues); |
| | | |
| | | Button btnPm25Icon = new Button() |
| | | { |
| | | X = btnHumidityValues.Right + Application.GetRealWidth(2), |
| | | X = btnIndoorHumiValues.Right + Application.GetRealWidth(4), |
| | | Gravity = Gravity.CenterVertical, |
| | | Width = Application.GetMinRealAverage(16), |
| | | Height = Application.GetMinRealAverage(16), |
| | |
| | | btnPm25Values = new TextButton() |
| | | { |
| | | X = btnPm25Icon.Right + Application.GetRealWidth(4), |
| | | Width = Application.GetRealWidth(130), |
| | | Gravity = Gravity.CenterVertical, |
| | | TextColor = CSS_Color.MainBackgroundColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | Text = MainPage.cityInfo.pm25, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | btnPm25Values.Width = btnPm25Values.GetTextWidth(); |
| | | environmentalView.AddChidren(btnPm25Values); |
| | | #endregion |
| | | |
| | |
| | | }; |
| | | msgView.AddChidren(btnMsgBg); |
| | | |
| | | |
| | | |
| | | btnMsgIcon = new Button() |
| | | { |
| | | X = Application.GetRealWidth(12), |
| | |
| | | }; |
| | | msgView.AddChidren(btnMsgIcon); |
| | | |
| | | |
| | | |
| | | btnMsg = new Button() |
| | | { |
| | | X = Application.GetRealWidth(10) + btnMsgIcon.Right, |
| | |
| | | }; |
| | | msgView.AddChidren(btnMsg); |
| | | |
| | | |
| | | |
| | | btnMsgTime = new Button() |
| | | { |
| | | X = Application.GetRealWidth(299), |
| | |
| | | #endregion |
| | | |
| | | #region 功能场景切换 |
| | | |
| | | bodyView.AddChidren(new Button() { Height = Application.GetRealHeight(20), BackgroundColor = 0x00000000 }); |
| | | |
| | | changeView = new FrameLayout() |
| | | { |
| | | Y = Application.GetRealHeight(20) + topView.Bottom, |
| | | //Y = Application.GetRealHeight(20) + topView.Bottom, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Width = Application.GetRealWidth(230), |
| | | Height = Application.GetRealHeight(62), |
| | |
| | | |
| | | btnChangeFunction = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(114), |
| | | X = Application.GetRealWidth(10), |
| | | Width = Application.GetRealWidth(114-10), |
| | | TextID = StringId.Functions, |
| | | SelectedTextColor = CSS_Color.MainColor, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.HeadlineFontSize, |
| | | TextAlignment = TextAlignment.Center, |
| | | IsSelected = true, |
| | | IsBold = true |
| | | IsBold = true, |
| | | }; |
| | | changeView.AddChidren(btnChangeFunction); |
| | | |
| | |
| | | btnChangeScene = new Button() |
| | | { |
| | | X = btnLine.Right, |
| | | Width = Application.GetRealWidth(114), |
| | | Width = Application.GetRealWidth(114-10), |
| | | TextID = StringId.Scenes, |
| | | SelectedTextColor = CSS_Color.MainColor, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | |
| | | #region ContextView |
| | | contentView = new PageLayout() |
| | | { |
| | | Y = changeView.Bottom , |
| | | //Y = changeView.Bottom, |
| | | Height = Application.GetRealHeight(310 + 30 + 10), //20为超出部分 |
| | | IsShowPoint = false, |
| | | }; |
| | | bodyView.AddChidren(contentView); |
| | | |
| | | functionViews = new List<FrameLayout>(); |
| | | |
| | | LoadContentView(); |
| | | |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"HomePage LoadPage Error : {ex.Message}"); |
| | | } |
| | | |
| | | |
| | | #if DEBUG |
| | | //FunctionList.List.Functions.Add(new Function() { spk = SPK.PjtIr, name = "测试投影仪", |
| | | // attributes = new List<FunctionAttributes>() { |
| | | // new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" }, |
| | | // new FunctionAttributes(){ key = "computer",value = new List<string>(){"电脑" } }, |
| | | // new FunctionAttributes(){ key = "video",value = new List<string>(){"视频" } }, |
| | | // new FunctionAttributes(){ key = "source",value = new List<string>(){"信号源" } }, |
| | | // new FunctionAttributes(){ key = "zoom+",value = new List<string>(){"变焦+" } }, |
| | | // new FunctionAttributes(){ key = "zoom-",value = new List<string>(){"变焦-" } }, |
| | | // new FunctionAttributes(){ key = "page+",value = new List<string>(){"画面+" } }, |
| | | // new FunctionAttributes(){ key = "page-",value = new List<string>(){"画面-" } }, |
| | | // new FunctionAttributes(){ key = "menu",value = new List<string>(){"菜单" } }, |
| | | // new FunctionAttributes(){ key = "ok",value = new List<string>(){"确认" } }, |
| | | // new FunctionAttributes(){ key = "up",value = new List<string>(){"上" } }, |
| | | // new FunctionAttributes(){ key = "left",value = new List<string>(){"左" } }, |
| | | // new FunctionAttributes(){ key = "right",value = new List<string>(){"右" } }, |
| | | // new FunctionAttributes(){ key = "down",value = new List<string>(){"下" } }, |
| | | // new FunctionAttributes(){ key = "exit",value = new List<string>(){"退出" } }, |
| | | // new FunctionAttributes(){ key = "volume+",value = new List<string>(){"音量+" } }, |
| | | // new FunctionAttributes(){ key = "volume-",value = new List<string>(){"音量-" } }, |
| | | // new FunctionAttributes(){ key = "mute",value = new List<string>(){"静音" } }, |
| | | // new FunctionAttributes(){ key = "auto",value = new List<string>(){"自动" } }, |
| | | // new FunctionAttributes(){ key = "pause",value = new List<string>(){"暂停" } }, |
| | | // } |
| | | //}); |
| | | |
| | | //FunctionList.List.Functions.Add(new Function() |
| | | //{ |
| | | // spk = SPK.StbIr, |
| | | // name = "测试机顶盒", |
| | | // attributes = new List<FunctionAttributes>() { |
| | | // new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" }, |
| | | // new FunctionAttributes(){ key = "computer",value = new List<string>(){"电脑" } }, |
| | | // new FunctionAttributes(){ key = "video",value = new List<string>(){"视频" } }, |
| | | // new FunctionAttributes(){ key = "source",value = new List<string>(){"信号源" } }, |
| | | // new FunctionAttributes(){ key = "zoom+",value = new List<string>(){"变焦+" } }, |
| | | // new FunctionAttributes(){ key = "zoom-",value = new List<string>(){"变焦-" } }, |
| | | // new FunctionAttributes(){ key = "page+",value = new List<string>(){"画面+" } }, |
| | | // new FunctionAttributes(){ key = "page-",value = new List<string>(){"画面-" } }, |
| | | // new FunctionAttributes(){ key = "menu",value = new List<string>(){"菜单" } }, |
| | | // new FunctionAttributes(){ key = "ok",value = new List<string>(){"确认" } }, |
| | | // new FunctionAttributes(){ key = "up",value = new List<string>(){"上" } }, |
| | | // new FunctionAttributes(){ key = "left",value = new List<string>(){"左" } }, |
| | | // new FunctionAttributes(){ key = "right",value = new List<string>(){"右" } }, |
| | | // new FunctionAttributes(){ key = "down",value = new List<string>(){"下" } }, |
| | | // new FunctionAttributes(){ key = "exit",value = new List<string>(){"退出" } }, |
| | | // new FunctionAttributes(){ key = "volume+",value = new List<string>(){"音量+" } }, |
| | | // new FunctionAttributes(){ key = "volume-",value = new List<string>(){"音量-" } }, |
| | | // new FunctionAttributes(){ key = "mute",value = new List<string>(){"静音" } }, |
| | | // new FunctionAttributes(){ key = "auto",value = new List<string>(){"自动" } }, |
| | | // new FunctionAttributes(){ key = "pause",value = new List<string>(){"暂停" } }, |
| | | // } |
| | | //}); |
| | | |
| | | //FunctionList.List.Functions.Add(new Function() |
| | | //{ |
| | | // spk = SPK.TvIr, |
| | | // name = "测试电视", |
| | | // attributes = new List<FunctionAttributes>() { |
| | | // new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" }, |
| | | // new FunctionAttributes(){ key = "computer",value = new List<string>(){"电脑" } }, |
| | | // new FunctionAttributes(){ key = "video",value = new List<string>(){"视频" } }, |
| | | // new FunctionAttributes(){ key = "source",value = new List<string>(){"信号源" } }, |
| | | // new FunctionAttributes(){ key = "zoom+",value = new List<string>(){"变焦+" } }, |
| | | // new FunctionAttributes(){ key = "zoom-",value = new List<string>(){"变焦-" } }, |
| | | // new FunctionAttributes(){ key = "page+",value = new List<string>(){"画面+" } }, |
| | | // new FunctionAttributes(){ key = "page-",value = new List<string>(){"画面-" } }, |
| | | // new FunctionAttributes(){ key = "menu",value = new List<string>(){"菜单" } }, |
| | | // new FunctionAttributes(){ key = "ok",value = new List<string>(){"确认" } }, |
| | | // new FunctionAttributes(){ key = "up",value = new List<string>(){"上" } }, |
| | | // new FunctionAttributes(){ key = "left",value = new List<string>(){"左" } }, |
| | | // new FunctionAttributes(){ key = "right",value = new List<string>(){"右" } }, |
| | | // new FunctionAttributes(){ key = "down",value = new List<string>(){"下" } }, |
| | | // new FunctionAttributes(){ key = "exit",value = new List<string>(){"退出" } }, |
| | | // new FunctionAttributes(){ key = "volume+",value = new List<string>(){"音量+" } }, |
| | | // new FunctionAttributes(){ key = "volume-",value = new List<string>(){"音量-" } }, |
| | | // new FunctionAttributes(){ key = "mute",value = new List<string>(){"静音" } }, |
| | | // new FunctionAttributes(){ key = "auto",value = new List<string>(){"自动" } }, |
| | | // new FunctionAttributes(){ key = "pause",value = new List<string>(){"暂停" } }, |
| | | // } |
| | | //}); |
| | | #endif |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 加载内容区域 |
| | | /// </summary> |
| | | void LoadContentView() |
| | | { |
| | | if (!Common.ApiUtlis.Ins.DownloadDataComplete) |
| | | { |
| | | var waitPage = new Loading(); |
| | | MainPage.BaseView.AddChidren(waitPage); |
| | | waitPage.Start(Language.StringByID(StringId.PleaseWait)); |
| | | |
| | | new System.Threading.Thread(() => |
| | | { |
| | | try |
| | | { |
| | | while (!Common.ApiUtlis.Ins.DownloadDataComplete) |
| | | { |
| | | System.Threading.Thread.Sleep(400); |
| | | } |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (contentView == null) |
| | | { |
| | | return; |
| | | } |
| | | contentView.RemoveAll(); |
| | | deviceFunctionView = new VerticalScrolViewLayout(); |
| | | contentView.AddChidren(deviceFunctionView); |
| | | LoadDeviceFunctionControlZone(); |
| | | sceneFunctionView = new VerticalScrolViewLayout(); |
| | | contentView.AddChidren(sceneFunctionView); |
| | | LoadSceneFunctionControlZone(); |
| | | contentView.PageIndex = 0; |
| | | |
| | | |
| | | LoadEvent_ChangeShowedFunctionType(); |
| | | |
| | | // 查询未读消息并显示 |
| | | GetUnreadPushMessages(); |
| | | RegisterGetPushMessageAction(); |
| | | |
| | | waitPage.Hide(); |
| | | }); |
| | | } |
| | | catch (Exception ex) { |
| | | MainPage.Log($"刷新主页异常:{ex.Message}"); |
| | | } |
| | | finally { } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | else |
| | | { |
| | | |
| | | deviceFunctionView = new VerticalScrolViewLayout(); |
| | | contentView.AddChidren(deviceFunctionView); |
| | |
| | | LoadSceneFunctionControlZone(); |
| | | contentView.PageIndex = 0; |
| | | |
| | | #endregion |
| | | |
| | | LoadEvent_ChangeShowedFunctionType(); |
| | | |
| | | // 查询未读消息并显示 |
| | | GetUnreadPushMessages(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"HomePage LoadPage Error : {ex.Message}"); |
| | | RegisterGetPushMessageAction(); |
| | | |
| | | } |
| | | |
| | | |
| | | System.Threading.Tasks.Task.Run(() => |
| | | { |
| | | //DriverLayer.Control.Ins.SearchLoaclGateway(); |
| | | }); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | try |
| | | { |
| | | int index = 0; |
| | | foreach (var function in FunctionList.List.GetDeviceFunctionList()) |
| | | var list = FunctionList.List.GetDeviceFunctionList(); |
| | | foreach (var function in list) |
| | | { |
| | | //音乐模块有主从关系,需要特殊处理 |
| | | if (function.functionCategory == FunctionCategory.Music) |
| | | if (function.Spk_Prefix == FunctionCategory.Music) |
| | | { |
| | | var music = function as Music.A31MusicModel; |
| | | //var music = function as Music.A31MusicModel; |
| | | var music = Music.A31MusicModel.A31MusicModelList.Find((obj) => obj.sid == function.sid); |
| | | if (music == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (music.ServerClientType == -1) |
| | | { |
| | | continue; |
| | |
| | | }; |
| | | view.AddChidren(btnIcon); |
| | | |
| | | |
| | | btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png"; |
| | | btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png"; |
| | | |
| | | |
| | | Button btnName; |
| | | btnName = new Button() |
| | | { |
| | |
| | | Tag = "state", |
| | | Text = function.lastState |
| | | }; |
| | | view.AddChidren(btnState); |
| | | |
| | | if (function.spk != SPK.LightSwitch) |
| | | { |
| | | view.AddChidren(btnState); |
| | | } |
| | | |
| | | Button btnCollection; |
| | | btnCollection = new Button() |
| | |
| | | UnSelectedImagePath = "Collection/CollectionIcon.png", |
| | | }; |
| | | view.AddChidren(btnCollection); |
| | | LoadEvent_FunctionCollection(btnCollection, function); |
| | | //2020-12-16 如果是成员隐藏收藏功能 |
| | | //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare) |
| | | //{ |
| | | // view.AddChidren(btnCollection); |
| | | //} |
| | | |
| | | if (function.functionCategory == FunctionCategory.Curtain) |
| | | LoadEvent_FunctionCollection(btnCollection, function); |
| | | if (//SPK.CurtainSpkList().Contains(function.spk)) |
| | | function.spk == SPK.CurtainRoller || function.spk == SPK.CurtainShades || |
| | | function.spk == SPK.CurtainSwitch || function.spk == SPK.CurtainTrietex ) |
| | | { |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/Curtain/CurtainOnIcon.png"; |
| | |
| | | }; |
| | | view.AddChidren(btnCurtainOpen); |
| | | |
| | | LoadEvent_ControlCurtain(function as Curtain, btnCurtainClose, btnCurtainOpen); |
| | | LoadEvent_ControlCurtain(function, btnCurtainClose, btnCurtainOpen); |
| | | } |
| | | |
| | | else if (function.functionType == FunctionType.TV) |
| | | else if (function.spk == SPK.ElectricTV || function.spk == SPK.TvIr || function.spk == SPK.TvXmIr |
| | | || function.spk == SPK.StbIr || function.spk == SPK.PjtIr) |
| | | { |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVIcon.png"; |
| | | //btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png"; |
| | | //btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png"; |
| | | |
| | | Button btnPower; |
| | | btnPower = new Button() |
| | | { |
| | | X = Application.GetRealWidth(131), |
| | | Y = Application.GetRealHeight(86), |
| | | Y = Application.GetRealHeight(80), |
| | | Width = Application.GetRealWidth(32), |
| | | Height = Application.GetRealWidth(32), |
| | | UnSelectedImagePath = "Public/PowerClose.png", |
| | | }; |
| | | view.AddChidren(btnPower); |
| | | LoadEvent_ControlTV(function as TV, btnPower); |
| | | LoadEvent_ControlTV(function, btnPower); |
| | | } |
| | | |
| | | else if (function.functionCategory == FunctionCategory.Music) |
| | | else if (function.spk == SPK.MusicStandard) |
| | | { |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/Music/MusicOnIcon.png"; |
| | |
| | | |
| | | //Music.SendMethod.ReadStatus(a31player); |
| | | |
| | | btnPower.MouseUpEventHandler = (sender, e) => { |
| | | btnPower.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | if (btnPower.IsSelected) |
| | | { |
| | | btnPower.IsSelected = false; |
| | |
| | | }; |
| | | } |
| | | |
| | | else if (function.spk == SPK.ClothesHanger) |
| | | { |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerBlueIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/Electrical/Curtain/ClothesHangerBlueIcon.png"; |
| | | Button btnUp; |
| | | btnUp = new Button() |
| | | { |
| | | X = Application.GetRealWidth(84+3), |
| | | Y = Application.GetRealWidth(89), |
| | | Width = Application.GetRealWidth(38), |
| | | Height = Application.GetRealWidth(38), |
| | | UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIcon2.png", |
| | | SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIcon2On.png", |
| | | }; |
| | | view.AddChidren(btnUp); |
| | | |
| | | Button btnDown; |
| | | btnDown = new Button() |
| | | { |
| | | X = btnUp.Right + Application.GetRealWidth(3), |
| | | Y = Application.GetRealWidth(89), |
| | | Width = Application.GetRealWidth(38), |
| | | Height = Application.GetRealWidth(38), |
| | | UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIcon2.png", |
| | | SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIcon2On.png", |
| | | }; |
| | | view.AddChidren(btnDown); |
| | | |
| | | |
| | | LoadEvent_ControlClothesHanger(function, btnUp, btnDown); |
| | | |
| | | } |
| | | |
| | | else |
| | | { |
| | | Button btnSwitch; |
| | |
| | | }; |
| | | view.AddChidren(btnSwitch); |
| | | |
| | | switch (function.functionCategory) |
| | | { |
| | | case FunctionCategory.Light: |
| | | #region 灯光 Light |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/Light/LightOnIcon.png"; |
| | | UpdataFunctionStates(function as Light); |
| | | #endregion |
| | | break; |
| | | case FunctionCategory.Thermostat: |
| | | switch (function.functionType) |
| | | { |
| | | case FunctionType.AC: |
| | | #region 空调 AC |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/AC/AcOnIcon.png"; |
| | | #endregion |
| | | break; |
| | | case FunctionType.FloorHeating: |
| | | #region 地热 |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingOnIcon.png"; |
| | | #endregion |
| | | break; |
| | | } |
| | | break; |
| | | case FunctionCategory.SwitchDevice: |
| | | switch (function.functionType) |
| | | { |
| | | case FunctionType.Socket: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/Socket/SocketOnIcon.png"; |
| | | break; |
| | | } |
| | | break; |
| | | case FunctionCategory.Electrical: |
| | | switch (function.functionType) |
| | | { |
| | | case FunctionType.Fan: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/Electrical/FanOnIcon.png"; |
| | | break; |
| | | } |
| | | break; |
| | | } |
| | | |
| | | btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png"; |
| | | btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png"; |
| | | |
| | | //switch (function.Spk_Prefix) |
| | | //{ |
| | | // //todo 增加设备,主页收藏图标 |
| | | // case FunctionCategory.Light: |
| | | // #region 灯光 Light |
| | | // btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightIcon.png"; |
| | | // btnIcon.SelectedImagePath = "FunctionIcon/Light/LightOnIcon.png"; |
| | | // UpdataFunctionStates(function); |
| | | // #endregion |
| | | // break; |
| | | // case FunctionCategory.AC: |
| | | // #region 空调 AC |
| | | // btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcIcon.png"; |
| | | // btnIcon.SelectedImagePath = "FunctionIcon/AC/AcOnIcon.png"; |
| | | // #endregion |
| | | // break; |
| | | // case FunctionCategory.FloorHeat: |
| | | // #region 地热 |
| | | // btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingIcon.png"; |
| | | // btnIcon.SelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingOnIcon.png"; |
| | | // #endregion |
| | | // break; |
| | | // case FunctionCategory.Electric: |
| | | // switch (function.spk) |
| | | // { |
| | | // case SPK.ElectricSocket: |
| | | // btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketIcon.png"; |
| | | // btnIcon.SelectedImagePath = "FunctionIcon/Socket/SocketOnIcon.png"; |
| | | // break; |
| | | // case SPK.ElectricFan: |
| | | // btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanIcon.png"; |
| | | // btnIcon.SelectedImagePath = "FunctionIcon/Electrical/FanOnIcon.png"; |
| | | // break; |
| | | // case SPK.ElectricTuyaAirCleaner: |
| | | // btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/AirCleanerIcon.png"; |
| | | // btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/AirCleanerIconOn.png"; |
| | | // break; |
| | | // case SPK.ElectricTuyaFan: |
| | | // btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/FanIcon.png"; |
| | | // btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/FanIconOn.png"; |
| | | // break; |
| | | // case SPK.ElectricTuyaWaterValve: |
| | | // btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/WaterValveIcon.png"; |
| | | // btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/WaterValveIconOn.png"; |
| | | // break; |
| | | // case SPK.ElectricTuyaWeepRobot: |
| | | // btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/WeepRobotIcon.png"; |
| | | // btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/WeepRobotIconOn.png"; |
| | | // break; |
| | | // } |
| | | // break; |
| | | //} |
| | | LoadEvent_SwitchFunction(function, btnSwitch); |
| | | } |
| | | var skipControlPageEvent = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, new Button(), new Button(), new Button()); |
| | | //取消收藏事件 |
| | | Action cannelCollect = () => { |
| | | function.collect = false; |
| | | if (function.Spk_Prefix == FunctionCategory.Music)//处理音乐主从关系 |
| | | { |
| | | if ((function as Music.A31MusicModel).ServerClientType == 1) |
| | | { |
| | | (function as Music.A31MusicModel).MainPlayCollection = false; |
| | | Music.A31MusicModel.Save(); |
| | | } |
| | | } |
| | | string msg = function.name + Language.StringByID(StringId.CollectionCancelled); |
| | | LoadDeviceFunctionControlZone(); |
| | | function.CollectFunction(); |
| | | }; |
| | | |
| | | |
| | | var skipControlPageEvent = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollection, btnName, btnZone); |
| | | view.MouseUpEventHandler = skipControlPageEvent; |
| | | btnName.MouseUpEventHandler = skipControlPageEvent; |
| | | btnIcon.MouseUpEventHandler = skipControlPageEvent; |
| | | btnState.MouseUpEventHandler = skipControlPageEvent; |
| | | //电视不需要更新状态 |
| | | if(function.functionType!= FunctionType.TV) |
| | | if(function.spk!= SPK.ElectricTV && function.spk != SPK.StbIr && function.spk != SPK.PjtIr) |
| | | { |
| | | UpdataFunctionStates(function); |
| | | } |
| | |
| | | }; |
| | | view.AddChidren(btnCoverd); |
| | | |
| | | Button btnShowDelay; |
| | | btnShowDelay = new Button() |
| | | { |
| | | X = Application.GetRealWidth(40), |
| | | Y = Application.GetRealWidth(4), |
| | | Height = Application.GetRealWidth(32), |
| | | Width = Application.GetRealWidth(100), |
| | | TextColor = CSS_Color.AuxiliaryColor1, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | }; |
| | | view.AddChidren(btnShowDelay); |
| | | |
| | | Button btnSettingIcon; |
| | | btnSettingIcon = new Button() |
| | | { |
| | |
| | | Width = Application.GetRealWidth(32), |
| | | UnSelectedImagePath = "Public/FuncInfoSetIcon_white.png", |
| | | }; |
| | | view.AddChidren(btnSettingIcon); |
| | | if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare) |
| | | { |
| | | view.AddChidren(btnSettingIcon); |
| | | } |
| | | |
| | | Button btnName; |
| | | btnName = new Button() |
| | |
| | | UnSelectedImagePath = "Collection/CollectionIcon.png", |
| | | }; |
| | | view.AddChidren(btnCollection); |
| | | //2020-12-16 如果是成员隐藏收藏功能 |
| | | //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare) |
| | | //{ |
| | | // view.AddChidren(btnCollection); |
| | | //} |
| | | |
| | | LoadEvent_SceneCollection(btnCollection, scene); |
| | | |
| | | LoadEvent_ControlScene(btnCoverd,btnName,btnZone, scene); |
| | | |
| | | LoadEvent_ControlScene(btnCoverd, btnName, btnZone, btnShowDelay, scene); |
| | | |
| | | btnSettingIcon.MouseUpEventHandler = (sender, e) => { |
| | | Action backAction = () => { |
| | |
| | | }; |
| | | var aep = new SceneEditPage(scene, backAction); |
| | | MainPage.BasePageView.AddChidren(aep); |
| | | aep.LoadPage(StringId.EditScene, refreshAction); |
| | | aep.LoadPage( refreshAction); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | //场景正在倒计时执行中 |
| | | scene.SceneCountDown(btnShowDelay); |
| | | } |
| | | catch (Exception ex) |
| | | { |