JLChen
2021-04-12 6992b9bc927550ed3ec82eff8ec4a5aa65e6fa63
HDL_ON/UI/UI2/4-PersonalCenter/SmartSpeaker/SmartSpeakerListPage.cs
@@ -2,16 +2,13 @@
using Shared;
using HDL_ON.UI.CSS;
using System.Collections.Generic;
using System.Threading;
using HDL_ON.DAL.Server;
namespace HDL_ON.UI
{
    /// <summary>
    /// 智能音箱列表
    /// </summary>
    public class SmartSpeakerListPage : FrameLayout
    {
@@ -61,6 +58,7 @@
                Y = bodyY,
                Height = bodyView.Height - bodyY,
                BackgroundColor = CSS_Color.BackgroundColor,
            };
            bodyView.AddChidren(bodyScrolView);
@@ -243,7 +241,8 @@
            };
            view2.AddChidren(btnNickname);
            if (string.IsNullOrEmpty(speakerInfo.remark)) {
            if (string.IsNullOrEmpty(speakerInfo.remark))
            {
                btnNickname.TextID = StringId.SmartSpeaker;
            }
@@ -276,9 +275,7 @@
            btnNickname.MouseUpEventHandler += (sender, e) =>
            {
                new PublicAssmebly().LoadDialog_EditParater(StringId.Remarks, speakerInfo.remark, renameAction, StringId.RemarksCannotBeBlank, 0, new List<string>());
                //HDLCommon.Current.ShowEditTextDialog(speakerInfo.remark, renameAction, Language.StringByID(R.MyInternationalizationString.rename));
                new PublicAssmebly().LoadDialog_EditParater(StringId.Remarks, speakerInfo.remark, renameAction, StringId.RemarksCannotBeBlank, 0, new List<string>(),false, Language.StringByID(StringId.Save));
            };
            #endregion
@@ -323,8 +320,8 @@
            EventHandler<MouseEventArgs> eHandler = (sender, e) =>
            {
                //跳转页面
                GotoSpeakerManagementPage(speakerInfo);
                //跳转数据管理房间列表
                GotoPage(speakerInfo);
            };
            view3.MouseUpEventHandler += eHandler;
            btnDataTitle.MouseUpEventHandler += eHandler;
@@ -360,6 +357,19 @@
            };
            view4.AddChidren(btnUnbindRight);
            EventHandler<MouseEventArgs> eHandler4 = (sender, e) =>
            {
                Action okAction = () =>
                {
                    //解绑音箱
                    UnbindSpeaker(speakerInfo, rowView, lineView);
                };
                new ConfirmDialog().ShowDialog(StringId.Tip, StringId.DoYouWantToUnbind, okAction, null, StringId.Cancel, StringId.Confirm);
            };
            view4.MouseUpEventHandler += eHandler4;
            btnUnbindTitle.MouseUpEventHandler += eHandler4;
            btnUnbindRight.MouseUpEventHandler += eHandler4;
            #endregion
@@ -464,25 +474,86 @@
        }
        /// <summary>
        /// 跳转AlexaDeviceListPage页面
        /// 请求解绑音箱
        /// </summary>
        /// <param name="speakerInfo"></param>
        void GotoSpeakerManagementPage(SpeakerInfo speakerInfo)
        /// <param name="speakerInfo">音箱参数</param>
        /// <param name="rowView">音箱rowView</param>
        /// <param name="lineView">填充的lineView</param>
        void UnbindSpeaker(SpeakerInfo speakerInfo, FrameLayout rowView, FrameLayout lineView)
        {
            ////没绑定忘记提示先绑定网关,禁止跳转
            //if (!UserConfig.Instance.CheckWhetherGatewayIdNotNull())
            //{
            //    Utlis.ShowAlertOnMainThread(Language.StringByID(R.MyInternationalizationString.PleaseBindTheGatewayFirst));
            //    return;
            //}
            if (speakerInfo == null || string.IsNullOrEmpty(speakerInfo.tokenId)) {
                Utlis.ShowTip(Language.StringByID(StringId.RequestFailedParameterException) + "(-3)");
            }
            ////跳转Alexa管理页面
            //AlexaDeviceListPage speakerInfoDeviceListPage = new AlexaDeviceListPage(speakerInfo);
            //UserMiddle.SettingPageView.AddChidren(speakerInfoDeviceListPage);
            //speakerInfoDeviceListPage.ShowPage();
            //UserMiddle.SettingPageView.PageIndex = UserMiddle.SettingPageView.ChildrenCount - 1;
            var waitPage = new Loading();
            bodyView.AddChidren(waitPage);
            waitPage.Start(Language.StringByID(StringId.PleaseWait));
            System.Threading.Tasks.Task.Run(() =>
            {
                try
                {
                    var revertObj = new HttpServerRequest().UnbindSpeaker(speakerInfo.tokenId);
                    if (revertObj.Code == StateCode.SUCCESS)
                    {
                        //解绑成功
                        Application.RunOnMainThread(() =>
                        {
                            //lineView
                            if (lineView != null)
                            {
                                lineView.RemoveFromParent();
                            }
                            //移除rowView
                            if (rowView != null)
                            {
                                rowView.RemoveFromParent();
                            }
                            //提示解绑成功
                            Utlis.ShowTip(Language.StringByID(StringId.UnbindEmailSuccess));
                        });
                    }
                    else
                    {
                        //提示错误
                        IMessageCommon.Current.ShowErrorInfoAlter(revertObj.Code);
                    }
                }
                catch
                {
                }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        if (waitPage != null)
                        {
                            waitPage.RemoveFromParent();
                            waitPage = null;
                        }
                    });
                }
            });
        }
        /// <summary>
        ///
        /// </summary>
        void GotoPage(SpeakerInfo speakerInfo)
        {
            var page = new SmartSpeakerRoomListPage(speakerInfo);
            MainPage.BasePageView.AddChidren(page);
            page.LoadPage();
            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
        }
    }