using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using ZigBee.Device; namespace Shared.Phone.UserCenter.SharedContent { /// /// 配置新共享内容的主界面 /// public class ConfigureNewSharedListRoomForm : EditorCommonForm { #region ■ 变量声明___________________________ /// /// 列表控件 /// private VerticalScrolViewLayout listView = null; /// /// 成员信息 /// private MemberInfoRes memberResult = null; /// /// 成员的分享数据 /// private MemberShardInfoData memberShardInfo = null; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// /// 成员信息 /// 成员的共享信息 public void ShowForm(MemberInfoRes i_memberResult, MemberShardInfoData i_memberShardInfo) { this.memberResult = i_memberResult; this.memberShardInfo = i_memberShardInfo; this.memberShardInfo.SubAccountDistributedMark = this.memberResult.SubAccountDistributedMark; //设置头部信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddShared)); //初始化中部信息 //this.InitMiddleFrame(); } ///// ///// 初始化中部信息 ///// //private void InitMiddleFrame() //{ // //清空bodyFrame // this.ClearBodyFrame(); // //区域列表 // var btnTitle = new NormalViewControl(1000, true); // btnTitle.X = ControlCommonResourse.XXLeft; // btnTitle.TextID = R.MyInternationalizationString.uAreaList; // btnTitle.Y = Application.GetRealHeight(30); // bodyFrameLayout.AddChidren(btnTitle); // this.listView = new VerticalScrolViewLayout(); // listView.Y = btnTitle.Bottom + Application.GetRealHeight(30); // listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(30) - btnTitle.Bottom; // bodyFrameLayout.AddChidren(listView); // HdlThreadLogic.Current.Run(() => // { // //初始化区域列表 // this.InitAreaListRow(); // }); //} #endregion //#region ■ 区域列表___________________________ ///// ///// 初始化区域列表 ///// //private void InitAreaListRow() //{ // bool hadShard = false; // foreach (var room in Shared.Common.Room.Lists) // { // if (this.CheckCanShowRow(room) == false) // { // //检测能否显示该房间 // continue; // } // hadShard = true; // Application.RunOnMainThread(() => // { // if (this.Parent != null) // { // this.AddRoomRow(room); // } // }); // } // if (hadShard == false) // { // Application.RunOnMainThread(() => // { // if (bodyFrameLayout != null) // { // bodyFrameLayout.RemoveAll(); // //全部区域无可共享的设备 // var btnMsg = new MsgViewControl(bodyFrameLayout.Width, false); // btnMsg.Gravity = Gravity.CenterVertical; // btnMsg.TextID = R.MyInternationalizationString.uNotShardDeviceInAllRoomMsg; // bodyFrameLayout.AddChidren(btnMsg); // } // }); // } //} ///// ///// 添加房间行 ///// ///// //private void AddRoomRow(Common.Room room) //{ // var row = new StatuRowLayout(listView); // //房间名 // var btnName = new RowCenterView(false); // btnName.Text = room.Name; // row.AddChidren(btnName); // row.AddRightArrow(); // //分享 // var btnShard = new RowEditorButton(); // btnShard.TextID = R.MyInternationalizationString.uShared; // row.AddRightView(btnShard); // btnShard.MouseUpEventHandler += (sender, e) => // { // //确定共享该区域? // string msg = Language.StringByID(R.MyInternationalizationString.uConfirmShardRoomContent); // this.ShowConfirmMsg(msg, "DoSharedContentByRoom", room); // }; // row.MouseUpEvent += (sender, e) => // { // var form = new ConfigureNewSharedMainForm(); // form.AddForm(room, memberResult, memberShardInfo); // }; //} ///// ///// 检测该房间能否显示 ///// ///// ///// //private bool CheckCanShowRow(Common.Room room) //{ // if (room.DeviceUIList.Count == 0 && room.SceneUIList.Count == 0) // { // return false; // } // if (room.IsLove == true) // { // return false; // } // if (memberShardInfo.dicAllMemberShard.ContainsKey(room.FileName) == false) // { // //没有这个房间 // return true; // } // var listCheck = memberShardInfo.dicAllMemberShard[room.FileName]; // foreach (var deviceUi in room.DeviceUIList) // { // if (deviceUi.CommonDevice == null) // { // continue; // } // if (listCheck.Contains(deviceUi.CommonDevice.FilePath) == false) // { // //存在未分享的设备的话,此房间可以显示 // return true; // } // } // foreach (var sceneUi in room.SceneUIList) // { // if (sceneUi == null) // { // continue; // } // if (listCheck.Contains(sceneUi.FileName) == false) // { // //存在未分享的场景的话,此房间可以显示 // return true; // } // } // return false; //} //#endregion //#region ■ 分享指定区域_______________________ ///// ///// 执行分分享指定区域 ///// ///// 指定要分享的房间 //public void DoSharedContentByRoom(Common.Room room) //{ // if (memberShardInfo.dicAllMemberShard.ContainsKey(room.FileName) == false) // { // memberShardInfo.dicAllMemberShard[room.FileName] = new HashSet(); // } // //重复检测用 // var listCheck = memberShardInfo.dicAllMemberShard[room.FileName]; // //获取全部设备 // var listDevice = new List(); // foreach (var deviceUi in room.DeviceUIList) // { // var device = deviceUi.CommonDevice; // if (device == null || listCheck.Contains(device.FilePath) == true) // { // //异常,或者已经分享了的,不再显示 // continue; // } // listDevice.Add(device); // } // //获取全部场景 // var listScene = new List(); // foreach (var sceneUi in room.SceneUIList) // { // if (sceneUi == null || listCheck.Contains(sceneUi.FileName) == true) // { // //异常,或者已经分享了的,不再显示 // continue; // } // listScene.Add(sceneUi); // } // HdlThreadLogic.Current.Run(async () => // { // //执行上传 // var result = await HdlShardLogic.Current.DoUploadSharedContent(memberShardInfo, room, listDevice, listScene); // if (result == true) // { // //分享成功 // string msg = Language.StringByID(R.MyInternationalizationString.uShardSuccess); // this.ShowMassage(msg); // Application.RunOnMainThread(() => // { // if (this.Parent != null) // { // //重新刷新界面 // this.InitMiddleFrame(); // } // }); // } // }); //} //#endregion //#region ■ 界面重新激活事件___________________ ///// ///// 自身的上层界面关闭后,它自身处于最上层时,触发的事件 ///// //public override void FormActionAgainEvent() //{ // //不要删除这个函数 // base.FormActionAgainEvent(); // //重新刷新界面 // this.InitMiddleFrame(); //} //#endregion //#region ■ 结构体_____________________________ ///// ///// 接收分享数据 ///// //private class MemberShardInfoResult //{ // /// // /// 文件名字 // /// // public string ShareName = string.Empty; // /// // /// 主键 // /// // public string DistributedMark = string.Empty; //} //#endregion } }