陈嘉乐
2020-05-29 99251846b303790a1f68f6bbaff16d642892195d
HDL_ON/UI/Music/View/DialogView.cs
@@ -5,7 +5,10 @@
{
    public class DialogView
    {
        /// <summary>
        ///弹窗文件夹列表界面
        /// </summary>
        /// <param name="musicInfo"></param>
        public void FieListView(MusicInfo musicInfo)
        {
            //主控件
@@ -219,5 +222,354 @@
        }
        /// <summary>
        /// 选中组合的播放器的界面
        /// </summary>
        public void PlayMergence()
        {
            //主控件
            Dialog dialog = new Dialog()
            {
                BackgroundColor = Color.PopupBackgroundColor,
            };
            dialog.Show();
            //父控件
            FrameLayout frame = new FrameLayout { };
            dialog.AddChidren(frame);
            frame.MouseUpEventHandler += (sen, e) =>
            {
                dialog.Close();
            };
            //白色快父控件
            FrameLayout dialogFra = new FrameLayout()
            {
                X = Application.GetRealWidth(16),
                Y = Application.GetRealHeight(397),
                Width = Application.GetRealWidth(344),
                Height = Application.GetRealHeight(250),
                BackgroundColor = Color.WhiteColor,
                Radius = (uint)Application.GetRealHeight(12),
            };
            frame.AddChidren(dialogFra);
            //显示头部信息父控件
            FrameLayout topFra = new FrameLayout()
            {
                Width = Application.GetRealWidth(344),
                Height = Application.GetRealHeight(50),
            };
            dialogFra.AddChidren(topFra);
            //取消控件
            Button cancelnBtn = new Button
            {
                X = Application.GetRealWidth(20),
                Y = Application.GetRealHeight(15),
                Width = Application.GetRealWidth(60),
                Height = Application.GetRealHeight(20),
                TextID = StringId.cancelMusic,
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = Color.MusicNoTxetColor,
                TextSize = TextSize.Text14,
            };
            topFra.AddChidren(cancelnBtn);
            cancelnBtn.MouseUpEventHandler += (sen, e) =>
            {
                dialog.Close();
            };
            //标题控件
            Button txetBtn = new Button
            {
                X = cancelnBtn.Right + Application.GetRealWidth(20),
                Y = Application.GetRealHeight(14),
                Width = Application.GetRealWidth(152),
                Height = Application.GetRealHeight(22),
                TextColor = Color.TextColor,
                TextSize = TextSize.Text16,
                TextAlignment = TextAlignment.Center,
                TextID = StringId.selectedMergence,
                IsBold = true,
            };
            topFra.AddChidren(txetBtn);
            //确认控件
            Button confirmBtn = new Button
            {
                X = Application.GetRealWidth(344 - 60 - 20),
                Y = Application.GetRealHeight(15),
                Width = Application.GetRealWidth(60),
                Height = Application.GetRealHeight(20),
                TextID = StringId.confirmMusic,
                TextAlignment = TextAlignment.CenterRight,
                TextColor = Color.SelectedColor,
                TextSize = TextSize.Text14,
            };
            topFra.AddChidren(confirmBtn);
            VerticalScrolViewLayout verticalScrolViewLayout = new VerticalScrolViewLayout
            {
                Y = Application.GetRealHeight(50),
                Height = dialogFra.Height - Application.GetRealHeight(50),
                Width = Application.GetRealWidth(344),
            };
            dialogFra.AddChidren(verticalScrolViewLayout);
            var playList = new List<A31MusicModel>();
            for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
            {
                var player = A31MusicModel.A31MusicModelList[i];
                if (!player.IsOnLine)
                {
                    //不在线不显示;
                    continue;
                }
                RowLayout PlayRow = new RowLayout
                {
                    Height = Application.GetRealHeight(50),
                    LineColor = Color.WhiteColor,
                    SubViewWidth = Application.GetRealWidth(80),//改变编辑控件宽度多少;
                };
                verticalScrolViewLayout.AddChidren(PlayRow);
                //播放器名称控件
                Button PlayNameBtn = new Button
                {
                    X = Application.GetRealWidth(20),
                    Y = Application.GetRealHeight(15),
                    Width = Application.GetRealWidth(150),
                    Height = Application.GetRealHeight(20),
                    TextColor = Color.TextColor,
                    TextSize = TextSize.Text14,
                    TextAlignment = TextAlignment.CenterLeft,
                    Text = player.Name,
                };
                PlayRow.AddChidren(PlayNameBtn);
                //选中图标控件
                Button selectedIconBtn = new Button
                {
                    X = Application.GetRealWidth(303),
                    Y = Application.GetRealHeight(11),
                    Width = Application.GetMinRealAverage(28),
                    Height = Application.GetMinRealAverage(28),
                    UnSelectedImagePath = "MusicIcon/noSelectedIcon.png",
                    SelectedImagePath = "MusicIcon/selectedIcon.png",
                };
                PlayRow.AddChidren(selectedIconBtn);
                ///加大几点范围
                Button clickBtn = new Button
                {
                    Height = Application.GetRealHeight(50),
                };
                PlayRow.AddChidren(clickBtn);
                clickBtn.MouseUpEventHandler += (sender, e) =>
                {
                    clickBtn.IsSelected = !clickBtn.IsSelected;
                    selectedIconBtn.IsSelected = clickBtn.IsSelected;
                    var musicPlayer = playList.Find((c) => c.UniqueDeviceName == player.UniqueDeviceName);
                    if (selectedIconBtn.IsSelected)
                    {
                        if (musicPlayer == null)
                        {
                            playList.Add(player);
                        }
                    }
                    else
                    {
                        if (musicPlayer != null)
                        {
                            playList.Remove(player);
                        }
                    }
                };
                //线
                Button lineBtn = new Button
                {
                    Y = PlayRow.Height - 1,
                    X = Application.GetRealWidth(20),
                    Width = Application.GetRealWidth(304),
                    Height = 1,
                    BackgroundColor = Color.LineColor,
                };
                PlayRow.AddChidren(lineBtn);
            }
            confirmBtn.MouseUpEventHandler += (sender, e) =>
            {
                if (playList.Count <= 1)
                {
                    new PublicAssmebly().TipMsgAutoClose("至少选中两个以上播放器", false);
                    return;
                }
                PlayerView(dialog, playList);
            };
        }
        /// <summary>
        /// 选中主播放器的界面
        /// </summary>
        /// <param name="musicList"></param>
        void PlayerView(Dialog dialogF ,List<A31MusicModel> musicList)
        {
            //主控件
            Dialog dialog = new Dialog()
            {
                //BackgroundColor = Color.PopupBackgroundColor,
            };
            dialog.Show();
            //父控件
            FrameLayout frame = new FrameLayout { };
            dialog.AddChidren(frame);
            frame.MouseUpEventHandler += (sen, e) =>
            {
                dialog.Close();
            };
            //白色快父控件
            FrameLayout dialogFra = new FrameLayout()
            {
                X = Application.GetRealWidth(16),
                Y = Application.GetRealHeight(397),
                Width = Application.GetRealWidth(344),
                Height = Application.GetRealHeight(250),
                BackgroundColor = Color.WhiteColor,
                Radius = (uint)Application.GetRealHeight(12),
            };
            frame.AddChidren(dialogFra);
            //显示头部信息父控件
            FrameLayout topFra = new FrameLayout()
            {
                Width = Application.GetRealWidth(344),
                Height = Application.GetRealHeight(50),
            };
            dialogFra.AddChidren(topFra);
            //取消控件
            Button cancelnBtn = new Button
            {
                X = Application.GetRealWidth(20),
                Y = Application.GetRealHeight(15),
                Width = Application.GetRealWidth(60),
                Height = Application.GetRealHeight(20),
                TextID = StringId.cancelMusic,
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = Color.MusicNoTxetColor,
                TextSize = TextSize.Text14,
            };
            topFra.AddChidren(cancelnBtn);
            cancelnBtn.MouseUpEventHandler += (sen, e) =>
            {
                dialog.Close();
            };
            //标题控件
            Button txetBtn = new Button
            {
                X = cancelnBtn.Right + Application.GetRealWidth(20),
                Y = Application.GetRealHeight(14),
                Width = Application.GetRealWidth(152),
                Height = Application.GetRealHeight(22),
                TextColor = Color.TextColor,
                TextSize = TextSize.Text16,
                TextAlignment = TextAlignment.Center,
                TextID = StringId.readyPlay,
                IsBold = true,
            };
            topFra.AddChidren(txetBtn);
            //确认控件
            Button confirmBtn = new Button
            {
                X = Application.GetRealWidth(344 - 60 - 20),
                Y = Application.GetRealHeight(15),
                Width = Application.GetRealWidth(60),
                Height = Application.GetRealHeight(20),
                TextID = StringId.confirmMusic,
                TextAlignment = TextAlignment.CenterRight,
                TextColor = Color.SelectedColor,
                TextSize = TextSize.Text14,
            };
            topFra.AddChidren(confirmBtn);
            confirmBtn.MouseUpEventHandler += (sender, e) =>
            {
            };
            VerticalScrolViewLayout verticalScrolViewLayout = new VerticalScrolViewLayout
            {
                Y = Application.GetRealHeight(50),
                Height = dialogFra.Height - Application.GetRealHeight(50),
                Width = Application.GetRealWidth(344),
            };
            dialogFra.AddChidren(verticalScrolViewLayout);
            //记录选中状态
            Button selectedBtn = new Button() { Tag="No"};
            for (int i = 0; i < musicList.Count; i++)
            {
                var player = musicList[i];
                RowLayout addFlieRow = new RowLayout
                {
                    Height = Application.GetRealHeight(50),
                    LineColor = Color.WhiteColor,
                };
                verticalScrolViewLayout.AddChidren(addFlieRow);
                //播放器名称控件
                Button PlayNameBtn = new Button
                {
                    X = Application.GetRealWidth(20),
                    Y = Application.GetRealHeight(15),
                    Width = Application.GetRealWidth(150),
                    Height = Application.GetRealHeight(20),
                    TextColor = Color.TextColor,
                    TextSize = TextSize.Text14,
                    TextAlignment = TextAlignment.CenterLeft,
                    Text = player.Name,
                };
                addFlieRow.AddChidren(PlayNameBtn);
                //选中图标控件
                Button selectedIconBtn = new Button
                {
                    X = Application.GetRealWidth(303),
                    Y = Application.GetRealHeight(11),
                    Width = Application.GetMinRealAverage(28),
                    Height = Application.GetMinRealAverage(28),
                    UnSelectedImagePath = "MusicIcon/noSelectedIcon.png",
                    SelectedImagePath = "MusicIcon/selectedIcon.png",
                };
                addFlieRow.AddChidren(selectedIconBtn);
                ///加大几点范围
                Button clickBtn = new Button
                {
                    Height = Application.GetRealHeight(50),
                };
                addFlieRow.AddChidren(clickBtn);
                clickBtn.MouseUpEventHandler += (sender, e) =>
                {
                    selectedBtn.IsSelected = false;
                    selectedBtn.Tag = "Yes";
                    selectedBtn = selectedIconBtn;
                    selectedBtn.IsSelected = true;
                };
                //线
                Button lineBtn = new Button
                {
                    Y = addFlieRow.Height - 1,
                    X = Application.GetRealWidth(20),
                    Width = Application.GetRealWidth(304),
                    Height = 1,
                    BackgroundColor = Color.LineColor,
                };
                addFlieRow.AddChidren(lineBtn);
            }
            confirmBtn.MouseUpEventHandler += (sender, e) =>
            {
                if (selectedBtn.Tag.ToString() == "No")
                {
                    new PublicAssmebly().TipMsgAutoClose("还没选中播放器", false);
                    return;
                }
                dialogF.Close();
                dialog.Close();
            };
        }
    }
}