HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2020-01-10 9064c76e6a795ae735cac52d98bed178a27c2a87
合并代码
2个文件已删除
28个文件已修改
18478 ■■■■ 已修改文件
ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs 16154 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/mono_crash.115869ea88.0.json 775 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/mono_crash.f3dbef0b0.0.json 741 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Common/CommonPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Common/Device.cs 173 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Common/Room.cs 129 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Common/SceneUI.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/CommonForm/SceneMainView.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/SecurityMode.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs 101 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/EditorCommonForm.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs 141 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitSettionForm.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLightSettionForm.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorBindTargetSettionForm.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Relay/RelayThreeLoadBackLightSettionForm.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/EntryStatusPage.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
old mode 100755 new mode 100644
@@ -40,10 +40,6 @@
    <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
    <AndroidSupportedAbis />
    <AndroidDexTool>d8</AndroidDexTool>
    <AotAssemblies>false</AotAssemblies>
    <EnableLLVM>false</EnableLLVM>
    <AndroidEnableProfiledAot>false</AndroidEnableProfiledAot>
    <BundleAssemblies>false</BundleAssemblies>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
@@ -57,10 +53,6 @@
    <MandroidI18n>cjk</MandroidI18n>
    <DefineConstants>Android,Release</DefineConstants>
    <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
    <AotAssemblies>false</AotAssemblies>
    <EnableLLVM>false</EnableLLVM>
    <AndroidEnableProfiledAot>false</AndroidEnableProfiledAot>
    <BundleAssemblies>false</BundleAssemblies>
    <AndroidDexTool>d8</AndroidDexTool>
    <AndroidUseAapt2>false</AndroidUseAapt2>
  </PropertyGroup>
ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml
old mode 100755 new mode 100644
@@ -164,7 +164,7 @@
        <meta-data android:name="JPUSH_APPKEY" android:value="f4a3322fbc45e58d04c85191" />
        <!--  </>值来自开发者平台取得的AppKey-->
        <!-- 极光推送结束 -->
    <!-- 设置高德地图key -->
    <meta-data android:name="com.amap.api.v2.apikey" android:value="1f753413955012c9594c5df69eaa0aff" />
        <!-- 设置高德地图key -->
        <meta-data android:name="com.amap.api.v2.apikey" android:value="1f753413955012c9594c5df69eaa0aff" />
    </application>
</manifest>
ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
old mode 100755 new mode 100644
Diff too large
ZigbeeApp/Home.Ios/mono_crash.115869ea88.0.json
File was deleted
ZigbeeApp/Home.Ios/mono_crash.f3dbef0b0.0.json
File was deleted
ZigbeeApp/Shared/Common/CommonPage.cs
@@ -62,7 +62,7 @@
        /// <summary>
        /// 版本号
        /// </summary>
        public static string CodeIDString = "1.0.20010701";
        public static string CodeIDString = "1.0.20011001";
        /// <summary>
        /// 注册来源(0:HDL On 1:Zigbee)
        /// </summary>
ZigbeeApp/Shared/Common/Device.cs
@@ -37,7 +37,7 @@
            }
        }
        /// <summary>
        /// 本地所有设备的缓存(排序)
        /// 本地所有设备的缓存
        /// </summary>
        public List<CommonDevice> listAllDevice
        {
@@ -241,7 +241,7 @@
            //获取这个网关的本地所有设备
            string gwID = HdlGatewayLogic.Current.GetGatewayId(zbGateway);
            List<CommonDevice> listLocalDevices = this.GetDeviceByGatewayID(gwID);
            List<CommonDevice> listLocalDevices = this.GetDeviceByGatewayID(gwID, true);
            Dictionary<string, CommonDevice> dicExist = new Dictionary<string, CommonDevice>();
            foreach (var device in listLocalDevices)
            {
@@ -273,25 +273,13 @@
            for (int i = 0; i < listDevice.Count; i++)
            {
                var device = listDevice[i];
                //对未命名的设备重新命名
                if (this.GetSimpleEpointName(device) == string.Empty)
                //对未命名的虚拟设备重新命名
                if (device.DriveCode > 0 && this.GetSimpleEpointName(device) == string.Empty)
                {
                    //根据设备类型获取名称
                    var dName = this.GetDeviceObjectText(new List<CommonDevice>() { device }, false);
                    //虚拟设备的话,附加回路号
                    if (device.DriveCode > 0)
                    {
                        //在端点名字的后面附加【回路】字样
                        dName += "(" + device.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit) + ")";
                    }
                    //多回路设备的话,附加回路号
                    else if (dicDeviceEpoint.ContainsKey(device.DeviceAddr) == true && dicDeviceEpoint[device.DeviceAddr].Count > 1)
                    {
                        var arry = dName.Split(new string[] { "(" }, StringSplitOptions.RemoveEmptyEntries);
                        dName = arry[0].Trim();
                        //在端点名字的后面附加【回路】字样
                        dName += "(" + device.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit) + ")";
                    }
                    //在端点名字的后面附加【回路】字样
                    dName += "(" + device.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit) + ")";
                    HdlThreadLogic.Current.RunThread(async () =>
                    {
@@ -301,10 +289,19 @@
            }
            //只有完全获取的时候,才会去处理删除的问题
            if (statu == 1)
            if (statu != 1)
            {
                //如果本地和网关的设备不一致的时候,删除本地的设备
                foreach (var device in dicExist.Values)
                return statu;
            }
            //如果本地和网关的设备不一致的时候,删除本地的设备
            foreach (var device in dicExist.Values)
            {
                if (device is OTADevice)
                {
                    this.DeleteMemmoryOtaDevice(device.DeviceAddr);
                }
                else
                {
                    this.DeleteMemmoryDevice(device, true);
                }
@@ -484,15 +481,25 @@
            lock (dicAllDevice)
            {
                string mainKeys = this.GetDeviceMainKeys(device);
                if (this.dicAllDevice.ContainsKey(mainKeys) == false)
                if (this.dicAllDevice.ContainsKey(mainKeys) == true)
                {
                    return;
                }
                this.dicAllDevice[mainKeys] = device;
                device.ReSave();
                    //一般设备
                    this.dicAllDevice[mainKeys] = device;
                    device.ReSave();
                //添加自动备份
                HdlAutoBackupLogic.AddOrEditorFile(device.FilePath);
                    //添加自动备份
                    HdlAutoBackupLogic.AddOrEditorFile(device.FilePath);
                }
                else if (this.dicOTADevice.ContainsKey(mainKeys) == true)
                {
                    //Ota设备
                    this.dicOTADevice[mainKeys] = (OTADevice)device;
                    device.ReSave();
                    //添加自动备份
                    HdlAutoBackupLogic.AddOrEditorFile(device.FilePath);
                }
            }
        }
@@ -524,11 +531,14 @@
                return false;
            }
            //删除文件
            //删除缓存的Ota设备
            this.DeleteMemmoryOtaDevice(listdevice[0].DeviceAddr);
            //删除一般设备文件
            foreach (CommonDevice device in listdevice)
            {
                this.DeleteMemmoryDevice(device);
            }
            if (this.dicDeviceRoomId.ContainsKey(listdevice[0].DeviceAddr) == true)
            {
                //移除真实设备的房间索引
@@ -539,7 +549,7 @@
        }
        /// <summary>
        /// 删除缓存的设备
        /// 删除缓存的一般设备
        /// </summary>
        /// <param name="device">设备对象</param>
        /// <param name="deleteRoom">是否从房间删除</param>
@@ -561,6 +571,11 @@
                {
                    this.dicAllDevice.Remove(mainKeys);
                }
                if (this.dicDeviceEpoint.ContainsKey(device.DeviceAddr) == true)
                {
                    //变更端点数
                    this.dicDeviceEpoint[device.DeviceAddr].Remove(device.DeviceEpoint);
                }
            }
            //删除设备文件
@@ -580,9 +595,17 @@
                    HdlAutoBackupLogic.DeleteFile(device.FilePath);
                }
            }
        }
        /// <summary>
        /// 删除缓存的Ota设备
        /// </summary>
        /// <param name="macAdrr"></param>
        /// <param name="ePoint"></param>
        public void DeleteMemmoryOtaDevice(string macAdrr, int ePoint = 200)
        {
            //删除200端口文件
            string otaKeys = this.GetDeviceMainKeys(device.DeviceAddr, 200);
            string otaKeys = this.GetDeviceMainKeys(macAdrr, ePoint);
            if (this.dicOTADevice.ContainsKey(otaKeys) == true)
            {
                string otaFile = this.dicOTADevice[otaKeys].FilePath;
@@ -591,12 +614,12 @@
                    if (UserCenterResourse.UserInfo.AuthorityNo == 3)
                    {
                        //成员的话,直接删除,没有商量的余地
                        Global.DeleteFilebyHomeId(filePath);
                        Global.DeleteFilebyHomeId(otaFile);
                    }
                    else
                    {
                        //变更:搞掉它,不留了
                        Global.DeleteFilebyHomeId(filePath);
                        Global.DeleteFilebyHomeId(otaFile);
                        //删除自动备份
                        HdlAutoBackupLogic.DeleteFile(otaFile);
                    }
@@ -680,8 +703,9 @@
        /// 根据网关ID获取所有的设备
        /// </summary>
        /// <param name="gwId">网关ID</param>
        /// <param name="getOtaDevice">是否获取ota设备</param>
        /// <returns></returns>
        public List<CommonDevice> GetDeviceByGatewayID(string gwId)
        public List<CommonDevice> GetDeviceByGatewayID(string gwId, bool getOtaDevice = false)
        {
            List<CommonDevice> list = new List<CommonDevice>();
            lock (dicAllDevice)
@@ -692,6 +716,17 @@
                    if (gwId == device.CurrentGateWayId)
                    {
                        list.Add(device);
                    }
                }
                if (getOtaDevice == true)
                {
                    //获取ota设备
                    foreach (var ota in this.dicOTADevice.Values)
                    {
                        if (ota.CurrentGateWayId == gwId)
                        {
                            list.Add(ota);
                        }
                    }
                }
            }
@@ -817,6 +852,30 @@
            return this.dicOTADevice[mainkeys];
        }
        /// <summary>
        /// 获取特殊的,没有其他回路,单纯只有200端点的OTA设备
        /// </summary>
        /// <param name="gwId">网关ID</param>
        /// <returns></returns>
        public List<OTADevice> GetSpecialOtaDevice(string gwId)
        {
            var list = new List<OTADevice>();
            foreach (var ota in this.dicOTADevice.Values)
            {
                if (ota.CurrentGateWayId != gwId)
                {
                    //不是同一个网关
                    continue;
                }
                if (dicDeviceEpoint.ContainsKey(ota.DeviceAddr) == false
                    || dicDeviceEpoint[ota.DeviceAddr].Count == 0)
                {
                    list.Add(ota);
                }
            }
            return list;
        }
        #endregion
        #region ■ 获取设备名称_______________________
@@ -834,16 +893,39 @@
                return dName;
            }
            //根据设备类型获取名称
            dName = this.GetDeviceObjectText(new List<CommonDevice>() { device }, false);
            var tempValue = this.GetDeviceObjectText(new List<CommonDevice>() { device }, false);
            var arry = tempValue.Split(new string[] { "(" }, StringSplitOptions.RemoveEmptyEntries);
            dName = arry[0].Trim();
            //如果是虚拟设备
            if (device.DriveCode > 0
                || (this.dicDeviceEpoint.ContainsKey(device.DeviceAddr) == true && this.dicDeviceEpoint[device.DeviceAddr].Count > 1))
            if (device.DriveCode > 0)
            {
                var arry = dName.Split(new string[] { "(" }, StringSplitOptions.RemoveEmptyEntries);
                dName = arry[0].Trim();
                //在端点名字的后面附加【回路】字样
                dName += "(" + device.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit) + ")";
                return dName;
            }
            //获取设备类型
            var deviceInfoType = this.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
            if (deviceInfoType.BeloneType == Common.DeviceBeloneType.A按键面板 && device.Type == DeviceType.TemperatureSensor)
            {
                //面板的最后一个回路是温度传感器
                dName += Language.StringByID(R.MyInternationalizationString.uDeviceBelongId11);
            }
            else if (deviceInfoType.ConcreteType == Common.DeviceConcreteType.Sensor_Pir)
            {
                //pir传感器,它又搞特殊东西,传感器自身用自己的名字,继电器回路的话……
                if (device.Type == DeviceType.OnOffOutput)
                {
                    dName += Language.StringByID(R.MyInternationalizationString.uDeviceBelongId2300);
                }
            }
            else if (this.dicDeviceEpoint.ContainsKey(device.DeviceAddr) == true && this.dicDeviceEpoint[device.DeviceAddr].Count > 1)
            {
                //XXXXX(N回路)
                dName += "(" + device.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit) + ")";
            }
            return dName;
        }
@@ -1682,6 +1764,11 @@
            //如果设备只有一个回路,如果改变了真实设备区域,则它的回路的区域也一起改了
            if (saveRoadDevice == true && listDevice != null && listDevice.Count == 1)
            {
                if (listDevice[0] is OTADevice)
                {
                    //单纯只是Ota设备则不处理
                    return;
                }
                Common.Room.CurrentRoom.ChangedRoom(listDevice[0], roomId, false);
            }
        }
@@ -2443,19 +2530,19 @@
        //=========★★其他类(????-????)★★=========
        /// <summary>
        /// 干接点
        /// 干接点(注意,它属于其他类,不是设备类型)
        /// </summary>
        DryContact = -10000,
        /// <summary>
        /// 灯光(注意,它输入其他类,不是设备类型)
        /// 灯光(注意,它属于其他类,不是设备类型)
        /// </summary>
        Light = -10001,
        /// <summary>
        /// 插座
        /// 插座(注意,它属于其他类,不是设备类型)
        /// </summary>
        Socket1 = -10002,
        /// <summary>
        /// 开关
        /// 开关(注意,它属于其他类,不是设备类型)
        /// </summary>
        Switch = -10003,
    }
ZigbeeApp/Shared/Common/Room.cs
@@ -98,6 +98,7 @@
            {
                if (m_CurrentRoom == null && Lists.Count > 0)
                {
                    if (m_CurrentRoom == null) { m_CurrentRoom = Lists[0]; }
                    return Lists[0];
                }
                return m_CurrentRoom;
@@ -193,6 +194,10 @@
                var sceneList = new List<SceneUI> { };
                foreach (var r in Shared.Common.Room.Lists)
                {
                    if(r.IsLove)
                    {
                        continue;
                    }
                    if (r.SceneUIList.Count == 0)
                    {
                        continue;
@@ -222,6 +227,11 @@
                var pathList = new List<string> { };
                foreach (var r in Lists)
                {
                    if(r.IsLove)
                    {
                        continue;
                    }
                    if (r.SceneUIFilePathList.Count == 0)
                    {
                        continue;
@@ -263,7 +273,7 @@
                for (int i = 0; i < Lists.Count; i++)
                {
                    var room = Lists[i];
                    if (room.IsSharedRoom)
                    if (room.IsSharedRoom || room.IsLove)
                    {
                        continue;
                    }
@@ -335,6 +345,7 @@
                }
            }
            Config.Instance.Home.InitFloor();
            CurrentRoom.RefreshRoomListView();
@@ -356,7 +367,6 @@
        /// </summary>
        public static void RefreshAllRoomByLocation()
        {
            Lists.Clear();
            var homeTemp = Config.Instance.Home;
            homeTemp.RoomFilePathList.Clear();
@@ -367,7 +377,7 @@
            if (listFile.Contains(fRoom) == true)
            {
                listFile.Remove(fRoom);
                homeTemp.AddRoomListFilePath(fRoom);
                homeTemp.RoomFilePathList.Add(fRoom);
            }
            var listRoomFile = new List<string>();
@@ -375,7 +385,7 @@
            {
                if (fileName.StartsWith("Room_"))
                {
                    homeTemp.AddRoomListFilePath(fileName);
                    homeTemp.RoomFilePathList.Add(fileName);
                    listRoomFile.Add(fileName);
                }
            }
@@ -696,11 +706,24 @@
        /// <returns></returns>
        public List<Room> GetRoomsByFloorId(string id)
        {
            if (Config.Instance.Home.FloorDics.Count == 0)
            try
            {
                return Lists;
                if (Lists == null || Lists.Count == 0 || Lists.Count == 1)
                {
                    return null;
                }
                if (Config.Instance.Home.FloorDics.Count == 0)
                {
                    return Lists;
                }
                return Lists.FindAll((obj) => obj.FloorId == id);
            }
            return Lists.FindAll((obj) => obj.FloorId == id);
            catch(Exception ex)
            {
                System.Console.WriteLine(ex.Message);
                return null;
            }
        }
        /// <summary>
        /// 获取当前楼层的房间名称
@@ -904,8 +927,6 @@
                //保存到本地
                Save();
                //添加自动备份
                HdlAutoBackupLogic.AddOrEditorFile(FileName);
                if (saveRealRoom == true && LocalDevice.Current.GetDevicesCountByMac(device.DeviceAddr) == 1)
                {
                    //如果只有一个回路,则修改真实物理设备的房间
@@ -1185,17 +1206,8 @@
        /// <param name="scene">Scene.</param>
        public void AddScene(SceneUI scene)
        {
            //var sceneUI = new SceneUI
            //{
            //    Name = scene.Name,
            //    Id = scene.Id,
            //    IconPath = scene.IconPath,
            //    IconPathType = scene.IconPathType,
            //    AddSceneMemberDataList = scene.AddSceneMemberDataList
            //};
            SceneUIList.Add(scene);
            SceneUIFilePathList.Add(scene.FileName);
            scene.Save();
            Save();
        }
@@ -1205,10 +1217,13 @@
        /// <param name="scene"></param>
        public void DeleteScene(SceneUI scene)
        {
            //scene.IsCollected = false;
            scene.Save();
            SceneUIList.Remove(scene);
            SceneUIFilePathList.Remove(scene.FileName);
            var curScene = SceneUIList.Find((obj) => obj.Id == scene.Id);
            if (curScene == null)
            {
                return;
            }
            SceneUIList.Remove(curScene);
            SceneUIFilePathList.Remove(curScene.FileName);
            Save();
        }
@@ -1297,9 +1312,61 @@
            {
                sceneUI.AddSceneMemberDataList = addCommons;
                sceneUI.Save();
                if (IsLove == false)
                {
                    var curScene = Common.Room.CurrentRoom.GetLoveRoom().SceneUIList.Find((obj) => obj.Id == sceneUI.Id);
                    if (curScene != null)
                    {
                        curScene.Name = sceneUI.Name;
                        curScene.IconPath = sceneUI.IconPath;
                        curScene.IconPathType = sceneUI.IconPathType;
                        curScene.AddSceneMemberDataList = sceneUI.AddSceneMemberDataList;
                        curScene.SceneDelayTime = sceneUI.SceneDelayTime;
                        curScene.Save(false);
                        Common.Room.CurrentRoom.GetLoveRoom().Save();
                    }
                }
                return 1;
            }
            return 0;
        }
        /// <summary>
        /// 设置、同步延时时间
        /// </summary>
        /// <param name="scene"></param>
        public void ModifySceneDelayTime(SceneUI scene)
        {
            if (IsLove)
            {
                foreach (var r in Lists)
                {
                    if (r.IsLove || r.SceneUIList.Count == 0)
                    {
                        continue;
                    }
                    foreach (var sce in r.SceneUIList)
                    {
                        if (sce.Id == scene.Id)
                        {
                            sce.SceneDelayTime = scene.SceneDelayTime;
                            sce.Save(false);
                            r.Save(false);
                            break;
                        }
                    }
                }
            }
            else
            {
                var curScene = Common.Room.CurrentRoom.GetLoveRoom().SceneUIList.Find((obj) => obj.Id == scene.Id);
                if (curScene != null)
                {
                    curScene.SceneDelayTime = scene.SceneDelayTime;
                    curScene.Save(false);
                    Common.Room.CurrentRoom.GetLoveRoom().Save(false);
                }
            }
        }
        #endregion
@@ -1316,9 +1383,16 @@
            {
                return;
            }
            SceneUIList.Remove(sceneUI);
            SceneUIFilePathList.Remove(sceneUI.FileName);
            Save();
            if (sceneUI.IconPathType == 1 || sceneUI.IconPathType == 2)
            {
                if (Global.IsExistsByHomeId(sceneUI.IconPath))
                {
                    Global.DeleteFilebyHomeId(sceneUI.IconPath);
                    HdlAutoBackupLogic.DeleteFile(sceneUI.IconPath);
                }
            }
            if (IsLove == false)
            {
                if (CurrentRoom.GetLoveRoom().SceneUIList.Find((obj) => obj.Id == sceneUI.Id) != null)
@@ -1326,6 +1400,11 @@
                    CurrentRoom.GetLoveRoom().DeleteScene(sceneUI);
                }
            }
            SceneUIList.Remove(sceneUI);
            SceneUIFilePathList.Remove(sceneUI.FileName);
            Save();
            Global.DeleteFilebyHomeId(sceneUI.FileName);
            HdlAutoBackupLogic.DeleteFile(sceneUI.FileName);
        }
ZigbeeApp/Shared/Common/SceneUI.cs
@@ -232,6 +232,7 @@
                }
            });
        }
        #endregion
        #region ◆ 保存____________________________
ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs
@@ -133,7 +133,7 @@
            if(changeFloor)
            {
                Config.Instance.Home.CurrentFloorId = (sender as CommonForm.LeftIconButtonRow).Tag.ToString();
                Config.Instance.Home.Save();
                Config.Instance.Home.Save(false);
                Common.Room.CurrentRoom.RefreshRoomListView();
            }
            RemoveView();
ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
@@ -373,6 +373,8 @@
                {
                    scene.SceneDelayTime = t;
                    delayTimeBtn.Text = CommonFormResouce.GetTimeString(t);
                    room.ModifySceneDelayTime(scene);
                };
            };
        }
@@ -422,6 +424,7 @@
            scene.RemainTime = scene.SceneDelayTime;
            scene.SceneDelayTime = 0;
            room.ModifySceneDelayTime(scene);
            new System.Threading.Thread(() =>
            {
                while (scene.RemainTime > 0)
ZigbeeApp/Shared/Phone/Device/CommonForm/SceneMainView.cs
@@ -37,6 +37,10 @@
        /// scene
        /// </summary>
        public SceneUI scene;
        /// <summary>
        /// CollectionAction
        /// </summary>
        public Action CollectionAction;
        /// <summary>
        /// IsSelected
@@ -284,6 +288,7 @@
            scene.RemainTime = scene.SceneDelayTime;
            scene.SceneDelayTime = 0;
            Common.Room.CurrentRoom.ModifySceneDelayTime(scene);
            new System.Threading.Thread(() =>
            {
                while (scene.RemainTime > 0)
@@ -310,16 +315,23 @@
        /// <param name="mouseEventArgs"></param>
        private void  CollectionEvent(object sender,MouseEventArgs mouseEventArgs)
        {
            (sender as Button).IsSelected = !(sender as Button).IsSelected;
            if ((sender as Button).IsSelected)
            if (Common.Room.CurrentRoom.IsLove)
            {
                Shared.Common.Room.CurrentRoom.GetLoveRoom().AddScene(scene);
                Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene);
                CollectionAction?.Invoke();
            }
            else
            {
                Shared.Common.Room.CurrentRoom.GetLoveRoom().RemoveScene(scene);
                (sender as Button).IsSelected = !(sender as Button).IsSelected;
                if ((sender as Button).IsSelected)
                {
                    Common.Room.CurrentRoom.GetLoveRoom().AddScene(scene);
                }
                else
                {
                    Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene);
                }
            }
            scene.Save();
        }
        /// <summary>
@@ -342,6 +354,8 @@
            {
                scene.SceneDelayTime = t;
                SetTimeByDelayTime(t);
                Common.Room.CurrentRoom.ModifySceneDelayTime(scene);
            };
        }
ZigbeeApp/Shared/Phone/Device/Logic/SecurityMode.cs
@@ -367,18 +367,18 @@
                        }
                        else if (actions["SecuritySetting"].ToString() == "1")
                        {
                            if (actions["SecurityModeId"].ToString() == "1") {
                            athomedefenceSelected.Visible = true;
                            leavehomedefenceSelected.Visible = false;
                            withdrawalSelected.Visible = false;
                            urgentwithdrawalSelected.Visible = false;
                        }
                        else if (actions["SecuritySetting"].ToString() == "2")
                        {
                            athomedefenceSelected.Visible = false;
                            leavehomedefenceSelected.Visible = true;
                            withdrawalSelected.Visible = false;
                            urgentwithdrawalSelected.Visible = false;
                            }
                            else {
                                athomedefenceSelected.Visible = false;
                                leavehomedefenceSelected.Visible = true;
                                withdrawalSelected.Visible = false;
                                urgentwithdrawalSelected.Visible = false;
                            }
                        }
                        break;
ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs
@@ -149,67 +149,74 @@
            var roomScrolView = new VerticalScrolViewLayout { };
            bodyFrameLayout.AddChidren(roomScrolView);
            var roomList = Common.Room.CurrentRoom.GetRoomsByFloorId(floorId);
            if (roomList == null)
            try
            {
                return;
            }
            for (int i = 0; i < roomList.Count+1; i++)
            {
                int xx = 43 + i % 2 * (20 + 487);
                int yy = 0;
                if (i == 0 || i == 1)
                var roomList = Common.Room.CurrentRoom.GetRoomsByFloorId(floorId);
                if (roomList == null || roomList.Count == 0)
                {
                    if (i % 2 == 0)
                    return;
                }
                for (int i = 0; i < roomList.Count + 1; i++)
                {
                    int xx = 43 + i % 2 * (20 + 487);
                    int yy = 0;
                    if (i == 0 || i == 1)
                    {
                        if (i % 2 == 0)
                        {
                            itemView = new FrameLayout()
                            {
                                Height = Application.GetRealHeight(354 + 58)
                            };
                            roomScrolView.AddChidren(itemView);
                        }
                        yy = 58;
                    }
                    else if (i % 2 == 0)
                    {
                        itemView = new FrameLayout()
                        {
                            Height = Application.GetRealHeight(354 + 58)
                            Height = Application.GetRealHeight(354)
                        };
                        roomScrolView.AddChidren(itemView);
                    }
                    yy = 58;
                }
                else if (i % 2 == 0)
                {
                    itemView = new FrameLayout()
                    {
                        Height = Application.GetRealHeight(354)
                    };
                    roomScrolView.AddChidren(itemView);
                }
                if (i< roomList.Count)
                {
                    var room = roomList[i];
                    var roomView = new RoomMainView(xx, yy);
                    itemView.AddChidren(roomView);
                    roomView.Init(this,room);
                    roomView.SetRoomName(room.Name);
                    roomView.SetRoomIcon(room.BackgroundImageType == 0 ? room.BackgroundImage : System.IO.Path.Combine(Config.Instance.FullPath, room.BackgroundImage));
                    roomView.ClickBtn.MouseUpEventHandler += (sender, e) =>
                    if (i < roomList.Count)
                    {
                        if (CanClick == false)
                        var room = roomList[i];
                        var roomView = new RoomMainView(xx, yy);
                        itemView.AddChidren(roomView);
                        roomView.Init(this, room);
                        roomView.SetRoomName(room.Name);
                        roomView.SetRoomIcon(room.BackgroundImageType == 0 ? room.BackgroundImage : System.IO.Path.Combine(Config.Instance.FullPath, room.BackgroundImage));
                        roomView.ClickBtn.MouseUpEventHandler += (sender, e) =>
                        {
                            return;
                        }
                        CommonPage.Instance.CloseLeftMenu();
                        Common.Room.CurrentRoom = room;
                        Config.Instance.Home.CurrentFloorId = room.FloorId;
                        UserPage.Instance.Fresh();
                    };
                }
                else
                {
                    var roomView = new RoomNoNameMainView(xx, yy);
                    itemView.AddChidren(roomView);
                    roomView.Init();
                            if (CanClick == false)
                            {
                                return;
                            }
                            CommonPage.Instance.CloseLeftMenu();
                            Common.Room.CurrentRoom = room;
                            Config.Instance.Home.CurrentFloorId = room.FloorId;
                            UserPage.Instance.Fresh();
                        };
                    }
                    else
                    {
                        var roomView = new RoomNoNameMainView(xx, yy);
                        itemView.AddChidren(roomView);
                        roomView.Init();
                    roomView.Icon.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
                    roomView.RoomNameButton.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
                    roomView.iconFL.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
                        roomView.Icon.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
                        roomView.RoomNameButton.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
                        roomView.iconFL.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
                    }
                }
            }
            catch (Exception ex)
            {
                string tt=ex.Message;
            }
        }
        #endregion
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs
@@ -36,6 +36,7 @@
        /// <summary>
        /// DistributedMark
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public string DistributedMark = string.Empty;
        /// <summary>
        /// 邮箱
@@ -58,16 +59,6 @@
        /// </summary>
        public string AuthorityText = string.Empty;
        /// <summary>
        /// 用户图标文件
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public string UserIconFile = string.Empty;
        /// <summary>
        /// 用户图标文件是否改变
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public bool UserIconFileChanged = false;
        /// <summary>
        /// 用户头像数据(临时用,会置空)
        /// </summary>
        public byte[] HeadImage = null;
@@ -79,6 +70,23 @@
        /// 密码验证(临时用,会置空)
        /// </summary>
        public string StringPwd = string.Empty;
        /// <summary>
        /// 用户图标文件
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public string UserIconFile = string.Empty;
        /// <summary>
        /// 用户图标文件是否改变
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public bool UserIconFileChanged = false;
        /// <summary>
        /// 是否初始化用户信息成功
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public bool InitUserInfoSuccess = false;
    }
    /// <summary>
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/EditorCommonForm.cs
@@ -26,6 +26,25 @@
        /// </summary>
        public FrameLayout bodyFrameLayout = null;
        /// <summary>
        /// 左滑使能
        /// </summary>
        private bool m_ScrollEnabled = true;
        /// <summary>
        /// 左滑使能
        /// </summary>
        public bool ScrollEnabled
        {
            get { return m_ScrollEnabled; }
            set
            {
                if (UserView.HomePage.Instance.ScrollEnabled != value)
                {
                    UserView.HomePage.Instance.ScrollEnabled = value;
                    this.m_ScrollEnabled = value;
                }
            }
        }
        /// <summary>
        /// 缓存启动参数
        /// </summary>
        private object[] m_parameter = null;
@@ -46,6 +65,9 @@
            //初始化中部控件
            this.InitBodyFrameLayout();
            //初始左滑使能可
            this.ScrollEnabled = true;
        }
        /// <summary>
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
@@ -142,8 +142,10 @@
                List<CommonDevice> list = Common.LocalDevice.Current.GetDeviceByGatewayID(gatewayId);
                foreach (var device in list)
                {
                    //删除设备,不删除房间信息
                    Common.LocalDevice.Current.DeleteMemmoryDevice(device, false);
                    //删除一般设备
                    Common.LocalDevice.Current.DeleteMemmoryDevice(device, true);
                    //删除Ota设备
                    Common.LocalDevice.Current.DeleteMemmoryOtaDevice(device.DeviceAddr);
                }
                //删除网关文件
                this.DeleteGatewayFile(gatewayId);
@@ -759,6 +761,8 @@
            {
                //删除设备文件
                Common.LocalDevice.Current.DeleteMemmoryDevice(device, true);
                //删除Ota设备
                Common.LocalDevice.Current.DeleteMemmoryOtaDevice(device.DeviceAddr);
            }
            //如果是主网关
            if (this.IsMainGateway(zbGatewayID) == 1)
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
@@ -29,6 +29,13 @@
        /// </param>
        public static async Task<bool> GetResultStatuByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null)
        {
            //检测是否已经完成账号信息初始化
            if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
            {
                //不管结果怎么样,如果调用了这个函数,需要重头获取Token,所以必须返回失败
                await ReInitUserAccoutInfo();
                return false;
            }
            //获取接口的连接模式
            var connectMode = GetHttpConnectMode(checkAuthority);
            //获取从接口那里取到的比特数据
@@ -63,6 +70,14 @@
        /// </param>
        public static async Task<string> GetResultCodeByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null)
        {
            //检测是否已经完成账号信息初始化
            if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
            {
                //不管结果怎么样,如果调用了这个函数,需要重头获取Token,所以必须返回失败
                await ReInitUserAccoutInfo();
                return "Error";
            }
            //获取接口的连接模式
            var connectMode = GetHttpConnectMode(checkAuthority);
            //获取从接口那里取到的比特数据
@@ -96,6 +111,13 @@
        /// </param>
        public static async Task<string> GetResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null)
        {
            //检测是否已经完成账号信息初始化
            if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
            {
                //不管结果怎么样,如果调用了这个函数,需要重头获取Token,所以必须返回失败
                await ReInitUserAccoutInfo();
                return null;
            }
            //获取接口的连接模式
            var connectMode = GetHttpConnectMode(checkAuthority);
            //获取从接口那里取到的比特数据
@@ -139,6 +161,13 @@
        /// </param>
        public static async Task<byte[]> GetByteResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null)
        {
            //检测是否已经完成账号信息初始化
            if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
            {
                //不管结果怎么样,如果调用了这个函数,需要重头获取Token,所以必须返回失败
                await ReInitUserAccoutInfo();
                return null;
            }
            //获取接口的连接模式
            var connectMode = GetHttpConnectMode(checkAuthority);
            //获取从接口那里取到的比特数据
@@ -406,11 +435,13 @@
                            {
                                try
                                {
                                    var Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID];
                                    if (Myform is EditorCommonForm)
                                    EditorCommonForm Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID] as EditorCommonForm;
                                    if (Myform != null)
                                    {
                                        //重置左滑使能
                                        Myform.ScrollEnabled = Myform.ScrollEnabled;
                                        //触发界面再次激活的事件
                                        int value = ((EditorCommonForm)Myform).FormActionAgainEvent();
                                        int value = Myform.FormActionAgainEvent();
                                        if (value == 1)
                                        {
                                            //Log出力
@@ -441,11 +472,13 @@
                                {
                                    try
                                    {
                                        var Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID];
                                        if (Myform is EditorCommonForm)
                                        EditorCommonForm Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID] as EditorCommonForm;
                                        if (Myform != null)
                                        {
                                            //重置左滑使能
                                            Myform.ScrollEnabled = Myform.ScrollEnabled;
                                            //触发界面再次激活的事件
                                            int value = ((EditorCommonForm)Myform).FormActionAgainEvent();
                                            int value = Myform.FormActionAgainEvent();
                                            if (value == 1)
                                            {
                                                //Log出力
@@ -917,22 +950,32 @@
        /// <returns></returns>
        private async static Task<bool> InitUserAccoutInfo()
        {
            //初始化个人信息的标识
            UserCenterResourse.UserInfo.InitUserInfoSuccess = false;
            //获取本地记录的用户信息
            UserCenterResourse.UserInfo = GetUserInformationFromLocation();
            UserCenterResourse.UserInfo.UserIconFile = System.IO.Path.Combine(UserCenterResourse.Option.UserPictruePath, "Admin.png");
            //先根据本地缓存设置初始值
            Config.Instance.isAdministrator = UserCenterResourse.UserInfo.AuthorityNo != 1;
            //获取登录账号的信息
            var pra = new AccountInfoPra();
            var listNotShow = new List<string>() { "NotSetAgain" };
            string result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetAccountInfo", false, pra, listNotShow);
            if (string.IsNullOrEmpty(result) == true)
            //序列化对象
            var requestJson = JsonConvert.SerializeObject(pra);
            //访问接口
            byte[] byteData = await CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("ZigbeeUsers/GetAccountInfo", Encoding.UTF8.GetBytes(requestJson));
            if (byteData == null)
            {
                //断网的话,该干嘛就干嘛吧,总之不能控主人的东西
                Config.Instance.isAdministrator = false;
                return false;
            }
            //检测错误
            var revertObj = JsonConvert.DeserializeObject<ResponsePack>(Encoding.UTF8.GetString(byteData));
            if (revertObj.StateCode.ToUpper() != "SUCCESS")
            {
                return false;
            }
            var userInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInformation>(result);
            var userInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInformation>(revertObj.ResponseData.ToString());
            userInfo.Account = Common.Config.Instance.Account;
            if (string.IsNullOrEmpty(userInfo.UserName) == true)
            {
@@ -965,22 +1008,23 @@
                string dirPath = CombinePath();
                if (System.IO.Directory.Exists(dirPath) == true)
                {
                    //先记录起住宅的一些信息
                    var house = House.GetHouseByHouseId(Config.Instance.HomeId);
                    //删除整个文件夹
                    System.IO.Directory.Delete(dirPath, true);
                    try
                    {
                        //同步数据的判断文件(以防万一删除整个文件夹失败的时候,这个文件被删的话,应该没什么大问题)
                        string SynchronizeFile = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.AutoDownLoadBackupCheckFile);
                        //如果本地已经拥有了这个文件,则说明不是新手机,不再自动还原
                        if (System.IO.File.Exists(SynchronizeFile) == true)
                        {
                            System.IO.File.Delete(SynchronizeFile);
                        }
                        //删除整个文件夹
                        System.IO.Directory.Delete(dirPath, true);
                    }
                    catch { }
                    //创建住宅文件夹
                    Global.CreateHomeDirectory(Config.Instance.HomeId);
                    //预创建个人中心全部的文件夹
                    CreatAllUserCenterDirectory();
                    var newHouse = new House();
                    newHouse.Id = house.Id;
                    newHouse.Name = house.Name;
                    newHouse.IsOthreShare = house.IsOthreShare;
                    newHouse.AccountType = house.AccountType;
                    newHouse.MainUserDistributedMark = house.MainUserDistributedMark;
                    newHouse.Save(false);
                }
            }
            if (string.IsNullOrEmpty(userInfo.UserName) == true)
@@ -1005,9 +1049,11 @@
            UserCenterResourse.UserInfo.StringPwd = null;
            //初始化管理员控制主人的连接地址(因为这个连接Token是不会改变的,所以只需要初始化一次)
            await InitAdminConnectMainInfo();
            bool flage = await InitAdminConnectMainInfo();
            //初始化个人信息的标识
            UserCenterResourse.UserInfo.InitUserInfoSuccess = flage;
            return true;
            return flage;
        }
        /// <summary>
@@ -1024,6 +1070,26 @@
            }
            var info = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInformation>(value);
            return info;
        }
        /// <summary>
        /// 重新初始化登陆账号的信息(旨在对应那一瞬间,网络不好,导致误判的情况)
        /// </summary>
        /// <returns></returns>
        private async static Task<bool> ReInitUserAccoutInfo()
        {
            //重新初始化账号信息
            var result = await InitUserAccoutInfo();
            if (result == false)
            {
                return result;
            }
            //同步云端的网关id,如果本地拥有云端不存在的id,则表示应该被换绑了,直接删除
            HdlGatewayLogic.Current.SynchronizeDbGateway();
            //初始化个人信息的标识
            UserCenterResourse.UserInfo.InitUserInfoSuccess = true;
            return true;
        }
        /// <summary>
@@ -1057,13 +1123,8 @@
        /// 初始化管理员权限远程连接主人的信息
        /// </summary>
        /// <returns></returns>
        public static async Task<bool> InitAdminConnectMainInfo()
        private static async Task<bool> InitAdminConnectMainInfo()
        {
            //先清空
            Config.Instance.isAdministrator = false;
            Config.Instance.AdminRequestBaseUrl = string.Empty;
            Config.Instance.AdminRequestToken = string.Empty;
            if (UserCenterResourse.UserInfo.AuthorityNo != 2 && UserCenterResourse.UserInfo.AuthorityNo != 3)
            {
                //时代变了,这里管理员和成员都能调用
@@ -1077,16 +1138,24 @@
                SharedHid = Config.Instance.Home.Id
            };
            var listNotShow = new List<string>() { "NotSetAgain" };
            var result = await GetResponseDataByRequestHttps("App/GetSharedHomeApiControl", false, pra, listNotShow);
            if (string.IsNullOrEmpty(result) == true)
            //序列化对象
            var requestJson = JsonConvert.SerializeObject(pra);
            //访问接口
            byte[] byteData = await CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("App/GetSharedHomeApiControl", Encoding.UTF8.GetBytes(requestJson));
            if (byteData == null)
            {
                return false;
            }
            //检测错误
            var revertObj = JsonConvert.DeserializeObject<ResponsePack>(Encoding.UTF8.GetString(byteData));
            if (revertObj.StateCode.ToUpper() != "SUCCESS")
            {
                return false;
            }
            Config.Instance.isAdministrator = true;
            //分享链接
            var info = JsonConvert.DeserializeObject<MemberAdministratorResult>(result);
            var info = JsonConvert.DeserializeObject<MemberAdministratorResult>(revertObj.ResponseData.ToString());
            Config.Instance.AdminRequestBaseUrl = info.RequestBaseUrl;
            Config.Instance.AdminRequestToken = info.RequestToken;
ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitListForm.cs
@@ -211,7 +211,7 @@
            {
                for (int i = 0; i < listDevice.Count; i++)
                {
                    if (i != 0 && i % 5 == 0)
                    if (i != 0 && i % 3 == 0)
                    {
                        //读取5个后,间隔一段时间
                        System.Threading.Thread.Sleep(200);
ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitSettionForm.cs
@@ -167,7 +167,7 @@
            {
                //不能再点击
                btnSwingSwitch.CanClick = false;
                string statu = btnSwingSwitch.IsSelected == true ? "1" : "0";
                string statu = btnSwingSwitch.IsSelected == true ? "0" : "1";
                //将二进制转换为十进制
                int sendData = Convert.ToInt32(this.fixValue + statu, 2);
                HdlThreadLogic.Current.RunThread(async () =>
@@ -280,7 +280,7 @@
                        //转换为二进制
                        var value = Convert.ToString(data.AttriButeData, 2).PadLeft(16, '0');
                        //这个设置是放在后面的
                        this.fixValue = value.Substring(0, value.Length - 15);
                        this.fixValue = value.Substring(0, value.Length - 1);
                        this.swingMode = Convert.ToInt32(value.Substring(this.fixValue.Length));
                    }
                }
ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs
@@ -61,7 +61,7 @@
        /// <param name="i_listdevice">窗帘的回路</param>
        public void ShowForm(Rollershade i_CurtainDevice)
        {
            UserView.HomePage.Instance.ScrollEnabled = false;
            this.ScrollEnabled = false;
            this.curtainDevice = i_CurtainDevice;
@@ -775,8 +775,6 @@
        {
            HdlGatewayReceiveLogic.Current.RemoveEvent("CurtainDeviceAttribute");
            HdlGatewayReceiveLogic.Current.RemoveEvent("ReceiveLimitData");
            UserView.HomePage.Instance.ScrollEnabled = true;
            base.CloseFormBefore();
        }
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
@@ -213,9 +213,9 @@
            };
        }
#endregion
        #endregion
#region ■ 修改名字___________________________
        #region ■ 修改名字___________________________
        /// <summary>
        /// 设备重命名然后打开新的画面
@@ -251,47 +251,22 @@
        /// </summary>
        private async void SetAllEpointName()
        {
            var tempValue = Common.LocalDevice.Current.GetDeviceObjectText(this.listNewDevice);
            var arry = tempValue.Split(new string[] { "(" }, StringSplitOptions.RemoveEmptyEntries);
            var objName = arry[0].Trim();
            //获取设备类型
            var deviceInfoType = Common.LocalDevice.Current.GetMyDeviceEnumInfo(this.listNewDevice);
            foreach (var device in this.listNewDevice)
            {
                if (Common.LocalDevice.Current.GetSimpleEpointName(device) != string.Empty)
                {
                    //有名字不处理
                    continue;
                }
                var epointName = objName;
                if (this.listNewDevice.Count > 1)
                {
                    if (deviceInfoType.BeloneType == Common.DeviceBeloneType.A按键面板 && device.Type == DeviceType.TemperatureSensor)
                    {
                        //面板的最后一个回路是温度传感器
                        epointName += Language.StringByID(R.MyInternationalizationString.uDeviceBelongId11);
                    }
                    else if (deviceInfoType.ConcreteType == Common.DeviceConcreteType.Sensor_Pir)
                    {
                        //pir传感器,它又搞特殊东西,传感器自身用自己的名字,继电器回路的话……
                        if (device.Type == DeviceType.OnOffOutput)
                        {
                            epointName += Language.StringByID(R.MyInternationalizationString.uDeviceBelongId2300);
                        }
                    }
                    else
                    {
                        //XXXXX(N回路)
                        epointName += "(" + device.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit) + ")";
                    }
                }
                //获取端点名字
                var epointName = Common.LocalDevice.Current.GetDeviceEpointName(device);
                await Common.LocalDevice.Current.ReName(device, epointName, ShowErrorMode.NO);
            }
        }
#endregion
        #endregion
#region ■ 画面关闭___________________________
        #region ■ 画面关闭___________________________
        /// <summary>
        /// 画面关闭
@@ -308,6 +283,6 @@
            base.CloseFormBefore();
        }
#endregion
        #endregion
    }
}
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
@@ -43,6 +43,8 @@
        /// </summary>
        public void ShowForm()
        {
            this.ScrollEnabled = false;
            //设置标题信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.DeviceManagement));
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLightSettionForm.cs
@@ -40,7 +40,7 @@
        /// <param name="i_listdevice">面板设备的全部回路</param>
        public void ShowForm(Panel i_panel)
        {
            UserView.HomePage.Instance.ScrollEnabled = false;
            this.ScrollEnabled = false;
            this.panelDevice = i_panel;
@@ -557,20 +557,6 @@
        private uint GetColorByRGB(byte R, byte G, byte B)
        {
            return (uint)(0xFF000000 + R * 256 * 256 + G * 256 + B);
        }
        #endregion
        #region ■ 界面关闭___________________________
        /// <summary>
        /// 界面关闭
        /// </summary>
        public override void CloseFormBefore()
        {
            UserView.HomePage.Instance.ScrollEnabled = true;
            base.CloseFormBefore();
        }
        #endregion
ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorBindTargetSettionForm.cs
@@ -52,7 +52,7 @@
        /// <param name="i_iasZone">传感器设备</param>
        public void ShowForm(IASZone i_iasZone)
        {
            UserView.HomePage.Instance.ScrollEnabled = false;
            this.ScrollEnabled = false;
            deviceIASZone = i_iasZone;
            //设置头部信息
@@ -606,15 +606,6 @@
        #endregion
        #region ■ 一般方法___________________________
        /// <summary>
        /// 界面关闭
        /// </summary>
        public override void CloseFormBefore()
        {
            UserView.HomePage.Instance.ScrollEnabled = true;
            base.CloseFormBefore();
        }
        #endregion
    }
ZigbeeApp/Shared/Phone/UserCenter/Device/Relay/RelayThreeLoadBackLightSettionForm.cs
@@ -43,7 +43,7 @@
        /// </summary>
        public void ShowForm(string i_deviceMac)
        {
            UserView.HomePage.Instance.ScrollEnabled = false;
            this.ScrollEnabled = false;
            this.deviceMac = i_deviceMac;
            this.listDevice = Common.LocalDevice.Current.GetDevicesByMac(i_deviceMac);
@@ -386,20 +386,6 @@
            this.CloseProgressBar();
            return true;
        }
        #endregion
        #region ■ 界面关闭___________________________
        /// <summary>
        /// 界面关闭
        /// </summary>
        public override void CloseFormBefore()
        {
            UserView.HomePage.Instance.ScrollEnabled = true;
            base.CloseFormBefore();
        }
        #endregion
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/EntryStatusPage.cs
@@ -201,17 +201,17 @@
            if (currentType == "password")
            {
                btnPasswordRemark.Text = Language.StringByID(R.MyInternationalizationString.PasswordRemark);
                btnPasswordRemarkContent.PlaceholderText = Language.StringByID(R.MyInternationalizationString.Password) + "-" + doorLock.doorLockProgrammingEventNotificationCommand.UserID;
                btnPasswordRemarkContent.PlaceholderText = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + doorLock.doorLockProgrammingEventNotificationCommand.UserID;
            }
            else if (currentType == "fingerprint")
            {
                btnPasswordRemark.Text = Language.StringByID(R.MyInternationalizationString.FingerprintRemark);
                btnPasswordRemarkContent.PlaceholderText = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "-" + doorLock.doorLockProgrammingEventNotificationCommand.UserID;
                btnPasswordRemarkContent.PlaceholderText = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "ID" + doorLock.doorLockProgrammingEventNotificationCommand.UserID;
            }
            else
            {
                btnPasswordRemark.Text = Language.StringByID(R.MyInternationalizationString.ProximityRemark);
                btnPasswordRemarkContent.PlaceholderText = Language.StringByID(R.MyInternationalizationString.ProximityCard) + "-" + doorLock.doorLockProgrammingEventNotificationCommand.UserID;
                btnPasswordRemarkContent.PlaceholderText = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + doorLock.doorLockProgrammingEventNotificationCommand.UserID;
            }
            if (!string.IsNullOrEmpty(curAccountObj.UserName))
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs
@@ -104,6 +104,30 @@
            row1 = new FrameRowControl(listView.rowSpace / 2);
            listView.AddChidren(row1);
            row1.AddLeftCaption("清除缓存文件", 500);
            row1.AddRightArrow();
            row1.ButtonClickEvent += (sender, e) =>
            {
                this.ShowMassage(ShowMsgType.Confirm, "是否清除缓存文件", () =>
                {
                    var myPath = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory);
                    try
                    {
                        System.IO.Directory.Delete(myPath, true);
                        System.IO.Directory.CreateDirectory(myPath);
                        this.ShowMassage(ShowMsgType.Tip, "清除缓存文件完成,请重新登陆");
                        UserCenterLogic.ReLoginAgain(UserCenterResourse.UserInfo.Account);
                    }
                    catch (Exception ex)
                    {
                        this.ShowMassage(ShowMsgType.Error, "清除缓存文件异常");
                        HdlLogLogic.Current.WriteLog(ex, "清除缓存文件异常");
                    }
                });
            };
            row1 = new FrameRowControl(listView.rowSpace / 2);
            listView.AddChidren(row1);
            row1.AddLeftCaption("上传Log", 500);
            row1.AddRightArrow();
            row1.ButtonClickEvent += (sender, e) =>
ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs
@@ -30,7 +30,7 @@
        public void ShowForm()
        {
            //界面右划不可
            UserView.HomePage.Instance.ScrollEnabled = false;
            this.ScrollEnabled = false;
            //设置头部信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uGestureAuthentication));
@@ -260,21 +260,6 @@
                    });
                }
            });
        }
        #endregion
        #region ■ 界面关闭___________________________
        /// <summary>
        /// 界面关闭
        /// </summary>
        public override void CloseFormBefore()
        {
            //界面右划可
            UserView.HomePage.Instance.ScrollEnabled = true;
            base.CloseFormBefore();
        }
        #endregion
ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
@@ -1813,8 +1813,9 @@
                    }
                    var sceneView = new SceneMainView(xx, yy);
                    itemView.AddChidren(sceneView);
                    sceneView.Init(scene);
                    itemView.AddChidren(sceneView);
                    sceneView.CollectionAction += ShowScene;
                }
                GetDelayScene(sceneScrolView);
            }