using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json.Linq; using Shared.Common; using Shared.Phone.SmartSound.Forms; using Shared.Phone.UserCenter.Device; using Shared.Phone.UserCenter.SmartSound.Util; using Shared.Phone.UserCenter.SmartSound.Widget; using ZigBee.Device; namespace Shared.Phone.UserCenter.SmartSound { //智能音箱列表界面 public class SmartSoundListForm : EditorCommonForm { public SmartSoundListForm() { } private SmartSoundInfo smartSoundInfo = null; /// /// 列表控件 /// private VerticalListRefreshControl listView = null; /// /// 前一次显示出左滑菜单的RowLayout /// private RowLayoutControl oldShowRightMuneRow = null; private static string dataString = ""; private MostRightIconControl btnAddDeviceIcon = null; #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// public void ShowForm() { this.ScrollEnabled = false; //设置标题信息 base.SetTitleText("智能音箱"); Dictionary floorDictionary = Config.Instance.Home.FloorDics;//楼层列表 //右上添加按钮 if (btnAddDeviceIcon == null) { btnAddDeviceIcon = new MostRightIconControl(69, 69); btnAddDeviceIcon.UnSelectedImagePath = "Item/Add.png"; topFrameLayout.AddChidren(btnAddDeviceIcon); btnAddDeviceIcon.InitControl(); btnAddDeviceIcon.ButtonClickEvent += (sender, e) => { var helpForm = new AddSmartSound(); helpForm.AddForm(); }; } //var helpBtn = new MyButton(); //helpBtn.TextColor = UserCenterColor.Current.TextOrangeColor; //helpBtn.Text = "帮助"; //helpBtn.Gravity = Gravity.CenterRight; //helpBtn.TextAlignment = TextAlignment.CenterRight; //topFrameLayout.AddChidren(helpBtn); //helpBtn.X -= Application.GetRealWidth(58); //初始化中部控件 this.InitMiddleFrame(); //helpBtn.MouseUpEventHandler += (sernder, e) => //{ // var helpForm = new AddSmartSound(); // helpForm.AddForm(); // /* // //生成一个弹窗画面 // var dialogForm = new TextDialog("绑定智能音箱到第三方 APP 进行操作", "跳转至小度APP"); // dialogForm.SetTitleText("帮助"); // //按下确认按钮 // dialogForm.ComfirmClickEvent += () => // { // //画面关闭 // dialogForm.CloseDialog(); // OpenXiaoDuAPP(); // };*/ //}; } /// /// 初始化中部控件(外部可以调用) /// /// 重新获取设备的在线状态 public void InitMiddleFrame() { this.ClearBodyFrame(); 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(() => { HdlThreadLogic.Current.RunMain(() => { //隐藏下拉刷新特效 listView.EndHeaderRefreshing(); this.InitMiddleFrame(); }); }); }; HdlThreadLogic.Current.RunThread(async () => { this.ShowProgressBar(); await getData(); HdlThreadLogic.Current.RunMainInThread(() => { iniView(); if (smartSoundInfo == null || smartSoundInfo.ResponseData == null || smartSoundInfo.ResponseData.RowCount == 0) { // show出没有设备的图标文字提示 this.ShowNotDataImage(bodyFrameLayout, new string[] { "还没有音箱哦,", "绑定智能音箱请前往第三方 APP 进行操作" }); } this.CloseProgressBar(); }); }); } /// /// 获取音箱列表 /// /// private async Task getData() { 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); dataString = await MyHttpWebResponse.GetWebRequest(url); smartSoundInfo = Newtonsoft.Json.JsonConvert.DeserializeObject(dataString); } /// /// 设置备注 /// /// /// /// private async Task 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 = 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++) { try { // var smartSound = smartSoundInfo.ResponseData.Data[i]; var row = new SoundRowLayout(); listView.AddChidren(row); if (smartSound.PlatfromName == "Baidu") { string remark = "小度"; if (smartSound.Remark != null && smartSound.Remark.Trim() != "") remark += "(" + smartSound.Remark + ")"; row.ImagePath = "SmartSound/Xiaodu.png"; row.Remark = remark; }else if (smartSound.PlatfromName == "AISpeech") { string remark = "思必驰"; if (smartSound.Remark != null && smartSound.Remark.Trim() != "") remark += "(" + smartSound.Remark + ")"; row.ImagePath = "SmartSound/Sibici.png"; row.Remark = remark; } row.InitControl(); row.btnDelect.AddTag("index", i); row.btnRename.AddTag("index", i); row.frameTable.AddTag("index", i); //重命名 row.btnRename.ButtonClickEvent += (sender, e) => { int index = (int)((NormalViewControl)sender).GetTagByKey("index"); var smartSound1 = smartSoundInfo.ResponseData.Data[index]; ShowRenameDialog(row, smartSound1); }; // 解除绑定 row.btnDelect.ButtonClickEvent += (sender, e) => { int index = (int)(((NormalViewControl)sender).GetTagByKey("index")); var smartSound1 = smartSoundInfo.ResponseData.Data[index]; ShowDelectDialog(smartSound1); }; //跳转到控制内容界面 FrameRowControl row.frameTable.ButtonClickEvent += (sender, e) => { int index = (int)row.frameTable.GetTagByKey("index"); if (SmartSound.getInstantiate().LayerList != null) SmartSound.getInstantiate().LayerList.Clear(); var smartSoundControlForm = new SmartSoundControlForm(smartSoundInfo.ResponseData.Data[index]); smartSoundControlForm.AddForm(); }; } catch (Exception e) { this.ShowMassage(ShowMsgType.Tip, e.Message); } } } private void OpenXiaoDuAPP() { bool bol = false; try { #if Android bol = HDLUtils.OpenAppWithPackageName("com.baidu.duer.superapp"); #else bol=HDLUtils.OpenApp("xiaoduapp://"); #endif if (!bol) { #if Android HDLUtils.OpenUrl("market://details?id=com.baidu.duer.superapp"); #else HDLUtils.OpenUrl("https://apps.apple.com/cn/app/%E5%B0%8F%E5%BA%A6/id1437733193"); #endif } } catch (Exception e) { string error = e.Message; bol = false; } } /// /// 思必驰 /// private void OpenSBCAPP() { bool bol = false; try { #if Android bol = HDLUtils.OpenAppWithPackageName("com.aispeech.companionapp"); #else bol=HDLUtils.OpenApp("AispeechMobile://"); #endif if (!bol) { #if Android HDLUtils.OpenUrl("market://details?id=com.aispeech.companionapp"); #else HDLUtils.OpenUrl("https://apps.apple.com/cn/app/id1460767442"); #endif } } catch (Exception e) { string error = e.Message; bol = false; } } /// /// 解除绑定弹窗 /// private void ShowDelectDialog(SmartSoundInfo.SoundInfo smartSound) { //生成一个弹窗画面 var dialogForm = new TextDialog("解除绑定需要到第三方 APP 进行操作", "跳转至第三方APP"); dialogForm.SetTitleText("解除绑定"); //按下确认按钮 dialogForm.ComfirmClickEvent += () => { if (smartSound.PlatfromName == "Baidu") { OpenXiaoDuAPP(); } else if (smartSound.PlatfromName == "AISpeech") { OpenSBCAPP(); } }; } /// /// 重命名弹窗 /// /// private void ShowRenameDialog(SoundRowLayout soundRowLayout, SmartSoundInfo.SoundInfo smartSound) { //生成一个弹窗画面 var dialogForm = new DialogInputControl(); //添加备份 dialogForm.SetTitleText("重命名"); //请输入备份名称 dialogForm.SetTipText("请输入名称"); dialogForm.Text = smartSound.Remark; //按下确认按钮 dialogForm.ComfirmClickEvent += (async (textValue) => { //画面关闭 dialogForm.CloseDialog(); string remark = textValue; string str = await setRemark(smartSound, remark); //上传备份 if (str == "SUCCESS") { smartSound.Remark = remark; if (smartSound.PlatfromName == "Baidu") { soundRowLayout.btnRemark.Text = "小度" + "(" + textValue + ")"; } else if (smartSound.PlatfromName == "AISpeech") { soundRowLayout.btnRemark.Text = "思必驰" + "(" + textValue + ")"; } else { soundRowLayout.btnRemark.Text = textValue; } } else { //错误弹窗提示 ShowMassage(ShowMsgType.Tip, "修改备注不成功!", null, "确认"); } }); } #endregion /// /// 删除数据 /// /// /// private string DelectSmartSound(SmartSoundInfo.SoundInfo soundInfo) { if (soundInfo == null) return ""; string url = "https://developer.hdlcontrol.com/zigbeespeakerservice/Auth"; string json = "{" + "\"AuthID\":" + "\"" + soundInfo.Id + "\"" + "," + "\"UserID\":" + "\"" + soundInfo.UserID + "\"" + "," + "\"HomeID\":" + "\"" + soundInfo.HomeID + "\"" + "}"; string response_str = MyHttpWebResponse.DeleteWebRequest(url, json, Encoding.UTF8); JObject jObject = JObject.Parse(response_str); return jObject["StateCode"].ToString(); } #region ■ 界面重新激活事件___________________ /// /// 自身的上层界面关闭后,它自身处于最上层时,触发的事件 /// public override int FormActionAgainEvent() { return 1; } #endregion #region ■ 关闭界面___________________________ /// /// 画面关闭 /// public override void CloseFormBefore() { base.CloseFormBefore(); } #endregion } }