HDL-ON_Android/Assets/Language.ini
@@ -1227,6 +1227,28 @@ 8512=Serial number 8513=Model 8701=Home theatre 8702=Player 8703=Amplifier 8704=Virtual remote control 8705=Allmov 8706=TIMING 8707=Open 8708=Off 8709=Vocal tract 8710=All around 8711=Storehouse 8712=Subtitle 8713=Have already collected 8714=A Collection for the Future 8715=Synthesize 8716=Video Introduction 8717=Score 8718=Play now 8719=Conform action 8720=Channel 8721=Control @@ -2578,6 +2600,28 @@ 8512=序列号 8513=型号 8701=家庭影院 8702=播放器 8703=功放 8704=虚拟遥控器 8705=影库 8706=时序器 8707=开 8708=关 8709=声道 8710=上一部 8711=进出仓 8712=字幕 8713=已收藏 8714=未收藏 8715=综合 8716=影片介绍 8717=评分 8718=立即播放 8719=下一部 8720=频道 8721=控制 @@ -3919,6 +3963,28 @@ 8512=Serial number 8513=Model 8701=Home theatre 8702=Player 8703=Amplifier 8704=Virtual remote control 8705=Allmov 8706=TIMING 8707=Open 8708=Off 8709=Vocal tract 8710=All around 8711=Storehouse 8712=Subtitle 8713=Have already collected 8714=A Collection for the Future 8715=Synthesize 8716=Video Introduction 8717=Score 8718=Play now 8719=Conform action 8720=Channel 8721=Control @@ -5252,6 +5318,28 @@ 8511=Door opener 8512=Serial number 8513=Model 8701=Home theatre 8702=Player 8703=Amplifier 8704=Virtual remote control 8705=Allmov 8706=TIMING 8707=Open 8708=Off 8709=Vocal tract 8710=All around 8711=Storehouse 8712=Subtitle 8713=Have already collected 8714=A Collection for the Future 8715=Synthesize 8716=Video Introduction 8717=Score 8718=Play now 8719=Conform action 8720=Channel 8721=Control 9000=Inicio sesión con un nuevo número de teléfono celular 9001=Inicie sesión con una nueva dirección de correo eléctrónico @@ -6591,6 +6679,30 @@ 8512=Serial number 8513=Model 8701=Home theatre 8702=Player 8703=Amplifier 8704=Virtual remote control 8705=Allmov 8706=TIMING 8707=Open 8708=Off 8709=Vocal tract 8710=All around 8711=Storehouse 8712=Subtitle 8713=Have already collected 8714=A Collection for the Future 8715=Synthesize 8716=Video Introduction 8717=Score 8718=Play now 8719=Conform action 8720=Channel 8721=Control HDL-ON_Android/Assets/Phone/AksIcon/bofang.png
HDL-ON_Android/Assets/Phone/AksIcon/caidan.png
HDL-ON_Android/Assets/Phone/AksIcon/dankongdeng.png
HDL-ON_Android/Assets/Phone/AksIcon/dengguan.png
HDL-ON_Android/Assets/Phone/AksIcon/dianshi.png
HDL-ON_Android/Assets/Phone/AksIcon/dianying.png
HDL-ON_Android/Assets/Phone/AksIcon/fanhui.png
HDL-ON_Android/Assets/Phone/AksIcon/gongfang1.png
HDL-ON_Android/Assets/Phone/AksIcon/gongfang2.png
HDL-ON_Android/Assets/Phone/AksIcon/guan.png
HDL-ON_Android/Assets/Phone/AksIcon/huikan.png
HDL-ON_Android/Assets/Phone/AksIcon/jia.png
HDL-ON_Android/Assets/Phone/AksIcon/jian.png
HDL-ON_Android/Assets/Phone/AksIcon/jinchucang.png
HDL-ON_Android/Assets/Phone/AksIcon/jingyin.png
HDL-ON_Android/Assets/Phone/AksIcon/kai.png
HDL-ON_Android/Assets/Phone/AksIcon/kauitui.png
HDL-ON_Android/Assets/Phone/AksIcon/kuaijin.png
HDL-ON_Android/Assets/Phone/AksIcon/mubujiang.png
HDL-ON_Android/Assets/Phone/AksIcon/mubusheng.png
HDL-ON_Android/Assets/Phone/AksIcon/pindao1.png
HDL-ON_Android/Assets/Phone/AksIcon/pingdao2.png
HDL-ON_Android/Assets/Phone/AksIcon/quxiao.png
HDL-ON_Android/Assets/Phone/AksIcon/shang.png
HDL-ON_Android/Assets/Phone/AksIcon/shangyibu.png
HDL-ON_Android/Assets/Phone/AksIcon/shengdao.png
HDL-ON_Android/Assets/Phone/AksIcon/shixuqi.png
HDL-ON_Android/Assets/Phone/AksIcon/tingzhi.png
HDL-ON_Android/Assets/Phone/AksIcon/touping.png
HDL-ON_Android/Assets/Phone/AksIcon/xia.png
HDL-ON_Android/Assets/Phone/AksIcon/xiangshang.png
HDL-ON_Android/Assets/Phone/AksIcon/xiangxia.png
HDL-ON_Android/Assets/Phone/AksIcon/xiayibu.png
HDL-ON_Android/Assets/Phone/AksIcon/xinhaoyuan.png
HDL-ON_Android/Assets/Phone/AksIcon/xinxi.png
HDL-ON_Android/Assets/Phone/AksIcon/xuanze.png
HDL-ON_Android/Assets/Phone/AksIcon/yingku.png
HDL-ON_Android/Assets/Phone/AksIcon/yingkunext.png
HDL-ON_Android/Assets/Phone/AksIcon/yingui.png
HDL-ON_Android/Assets/Phone/AksIcon/yingyinzhongkong1.png
HDL-ON_Android/Assets/Phone/AksIcon/yingyinzhongkong2.png
HDL-ON_Android/Assets/Phone/AksIcon/yinliangjia.png
HDL-ON_Android/Assets/Phone/AksIcon/yinliangjian.png
HDL-ON_Android/Assets/Phone/AksIcon/you.png
HDL-ON_Android/Assets/Phone/AksIcon/yule.png
HDL-ON_Android/Assets/Phone/AksIcon/zanting.png
HDL-ON_Android/Assets/Phone/AksIcon/zdyanjian.png
HDL-ON_Android/Assets/Phone/AksIcon/zdyshang1.png
HDL-ON_Android/Assets/Phone/AksIcon/zdyxia2.png
HDL-ON_Android/Assets/Phone/AksIcon/zdyyou2.png
HDL-ON_Android/Assets/Phone/AksIcon/zdyzuo2.png
HDL-ON_Android/Assets/Phone/AksIcon/zimu.png
HDL-ON_Android/Assets/Phone/AksIcon/zuo.png
HDL-ON_Android/HDL-ON_Android.csproj
@@ -457,6 +457,59 @@ <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\VideoDoorlockBatteryManagementBg.png" /> <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\groupControl_white.png" /> <AndroidAsset Include="Assets\Phone\Classification\Room\HomePagebg.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\bofang.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\caidan.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\dankongdeng.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\dengguan.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\dianshi.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\dianying.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\fanhui.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\gongfang1.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\gongfang2.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\guan.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\huikan.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\jia.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\jian.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\jinchucang.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\jingyin.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\kai.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\kauitui.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\kuaijin.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\mubujiang.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\mubusheng.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\pindao1.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\pingdao2.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\quxiao.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\shang.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\shangyibu.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\shengdao.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\shixuqi.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\tingzhi.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\touping.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\xia.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\xiangshang.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\xiangxia.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\xiayibu.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\xinhaoyuan.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\xinxi.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\xuanze.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\yingku.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\yingkunext.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\yingui.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\yingyinzhongkong1.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\yingyinzhongkong2.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\yinliangjia.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\yinliangjian.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\you.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\yule.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\zanting.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\zdyanjian.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\zdyshang1.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\zdyxia2.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\zdyyou2.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\zdyzuo2.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\zimu.png" /> <AndroidAsset Include="Assets\Phone\AksIcon\zuo.png" /> </ItemGroup> <ItemGroup> <AndroidResource Include="Resources\values\colors.xml" /> @@ -1673,6 +1726,7 @@ <Folder Include="Assets\Phone\FunctionIcon\Panel\" /> <Folder Include="Assets\Phone\FunctionIcon\Inverter\" /> <Folder Include="Assets\Phone\FunctionIcon\Electrical\MechanicalArm\" /> <Folder Include="Assets\Phone\AksIcon\" /> </ItemGroup> <Import Project="..\HDL_ON\HDL_ON.projitems" Label="Shared" Condition="Exists('..\HDL_ON\HDL_ON.projitems')" /> <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" /> HDL_ON/Common/R.cs
@@ -3544,7 +3544,91 @@ public const int xinghao = 8513; /// <summary> /// 家庭影院 /// </summary> public const int jiatingyingyuan = 8701; /// <summary> /// 播放器 /// </summary> public const int bofangqi = 8702; /// <summary> /// 功放 /// </summary> public const int gongfan = 8703; /// <summary> /// 虚拟遥控器 /// </summary> public const int xuniyaokongqi = 8704; /// <summary> /// 影库 /// </summary> public const int yingku = 8705; /// <summary> /// 时序器 /// </summary> public const int shixuqi = 8706; /// <summary> /// 开 /// </summary> public const int kai = 8707; /// <summary> /// 关 /// </summary> public const int guan = 8708; /// <summary> /// 声道 /// </summary> public const int shengdao = 8709; /// <summary> /// 上一部 /// </summary> public const int shangyibu= 8710; /// <summary> /// 进出仓 /// </summary> public const int jinchucang = 8711; /// <summary> /// 字幕 /// </summary> public const int zimu = 8712; /// <summary> /// 已收藏 /// </summary> public const int yishoucang= 8713; /// <summary> /// 未收藏 /// </summary> public const int weishoucang = 8714; /// <summary> /// 综合 /// </summary> public const int zonghe = 8715; /// <summary> /// 影片介绍 /// </summary> public const int yingpianjieshao = 8716; /// <summary> /// 评分 /// </summary> public const int pingfen = 8717; /// <summary> /// 立即播放 /// </summary> public const int lijibofang = 8718; /// <summary> /// 下一部 /// </summary> public const int xiayibu1 = 8719; /// <summary> /// 频道 /// </summary> public const int pindao = 8720; /// <summary> /// 控制 /// </summary> public const int kongzhi = 8721; HDL_ON/DAL/Server/HttpUtil.cs
@@ -18,8 +18,8 @@ /// 固定域名,正式环境 /// 公共域名就近解析 /// </summary> public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com"; //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com"; //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com"; public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com"; const string APP_KEY = "HDL-HOME-APP-TEST"; const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss"; //public const string GlobalRequestHttpsHost = "http://59.41.255.150:7777";//mmmm HDL_ON/Entity/DB_ResidenceData.cs
@@ -79,6 +79,7 @@ ShowFunction.SecurityMonitoring, ShowFunction.VideoDoorLock, ShowFunction.Series, ShowFunction.Aks, }; } return dddd; HDL_ON/Entity/Enumerative/MyEnum.cs
@@ -193,6 +193,10 @@ /// 跑马灯(序列) /// </summary> Series = 0x27, /// <summary> /// 影音中控 /// </summary> Aks = 0x28, } HDL_ON/Entity/Function/Function.cs
@@ -1558,6 +1558,10 @@ /// </summary> public const string Ev_Ipcam = "security.ipcam.ez"; /// <summary> /// 影音中控 /// </summary> public const string AvZkAiks = "av.zk.aiks"; /// <summary> /// 萤石视频门锁spk列表 /// </summary> /// <returns></returns> @@ -1567,6 +1571,18 @@ list.Add(VideoDoorLock); return list; } /// <summary> /// 影音中控spk列表 /// </summary> /// <returns></returns> public static List<string> GetVideoControlsSPKList() { var list = new List<string> { AvZkAiks }; return list; } /// <summary> /// 萤石摄像头spk列表 HDL_ON/Entity/FunctionList.cs
@@ -185,6 +185,16 @@ } /// <summary> /// 获取影音中控列表 /// </summary> /// <returns></returns> public List<Function> GetVideoControlsList() { var spkList = SPK.GetVideoDoorLockSPKList(); return Functions.FindAll((obj) => spkList.Contains(obj.spk)); } /// <summary> /// 新风列表 /// </summary> /// <returns></returns> HDL_ON/HDL_ON.projitems
@@ -562,6 +562,9 @@ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\VideoDoorLock\VideoDoorlockAudioSetupPage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\VideoDoorLock\VideoDoorlockBatteryManagementPage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\SeriesFunctionListPage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Aks\AksListPage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Aks\AksCommonMethod.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Aks\AksPage.cs" /> </ItemGroup> <ItemGroup> <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" /> @@ -591,5 +594,6 @@ <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Acst\" /> <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\Face\" /> <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\CombinedDimming\" /> <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Aks\" /> </ItemGroup> </Project> HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
@@ -771,6 +771,13 @@ #endif functionOnCount = 1; break; case ShowFunction.Aks: functionCount = FunctionList.List.GetVideoControlsList().Count; #if DEBUG functionCount = 1; #endif functionOnCount = 1; break; @@ -1201,10 +1208,24 @@ form.AddForm(list); }; break; case ShowFunction.Aks: //埃克斯影音中控 btnName.TextID = StringId.jiatingyingyuan; btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { var list = HDL_ON.UI.UI2.FuntionControlView.Aks.AksCommonMethod.Current.GetVideoControlsList(); var form = new HDL_ON.UI.UI2.FuntionControlView.Aks.AksListPage(() => { functionContentView?.RemoveFromParent(); this.RefreshFunctionView(); }); form.AddForm(list); }; break; } //界面跳转--音乐跳转自己的界面--环境跳转自己的界面--(萤石视频门锁)跳转自己的界面 //界面跳转--音乐跳转自己的界面--环境跳转自己的界面--(萤石视频门锁)跳转自己的界面--埃克斯影音中控 if (item != ShowFunction.VideoDoorLock && item != ShowFunction.Aks && item != ShowFunction.Music && item != ShowFunction.Environmental && item != ShowFunction.SecurityMonitoring HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -798,6 +798,7 @@ ////萤石视频门锁 inputDevice.condition_type = "9"; inputDevice.identifier = this.identifier; inputDevice.condition = new List<Dictionary<string, string>>(); } else if (device.spk == SPK.SensorPirHold) { HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -189,7 +189,7 @@ list.AddRange(list2); list.AddRange(FunctionList.List.groupControls); #if DEBUG GetTestDevice(ref list, true); //GetTestDevice(ref list, true); #endif return list; } HDL_ON/UI/UI2/FuntionControlView/Aks/AksCommonMethod.cs
New file @@ -0,0 +1,47 @@ using System; using HDL_ON.Entity; using System.Collections.Generic; using Shared; using HDL_ON.DAL.Server; namespace HDL_ON.UI.UI2.FuntionControlView.Aks { /// <summary> /// 影音中控屏公共方法类 /// </summary> public class AksCommonMethod { private static AksCommonMethod commonMethod = null; /// <summary> /// 获取对象 /// </summary> public static AksCommonMethod Current { get { if (commonMethod == null) { commonMethod = new AksCommonMethod(); } return commonMethod; } } /// <summary> /// 获取影音中控屏列表 /// </summary> /// <returns></returns> public List<Function> GetVideoControlsList() { var list = FunctionList.List.GetVideoControlsList(); #if DEBUG list.Add(new Function { name = "影音中控屏一", sid = "11111111", spk = SPK.AvZkAiks }); list.Add(new Function { name = "影音中控屏二", sid = "22222222", spk = SPK.AvZkAiks }); #endif return list; } } } HDL_ON/UI/UI2/FuntionControlView/Aks/AksListPage.cs
New file @@ -0,0 +1,250 @@ using System; using System.Collections.Generic; using HDL_ON.Entity; using HDL_ON.Stan; using HDL_ON.UI.CSS; using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock; using Shared; namespace HDL_ON.UI.UI2.FuntionControlView.Aks { /// <summary> /// 影音中控列表界面 /// </summary> public class AksListPage : EditorCommonForm { #region ■ 变量声明___________________________ /// <summary> /// 影音中控设备列表 /// </summary> private List<Function> listDevice = new List<Function>(); /// <summary> /// 电池控件列表(key:设备的sid) /// </summary> private Dictionary<string, BatteryPersentControl> dicBatteryContr = new Dictionary<string, BatteryPersentControl>(); /// <summary> /// 列表控件 /// </summary> private VerticalListControl listView = null; /// <summary> /// 删除设备后需要更新界面的回调 /// </summary> public Action action; #endregion #region ■ 初始化_____________________________ public AksListPage(Action action) { this.action = action; } /// <summary> /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// </summary> /// <param name="i_listDevice">门锁设备列表</param> public void ShowForm(List<Function> i_listDevice) { this.listDevice.AddRange(i_listDevice); //家庭影院 base.SetTitleText(Language.StringByID(StringId.jiatingyingyuan)); //初始化中部信息 this.InitMiddleFrame(); } /// <summary> /// 初始化中部信息 /// </summary> private void InitMiddleFrame() { //清空bodyFrame this.ClearBodyFrame(); string nowSelectId = string.Empty; //楼层下拉图标 var btnFloor = new NormalViewControl(500, Application.GetRealHeight(16), false); var btnFloorIcon = new IconViewControl(16); btnFloorIcon.X = HdlControlResourse.XXLeft; btnFloorIcon.Y = Application.GetRealHeight(18); btnFloorIcon.UnSelectedImagePath = "Public/DownIcon.png"; bodyFrameLayout.AddChidren(btnFloorIcon); btnFloorIcon.ButtonClickEvent += (sender, e) => { //显示下拉列表 var form = new FloorRoomSelectPopupView(); form.ShowDeviceFunctionView(btnFloor, this.listDevice, (selectId, listFunc) => { btnFloor.Width = btnFloor.GetRealWidthByText();//重置文本宽度 nowSelectId = selectId; //重新初始化列表控件 this.InitDoorListControl(listFunc); }, nowSelectId); }; //楼层 btnFloor.X = btnFloorIcon.Right + Application.GetRealWidth(2); btnFloor.TextColor = CSS_Color.FirstLevelTitleColor; btnFloor.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; btnFloor.Text = DB_ResidenceData.Instance.CurFloor.roomName; //btnFloor.Width = btnFloor.GetRealWidthByText(); bodyFrameLayout.AddChidren(btnFloor); //让它相对图标居中 btnFloor.Y = btnFloorIcon.Y + (btnFloorIcon.Height - btnFloor.Height) / 2; btnFloor.ButtonClickEvent += (sender, e) => { btnFloorIcon.ButtonClickEvent(null, null); }; //列表控件 this.listView = new VerticalListControl(); listView.Y = Application.GetRealHeight(53); listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(53); bodyFrameLayout.AddChidren(listView); //初始化列表控件 this.InitDoorListControl(this.listDevice); } #endregion #region ■ 添加影音中控控件_______________________ /// <summary> /// 初始化列表控件 /// </summary> private void InitDoorListControl(List<Function> i_listDevice) { this.listView.RemoveAll(); this.dicBatteryContr = new Dictionary<string, BatteryPersentControl>(); //生成影音中控控件 foreach (var device in i_listDevice) { this.AddDoorControl(device); } } /// <summary> /// 添加影音中控控件 /// </summary> /// <param name="i_device">门锁对象</param> private void AddDoorControl(Function i_device) { //白色背景容器 var frameBack = new FrameLayoutStatuControl(); frameBack.Width = Application.GetRealWidth(343); frameBack.Height = Application.GetRealHeight(96); frameBack.Radius = (uint)Application.GetRealWidth(12); frameBack.Gravity = Gravity.CenterHorizontal; frameBack.BackgroundColor = CSS_Color.MainBackgroundColor; this.listView.AddChidren(frameBack); //图标 var btnIcon = new IconViewControl(32); btnIcon.X = Application.GetRealWidth(10); btnIcon.Y = Application.GetRealHeight(15); btnIcon.UnSelectedImagePath = "AksIcon/yingyinzhongkong2.png"; frameBack.AddChidren(btnIcon, ChidrenBindMode.BindEvent); //设备名字 var btnName = new Button(); btnName.X = btnIcon.Right + Application.GetRealWidth(12); btnName.Y = Application.GetRealHeight(12); btnName.Width = Application.GetRealWidth(150); btnName.Height = Application.GetRealHeight(20); btnName.TextColor = CSS_Color.FirstLevelTitleColor; btnName.TextAlignment = TextAlignment.CenterLeft; btnName.Text = i_device.name; frameBack.AddChidren(btnName, ChidrenBindMode.BindEvent); var btnCollection = new Button() { X = Application.GetRealWidth(299), Y = Application.GetRealHeight(10), Width = Application.GetMinRealAverage(40), Height = Application.GetMinRealAverage(40), SelectedImagePath = "Collection/CollectionIcon.png", UnSelectedImagePath = "Collection/CollectionGrayIcon.png", IsSelected = i_device.collect }; frameBack.AddChidren(btnCollection, ChidrenBindMode.BindEvent); //房间 var btnRoom = new Button(); btnRoom.X = btnName.X; btnRoom.Y = btnName.Bottom + Application.GetRealHeight(4); btnRoom.Width = Application.GetRealWidth(150); btnRoom.Height = Application.GetRealHeight(15); btnRoom.TextColor = CSS_Color.PromptingColor1; btnRoom.TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel; btnRoom.TextAlignment = TextAlignment.CenterLeft; btnRoom.Text = i_device.GetRoomListName(); frameBack.AddChidren(btnRoom, ChidrenBindMode.BindEvent); //电池图标 var btnBattery = new BatteryPersentControl(); //btnBattery.Y = Application.GetRealHeight(62); //frameBack.AddChidren(btnBattery, ChidrenBindMode.BindEvent); //btnBattery.InitControl(); //btnBattery.SetValue(80); //btnBattery.X = frameBack.Width - btnBattery.Width - Application.GetRealWidth(12); this.dicBatteryContr[i_device.sid] = btnBattery; EventHandler<MouseEventArgs> CommonClick = (sender, e) => { var form = new AksPage(i_device, btnName, btnRoom, CommonMethod.Comerom.function, () => { this.CloseForm(); this.action?.Invoke(); }); MainPage.BasePageView.AddChidren(form); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; form.Show(); }; frameBack.MouseUpEventHandler += CommonClick; btnIcon.MouseUpEventHandler += CommonClick; btnName.MouseUpEventHandler += CommonClick; btnRoom.MouseUpEventHandler += CommonClick; //收藏 btnCollection.MouseUpEventHandler += (sender, e) => { btnCollection.IsSelected = i_device.collect = !btnCollection.IsSelected; i_device.CollectFunction(); }; //底部再加个间距 var frameSpace = new FrameLayout(); frameSpace.Height = Application.GetRealHeight(12); this.listView.AddChidren(frameSpace); } #endregion #region ■ 设备状态推送_______________________ /// <summary> /// 设备状态推送 /// </summary> /// <param name="i_LocalDevice"></param> public override void DeviceStatuPush(Function i_LocalDevice) { //不是目标设备 if (this.dicBatteryContr.ContainsKey(i_LocalDevice.sid) == false) { return; } } #endregion } } HDL_ON/UI/UI2/FuntionControlView/Aks/AksPage.cs
New file @@ -0,0 +1,186 @@ using Shared; using System; using System.Collections.Generic; using System.Text; using HDL_ON.UI.CSS; using HDL_ON.Entity; using HDL_ON.DriverLayer; using HDL_ON.UI.Music; using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock; namespace HDL_ON.UI.UI2.FuntionControlView.Aks { public class AksPage : FrameLayout { #region ■ 变量声明___________________________ /// <summary> /// 设备 /// </summary> private Function device; /// <summary> /// 上一级界面的设备名字控件 /// </summary> private Button btnDeviceName; /// <summary> /// 上一级界面的房间名字控件 /// </summary> private Button btnRoomName; /// <summary> /// 头部布局 /// </summary> private TopView topView; /// <summary> /// 当前设备名称 /// </summary> private Button btnCurrDeviceName; /// <summary> /// 区域 /// </summary> private Button btnCurrDeviceRoom; /// <summary> /// 表示来自那个界面 /// </summary> private CommonMethod.Comerom comerom; /// <summary> /// 删除设备后需要更新界面的回调 /// </summary> public Action action; public VerticalScrolViewLayout vv; #endregion public AksPage() { } /// <summary> /// 构造函数 /// </summary> /// <param name="function">设备</param> /// <param name="btnDeviceName">上一级界面的设备名字控件(注:不能传null,没有可以传new Button())</param> /// <param name="btnRoomName">上一级界面的房间名字控件(注:不能传null,没有可以传new Button())</param> public AksPage(Function function, Button btnDeviceName, Button btnRoomName, CommonMethod.Comerom comerom, Action action) { this.device = function; this.btnDeviceName = btnDeviceName; this.btnRoomName = btnRoomName; this.comerom = comerom; this.action = action; } public void Show() { //初始化UI this.InitTop(); this.InitMiddle(); //初始化事件 this.EventListener(); //读取数据 this.ReadData(); } /// <summary> /// 初始化头部界面 /// </summary> private void InitTop() { this.BackgroundColor = MusicColor.ViewColor; this.topView = new TopView(); this.topView.setBtn.Visible = true; this.topView.topNameBtn.Text= this.device.name; this.AddChidren(topView.TopFLayoutView()); } /// <summary> /// 初始化中部界面 /// </summary> private void InitMiddle() { this.vv = new VerticalScrolViewLayout() { Y = topView.fLayout.Bottom, Height = Application.GetRealHeight(H_W.H - H_W.T_Height), }; var middleFl = new FrameLayout { }; this.vv.AddChidren(middleFl); var whiteFl = new FrameLayout { }; middleFl.AddChidren(whiteFl); } /// <summary> /// 注册事件 /// </summary> private void EventListener() { //返回 this.topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { this.RemoveFromParent(); }; //设置 this.topView.clickSetBtn.MouseUpEventHandler += (sender, e) => { CommonMethod.Current.MainThread(() => { //调用秀绕的界面 var infoView = new UI.FunctionBaseInfoSetPage(this.device, () => { if (this.btnDeviceName == null || this.btnRoomName == null || this.device == null) { return; } ////刷新显示 this.btnDeviceName.Text = this.device.name; this.btnRoomName.Text = this.device.GetRoomListName(); this.btnCurrDeviceName.Text = this.device.name; this.btnCurrDeviceRoom.Text = this.device.GetRoomListName(); //this.CalculatedPosition();//重新计算宽度 }); infoView.actionDel += () => { //解绑设备后 this.RemoveFromParent(); this.action?.Invoke(); }; MainPage.BasePageView.AddChidren(infoView); infoView.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }); }; } /// <summary> /// 初始数据 /// </summary> private void ReadData() { CommonMethod.Current.Loading.Start(); CommonMethod.Current.SunThread(() => { try { } catch { } finally { Application.RunOnMainThread(() => { CommonMethod.Current.Loading.Hide(); }); } }); } } }