xm
2020-07-21 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d
ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs
@@ -23,11 +23,11 @@
        /// <summary>
        /// 设备桌布控件
        /// </summary>
        private FrameLayout frameDeviceTable = null;
        private NormalFrameLayout frameDeviceTable = null;
        /// <summary>
        /// 设备桌布控件
        /// </summary>
        private FrameLayout frameSceneTable = null;
        private NormalFrameLayout frameSceneTable = null;
        /// <summary>
        /// 删除按钮
        /// </summary>
@@ -41,9 +41,9 @@
        /// </summary>
        private Dictionary<string, CommonDevice> dicSelectDevice = new Dictionary<string, CommonDevice>();
        /// <summary>
        /// 当前选择的分支 1:场景  2:功能
        /// 当前选择的分支 0:场景  1:功能
        /// </summary>
        private int nowSwitchIndex = 1;
        private int nowSwitchIndex = 0;
        /// <summary>
        /// 当前选择的设备索引
        /// </summary>
@@ -81,12 +81,12 @@
            this.dicSelectScene = new Dictionary<int, Common.SceneUI>();
            //初始化桌布控件
            this.frameSceneTable = new FrameLayout();
            this.frameSceneTable = new NormalFrameLayout();
            frameSceneTable.Y = Application.GetRealHeight(132);
            frameSceneTable.Height = bodyFrameLayout.Height - Application.GetRealHeight(132);
            bodyFrameLayout.AddChidren(frameSceneTable);
            this.frameDeviceTable = new FrameLayout();
            this.frameDeviceTable = new NormalFrameLayout();
            frameDeviceTable.Y = frameSceneTable.Y;
            frameDeviceTable.Height = frameSceneTable.Height;
            bodyFrameLayout.AddChidren(frameDeviceTable);
@@ -126,7 +126,7 @@
            tabControl.SelectTabEvent += (tabIndex) =>
            {
                this.nowSwitchIndex = tabIndex;
                if (tabIndex == 1)
                if (tabIndex == 0)
                {
                    //显示场景列表
                    this.frameSceneTable.Visible = true;
@@ -139,7 +139,11 @@
                    this.frameDeviceTable.Visible = true;
                }
            };
            tabControl.InitControl();
            //开始初始化场景功能切换控件
            var listTitle = new List<string>();
            listTitle.Add(Language.StringByID(R.MyInternationalizationString.uScence));
            listTitle.Add(Language.StringByID(R.MyInternationalizationString.uFunction));
            tabControl.InitControl(listTitle);
        }
        #endregion
@@ -155,12 +159,19 @@
            this.frameSceneTable.RemoveAll();
            var listScene = new List<Common.SceneUI>();
            for (int i = 0; i < lookRoom.SceneUIList.Count; i++)
            for (int i = 0; i < lookRoom.ListSceneId.Count; i++)
            {
                if (HdlShardLogic.Current.IsFileExists(lookRoom.SceneUIList[i].FileName) == true)
                var byteData = HdlShardLogic.Current.GetShardFileContent($"Scene_{lookRoom.ListSceneId[i]}.json");
                if (byteData == null)
                {
                    listScene.Add(lookRoom.SceneUIList[i]);
                    continue;
                }
                try
                {
                    var sceneUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.SceneUI>(System.Text.Encoding.UTF8.GetString(byteData));
                    listScene.Add(sceneUi);
                }
                catch { }
            }
            if (listScene.Count == 0)
            {
@@ -180,7 +191,7 @@
                {
                    //场景控件
                    var frameContr = new ScenePictrueControl();
                    listView.AddChidrenFrame(frameContr);
                    listView.AddChidren(frameContr);
                    frameContr.InitControl(data);
                    var btnSelect = new IconViewControl(58);
@@ -188,7 +199,7 @@
                    btnSelect.SelectedImagePath = "Item/ItemSelected.png";
                    btnSelect.X = Application.GetRealWidth(887);
                    btnSelect.Y = Application.GetRealHeight(35);
                    frameContr.AddChidren(btnSelect, ChidrenBindMode.BindEventOnly);
                    frameContr.AddChidren(btnSelect, ChidrenBindMode.BindEvent);
                    if (dicSelectScene.ContainsKey(data.Id) == true)
                    {
                        btnSelect.IsSelected = true;
@@ -402,10 +413,10 @@
            //确认删除选择的共享场景和功能?
            this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uDeleteShardContentMsg), () =>
            {
                HdlThreadLogic.Current.RunThread(async () =>
                HdlThreadLogic.Current.RunThread(() =>
                {
                    //上传文件
                    var result = await HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, this.lookRoom, listDevice, listScene);
                    var result = HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, this.lookRoom, listDevice, listScene);
                    if (result == true)
                    {
                        HdlThreadLogic.Current.RunMain(() =>
@@ -430,8 +441,9 @@
        {
            //获取这个房间里面的分享设备
            var listDevice = new List<CommonDevice>();
            foreach (var deviceFile in this.lookRoom.DeviceUIFilePathList)
            foreach (var deviceKeys in this.lookRoom.ListDevice)
            {
                string deviceFile = HdlShardLogic.Current.GetShardDeviceFileName(deviceKeys);
                if (memberShardInfo.dicAllShardKeys.ContainsKey(deviceFile) == true)
                {
                    var strArry = deviceFile.Split('_');
@@ -441,11 +453,15 @@
                    }
                    //从分享文件中序列化回来
                    var deviceData = HdlShardLogic.Current.GetShardFileContent(deviceFile);
                    var device = ZigBee.Device.CommonDevice.CommonDeviceByByteString(strArry[1], System.Text.Encoding.UTF8.GetString(deviceData));
                    if (device != null)
                    try
                    {
                        listDevice.Add(device);
                        var device = ZigBee.Device.CommonDevice.CommonDeviceByByteString(strArry[1], System.Text.Encoding.UTF8.GetString(deviceData));
                        if (device != null)
                        {
                            listDevice.Add(device);
                        }
                    }
                    catch { }
                }
            }
            return listDevice;