| | |
| | | |
| | | namespace HDL_ON.UI |
| | | { |
| | | public partial class HomePage : FrameLayout |
| | | public partial class HomePage : VerticalRefreshLayout |
| | | { |
| | | |
| | | #region 控件列表 |
| | | static HomePage bodyView; |
| | | |
| | | //FrameLayout bodyView; |
| | | /// <summary> |
| | | /// 顶部信息区域 |
| | | /// </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() |
| | |
| | | { |
| | | try |
| | | { |
| | | this.BeginHeaderRefreshingAction = () => |
| | | { |
| | | this.EndHeaderRefreshing(); |
| | | Common.ApiUtlis.Ins.DownloadData(); |
| | | LoadContentView(); |
| | | }; |
| | | |
| | | #region topView |
| | | |
| | | bodyView.RemoveAll(); |
| | | |
| | | topView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(216), |
| | |
| | | #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), |
| | |
| | | #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(); |
| | | |
| | | if (!Common.ApiUtlis.Ins.DownloadDataComplete) |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"HomePage LoadPage Error : {ex.Message}"); |
| | | } |
| | | |
| | | } |
| | | /// <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(() => |
| | | { |
| | | var waitPage = new Loading(); |
| | | MainPage.BaseView.AddChidren(waitPage); |
| | | waitPage.Start(Language.StringByID(StringId.PleaseWait)); |
| | | |
| | | new System.Threading.Thread(() => |
| | | try |
| | | { |
| | | while (!Common.ApiUtlis.Ins.DownloadDataComplete) |
| | | { |
| | |
| | | } |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | |
| | | if (contentView == null) |
| | | { |
| | | return; |
| | | } |
| | | contentView.RemoveAll(); |
| | | deviceFunctionView = new VerticalScrolViewLayout(); |
| | | contentView.AddChidren(deviceFunctionView); |
| | | LoadDeviceFunctionControlZone(); |
| | |
| | | |
| | | waitPage.Hide(); |
| | | }); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | else |
| | | { |
| | | |
| | | deviceFunctionView = new VerticalScrolViewLayout(); |
| | | contentView.AddChidren(deviceFunctionView); |
| | | LoadDeviceFunctionControlZone(); |
| | | sceneFunctionView = new VerticalScrolViewLayout(); |
| | | contentView.AddChidren(sceneFunctionView); |
| | | LoadSceneFunctionControlZone(); |
| | | contentView.PageIndex = 0; |
| | | |
| | | |
| | | LoadEvent_ChangeShowedFunctionType(); |
| | | |
| | | // 查询未读消息并显示 |
| | | GetUnreadPushMessages(); |
| | | RegisterGetPushMessageAction(); |
| | | |
| | | } |
| | | #endregion |
| | | } |
| | | catch (Exception ex) { |
| | | MainPage.Log($"刷新主页异常:{ex.Message}"); |
| | | } |
| | | finally { } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | catch (Exception ex) |
| | | else |
| | | { |
| | | MainPage.Log($"HomePage LoadPage Error : {ex.Message}"); |
| | | |
| | | deviceFunctionView = new VerticalScrolViewLayout(); |
| | | contentView.AddChidren(deviceFunctionView); |
| | | LoadDeviceFunctionControlZone(); |
| | | sceneFunctionView = new VerticalScrolViewLayout(); |
| | | contentView.AddChidren(sceneFunctionView); |
| | | LoadSceneFunctionControlZone(); |
| | | contentView.PageIndex = 0; |
| | | |
| | | |
| | | LoadEvent_ChangeShowedFunctionType(); |
| | | |
| | | // 查询未读消息并显示 |
| | | GetUnreadPushMessages(); |
| | | RegisterGetPushMessageAction(); |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | foreach (var function in FunctionList.List.GetDeviceFunctionList()) |
| | | { |
| | | //音乐模块有主从关系,需要特殊处理 |
| | | if (function.functionCategory == FunctionCategory.Music) |
| | | if (function.Spk_Prefix == FunctionCategory.Music) |
| | | { |
| | | var music = function as Music.A31MusicModel; |
| | | if (music.ServerClientType == -1) |
| | |
| | | Tag = "state", |
| | | Text = function.lastState |
| | | }; |
| | | view.AddChidren(btnState); |
| | | |
| | | if (function.spk != SPK.LightSwitch) |
| | | { |
| | | view.AddChidren(btnState); |
| | | } |
| | | |
| | | Button btnCollection; |
| | | btnCollection = new Button() |
| | |
| | | |
| | | LoadEvent_FunctionCollection(btnCollection, function); |
| | | |
| | | if (function.functionCategory == FunctionCategory.Curtain) |
| | | if (function.Spk_Prefix == FunctionCategory.Curtain) |
| | | { |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/Curtain/CurtainOnIcon.png"; |
| | |
| | | LoadEvent_ControlCurtain(function as Curtain, btnCurtainClose, btnCurtainOpen); |
| | | } |
| | | |
| | | else if (function.functionType == FunctionType.TV) |
| | | else if (function.spk == SPK.ElectricTV) |
| | | { |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVIcon.png"; |
| | | Button btnPower; |
| | |
| | | LoadEvent_ControlTV(function as TV, btnPower); |
| | | } |
| | | |
| | | else if (function.functionCategory == FunctionCategory.Music) |
| | | else if (function.Spk_Prefix == FunctionCategory.Music) |
| | | { |
| | | 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; |
| | |
| | | }; |
| | | view.AddChidren(btnSwitch); |
| | | |
| | | switch (function.functionCategory) |
| | | switch (function.Spk_Prefix) |
| | | { |
| | | case FunctionCategory.Light: |
| | | #region 灯光 Light |
| | |
| | | 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; |
| | | } |
| | | case FunctionCategory.AC: |
| | | #region 空调 AC |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/AC/AcOnIcon.png"; |
| | | #endregion |
| | | break; |
| | | case FunctionCategory.SwitchDevice: |
| | | switch (function.functionType) |
| | | 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 FunctionType.Socket: |
| | | case SPK.ElectricSocket: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/Socket/SocketOnIcon.png"; |
| | | break; |
| | | } |
| | | break; |
| | | case FunctionCategory.Electrical: |
| | | switch (function.functionType) |
| | | { |
| | | case FunctionType.Fan: |
| | | case SPK.ElectricFan: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/Electrical/FanOnIcon.png"; |
| | | break; |
| | |
| | | //取消收藏事件 |
| | | Action cannelCollect = () => { |
| | | function.collect = false; |
| | | if (function.functionCategory == FunctionCategory.Music)//处理音乐主从关系 |
| | | if (function.Spk_Prefix == FunctionCategory.Music)//处理音乐主从关系 |
| | | { |
| | | if ((function as Music.A31MusicModel).ServerClientType == 1) |
| | | { |
| | |
| | | } |
| | | string msg = function.name + Language.StringByID(StringId.CollectionCancelled); |
| | | LoadDeviceFunctionControlZone(); |
| | | function.SaveFunctionData(true); |
| | | function.CollectFunction(); |
| | | }; |
| | | |
| | | var skipControlPageEvent = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollection, btnName, btnZone); |
| | |
| | | btnIcon.MouseUpEventHandler = skipControlPageEvent; |
| | | btnState.MouseUpEventHandler = skipControlPageEvent; |
| | | //电视不需要更新状态 |
| | | if(function.functionType!= FunctionType.TV) |
| | | if(function.spk!= SPK.ElectricTV) |
| | | { |
| | | UpdataFunctionStates(function); |
| | | } |
| | |
| | | Width = Application.GetRealWidth(32), |
| | | UnSelectedImagePath = "Public/FuncInfoSetIcon_white.png", |
| | | }; |
| | | view.AddChidren(btnSettingIcon); |
| | | if (!DB_ResidenceData.Instance.CurrentRegion.IsOthreShare) |
| | | { |
| | | view.AddChidren(btnSettingIcon); |
| | | } |
| | | |
| | | Button btnName; |
| | | btnName = new Button() |