| | |
| | | using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock; |
| | | using HDL_ON.UI.UI2.Intelligence.Automation; |
| | | using System.Linq; |
| | | using HDL_ON.UI.UI2.FuntionControlView.Aks.Entity; |
| | | using System.Reflection; |
| | | using System.Collections; |
| | | |
| | | namespace HDL_ON.UI.UI2.FuntionControlView.Aks |
| | | { |
| | | /// <summary> |
| | | /// 埃克斯主界面 |
| | | /// </summary> |
| | | public class AksPage : FrameLayout |
| | | { |
| | | #region ■ 变量声明___________________________ |
| | | /// <summary> |
| | | /// 遥控器列表 |
| | | /// </summary> |
| | | private List<RemoteControlEntity> remoteControlList; |
| | | |
| | | /// 时序器列表 |
| | | /// </summary> |
| | | private List<SequencerEntity> sequencerList; |
| | | /// <summary> |
| | | /// 设备 |
| | | /// </summary> |
| | |
| | | /// 删除设备后需要更新界面的回调 |
| | | /// </summary> |
| | | public Action action; |
| | | /// <summary> |
| | | /// 记录当前设备 |
| | | /// </summary> |
| | | public IntType currnetIntType = IntType.none; |
| | | /// <summary> |
| | | /// 记录当前选择的索引值 |
| | | /// </summary> |
| | | public int indexValue = -1; |
| | | |
| | | public IntType currnetIntType= IntType.none; |
| | | |
| | | |
| | | public VerticalScrolViewLayout vv; |
| | | #endregion |
| | |
| | | { |
| | | Y = topView.fLayout.Bottom, |
| | | Height = Application.GetRealHeight(H_W.H - H_W.T_Height), |
| | | |
| | | }; |
| | | this.AddChidren(vv); |
| | | |
| | | //进来默认播放器界面 |
| | | this.SwitchUI(IntType.Player); |
| | | //this.SwitchUI(IntType.Player); |
| | | } |
| | | /// <summary> |
| | | /// 注册事件 |
| | |
| | | //返回 |
| | | this.topView.clickBackBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | //清空所有缓存数据 |
| | | AksCommonMethod.Current.ClearData(); |
| | | this.RemoveFromParent(); |
| | | }; |
| | | //设置 |
| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | this.remoteControlList = SendMethod.Current.GetRemoteControlLits(this.device.deviceId); |
| | | this.sequencerList = SendMethod.Current.GetSequencerLits(this.device.deviceId); |
| | | //TestData(this.remoteControlList); |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | CommonMethod.Current.MainThread(() => |
| | | { |
| | | CommonMethod.Current.Loading.Hide(); |
| | | |
| | | if (this.remoteControlList.Count > 0) |
| | | { |
| | | if (this.isExistType(IntType.Player)) |
| | | { |
| | | //有播放类型遥控器优先显示 |
| | | this.SwitchUI(IntType.Player); |
| | | } |
| | | else |
| | | { |
| | | //默认取第一位 |
| | | this.indexValue = 0; |
| | | var type = (IntType)this.remoteControlList[this.indexValue].type; |
| | | this.SwitchUI(type); |
| | | } |
| | | |
| | | } |
| | | |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | /// <summary> |
| | | /// 切换界面 |
| | | ///1 = 播放器 |
| | | ///2 = 功放 |
| | | ///3 = 电视 |
| | | ///4 = 机顶盒 |
| | | ///5 = 投影仪 |
| | | ///6 = 万能遥控器 |
| | | /// 界面显示(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器) |
| | | /// </summary> |
| | | private void SwitchUI(IntType type) |
| | | { |
| | | if (this.currnetIntType == type) |
| | | { |
| | | return; |
| | | } |
| | | //if (this.currnetIntType == type) |
| | | //{ |
| | | // //去掉判断类型,因为可能存在多个同类型 |
| | | // return; |
| | | //} |
| | | if (IntType.none == type) |
| | | { |
| | | return; |
| | | } |
| | | if (vv != null) |
| | | if (this.vv == null) |
| | | { |
| | | vv.RemoveAll(); |
| | | return; |
| | | } |
| | | this.currnetIntType = type; |
| | | this.vv.RemoveAll(); |
| | | var remoteContro = this.remoteControlList[this.indexValue]; |
| | | switch (type) |
| | | { |
| | | case IntType.Player: |
| | | { |
| | | AksMusicPage aksMusicPage = new AksMusicPage(); |
| | | this.vv.AddChidren(aksMusicPage); |
| | | aksMusicPage.Show(); |
| | | aksMusicPage.action += (type) => |
| | | MusicPage musicPage = new MusicPage(remoteContro, this.sequencerList); |
| | | this.vv.AddChidren(musicPage); |
| | | musicPage.Show(); |
| | | musicPage.action += (deviceType) => |
| | | { |
| | | SelectedType(); |
| | | }; |
| | | } |
| | | break; |
| | | case IntType.HiFi: { } break; |
| | | case IntType.TV: { } break; |
| | | case IntType.STB: { } break; |
| | | case IntType.Projector: { } break; |
| | | case IntType.Control: { } break; |
| | | case IntType.HiFi: |
| | | { |
| | | GfPage gfPage = new GfPage(remoteContro, this.sequencerList); |
| | | this.vv.AddChidren(gfPage); |
| | | gfPage.Show(); |
| | | gfPage.action += (deviceType) => |
| | | { |
| | | SelectedType(); |
| | | }; |
| | | |
| | | } |
| | | break; |
| | | case IntType.TV: |
| | | { |
| | | |
| | | TvPage tvPage = new TvPage(remoteContro, this.sequencerList); |
| | | this.vv.AddChidren(tvPage); |
| | | tvPage.Show(); |
| | | tvPage.action += (deviceType) => |
| | | { |
| | | SelectedType(); |
| | | }; |
| | | } |
| | | break; |
| | | case IntType.STB: |
| | | { |
| | | JdhPage jdhPage = new JdhPage(remoteContro, this.sequencerList); |
| | | this.vv.AddChidren(jdhPage); |
| | | jdhPage.Show(); |
| | | jdhPage.action += (deviceType) => |
| | | { |
| | | SelectedType(); |
| | | }; |
| | | } |
| | | break; |
| | | case IntType.Projector: |
| | | { |
| | | TyyPage tyyPage = new TyyPage(remoteContro, this.sequencerList); |
| | | this.vv.AddChidren(tyyPage); |
| | | tyyPage.Show(); |
| | | tyyPage.action += (deviceType) => |
| | | { |
| | | SelectedType(); |
| | | }; |
| | | } |
| | | break; |
| | | case IntType.Control: |
| | | { |
| | | |
| | | YkqPage ykqPage = new YkqPage(remoteContro, this.sequencerList); |
| | | this.vv.AddChidren(ykqPage); |
| | | ykqPage.Show(); |
| | | ykqPage.action += (deviceType) => |
| | | { |
| | | SelectedType(); |
| | | }; |
| | | |
| | | } |
| | | break; |
| | | |
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 选中类型 |
| | | ///1 = 播放器 |
| | | ///2 = 功放 |
| | | ///3 = 电视 |
| | | ///4 = 机顶盒 |
| | | ///5 = 投影仪 |
| | | ///6 = 万能遥控器 |
| | | /// 界面切换(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器) |
| | | /// </summary> |
| | | /// <param name="button">显示文本</param> |
| | | private void SelectedType() |
| | | { |
| | | var deviceTypeList = GetTypeDictionary().Values.ToList(); |
| | | var deviceTypeList = GetRemoteControlList(); |
| | | ///之前的状态文本 |
| | | string currCondition = Language.StringByID(StringId.bofangqi); |
| | | string ccurrnetDeviceStr = ""; |
| | | if (indexValue != -1 && indexValue < deviceTypeList.Count) |
| | | { |
| | | ccurrnetDeviceStr = deviceTypeList[indexValue].name; |
| | | } |
| | | PublicInterface conditionView = new PublicInterface(); |
| | | conditionView.SingleSelectionShow(this, deviceTypeList, "设备选择", currCondition |
| | | , (stateValue) => |
| | | conditionView.SingleSelectionShow(this, deviceTypeList, "设备选择", ccurrnetDeviceStr |
| | | , (index) => |
| | | { |
| | | //界面显示选中值 |
| | | //button.Text = stateValue; |
| | | var intType = this.GetKeyIntType(stateValue); |
| | | this.SwitchUI(intType); |
| | | if (this.indexValue == index) |
| | | { |
| | | //同一个设备不处理; |
| | | return; |
| | | } |
| | | var remoteControl = deviceTypeList[index]; |
| | | this.indexValue = index; |
| | | this.currnetIntType = (IntType)remoteControl.type; |
| | | this.SwitchUI((IntType)remoteControl.type); |
| | | |
| | | }); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | public enum IntType |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// 获取遥控器列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private Dictionary<IntType, string> GetTypeDictionary() |
| | | private List<RemoteControlEntity> GetRemoteControlList() |
| | | { |
| | | var dic = new Dictionary<IntType, string>(); |
| | | dic.Add(IntType.Player, Language.StringByID(StringId.bofangqi)); |
| | | dic.Add(IntType.HiFi, Language.StringByID(StringId.gongfan)); |
| | | dic.Add(IntType.TV, Language.StringByID(StringId.dianshi)); |
| | | dic.Add(IntType.STB, Language.StringByID(StringId.jidinghe)); |
| | | dic.Add(IntType.Projector, Language.StringByID(StringId.touyingyi)); |
| | | dic.Add(IntType.Control, Language.StringByID(StringId.xuniyaokongqi)); |
| | | return dic; |
| | | } |
| | | private IntType GetKeyIntType(string value) |
| | | { |
| | | var dic = this.GetTypeDictionary(); |
| | | foreach (var d in dic) |
| | | if (this.remoteControlList == null || this.remoteControlList.Count == 0) |
| | | { |
| | | if (d.Value == value) |
| | | { |
| | | return d.Key; |
| | | } |
| | | return new List<RemoteControlEntity>(); |
| | | } |
| | | return IntType.none; |
| | | return this.remoteControlList; |
| | | } |
| | | private string GetValueString(IntType key) |
| | | |
| | | /// <summary> |
| | | /// 是否存在类型 |
| | | /// </summary> |
| | | /// <param name="type">(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)</param> |
| | | /// <returns></returns> |
| | | private bool isExistType(IntType type) |
| | | { |
| | | var dic = this.GetTypeDictionary(); |
| | | foreach (var d in dic) |
| | | |
| | | var remoteControls = this.GetRemoteControlList(); |
| | | for (int i = 0; i < remoteControls.Count; i++) |
| | | { |
| | | if (d.Key == key) |
| | | var re = remoteControls[i]; |
| | | if ((IntType)re.type == type) |
| | | { |
| | | return d.Value; |
| | | this.indexValue = i; |
| | | return true; |
| | | } |
| | | |
| | | } |
| | | return ""; |
| | | return false; |
| | | } |
| | | |
| | | |
| | | private void TestData(List<RemoteControlEntity> list) |
| | | { |
| | | list.Add(new RemoteControlEntity { deviceId = "33331", rcId = "1", type = 1, name = "播放器" }); |
| | | list.Add(new RemoteControlEntity { deviceId = "33332", rcId = "2", type = 2, name = "功放" }); |
| | | list.Add(new RemoteControlEntity { deviceId = "33333", rcId = "3", type = 3, name = "电视" }); |
| | | list.Add(new RemoteControlEntity { deviceId = "33334", rcId = "4", type = 4, name = "机顶盒" }); |
| | | list.Add(new RemoteControlEntity { deviceId = "33335", rcId = "5", type = 5, name = "投影仪" }); |
| | | list.Add(new RemoteControlEntity { deviceId = "33336", rcId = "6", type = 6, name = "万能遥控器" }); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |