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;
using HDL_ON.UI.UI2.Intelligence.Automation;
using System.Linq;
namespace HDL_ON.UI.UI2.FuntionControlView.Aks
{
public class AksPage : FrameLayout
{
#region ■ 变量声明___________________________
///
/// 设备
///
private Function device;
///
/// 上一级界面的设备名字控件
///
private Button btnDeviceName;
///
/// 上一级界面的房间名字控件
///
private Button btnRoomName;
///
/// 头部布局
///
private TopView topView;
///
/// 当前设备名称
///
private Button btnCurrDeviceName;
///
/// 区域
///
private Button btnCurrDeviceRoom;
///
/// 表示来自那个界面
///
private CommonMethod.Comerom comerom;
///
/// 删除设备后需要更新界面的回调
///
public Action action;
///
/// 记录当前设备
///
public IntType currnetIntType= IntType.none;
public VerticalScrolViewLayout vv;
#endregion
public AksPage()
{
}
///
/// 构造函数
///
/// 设备
/// 上一级界面的设备名字控件(注:不能传null,没有可以传new Button())
/// 上一级界面的房间名字控件(注:不能传null,没有可以传new Button())
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();
}
///
/// 初始化头部界面
///
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());
}
///
/// 初始化中部界面
///
private void InitMiddle()
{
vv = new VerticalScrolViewLayout()
{
Y = topView.fLayout.Bottom,
Height = Application.GetRealHeight(H_W.H - H_W.T_Height),
};
this.AddChidren(vv);
//进来默认播放器界面
this.SwitchUI(IntType.Player);
}
///
/// 注册事件
///
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;
});
};
}
///
/// 初始数据
///
private void ReadData()
{
CommonMethod.Current.Loading.Start();
CommonMethod.Current.SunThread(() =>
{
try
{
}
catch { }
finally
{
Application.RunOnMainThread(() =>
{
CommonMethod.Current.Loading.Hide();
});
}
});
}
///
/// 切换界面(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)
///
private void SwitchUI(IntType type)
{
if (this.currnetIntType == type)
{
return;
}
if (IntType.none == type)
{
return;
}
if (vv != null)
{
vv.RemoveAll();
}
this.currnetIntType = type;
switch (type)
{
case IntType.Player:
{
AksMusicPage aksMusicPage = new AksMusicPage();
this.vv.AddChidren(aksMusicPage);
aksMusicPage.Show();
aksMusicPage.action += (type) =>
{
SelectedType();
};
}
break;
case IntType.HiFi: {
GFPage gFPage = new GFPage();
this.vv.AddChidren(gFPage);
gFPage.Show();
gFPage.action += (type) =>
{
SelectedType();
};
} break;
case IntType.TV: {
TvPage tvPage = new TvPage();
this.vv.AddChidren(tvPage);
tvPage.Show();
tvPage.action += (type) =>
{
SelectedType();
};
} break;
case IntType.STB: { } break;
case IntType.Projector: {
TYYPage tYYPage = new TYYPage();
this.vv.AddChidren(tYYPage);
tYYPage.Show();
tYYPage.action += (type) =>
{
SelectedType();
};
} break;
case IntType.Control: { } break;
}
}
///
/// 选中类型弹框(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)
///
private void SelectedType()
{
var deviceTypeList = GetTypeDictionary().Values.ToList();
///之前的状态文本
string ccurrnetDeviceStr= this.GetValueString(this.currnetIntType);
PublicInterface conditionView = new PublicInterface();
conditionView.SingleSelectionShow(this, deviceTypeList, "设备选择", ccurrnetDeviceStr
, (valueStr) =>
{
//界面显示选中值
var intType = this.GetKeyIntType(valueStr);
this.SwitchUI(intType);
});
}
public enum IntType
{
///
/// 没有
///
none = 0,
///
/// 播放器
///
Player = 1,
///
/// 功放
///
HiFi = 2,
///
/// 电视
///
TV = 3,
///
/// 机顶盒
///
STB = 4,
///
/// 投影仪
///
Projector = 5,
///
/// 万能遥控器
///
Control = 6,
}
///
/// 初始化字典
///
///
private Dictionary GetTypeDictionary()
{
var dic = new Dictionary();
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;
}
///
/// 获取设备
///
/// (1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)
///
private IntType GetKeyIntType(string value)
{
var dic = this.GetTypeDictionary();
foreach (var d in dic)
{
if (d.Value == value)
{
return d.Key;
}
}
return IntType.none;
}
///
/// 获取设备名称
///
/// (1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器)
///
private string GetValueString(IntType key)
{
var dic = this.GetTypeDictionary();
foreach (var d in dic)
{
if (d.Key == key)
{
return d.Value;
}
}
return "";
}
}
}