lss
2020-05-29 cc1012b077a91793c0edd6001cdf019e6bd9a57d
ZigbeeApp/Shared/Phone/UserCenter/SmartSound/Forms/SmartSoundListForm.cs
@@ -1,7 +1,11 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using Shared.Common;
using Shared.Phone.UserCenter.Device;
using Shared.Phone.UserCenter.SmartSound.Util;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.SmartSound
@@ -13,30 +17,32 @@
        {
        }
        private List<SmartSound> smartSoundList = null;
        private SmartSoundInfo smartSoundInfo = null;
        /// <summary>
        /// 列表控件
        /// </summary>
        private VerticalListRefreshControl listView = null;
        /// <summary>
        /// 前一次显示出左滑菜单的RowLayout
        /// </summary>
        /// <summary>
        /// 列表控件
        /// </summary>
        private VerticalListRefreshControl listView = null;
        /// <summary>
        /// 前一次显示出左滑菜单的RowLayout
        /// </summary>
        private RowLayoutControl oldShowRightMuneRow = null;
        private static string dataString = "";
        #region ■ 初始化_____________________________
        /// <summary>
        /// 画面显示(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
        public void ShowForm()
        {
            iniData();//先加载模拟数据
            this.ScrollEnabled = false;
            //设置标题信息
        #region ■ 初始化_____________________________
        /// <summary>
        /// 画面显示(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
        public void ShowForm()
        {
            // iniData();//先加载模拟数据
            this.ScrollEnabled = false;
            //设置标题信息
            base.SetTitleText("智能音箱");
            Dictionary<string, string> floorDictionary = Config.Instance.Home.FloorDics;//楼层列表
@@ -54,23 +60,16 @@
            this.InitMiddleFrame();
            helpBtn.MouseUpEventHandler += (sernder, e) =>
            {
                //这里是加载帮组的界面
            };
            {
                //这里是加载帮组的界面
            };
        }
            string room_id = Common.Config.Instance.Home.Id;//住宅 ID
            string gu_id = Common.Config.Instance.Guid;
            Console.WriteLine("room_id =" + room_id);
            Console.WriteLine("gu_id =" + gu_id);
        }
        /// <summary>
        /// 初始化中部控件(外部可以调用)
        /// </summary>
        /// <param name="i_reGetDeviceOnlineStatu">重新获取设备的在线状态</param>
        public void InitMiddleFrame()
        /// <summary>
        /// 初始化中部控件(外部可以调用)
        /// </summary>
        /// <param name="i_reGetDeviceOnlineStatu">重新获取设备的在线状态</param>
        public async void InitMiddleFrame()
        {
            // show出没有设备的图标文字提示
            this.ShowNotDataImage(bodyFrameLayout, new string[] { "还没有音箱哦,", "绑定智能音箱请前往第三方 APP 进行操作" });
@@ -82,61 +81,105 @@
            frame.Height = this.bodyFrameLayout.Height;
            // 初始化 lisetView
            listView = new VerticalListRefreshControl(29);
            listView.Y = 0;
            listView.Height = bodyFrameLayout.Height;
            frame.AddChidren(listView);
            listView.BeginHeaderRefreshingAction += () =>
            {
                HdlThreadLogic.Current.RunThread(() =>
                {
                    //下拉刷新
            listView = new VerticalListRefreshControl(29);
            listView.Y = 0;
            listView.Height = bodyFrameLayout.Height;
            frame.AddChidren(listView);
            listView.BeginHeaderRefreshingAction += () =>
            {
                HdlThreadLogic.Current.RunThread(async () =>
                {
                    await getData();
                    //下拉刷新
                    iniView();
                    HdlThreadLogic.Current.RunMain(() =>
                    {
                        //隐藏下拉刷新特效
                        listView.EndHeaderRefreshing();
                    });
                });
                    });
                });
            };
            this.ShowProgressBar();
            await getData();
            this.CloseProgressBar(ShowReLoadMode.NO);
            iniView();
        }
        private void iniView()
        {
            //
            listView.RemoveAll();
            if (smartSoundList == null)
                return;
            for (int i = 0; i < smartSoundList.Count; i++)
            {
                //
                var smartSound = smartSoundList[i];
                var row = new SoundRowLayout();
        }
        /// <summary>
        /// 获取音箱列表
        /// </summary>
        /// <returns></returns>
        private async Task getData()
        {
            SmartSoundInfo.Auth auth = new SmartSoundInfo.Auth();
            auth.HomeID = Common.Config.Instance.Home.Id;
            auth.UserID = Common.Config.Instance.Guid;
            auth.Platform = "";
            string url = string.Format("https://developer.hdlcontrol.com/zigbeespeakerservice/Auth?Platform&PageSetting.PageSize=100&PageSetting.PageIndex=1&UserID={0}&HomeID={1}",
                Common.Config.Instance.Guid,Common.Config.Instance.Home.Id);
            byte[] byteData = Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(auth));
            //byte[] ResponseData = null;
            dataString = await UserCenterLogic.GetResponseDataByRequestHttps("zigbeespeakerservice/Auth", true, auth);
            //Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(pra)
            //dataString = System.Text.Encoding.UTF8.GetString(ResponseData);
            dataString = await MyHttpWebResponse.GetWebRequest(url);
            smartSoundInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<SmartSoundInfo>(dataString);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="soundInfo"></param>
        /// <param name="new_remark"></param>
        /// <returns></returns>
        private async Task<string> setRemark(SmartSoundInfo.SoundInfo soundInfo, string new_remark)
        {
            if (soundInfo == null)
                return "";
            string url = "https://developer.hdlcontrol.com/zigbeespeakerservice/Auth";
            string json = "{" +
                "\"AuthID\":" + "\"" + soundInfo.Id + "\"" + "," +
                "\"Remark\":" + "\"" + new_remark + "\"" + "," +
                "\"UserID\":" + "\"" + soundInfo.UserID + "\"" + "," +
                "\"HomeID\":" + "\"" + soundInfo.HomeID + "\"" + "}";
            string response_str = await MyHttpWebResponse.PutWebRequest(url, json, Encoding.UTF8);
            JObject jObject = JObject.Parse(response_str);
            return jObject["StateCode"].ToString();
        }
        private void iniView()
        {
            //
            listView.RemoveAll();
            if (smartSoundInfo == null)
                return;
            for (int i = 0; i < smartSoundInfo.ResponseData.Data.Count; i++)
            {
                //
                var smartSound = smartSoundInfo.ResponseData.Data[i];
                var row = new SoundRowLayout();
                listView.AddChidren(row);
                switch (smartSound.Type)
                {
                    case SmartSound.SMARTSOUND_XIAODU:
                        row.Account = "小度:" + smartSound.UserName;
                        row.ImagePath = "SmartSound/Xiaodu.png";
                        row.Remark = smartSound.Remark;
                        break;
                    case SmartSound.SMARTSOUND_XIAOAI:
                        row.Account = "小爱:" + smartSound.UserName;
                        row.ImagePath = "SmartSound/Xiaoai.png";
                        row.Remark = smartSound.Remark;
                        break;
                    case SmartSound.SMARTSOUND_TIANMAO:
                        row.Account = "天猫精灵:" + smartSound.UserName;
                        row.ImagePath = "SmartSound/Tianmao.png";
                        row.Remark = smartSound.Remark;
                        break;
                if (smartSound.Platform == "Baidu")
                {
                    row.Account = "小度:" + smartSound.UserName;
                    row.ImagePath = "SmartSound/Xiaodu.png";
                    row.Remark = smartSound.Remark;
                }
                row.InitControl();
@@ -144,16 +187,16 @@
                row.btnRename.AddTag("index", i);
                //重命名
                row.btnRename.ButtonClickEvent += (sender, e) =>
                row.btnRename.ButtonClickEvent += (sender, e) =>
                {
                    //
                    int index = (int)(((NormalViewControl)sender).GetTagByKey("index"));
                    var smartSound = smartSoundList[index];
                    int index = (int)(((NormalViewControl)sender).GetTagByKey("index"));
                    var smartSound = smartSoundInfo.ResponseData.Data[index];
                    ShowRenameDialog(row, smartSound);
                };
                // 解除绑定
                };
                // 解除绑定
                row.btnDelect.ButtonClickEvent += (sender, e) =>
                {
                    //
@@ -164,10 +207,12 @@
                //跳转到控制内容界面
                row.frameTable.ButtonClickEvent += (sender, e) =>
                {
                    var smartSoundControlForm = new SmartSoundControlForm();
                    if (SmartSound.CurretnData != null)
                        SmartSound.CurretnData.Clear();
                    var smartSoundControlForm = new SmartSoundControlForm();
                    smartSoundControlForm.AddForm();
                };
            }
            }
        }
        /// <summary>
@@ -177,93 +222,72 @@
        {
            this.ShowMassage(ShowMsgType.Confirm, "接触绑定需要第三方 APP 进行操作", () =>
            {
                //
                smartSoundList.RemoveAt(index);
                // 移除绑定的逻辑
                //smartSoundList.RemoveAt(index);
                listView.RemoveAt(index);
            },"跳转至小度 APP");
            }, "跳转至小度 APP");
        }
        /// <summary>
        /// 重命名弹窗
        /// </summary>
        /// <returns></returns>
        private void ShowRenameDialog(SoundRowLayout soundRowLayout, SmartSoundInfo.SoundInfo smartSound)
        {
            //生成一个弹窗画面
            var dialogForm = new DialogInputControl();
            //添加备份
            dialogForm.SetTitleText("重命名");
            //请输入备份名称
            dialogForm.SetTipText(smartSound.Remark);
        /// <summary>
        /// 重命名弹窗
        /// </summary>
        /// <returns></returns>
        private void ShowRenameDialog(SoundRowLayout soundRowLayout, SmartSound smartSound)
        {
            //生成一个弹窗画面
            var dialogForm = new DialogInputControl();
            //添加备份
            dialogForm.SetTitleText("重命名");
            //请输入备份名称
            dialogForm.SetTipText(smartSound.Remark);
            //按下确认按钮
            dialogForm.ComfirmClickEvent += ((textValue) =>
            //按下确认按钮
            dialogForm.ComfirmClickEvent += (async (textValue) =>
            {
                //画面关闭
                dialogForm.CloseDialog();
                //上传备份
                smartSound.Remark = textValue;
                soundRowLayout.btnRemark.Text= textValue;
            });
        }
        /// <summary>
        /// 初始化模拟一些数据,用来加载界面用的
        /// </summary>
        private void iniData()
        {
            smartSoundList = new List<SmartSound>();
            // 增加小度音箱
            SmartSound smartSound = new SmartSound();
            smartSound.Remark = "我的音箱";
            smartSound.UserName = "123456@qq.com";
            smartSound.Type = SmartSound.SMARTSOUND_XIAODU;
            smartSoundList.Add(smartSound);
            // 增加小爱音箱
            smartSound = new SmartSound();
            smartSound.Remark = "我的音箱";
            smartSound.UserName = "234567@qq.com";
            smartSound.Type = SmartSound.SMARTSOUND_XIAOAI;
            smartSoundList.Add(smartSound);
                dialogForm.CloseDialog();
            // 增加天猫精灵
            smartSound = new SmartSound();
            smartSound.Remark = "我的音箱";
            smartSound.UserName = "345678@qq.com";
            smartSound.Type = SmartSound.SMARTSOUND_TIANMAO;
            smartSoundList.Add(smartSound);
                string remark = textValue;
                string str = await setRemark(smartSound, remark); //上传备份
                if (str == "SUCCESS")
                {
                    smartSound.Remark = remark;
                    soundRowLayout.btnRemark.Text = textValue;
                }
                else
                {
                    //错误弹窗提示
                    ShowMassage(ShowMsgType.Tip, "修改备注不成功!", null, "确认");
                }
            });
        }
        #endregion
        #endregion
        #region ■ 界面重新激活事件___________________
        #region ■ 界面重新激活事件___________________
        /// <summary>
        /// 自身的上层界面关闭后,它自身处于最上层时,触发的事件
        /// </summary>
        public override int FormActionAgainEvent()
        /// <summary>
        /// 自身的上层界面关闭后,它自身处于最上层时,触发的事件
        /// </summary>
        public override int FormActionAgainEvent()
        {
            return 1;
        }
        #endregion
        #region ■ 关闭界面___________________________
        /// <summary>
        /// 画面关闭
        /// </summary>
        public override void CloseFormBefore()
        {
            base.CloseFormBefore();
        }
        #endregion
            return 1;
        }
        #endregion
        #region ■ 关闭界面___________________________
        /// <summary>
        /// 画面关闭
        /// </summary>
        public override void CloseFormBefore()
        {
            base.CloseFormBefore();
        }
        #endregion
    }
}
}