using System; using System.Collections.Generic; using System.Diagnostics; using System.Threading.Tasks; using Shared.Common; using Shared.Phone.UserCenter.Device; using ZigBee.Device; namespace Shared.Phone.UserCenter.SmartSound { //智能音箱列表界面 public class SmartSoundListForm : EditorCommonForm { public SmartSoundListForm() { } //private List smartSoundList = null; private SmartSoundInfo smartSoundInfo = null; /// /// 列表控件 /// private VerticalListRefreshControl listView = null; /// /// 前一次显示出左滑菜单的RowLayout /// private RowLayoutControl oldShowRightMuneRow = null; private static string dataString = ""; #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// public void ShowForm() { // iniData();//先加载模拟数据 this.ScrollEnabled = false; //设置标题信息 base.SetTitleText("智能音箱"); Dictionary floorDictionary = Config.Instance.Home.FloorDics;//楼层列表 var helpBtn = new MyButton(); //helpBtn.TextSize = 15; helpBtn.TextColor = UserCenterColor.Current.TextOrangeColor; helpBtn.Text = "帮助"; helpBtn.Gravity = Gravity.CenterRight; helpBtn.TextAlignment = TextAlignment.CenterRight; //helpBtn.BackgroundColor = UserCenterColor.Current.BlackBackGround; topFrameLayout.AddChidren(helpBtn); helpBtn.X -= Application.GetRealWidth(58); //初始化中部控件 this.InitMiddleFrame(); helpBtn.MouseUpEventHandler += (sernder, e) => { //这里是加载帮组的界面 }; } /// /// 初始化中部控件(外部可以调用) /// /// 重新获取设备的在线状态 public async void InitMiddleFrame() { // show出没有设备的图标文字提示 this.ShowNotDataImage(bodyFrameLayout, new string[] { "还没有音箱哦,", "绑定智能音箱请前往第三方 APP 进行操作" }); var frame = new FrameLayout(); this.bodyFrameLayout.AddChidren(frame); frame.BackgroundColor = UserCenterColor.Current.White; frame.Y = 0; 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(async () => { await getData(); //下拉刷新 iniView(); HdlThreadLogic.Current.RunMain(() => { //隐藏下拉刷新特效 listView.EndHeaderRefreshing(); }); }); }; this.ShowProgressBar(); await getData(); this.CloseProgressBar( ShowReLoadMode.YES); iniView(); } 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 = ""; dataString = await UserCenterLogic.GetResponseDataByRequestHttps("zigbeespeakerservice/Auth", true, auth); smartSoundInfo = (SmartSoundInfo)Newtonsoft.Json.JsonConvert.DeserializeObject(dataString); } 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); if (smartSound.Platform == "Xiaodu") { row.Account = "小度:" + smartSound.UserName; row.ImagePath = "SmartSound/Xiaodu.png"; row.Remark = smartSound.Remark; } row.InitControl(); row.btnDelect.AddTag("index", i); row.btnRename.AddTag("index", i); //重命名 row.btnRename.ButtonClickEvent += (sender, e) => { // int index = (int)(((NormalViewControl)sender).GetTagByKey("index")); var smartSound = smartSoundInfo.ResponseData.Data[index]; ShowRenameDialog(row, smartSound); }; // 解除绑定 row.btnDelect.ButtonClickEvent += (sender, e) => { // int index = (int)(((NormalViewControl)sender).GetTagByKey("index")); ShowDelectDialog(index); }; //跳转到控制内容界面 row.frameTable.ButtonClickEvent += (sender, e) => { var smartSoundControlForm = new SmartSoundControlForm(); smartSoundControlForm.AddForm(); }; } } /// /// 解除绑定弹窗 /// private void ShowDelectDialog(int index) { this.ShowMassage(ShowMsgType.Confirm, "接触绑定需要第三方 APP 进行操作", () => { // 移除绑定的逻辑 //smartSoundList.RemoveAt(index); listView.RemoveAt(index); },"跳转至小度 APP"); } /// /// 重命名弹窗 /// /// private void ShowRenameDialog(SoundRowLayout soundRowLayout, SmartSoundInfo.SoundInfo smartSound) { //生成一个弹窗画面 var dialogForm = new DialogInputControl(); //添加备份 dialogForm.SetTitleText("重命名"); //请输入备份名称 dialogForm.SetTipText(smartSound.Remark); //按下确认按钮 dialogForm.ComfirmClickEvent += ((textValue) => { //画面关闭 dialogForm.CloseDialog(); //上传备份 smartSound.Remark = textValue; soundRowLayout.btnRemark.Text= textValue; }); } #endregion #region ■ 界面重新激活事件___________________ /// /// 自身的上层界面关闭后,它自身处于最上层时,触发的事件 /// public override int FormActionAgainEvent() { return 1; } #endregion #region ■ 关闭界面___________________________ /// /// 画面关闭 /// public override void CloseFormBefore() { base.CloseFormBefore(); } #endregion } }