陈嘉乐
2020-06-03 66c0db35365980f240d7cfe6dd59961812f20c97
2020-06-03-1
6个文件已修改
362 ■■■■ 已修改文件
.vs/HDL_APP_Project/xs/UserPrefs.xml 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/Music/MusicMain.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/Music/View/DialogView.cs 303 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,11 +1,12 @@
<Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default">
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/Music/MusicMain.cs">
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/Music/View/DialogView.cs">
    <Files>
      <File FileName="HDL_ON/UI/Music/SendMethod.cs" Line="457" Column="52" />
      <File FileName="../旧版本Music/MyMusic.cs" Line="754" Column="70" />
      <File FileName="HDL_ON/UI/Music/A31MusicModel.cs" Line="159" Column="15" />
      <File FileName="HDL_ON/UI/Music/View/DialogView.cs" Line="673" Column="1" />
      <File FileName="HDL_ON/UI/Music/MusicMain.cs" Line="1" Column="1" />
      <File FileName="HDL_ON/UI/Music/SendMethod.cs" Line="203" Column="76" />
      <File FileName="../旧版本Music/MyMusic.cs" Line="263" Column="145" />
      <File FileName="HDL_ON/UI/Music/A31MusicModel.cs" Line="199" Column="6" />
      <File FileName="HDL_ON/UI/Music/MusicMain.cs" Line="361" Column="99" />
      <File FileName="HDL_ON/UI/UI0-Public/PublicAssmebly.cs" Line="1" Column="1" />
      <File FileName="HDL_ON/UI/Music/View/DialogView.cs" Line="1" Column="1" />
    </Files>
    <Pads>
      <Pad Id="ProjectPad">
@@ -16,8 +17,9 @@
              <Node name="Entity" expanded="True" />
              <Node name="UI" expanded="True">
                <Node name="Music" expanded="True">
                  <Node name="View" expanded="True" />
                  <Node name="MusicMain.cs" selected="True" />
                  <Node name="View" expanded="True">
                    <Node name="DialogView.cs" selected="True" />
                  </Node>
                </Node>
                <Node name="UI0-Public" expanded="True" />
                <Node name="UI2" expanded="True">
@@ -27,9 +29,7 @@
            </Node>
            <Node name="HDL-ON_Android" expanded="True">
              <Node name="Assets" expanded="True">
                <Node name="Phone" expanded="True">
                  <Node name="MusicIcon" expanded="True" />
                </Node>
                <Node name="Phone" expanded="True" />
              </Node>
            </Node>
          </Node>
.vs/HDL_APP_Project/xs/sqlite3/storage.ide
Binary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm
Binary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal
Binary files differ
HDL_ON/UI/Music/MusicMain.cs
@@ -45,7 +45,7 @@
        /// <summary>
        ///  显示加载界面
        /// </summary>
        public static Loading Loading = new Loading();
        public static Loading loading = new Loading();
        VerticalRefreshLayout verticalRefresh;
        public void Show()
@@ -72,11 +72,10 @@
            verticalRefresh.BeginHeaderRefreshingAction += () =>
            {
                SeachMusic();
                verticalRefresh.EndHeaderRefreshing();
                SeachMusic(false);
            };
            this.AddChidren(Loading);
            this.AddChidren(loading);
            if (A31MusicModel.A31MusicModelList.Count == 0)
            {
@@ -137,7 +136,7 @@
            if (Yes)
            {
                //为了第一次进来log一下;
                Loading.Start();
                loading.Start();
            }
            SendMethod.Seach((obj) =>
            {
@@ -145,12 +144,17 @@
                {
                    readServerOrClientMode();
                    A31MusicModel.Save();
                    if (!Yes)
                    {
                        ///等待跑完在关闭
                        verticalRefresh.EndHeaderRefreshing();
                    }
                    Application.RunOnMainThread(() =>
                    {
                        if (Yes)
                        {
                            //为了第一次进来log一下;
                            Loading.Hide();
                            loading.Hide();
                        }
                        verticalRefresh.RemoveAll();
                        for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
@@ -199,12 +203,20 @@
            musicView.songNameBtn.Text = a31player.A31PlayStatus.Title;
            musicView.musicNameBtn.Text = a31player.Name;
            musicView.regionBtn.TextID = StringId.region;
            EventHandler<MouseEventArgs> clickMergence = (sender, e) =>
            {
                new View.DialogView { }.PlayMergence();
                if (a31player.ServerClientType == 0)
                {
                    new View.DialogView { }.PlayMergence();
                }
                else if (a31player.ServerClientType == 1)
                {
                    new View.DialogView { }.DetachPlayMergence(a31player);
                }
            };
            musicView.mergeBjBtn.MouseUpEventHandler += clickMergence;
            musicView.mergeBtn.MouseUpEventHandler += clickMergence;
@@ -312,11 +324,11 @@
                    {
                        a31player.ServerClientType = 0;
                        var result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
                        if (result == null)
                        if (result == null && result == "Failed")
                        {
                            result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
                        }
                        if (result != null)
                        if (result != null && result != "Failed")
                        {
                            a31player.Slave = Newtonsoft.Json.JsonConvert.DeserializeObject<Slaves>(result);
                        }
@@ -383,10 +395,7 @@
                }
            }
            catch (Exception e)
            {
                var ss = e.Message;
            }
            catch { }
        }
    }
HDL_ON/UI/Music/View/DialogView.cs
@@ -396,6 +396,8 @@
            }
            confirmBtn.MouseUpEventHandler += (sender, e) =>
            {
                if (playList1.Count <= 1)
                {
                    new PublicAssmebly().TipMsgAutoClose("至少选中两个以上播放器", false);
@@ -415,7 +417,7 @@
                if (playList2.Count == 0)
                {
                    PlayerView(dialog, playList1, playList1);
                    SelectedPlayerView(dialog, playList1, playList1);
                }
                else if (playList2.Count == 1)
                {
@@ -425,16 +427,16 @@
                }
                else
                {
                    PlayerView(dialog, playList1, playList2);
                    SelectedPlayerView(dialog, playList1, playList2);
                }
            };
        }
        /// <summary>
        /// 选中主播放器的界面
        /// </summary>
        /// <param name="musicList1"></param>
        ///  /// <param name="musicList2">显示播放器列表</param>
        void PlayerView(Dialog dialogF, List<A31MusicModel> musicList1, List<A31MusicModel> musicList2)
        /// <param name="musicList1">显示将要组合的播放器列表</param>
        ///  /// <param name="musicList2">显示在播放音乐播放器列表</param>
        void SelectedPlayerView(Dialog dialogF, List<A31MusicModel> musicList1, List<A31MusicModel> musicList2)
        {
            //主控件
@@ -592,10 +594,9 @@
                }
                dialogF.Close();
                dialog.Close();
                var serverMusic = selectedBtn.Tag as A31MusicModel;
                Threading(serverMusic, musicList1);
            };
        }
@@ -607,25 +608,16 @@
        /// <param name="musicList1"></param>
        void Threading(A31MusicModel serverMusic, List<A31MusicModel> musicList1)
        {
            MusicMain.loading.Start("配置中...");
            bool _if = false;
            System.Threading.Tasks.Task.Run(() =>
            {
                try
                {
                    var IP = "";
                    if (serverMusic.ServerClientType == -1)
                    {
                        IP = serverMusic.MainPlayIP;
                    }
                    else
                    {
                        IP = serverMusic.IPAddress;
                    }
                    var statusEx = SendMethod.OpenWeb("http://" + IP + "/httpapi.asp?command=getStatusEx");
                    var statusEx = SendMethod.OpenWeb("http://" + serverMusic.IPAddress + "/httpapi.asp?command=getStatusEx");
                    if (statusEx == null)
                    {
                        statusEx = SendMethod.OpenWeb("http://" + IP + "/httpapi.asp?command=getStatusEx");
                        statusEx = SendMethod.OpenWeb("http://" + serverMusic.IPAddress + "/httpapi.asp?command=getStatusEx");
                    }
                    if (statusEx == null)
                    {
@@ -650,6 +642,7 @@
                            //过滤掉主播放器;
                            continue;
                        }
                        System.Threading.Thread.Sleep(1000);//等待一秒再发数据
                        if (null == SendMethod.OpenWeb("http://" + clientMusic.IPAddress + "/httpapi.asp?command=ConnectMasterAp:ssid=" + ssid + ":ch=" + serverIfon.WifiChannel + ":auth=OPEN:encry=NONE:pwd=:chext=0:JoinGroupMaster:eth" + serverIfon.eth2 + ":wifi" + serverIfon.ra0 + ":uuid" + serverIfon.uuid))
                        {
                            if (null == SendMethod.OpenWeb("http://" + clientMusic.IPAddress + "/httpapi.asp?command=ConnectMasterAp:ssid=" + ssid + ":ch=" + serverIfon.WifiChannel + ":auth=OPEN:encry=NONE:pwd=:chext=0:JoinGroupMaster:eth" + serverIfon.eth2 + ":wifi" + serverIfon.ra0 + ":uuid" + serverIfon.uuid))
@@ -659,16 +652,16 @@
                        }
                    }
                    DateTime dateTime = DateTime.Now;
                    while ((DateTime.Now - dateTime).TotalMilliseconds < 10 * 1000)
                    while ((DateTime.Now - dateTime).TotalMilliseconds < 12 * 1000)
                    {
                        System.Threading.Thread.Sleep(1000);
                        try
                        {
                            var result = SendMethod.OpenWeb("http://" + serverMusic.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
                            if (result != null)
                            if (result != null && result != "Failed")
                            {
                                var tmepSlaves = Newtonsoft.Json.JsonConvert.DeserializeObject<Slaves>(result);
                                if (tmepSlaves != null && tmepSlaves.slave_list != null)
                                if (tmepSlaves != null && tmepSlaves.slave_list != null && tmepSlaves.slave_list.Count != 0)
                                {
                                    string str = serverMusic.Name;
                                    for (int j = 0; j < A31MusicModel.A31MusicModelList.Count; j++)
@@ -676,7 +669,7 @@
                                        var music = A31MusicModel.A31MusicModelList[j];
                                        if (music.UniqueDeviceName == serverMusic.UniqueDeviceName)
                                        {
                                            music.ServerClientType = 1;
                                            music.Slave = tmepSlaves;
                                            //过滤掉主播放器;
@@ -692,6 +685,7 @@
                                            music.IsOnLine = false;
                                            music.IPAddress = slave_Ifon.ip;
                                            music.MainPlayIP = serverMusic.IPAddress;
                                            _if = true;
                                        }
                                    }
                                    serverMusic.MainPlayName = str;
@@ -699,6 +693,8 @@
                                    break;
                                }
                            }
                        }
                        catch { }
                    }
@@ -708,17 +704,264 @@
                {
                    Application.RunOnMainThread(() =>
                    {
                        MainPage.BasePageView.RemoveViewByTag("MusicMain");
                        var musicMain = new MusicMain();
                        MainPage.BasePageView.AddChidren(musicMain);
                        musicMain.Show();
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                        MusicMain.loading.Hide();
                        ///可以提示配置失败;
                        if (_if)
                        {
                            //配置成功才可以刷新界面
                            MainPage.BasePageView.RemoveViewByTag("MusicMain");
                            var musicMain = new MusicMain();
                            MainPage.BasePageView.AddChidren(musicMain);
                            musicMain.Show();
                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                        }
                    });
                }
            });
        }
        /// <summary>
        /// 分开组合的播放器的界面
        /// </summary>
        public void DetachPlayMergence(A31MusicModel a31player)
        {
            //主控件
            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,
                Text= a31player.Name,
            };
            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  slaveList= new List<Slave>();
            for (int i = 0; i < a31player.Slave.slave_list.Count; i++)
            {
                var slave = a31player.Slave.slave_list[i];
                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 = slave.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),
                    Tag = slave.uuid.Replace("uuid:", ""),
                };
                PlayRow.AddChidren(clickBtn);
                clickBtn.MouseUpEventHandler += (sender, e) =>
                {
                    clickBtn.IsSelected = !clickBtn.IsSelected;
                    selectedIconBtn.IsSelected = clickBtn.IsSelected;
                    var uuid = slaveList.Find((obj) => obj.uuid.Replace("uuid:", "") == clickBtn.Tag.ToString());
                    if (selectedIconBtn.IsSelected)
                    {
                        if (uuid == null)
                        {
                            slaveList.Add(slave);
                        }
                    }
                    else
                    {
                        if (uuid != null)
                        {
                            slaveList.Remove(slave);
                        }
                    }
                };
                //线
                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 (slaveList.Count == 0)
                {
                    new PublicAssmebly().TipMsgAutoClose("还没有选择解除组播放器", false);
                    return;
                }
                dialog.Close();
                MusicMain.loading.Start("解除中...");
                bool _if = false;
                System.Threading.Tasks.Task.Run(() =>
                {
                    try
                    {
                        for (int i = 0; i < slaveList.Count; i++)
                        {
                            var clientMusic = slaveList[i];
                            if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:SlaveKickout:" + clientMusic.ip))
                            {
                                if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:SlaveKickout:" + clientMusic.ip))
                                {
                                }
                            }
                            System.Threading.Thread.Sleep(2000);//等待2秒再发数据
                        }
                        DateTime dateTime = DateTime.Now;
                        while ((DateTime.Now - dateTime).TotalMilliseconds < 10 * 1000)
                        {
                            System.Threading.Thread.Sleep(1000);
                            try
                            {
                                var result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
                                if (result != null && result != "Failed")
                                {
                                    var tmepSlaves = Newtonsoft.Json.JsonConvert.DeserializeObject<Slaves>(result);
                                    if (tmepSlaves != null && tmepSlaves.slave_list.Count == 0)
                                    {
                                        _if = true;//解除成功
                                        A31MusicModel.Save();
                                        break;
                                    }
                                }
                            }
                            catch { }
                        }
                    }
                    catch { }
                    finally
                    {
                        Application.RunOnMainThread(() =>
                        {
                            MusicMain.loading.Hide();
                            ///可以提示解除失败;
                            if (_if)
                            {
                                //解除成功才可以刷新界面
                                MainPage.BasePageView.RemoveViewByTag("MusicMain");
                                var musicMain = new MusicMain();
                                MainPage.BasePageView.AddChidren(musicMain);
                                musicMain.Show();
                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                            }
                        });
                    }
                });
            };
      }
    }
    [System.Serializable]
    public class A31Wifi
    {