using System;
using System.Collections.Generic;
using HDL_ON.UI.Music;
using HDL_ON.UI.UI2.FuntionControlView.Aks.CommonView;
using HDL_ON.UI.UI2.FuntionControlView.Aks.Entity;
using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
using Shared;
using static HDL_ON.UI.UI2.FuntionControlView.Aks.AksPage;
namespace HDL_ON.UI.UI2.FuntionControlView.Aks
{
///
/// 播放器界面
///
public class MusicPage : BaseFramLayout
{
///
///
///
/// 遥控器对象
/// 时序器列表
public MusicPage(RemoteControlEntity remoteControlEntity, List sequencerList)
{
this.remoteControl = remoteControlEntity;
this.sequencerList = sequencerList;
}
///
/// 时序器列表
///
private List sequencerList;
///
/// 当前的遥控器对象
///
private RemoteControlEntity remoteControl;
public Action action;
CornerFramLayout cornerFram;
///
/// 影库
///
TypeSingleFramLayout ykSingleFramLayout;
TypeSingleFramLayout bfqSingleFramLayout;
MenuFramLayout menuFram;
TypeMultiFramLayout typeMultiFramLayout;
public void Show()
{
//初始化UI
this.InitUI();
//初始化事件
this.EventListener();
//读取数据
this.ReadData();
}
private void ReadData()
{
}
private void EventListener()
{
cornerFram.selectKeyAction += (keypadEntity) =>
{
if (keypadEntity == null)
{
return;
}
this.KeyControl(keypadEntity.keypad, keypadEntity.name, keypadEntity.isClicked);
};
menuFram.SetTopClickListener((keypadEntity) =>
{
this.KeyControl(keypadEntity.keypad, keypadEntity.name, keypadEntity.isClicked);
});
menuFram.SetBottomClickListener((keypadEntity) =>
{
this.KeyControl(keypadEntity.keypad, keypadEntity.name, keypadEntity.isClicked);
});
menuFram.SetLeftClickListener((keypadEntity) =>
{
this.KeyControl(keypadEntity.keypad, keypadEntity.name, keypadEntity.isClicked);
});
menuFram.SetRightClickListener((keypadEntity) =>
{
this.KeyControl(keypadEntity.keypad, keypadEntity.name, keypadEntity.isClicked);
});
menuFram.SetOkClickListener((keypadEntity) =>
{
this.KeyControl(keypadEntity.keypad, keypadEntity.name, keypadEntity.isClicked);
});
if (bfqSingleFramLayout != null)
{
bfqSingleFramLayout.SetClickListener((f) =>
{
action?.Invoke(IntType.Player);
});
}
if (ykSingleFramLayout != null)
{
ykSingleFramLayout.SetClickListener((f) =>
{
YkPage ykPage = new YkPage(this.remoteControl);
MainPage.BasePageView.AddChidren(ykPage);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
ykPage.Show();
});
}
if (typeMultiFramLayout != null)
{
typeMultiFramLayout.SetLeftFlClickListener((f) =>
{
SxqPage sxqPage = new SxqPage(this.sequencerList, this.remoteControl.deviceId);
MainPage.BasePageView.AddChidren(sxqPage);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
sxqPage.Show();
});
typeMultiFramLayout.SetRightFlClickListener((f) =>
{
action?.Invoke(IntType.Player);
});
}
}
private void InitUI()
{
this.BackgroundColor = MusicColor.ViewColor;
Button btnTitle = new Button
{
Y = Application.GetRealHeight(16),
X = Application.GetRealWidth(16),
Height = Application.GetRealHeight(22),
Width = Application.GetRealWidth(200),
TextAlignment = TextAlignment.CenterLeft,
TextColor = MusicColor.TextColor,
TextSize = TextSize.Text16,
//TextID = StringId.bofangqi,
Text = this.remoteControl.name,
Padding = new Padding(0, 0, 0, 0),
IsBold = true,
};
this.AddChidren(btnTitle);
cornerFram = new CornerFramLayout(343, 452 - 30, 17);
this.AddChidren(cornerFram);
cornerFram.X = Application.GetRealWidth(16);
cornerFram.Y = btnTitle.Bottom + Application.GetRealHeight(16);
cornerFram.SetMargin(16, 0, 16, 0);
cornerFram.LoadButtonPage(AksCommonMethod.Current.GetMusicKeypadList(this.remoteControl), 4);
if (sequencerList.Count == 0)
{
//没有时序器
CornerFramLayout cornerBottomFram = new CornerFramLayout(343, 364 - 32-32-40, 17);
this.AddChidren(cornerBottomFram);
cornerBottomFram.X = Application.GetRealWidth(16);
cornerBottomFram.Y = cornerFram.Bottom + Application.GetRealHeight(16);
cornerBottomFram.BackgroundColor = MusicColor.WhiteColor;
cornerBottomFram.Radius = (uint)Application.GetRealHeight(17);
//播放器
bfqSingleFramLayout = new TypeSingleFramLayout();
bfqSingleFramLayout.AddView(cornerBottomFram);
bfqSingleFramLayout.singleFramLayout.Y = Application.GetRealHeight(24);
bfqSingleFramLayout.singleFramLayout.X = Application.GetRealWidth(16);
bfqSingleFramLayout.singleFramLayout.Width = Application.GetRealWidth(101);
bfqSingleFramLayout.btnName.Text = this.remoteControl.name;
bfqSingleFramLayout.btnName.X= Application.GetRealWidth(16);
bfqSingleFramLayout.btnName.Width = Application.GetRealWidth(48);
bfqSingleFramLayout.btnRightImage.X = bfqSingleFramLayout.btnName.Right + Application.GetRealWidth(8);
bfqSingleFramLayout.btnRightImage.Width = Application.GetRealWidth(16);
bfqSingleFramLayout.btnRightImage.Height = Application.GetRealWidth(16);
bfqSingleFramLayout.btnRightImage.UnSelectedImagePath = "AksIcon/xuanze.png";
bfqSingleFramLayout.btnRightImage.Gravity = Gravity.CenterVertical;
bfqSingleFramLayout.btnLeftImage.Visible = false;
bfqSingleFramLayout.CustomCalculationWidth(TypeSingleFramLayout.Orientation.left,
bfqSingleFramLayout.singleFramLayout,
bfqSingleFramLayout.btnName,
bfqSingleFramLayout.btnRightImage,
48);
//影库
ykSingleFramLayout = new TypeSingleFramLayout();
ykSingleFramLayout.AddView(cornerBottomFram);
ykSingleFramLayout.singleFramLayout.Y = Application.GetRealHeight(24);
ykSingleFramLayout.singleFramLayout.X = Application.GetRealWidth(226);
menuFram = new MenuFramLayout();
menuFram.AddView(cornerBottomFram);
menuFram.Y = ykSingleFramLayout.singleFramLayout.Bottom + Application.GetRealHeight(32);
this.AdjustRealHeight(16);
}
else
{
//有时序器
CornerFramLayout cornerBottomFram = new CornerFramLayout(343, 364 - 32, 17);
this.AddChidren(cornerBottomFram);
cornerBottomFram.X = Application.GetRealWidth(16);
cornerBottomFram.Y = cornerFram.Bottom + Application.GetRealHeight(16);
cornerBottomFram.BackgroundColor = MusicColor.WhiteColor;
cornerBottomFram.Radius = (uint)Application.GetRealHeight(17);
ykSingleFramLayout = new TypeSingleFramLayout();
ykSingleFramLayout.AddView(cornerBottomFram);
ykSingleFramLayout.singleFramLayout.Y = Application.GetRealHeight(24);
ykSingleFramLayout.singleFramLayout.Gravity = Gravity.CenterHorizontal;
menuFram = new MenuFramLayout();
menuFram.AddView(cornerBottomFram);
menuFram.Y = ykSingleFramLayout.singleFramLayout.Bottom + Application.GetRealHeight(32);
typeMultiFramLayout = new TypeMultiFramLayout();
typeMultiFramLayout.AddView(cornerBottomFram);
typeMultiFramLayout.multiFramLayout.Y = menuFram.Bottom + Application.GetRealHeight(32);
//typeMultiFramLayout.btnBottonRightName.TextID = StringId.bofangqi;
typeMultiFramLayout.btnRightName.Text = this.remoteControl.name;
this.AdjustRealHeight(16);
}
}
///
/// 按键控制
///
/// <按键标识/param>
/// <按键名称(打印用的)/param>
/// <是否支持控制/param>
private void KeyControl(string keypad, string keyName, bool isSupport)
{
//CommonMethod.Current.Loading.Start();
CommonMethod.Current.SunThread(() =>
{
try
{
SendMethod.Current.KeypadExecute(remoteControl.deviceId, remoteControl.rcId, keypad, keyName,isSupport);
}
catch { }
finally
{
CommonMethod.Current.MainThread(() =>
{
//CommonMethod.Current.Loading.Hide();
});
}
});
}
}
}