From 2a88b9b559fd20f42d163d08b582f2d19ff329f4 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期一, 30 九月 2024 17:05:58 +0800
Subject: [PATCH] Update HDLLinphone.cs
---
HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs | 438 ++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 357 insertions(+), 81 deletions(-)
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
index d99c409..53cd5a5 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -1,14 +1,62 @@
锘縰sing System;
using System.Collections.Generic;
+using HDL_ON.Common;
using HDL_ON.DAL.Server;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
+using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
public partial class HomePage
{
+ /// <summary>
+ /// 鏇存柊璁惧鍦ㄧ嚎鐘舵��
+ /// </summary>
+ public static void LoadEvent_RefreshDevcieOnline(Function function)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ if (bodyView != null)
+ {
+ foreach (var view in bodyView.functionViews)
+ {
+ if (view.Tag.ToString() == function.sid)
+ {
+ for (int i = 0; i < view.ChildrenCount; i++)
+ {
+ if (view.GetChildren(i).GetType() == typeof(Button))
+ {
+ var btn = view.GetChildren(i) as Button;
+ if(btn.Tag == null)
+ {
+ continue;
+ }
+ if (btn.Tag.ToString() == function.sid)
+ {
+ if (function.isOnline())
+ {
+ btn.UnSelectedImagePath = "Collection/Functionbg.png";
+ btn.IsSelected = false;
+ }
+ else
+ {
+ btn.UnSelectedImagePath = "Collection/FunctionOfflineBg.png";
+ btn.IsSelected = false;
+ }
+ }
+ else if (btn.Tag.ToString() == "OnlineTag")
+ {
+ btn.Visible = !function.isOnline();
+ }
+ }
+ }
+ }
+ }
+ }
+ });
+ }
/// <summary>
/// 鏇存柊涓婚〉澶╂皵
/// </summary>
@@ -192,6 +240,107 @@
}
/// <summary>
+ /// 鏇存柊鍔熻兘缁勬帶涓婚〉
+ /// </summary>
+ public static void RefreshGroupControlView()
+ {
+ if (bodyView != null)
+ {
+
+ if (FunctionList.List.groupControls.Count == 0)
+ {
+ bodyView.loadNavView();
+ bodyView.contentView.PageIndex = 0;
+ }
+ bodyView.LoadGroupControlFunctionControlZone();
+ }
+ }
+
+ void CheckTokenValid()
+ {
+ //Dome妯″紡
+ if (MainPage.NoLoginMode)
+ {
+ return;
+ }
+
+ try
+ {
+ #region 璐﹀彿鐧诲綍鐘舵�侊紙鐧诲綍token鏄惁鏈夋晥锛�
+ if (ApiUtlis.Ins.IsValidToken)
+ {
+ if (tokenInvalidMsgView == null)
+ {
+ tokenInvalidMsgView = new FrameLayout()
+ {
+ Y = Application.GetRealHeight(113) - Application.GetRealWidth(24),
+ Height = Application.GetRealWidth(24),
+ BackgroundColor = 0xFF69A0F7,
+ };
+ topView.AddChidren(tokenInvalidMsgView);
+
+ Button btnTokenInvalidIcon = new Button()
+ {
+ X = Application.GetRealWidth(16),
+ Gravity = Gravity.CenterVertical,
+ Width = Application.GetRealWidth(20),
+ Height = Application.GetRealWidth(20),
+ UnSelectedImagePath = "Collection/TokenInvalidTipIcon.png"
+ };
+ tokenInvalidMsgView.AddChidren(btnTokenInvalidIcon);
+ var btnTokenInvalidTip = new Button()
+ {
+ X = btnTokenInvalidIcon.Right + Application.GetRealWidth(4),
+ TextAlignment = TextAlignment.CenterLeft,
+ TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+ TextColor = CSS_Color.MainBackgroundColor,
+ TextID = StringId.TokenInvalidMsg,
+ };
+ btnTokenInvalidTip.Width = btnTokenInvalidTip.GetTextWidth() + Application.GetRealWidth(8);
+ tokenInvalidMsgView.AddChidren(btnTokenInvalidTip);
+ btnTokenInvalidTip.MouseUpEventHandler = (sender, e) => {
+ new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.TokenInvalidTipMsg,StringId.Cancel,StringId.GoLogin, () => {
+ HDLCommon.Current.Logout();
+ });
+ };
+
+ var btnRight = new Button()
+ {
+ X= btnTokenInvalidTip.Right,
+ Gravity = Gravity.CenterVertical,
+ Width = Application.GetMinRealAverage(8),
+ Height = Application.GetMinRealAverage(8),
+ UnSelectedImagePath = "Public/RightIcon2.png",
+ };
+
+ tokenInvalidMsgView.AddChidren(btnRight);
+
+ }
+ }
+ else
+ {
+ if (tokenInvalidMsgView != null)
+ {
+ if (tokenInvalidMsgView.Parent != null)
+ {
+ tokenInvalidMsgView.RemoveAll();
+ tokenInvalidMsgView.RemoveFromParent();
+ tokenInvalidMsgView = null;
+ }
+ }
+ }
+ #endregion
+ if (bodyView.linkStateMsgView != null){
+ bodyView.linkStateMsgView.Y = ApiUtlis.Ins.IsValidToken ? Application.GetRealHeight(113) : Application.GetRealHeight(113) - Application.GetRealWidth(24);
+ }
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log("Error", $"HomePage 璐﹀彿鐧诲綍鐘舵�佷俊鎭樉绀哄紓甯�:{ex.StackTrace}");
+ }
+ }
+
+ /// <summary>
/// 鏇存柊杩炴帴鐘舵�佸浘鏍�
/// </summary>
void CheckLinkStatus()
@@ -202,22 +351,15 @@
return;
}
+ bodyView.linkStateMsgView.Y = ApiUtlis.Ins.IsValidToken ? Application.GetRealHeight(113) : Application.GetRealHeight(113) - Application.GetRealWidth(24);
+
if (!Control.Ins.GatewayOnline_Local && !Control.Ins.GatewayOnline_Cloud)
{
- bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipFail;
- bodyView.btnLinkStateTip.TextID = StringId.NetworkAnomaly;
- bodyView.environmentalView.Y = Application.GetRealHeight(8) + btnResidenceName.Bottom;
- }
- else if (Control.Ins.GatewayOnline_Local)
- {
- bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipLocal;
- bodyView.environmentalView.Y = Application.GetRealHeight(8) + btnResidenceName.Bottom;
+ bodyView.linkStateMsgView.Visible = true;
}
else
{
- bodyView.btnLinkStateTip.BackgroundColor = 0x00000000;
- bodyView.btnLinkStateTip.Text = "";
- bodyView.environmentalView.Y = Application.GetRealHeight(1) + btnResidenceName.Bottom;
+ bodyView.linkStateMsgView.Visible = false;
}
}
@@ -228,9 +370,35 @@
{
Application.RunOnMainThread(() =>
{
- if (bodyView != null)
+ try
{
- bodyView.CheckLinkStatus();
+ if (bodyView != null)
+ {
+ bodyView.CheckLinkStatus();
+ }
+ }catch(Exception ex)
+ {
+ MainPage.Log($"LoadEvent_CheckLinkStatus : {ex.Message}");
+ }
+ });
+ }
+ /// <summary>
+ /// 纭Token鏄惁鏈夋晥
+ /// </summary>
+ public static void LoadEvent_CheckTokenValid()
+ {
+ Application.RunOnMainThread(() =>
+ {
+ try
+ {
+ if (bodyView != null)
+ {
+ bodyView.CheckTokenValid();
+ }
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log("Error",$"LoadEvent_CheckTokenValid : {ex.StackTrace}");
}
});
}
@@ -278,65 +446,24 @@
/// </summary>
void LoadEvent_ChangeShowedFunctionType()
{
- btnChangeFunction.MouseUpEventHandler = (sender, e) =>
+
+ if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl && FunctionList.List.groupControls.Count>0)
{
- btnChangeFunction.IsSelected = true;
- btnChangeFunction.TextSize = CSS.CSS_FontSize.HeadlineFontSize;
- btnChangeFunction.IsBold = true;
- btnChangeScene.TextSize = CSS.CSS_FontSize.TextFontSize;
- btnChangeScene.IsSelected = false;
- btnChangeScene.IsBold = false;
- CurShowTypeIsFunction = true;
- contentView.PageIndex = 0;
- };
- //var client = new BlufiClient();
- //client.PostPackageLengthLimit = 128;
- //client.RequestDeviceScan();
- //client.RequestDeviceStatus();
- //client.BlufiDelegate.Blufi_DidReceiveDeviceScanResponse();
-
-
- btnChangeScene.MouseUpEventHandler = (sender, e) =>
- {
- btnChangeScene.IsSelected = true;
- btnChangeScene.TextSize = CSS.CSS_FontSize.HeadlineFontSize;
- btnChangeScene.IsBold = true;
- btnChangeFunction.TextSize = CSS.CSS_FontSize.TextFontSize;
- btnChangeFunction.IsSelected = false;
- btnChangeFunction.IsBold = false;
- CurShowTypeIsFunction = false;
- contentView.PageIndex = 1;
- };
-
- contentView.PageChange = (sender, e) =>
- {
- if (contentView.PageIndex == 0)
- {
- btnChangeFunction.IsSelected = true;
- btnChangeFunction.TextSize = CSS.CSS_FontSize.HeadlineFontSize;
- btnChangeFunction.IsBold = true;
- btnChangeScene.TextSize = CSS.CSS_FontSize.TextFontSize;
- btnChangeScene.IsSelected = false;
- btnChangeScene.IsBold = false;
- }
- else
- {
- btnChangeScene.IsSelected = true;
- btnChangeScene.TextSize = CSS.CSS_FontSize.HeadlineFontSize;
- btnChangeScene.IsBold = true;
- btnChangeFunction.TextSize = CSS.CSS_FontSize.TextFontSize;
- btnChangeFunction.IsSelected = false;
- btnChangeFunction.IsBold = false;
- }
- };
+ }
}
+
+ object lockObj = new object();
/// <summary>
/// 鏇存柊鏄剧ず鐘舵��
/// </summary>
public static void UpdataFunctionStates(Function function)
{
+ if(bodyView == null)
+ {
+ return;
+ }
Application.RunOnMainThread(() =>
{
try
@@ -347,18 +474,86 @@
{
if (view.Tag.ToString() == function.sid)
{
+ //if (!function.online)
+ //{
+ // view.UnSelectedImagePath = "Collection/FunctionOfflineBg.png";
+ //}
+
var state = false;
if (function.spk == SPK.CurtainRoller || function.spk == SPK.CurtainShades || function.spk == SPK.CurtainTrietex ||
- function.spk == SPK.CurtainSwitch)//绐楀笜璁惧鏍规嵁鐧惧垎姣斿垽鏂紑鍏崇姸鎬�
+ function.spk == SPK.CurtainSwitch || function.spk == SPK.CurtainDream)//绐楀笜璁惧鏍规嵁鐧惧垎姣斿垽鏂紑鍏崇姸鎬�
{
if (function.GetAttribute(FunctionAttributeKey.Percent) != null)
{
state = function.GetAttrState(FunctionAttributeKey.Percent) != "0";
- }else
+ }
+ else
{
if (function.GetAttrState(FunctionAttributeKey.OnOff) == "stop")
return;
state = function.trait_on_off.curValue.ToString() == "on";
+ }
+ }
+ else if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose)
+ {
+
+ var tempStatus = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.TargetStatus);
+ if (tempStatus != null)
+ {
+ switch (tempStatus.state)
+ {//0绌猴紝1璧帮紝2璺戯紝3鍧愶紝4璺屽�掞紝5绔�
+ case "0":
+ state = false;
+ break;
+ case "1":
+ state = true;
+ break;
+ case "2":
+ if (function.extSet.labModel)
+ {
+ state = true;
+ }
+ break;
+ case "3":
+ if (function.extSet.labModel)
+ {
+ state = true;
+ }
+ break;
+ case "4":
+ state = true;
+ break;
+ case "5":
+ if (function.extSet.labModel)
+ {
+ state = true;
+ }
+ break;
+ }
+ }
+ }
+ else if (function.spk == SPK.SensorHelp)
+ {
+ var tempStatus = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.AlarmStatus);
+ if (tempStatus != null)
+ {
+ state = tempStatus.curValue.ToString() == "alarm";
+ }
+ }
+ else if (function.spk == SPK.SensorPir || function.spk == SPK.SensorPirHold)
+ {
+ var tempStatus = function.attributes.Find((sta) => sta.key == "people_status");
+ if (tempStatus != null)
+ {
+ state = tempStatus.curValue.ToString() == "true";
+ }
+ }
+ else if (function.spk == SPK.SensorDryContact || function.spk == SPK.SensorDryContact2)
+ {
+ var tempStatus = function.attributes.Find((sta) => sta.key == "contact_status");
+ if (tempStatus != null)
+ {
+ state = tempStatus.curValue.ToString() == "open";
}
}
else
@@ -381,7 +576,14 @@
{
if (function.spk != SPK.LightSwitch)
{
- btn.Text = function.lastState;
+ if (function.spk == SPK.SensorHelp)
+ {
+ btn.TextID = StringId.InAlarming;
+ }
+ else
+ {
+ btn.Text = function.lastState;
+ }
}
}
}
@@ -468,6 +670,16 @@
{
btnSwitch.MouseUpEventHandler = (sender, e) =>
{
+ if (!function.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
+ {
+ new Tip()
+ {
+ CloseTime = 1,
+ Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+ Direction = AMPopTipDirection.None,
+ }.Show(MainPage.BaseView);
+ return;
+ }
btnSwitch.IsSelected = !btnSwitch.IsSelected;
new System.Threading.Thread(() =>
{
@@ -478,6 +690,7 @@
btnSwitch.IsSelected = !btnSwitch.IsSelected;
});
}
+
function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off";
Dictionary<string, string> d = new Dictionary<string, string>();
if (function.spk == SPK.LightDimming || function.spk == SPK.LightRGB)
@@ -494,13 +707,18 @@
d.Add(FunctionAttributeKey.FadeTime, function.GetAttrState(FunctionAttributeKey.FadeTime));
Control.Ins.SendWriteCommand(function, d);
}
- else if (function.spk == SPK.PanelSocket)
+ //else if (function.spk == SPK.PanelSocket)//鍘绘帀锛岀粺涓�澶勭悊鎬绘帶
+ //{
+ // if (function.attributes.Find((obj) => obj.key == "on_off_usb") != null)
+ // {
+ // d.Add("on_off_usb", function.trait_on_off.curValue.ToString());
+ // }
+ // Control.Ins.SendWriteCommand(function, d);
+ //}
+ else if (function.spk == SPK.GroupControl)
{
- if (function.attributes.Find((obj) => obj.key == "on_off_usb") != null)
- {
- d.Add("on_off_usb", function.trait_on_off.curValue.ToString());
- }
- Control.Ins.SendWriteCommand(function, d);
+ d.Add("on_off", function.trait_on_off.curValue.ToString());
+ (function as GroupControl).Control(d);
}
else
{
@@ -521,6 +739,16 @@
{
btnSwitch.MouseUpEventHandler = (sender, e) =>
{
+ if (!function.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
+ {
+ new Tip()
+ {
+ CloseTime = 1,
+ Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+ Direction = AMPopTipDirection.None,
+ }.Show(MainPage.BaseView);
+ return;
+ }
if (DB_ResidenceData.Instance.GatewayType == 1)
{
btnSwitch.IsSelected = !btnSwitch.IsSelected;
@@ -555,6 +783,16 @@
{
btnClose.MouseUpEventHandler = (sender, e) =>
{
+ //if (!curtain.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
+ //{
+ // new Tip()
+ // {
+ // CloseTime = 1,
+ // Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+ // Direction = AMPopTipDirection.None,
+ // }.Show(MainPage.BaseView);
+ // return;
+ //}
btnClose.IsSelected = true;
curtain.trait_on_off.curValue = "off";
curtain.SetAttrState(FunctionAttributeKey.Percent, 0);
@@ -562,13 +800,23 @@
d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString());
Control.Ins.SendWriteCommand(curtain, d);
};
-
btnOpen.MouseUpEventHandler = (sender, e) =>
{
+ //if (!curtain.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
+ //{
+ // new Tip()
+ // {
+ // CloseTime = 1,
+ // Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+ // Direction = AMPopTipDirection.None,
+ // }.Show(MainPage.BaseView);
+ // return;
+ //}
btnOpen.IsSelected = true;
+ Dictionary<string, string> d = new Dictionary<string, string>();
+
curtain.trait_on_off.curValue = "on";
curtain.SetAttrState(FunctionAttributeKey.Percent, 100);
- Dictionary<string, string> d = new Dictionary<string, string>();
d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString());
Control.Ins.SendWriteCommand(curtain, d);
};
@@ -585,6 +833,16 @@
};
btnUp.MouseUpEventHandler = (sender, e) =>
{
+ if (!function.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
+ {
+ new Tip()
+ {
+ CloseTime = 1,
+ Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+ Direction = AMPopTipDirection.None,
+ }.Show(MainPage.BaseView);
+ return;
+ }
new System.Threading.Thread(() =>
{
System.Threading.Thread.Sleep(2000);
@@ -606,6 +864,16 @@
};
btnDown.MouseUpEventHandler = (sender, e) =>
{
+ if (!function.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
+ {
+ new Tip()
+ {
+ CloseTime = 1,
+ Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+ Direction = AMPopTipDirection.None,
+ }.Show(MainPage.BaseView);
+ return;
+ }
new System.Threading.Thread(() =>
{
System.Threading.Thread.Sleep(2000);
@@ -641,9 +909,9 @@
skipPage.LoadPage(backAction);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
- btnMsgBg.MouseUpEventHandler = eventHandler;
- btnMsgTime.MouseUpEventHandler = eventHandler;
- btnMsg.MouseUpEventHandler = eventHandler;
+ //btnMsgBg.MouseUpEventHandler = eventHandler;
+ //btnMsgTime.MouseUpEventHandler = eventHandler;
+ //btnMsg.MouseUpEventHandler = eventHandler;
btnMsgIcon.MouseUpEventHandler = eventHandler;
}
@@ -658,6 +926,10 @@
/// </summary>
void GetUnreadPushMessages()
{
+ if (MainPage.NoLoginMode)
+ {
+ return;
+ }
System.Threading.Tasks.Task.Run(() =>
{
try
@@ -724,8 +996,8 @@
void ShowMesBtnState(PushMessageInfo pushMessageInfo, bool allRead)
{
if (bodyView == null) return;
- btnMsg.Text = pushMessageInfo.messageTitle + ": " + pushMessageInfo.messageContent;
- btnMsgTime.Text = GetUnixToDateTime(pushMessageInfo.createTime);
+ //btnMsg.Text = pushMessageInfo.messageTitle + ": " + pushMessageInfo.messageContent;
+ //btnMsgTime.Text = GetUnixToDateTime(pushMessageInfo.createTime);
btnMsgIcon.IsSelected = !allRead;
}
@@ -735,8 +1007,8 @@
void ResetMesBtnRead()
{
if (bodyView == null) return;
- btnMsg.Text = "...";
- btnMsgTime.Text = "00:00";
+ //btnMsg.Text = "...";
+ //btnMsgTime.Text = "00:00";
btnMsgIcon.IsSelected = false;
}
@@ -762,6 +1034,10 @@
/// </summary>
void RegisterGetPushMessageAction()
{
+ if (MainPage.NoLoginMode)
+ {
+ return;
+ }
Action RegisterGetPushMessageAction = () => {
if (bodyView != null)
{
--
Gitblit v1.8.0