wxr
2023-04-21 62d6c4bf6c30da21ccd8245199234c5004117d56
V1.7.1发布版本
31个文件已修改
978 ■■■■■ 已修改文件
HDL-ON_Android/Assets/Language.ini 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Properties/AndroidManifest.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Info.plist 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Language.ini 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/ImageUtlis.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/R.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Mqtt/MqttClient.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpServerRequest.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/IMessageCommon.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/NewAPI.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Room.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/MainPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI0-Public/PublicAssmebly.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI1-Login/LoginPage.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/1-HomePage/HomePage.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/2-Classification/FunctionPage.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AboutOn/AboutOnPage.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupChooseRoomPage.cs 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFaceManagementPage.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPageBLL.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/DeliveryQrCodePage.cs 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePage.cs 280 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/OrderFunctionPage.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Language.ini
@@ -375,7 +375,7 @@
371=Can not use the function, please bind the gateway
372=Can not create the scene, please bind the gateway
373=Fail to add the floor
374=The residential data has been deleted, APP will automatically swift to another residence.
374=Residence has been delivered or deleted, APP will automatically swift to another residence.
375=The gateway is not connected to the server, fail to create the scene.
376=Can not enter special character
377=The whole residence
@@ -587,9 +587,9 @@
600=Add combined dimming
601=Please select two or more devices
602=My Home
603=   In order to protect your personal privacy rights, we hereby notify you and apply for explicit consent authorization. Please read it carefully
603=   Please read it carefully
604=    'On Pro Face Information Collection Protocol'
605=   If you agree to this agreement, please click the [Agree] button to indicate that you have understood and agreed to the face information collection agreement.
605=   If you agree to this agreement, please click the [Agree] button.
606=Account binding is successful.You can continue to complete the device association operation
607=Previous page
608=Next page
@@ -600,7 +600,13 @@
613=Revoke Authorization
614=Statement on account binding
615=After the authorization is revoked, all the devices associated with the brand in on Pro will be unbound, and the relevant use information and device value will also become invalid
616=Bind account
617=Residential status
618=To_Be_Debugged
619=Debugging
620=To_Be_Accepted
621=INITIAL_TATE
622=ACCEPTANCE
2532=Visitor Invitation Record
@@ -1644,7 +1650,7 @@
371=功能无法使用,请绑定网关
372=无法创建场景,请绑定网关
373=添加楼层失败。
374=住宅数据已被删除,APP将自动切换到另一住宅。
374=住宅已删除或已交付,APP将自动切换到另一住宅。
375=网关未连接服务器,无法创建场景。
376=无法输入特殊字符
377=全宅区域
@@ -1869,8 +1875,13 @@
613=撤回授权
614=关于账号绑定的声明
615=撤销授权后,该品牌关联在On Pro中的设备将全部被解绑,相关使用信息合设备值也将失效
616=绑定账号
617=住宅状态
618=待调试
619=调试中
620=待验收
621=初始态
622=验收
2532=访客邀请记录
@@ -3138,6 +3149,13 @@
613=Revoke Authorization
614=Statement on account binding
615=After the authorization is revoked, all the devices associated with the brand in on Pro will be unbound, and the relevant use information and device value will also become invalid
616=Bind account
617=Residential status
618=To_Be_Debugged
619=Debugging
620=To_Be_Accepted
621=INITIAL_TATE
622=ACCEPTANCE
2532=Visitor Invitation Record
@@ -4400,6 +4418,13 @@
613=Revoke Authorization
614=Statement on account binding
615=After the authorization is revoked, all the devices associated with the brand in on Pro will be unbound, and the relevant use information and device value will also become invalid
616=Bind account
617=Residential status
618=To_Be_Debugged
619=Debugging
620=To_Be_Accepted
621=INITIAL_TATE
622=ACCEPTANCE
@@ -5652,6 +5677,13 @@
613=Revoke Authorization
614=Statement on account binding
615=After the authorization is revoked, all the devices associated with the brand in on Pro will be unbound, and the relevant use information and device value will also become invalid
616=Bind account
617=Residential status
618=To_Be_Debugged
619=Debugging
620=To_Be_Accepted
621=INITIAL_TATE
622=ACCEPTANCE
HDL-ON_Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.7" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202304071">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.7.1" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202304211">
    <uses-sdk android:minSdkVersion="26" android:targetSdkVersion="29" />
    <!--友盟-->
    <!--<uses-sdk android:minSdkVersion="8"></uses-sdk>-->
HDL-ON_iOS/Info.plist
@@ -98,9 +98,9 @@
    <key>UIStatusBarStyle</key>
    <string>UIStatusBarStyleLightContent</string>
    <key>CFBundleShortVersionString</key>
    <string>1.7</string>
    <string>1.7.1</string>
    <key>CFBundleVersion</key>
    <string>1.7</string>
    <string>1.7.1</string>
    <key>NSAppleMusicUsageDescription</key>
    <string>App needs to access your music library to connect to an external player to play music.</string>
    <key>NSLocationAlwaysUsageDescription</key>
HDL-ON_iOS/Resources/Language.ini
@@ -375,7 +375,7 @@
371=Can not use the function, please bind the gateway
372=Can not create the scene, please bind the gateway
373=Fail to add the floor
374=The residential data has been deleted, APP will automatically swift to another residence.
374=Residence has been delivered or deleted, APP will automatically swift to another residence.
375=The gateway is not connected to the server, fail to create the scene.
376=Can not enter special character
377=The whole residence
@@ -587,9 +587,9 @@
600=Add combined dimming
601=Please select two or more devices
602=My Home
603=   In order to protect your personal privacy rights, we hereby notify you and apply for explicit consent authorization. Please read it carefully
603=   Please read it carefully
604=    'On Pro Face Information Collection Protocol'
605=   If you agree to this agreement, please click the [Agree] button to indicate that you have understood and agreed to the face information collection agreement.
605=   If you agree to this agreement, please click the [Agree] button.
606=Account binding is successful.You can continue to complete the device association operation
607=Previous page
608=Next page
@@ -600,7 +600,13 @@
613=Revoke Authorization
614=Statement on account binding
615=After the authorization is revoked, all the devices associated with the brand in on Pro will be unbound, and the relevant use information and device value will also become invalid
616=Bind account
617=Residential status
618=To_Be_Debugged
619=Debugging
620=To_Be_Accepted
621=INITIAL_TATE
622=ACCEPTANCE
2532=Visitor Invitation Record
@@ -1150,9 +1156,6 @@
8512=Serial number
8513=Model
@@ -1647,7 +1650,7 @@
371=功能无法使用,请绑定网关
372=无法创建场景,请绑定网关
373=添加楼层失败。
374=住宅数据已被删除,APP将自动切换到另一住宅。
374=住宅已删除或已交付,APP将自动切换到另一住宅。
375=网关未连接服务器,无法创建场景。
376=无法输入特殊字符
377=全宅区域
@@ -1872,8 +1875,13 @@
613=撤回授权
614=关于账号绑定的声明
615=撤销授权后,该品牌关联在On Pro中的设备将全部被解绑,相关使用信息合设备值也将失效
616=绑定账号
617=住宅状态
618=待调试
619=调试中
620=待验收
621=初始态
622=验收
2532=访客邀请记录
@@ -2425,9 +2433,6 @@
8511=用户人员
8512=序列号
8513=型号
@@ -3144,6 +3149,13 @@
613=Revoke Authorization
614=Statement on account binding
615=After the authorization is revoked, all the devices associated with the brand in on Pro will be unbound, and the relevant use information and device value will also become invalid
616=Bind account
617=Residential status
618=To_Be_Debugged
619=Debugging
620=To_Be_Accepted
621=INITIAL_TATE
622=ACCEPTANCE
2532=Visitor Invitation Record
@@ -4406,6 +4418,13 @@
613=Revoke Authorization
614=Statement on account binding
615=After the authorization is revoked, all the devices associated with the brand in on Pro will be unbound, and the relevant use information and device value will also become invalid
616=Bind account
617=Residential status
618=To_Be_Debugged
619=Debugging
620=To_Be_Accepted
621=INITIAL_TATE
622=ACCEPTANCE
@@ -5658,6 +5677,13 @@
613=Revoke Authorization
614=Statement on account binding
615=After the authorization is revoked, all the devices associated with the brand in on Pro will be unbound, and the relevant use information and device value will also become invalid
616=Bind account
617=Residential status
618=To_Be_Debugged
619=Debugging
620=To_Be_Accepted
621=INITIAL_TATE
622=ACCEPTANCE
HDL_ON/Common/ImageUtlis.cs
@@ -181,7 +181,7 @@
        /// </summary>
        public byte[] GetImageDownloadUrl(string imageKey)
        {
            if (imageKey.StartsWith("https:"))
            if (imageKey.StartsWith("https:") || imageKey.StartsWith("http:"))
            {
                return HttpUtil.HttpsDownload(imageKey);
            }
HDL_ON/Common/R.cs
@@ -4,6 +4,36 @@
{
    public static class StringId
    {
        /// <summary>
        /// 验收
        /// </summary>
        public const int ACCEPTANCE = 622;
        /// <summary>
        /// 初始态
        /// </summary>
        public const int INITIAL_TATE = 621;
        /// <summary>
        /// 待验收
        /// </summary>
        public const int To_Be_Accepted = 620;
        /// <summary>
        /// 调试中
        /// </summary>
        public const int Debugging = 619;
        /// <summary>
        /// 待调试
        /// </summary>
        public const int To_Be_Debugged = 618;
        /// <summary>
        /// 住宅状态
        /// </summary>
        public const int HouseStatus = 617;
        /// <summary>
        /// 绑定账号
        /// </summary>
        public const int BindSubAccount = 616;
        /// <summary>
        /// 撤销授权后,该品牌关联在On Pro中的设备将全部被解绑,相关使用信息合设备值也将失效
        /// </summary>
HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -374,7 +374,7 @@
                            try
                            {
                                var topic = e.ApplicationMessage.Topic;
                                //MainPage.Log($"收到mqtt主题:{topic}");
                                MainPage.Log($"收到mqtt主题:{topic}");
                                //一端口主题处理
                                if (DB_ResidenceData.Instance.GatewayType == 0 && !DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
                                {
@@ -460,6 +460,7 @@
                                else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/appHomeRefresh/up")
                                {
                                    MainPage.Log("住宅数据刷新通知");
                                    System.Threading.Thread.Sleep(2000);
                                    new HttpServerRequest().GetHomePager();
                                }
                                //appRoomRefresh:房间数据刷新通知
HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -697,6 +697,20 @@
            }
        }
        /// <summary>
        /// 获取住宅交付链接
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew GetHouseDeliveryUrl()
        {
            var d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            var jsonString = HttpUtil.GetSignRequestJson(d);
            var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.APi_Post_GetHoserDeliverUrl, jsonString);
            return revertObj;
        }
        /// <summary>
        /// 获取网关信息
        /// </summary>
        public string GetGatewayInfo()
@@ -1042,6 +1056,22 @@
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_UpdateFace, requestJson);
        }
        /// <summary>
        /// 家庭成员绑定账号
        /// </summary>
        /// <param name="childId"></param>
        /// <param name="faceUrl"></param>
        /// <returns></returns>
        public ResponsePackNew SubChildBindAccount(string childId, string account)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            d.Add("childId", childId);
            d.Add("account", account);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_BindAccount, requestJson);
        }
        /// <summary>
        /// 修改住宅调试权限
HDL_ON/DAL/Server/IMessageCommon.cs
@@ -164,6 +164,7 @@
            stateCodeDic["14007"] = StringId.ControlFailure;
            //网关离线
            stateCodeDic["14005"] = StringId.GatewayOffline;
            stateCodeDic["124005"] = StringId.GatewayOffline;
            //设备离线
            stateCodeDic["14006"] = StringId.DeviceOffline;
HDL_ON/DAL/Server/NewAPI.cs
@@ -111,6 +111,11 @@
        /// </summary>
        public const string Api_Post_BindlingResidence = "/app/home/deliver";
        /// <summary>
        /// 获取住宅交付链接
        /// </summary>
        public const string APi_Post_GetHoserDeliverUrl = "/home-wisdom/app/home/obtainDeliveryUrl";
        /// <summary>
        /// 获取住宅分页
        /// </summary>
        public const string API_POST_Gethomepager = "/home-wisdom/app/home/list";
@@ -163,6 +168,10 @@
        /// </summary>
        public const string API_POST_Child_UpdateFace = "/home-wisdom/app/child/account/updateFace";
        /// <summary>
        /// 子账号绑定账号
        /// </summary>
        public const string API_POST_Child_BindAccount = "/home-wisdom/app/child/account/accountBind";
        /// <summary>
        /// 删除成员账号人脸信息
        /// </summary>
        public const string API_POST_Child_RemoveFace = "/home-wisdom/app/child/account/removeFace";
HDL_ON/Entity/ResponseEntity/RegionInfoRes.cs
@@ -88,8 +88,25 @@
        public double latitude;
        /// <summary>
        /// 交付状态
        /// To_Be_Debugged(0, "待调试"),
        /// Debugging(1, "调试中"),
        /// To_Be_Accepted(2, "待验收"),
        /// Completed(3, "调试完成"),
        /// WAIT_DELIVERED(3, "调试完成"),
        /// Delivered(4, "已交付"),
        /// INITIAL_TATE(5,"初始态"),
        /// ACCEPTANCE(6,"验收"),
        /// SECONDARY_DEBUGGIN(7,"二次调试"),
        /// </summary>
        public string deliverStatus;
        public string deliverStatus
        {
            get
            {
                return debugStatus;
            }
        }
        public string debugStatus;
        /// <summary>
        /// 住宅类型 Zigbee, Buspro, A
        /// </summary>
HDL_ON/Entity/Room.cs
@@ -504,6 +504,13 @@
                        functions.Add(f);
                    }
                }
                foreach(var g in FunctionList.List.groupControls)
                {
                    if (g.roomIds.Contains(roomId) && roomId != null)
                    {
                        functions.Add(g);
                    }
                }
            }
            return functions;
        }
HDL_ON/UI/MainPage.cs
@@ -26,7 +26,7 @@
        /// <summary>
        /// 版本号
        /// </summary>
        public static string VersionString = "1.7.0";
        public static string VersionString = "1.7.1";
        ///// <summary>
        ///// 客户端类型
        ///// </summary>
HDL_ON/UI/UI0-Public/PublicAssmebly.cs
@@ -225,6 +225,8 @@
            };
            EditParaterEvent(btnConfirm, errorId_IsNullOrEmpty, errorId_ContainsPar, baseList, etParater, callBackAction,
                contentView, btnLine, btnCancel, editView, dialog, titleId);
            etParater.Foucs = true;
        }
        /// <summary>
HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -236,6 +236,7 @@
                    //etAccount.Text = "18321091245";
                    //etAccount.Text = "13751916353";
                    etAccount.Text = "13549566666";
                    etAccount.Text = "18316672920";
                }
                else
                {
HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -1058,7 +1058,7 @@
                if (//SPK.CurtainSpkList().Contains(function.spk))
                    function.spk == SPK.CurtainRoller || function.spk == SPK.CurtainShades ||
                    function.spk == SPK.CurtainDream ||
                    function.spk == SPK.CurtainSwitch || function.spk == SPK.CurtainTrietex )
                    function.spk == SPK.CurtainSwitch || function.spk == SPK.CurtainTrietex)
                {
                    btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainIcon.png";
                    btnIcon.SelectedImagePath = "FunctionIcon/Curtain/CurtainOnIcon.png";
@@ -1143,7 +1143,7 @@
                            btnPower.IsSelected = true;
                            status = "on";
                        }
                       function.SetAttrState("on_off", status);
                        function.SetAttrState("on_off", status);
                        Dictionary<string, string> dic = new Dictionary<string, string>();
                        dic.Add("on_off", status);
                        Music.SendMethod.Current.SendControlCommand(function, dic);
@@ -1157,7 +1157,7 @@
                    Button btnUp;
                    btnUp = new Button()
                    {
                        X = Application.GetRealWidth(84+3),
                        X = Application.GetRealWidth(84 + 3),
                        Y = Application.GetRealWidth(89),
                        Width = Application.GetRealWidth(38),
                        Height = Application.GetRealWidth(38),
@@ -1182,7 +1182,7 @@
                    LoadEvent_ControlClothesHanger(function, btnUp, btnDown);
                }
                else if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose)
                {
                    //btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}.png";
@@ -1207,8 +1207,13 @@
                }
                else if (function.spk == SPK.VideoDoorLock)
                {
                    btnIcon.UnSelectedImagePath =UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.GetVideoDoorLockIcon(UI2.FuntionControlView.VideoDoorLock.CommonMethod.Comerom.collect);
                    btnIcon.UnSelectedImagePath = UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.GetVideoDoorLockIcon(UI2.FuntionControlView.VideoDoorLock.CommonMethod.Comerom.collect);
                    //btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                }
                else if (function.spk == SPK.GroupControl)
                {
                    btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/lightswitch_blue.png";
                    btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/lightswitch_white.png";
                }
                else
                {
@@ -1223,16 +1228,8 @@
                        SelectedImagePath = "Public/SwitchOn.png",
                    };
                    view.AddChidren(btnSwitch);
                    if (function.spk == SPK.GroupControl)
                    {
                        btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/lightswitch_blue.png";
                        btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/lightswitch_white.png";
                    }
                    else
                    {
                        btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                        btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
                    }
                    btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                    btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
                    LoadEvent_SwitchFunction(function, btnSwitch);
                }
                //取消收藏事件
HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -199,6 +199,7 @@
            {
                btnIcon.UnSelectedImagePath =UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.GetVideoDoorLockIcon(UI2.FuntionControlView.VideoDoorLock.CommonMethod.Comerom.function);
            }
            else if(function.spk == SPK.GroupControl) { }
            else if (function.spk == SPK.HvacCac)
            {
                var btnHumidityIcon = new Button()
HDL_ON/UI/UI2/2-Classification/FunctionPage.cs
@@ -141,8 +141,8 @@
            if (titleId == StringId.Lights)
            {
                functionList.AddRange(FunctionList.List.GetLightList());
                functionList.AddRange(FunctionList.List.groupControls);
                functionList.AddRange(FunctionList.List.GetLightList());
                var lightScene = FunctionList.List.scenes.FindAll((obj) => obj.sceneType == SceneType.LightScene);
@@ -242,15 +242,15 @@
                            showCount = 0;
                            functionListView.RemoveAll();
                        }
                        int i = 0;
                        foreach (var function in showList)
                        for(var i = 0;i<50;i++)
                        //foreach (var function in showList)
                        {
                            i++;
                            if (i > 50)
                            showCount++;
                            if (showCount >= showList.Count)
                            {
                                break;
                            }
                            showCount++;
                            var function = showList[showCount];
                            if (function.spk == SPK.SensorDryContact || function.spk == SPK.SensorDryContact2)
                            {
HDL_ON/UI/UI2/4-PersonalCenter/AboutOn/AboutOnPage.cs
@@ -47,6 +47,7 @@
        public void LoadPage()
        {
            new TopViewDiv(bodyView, Language.StringByID(StringId.About)).LoadTopView();
            this.BackgroundColor = CSS_Color.MainBackgroundColor;
            Button btnOnIcon = new Button()
            {
HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs
@@ -90,7 +90,7 @@
            var contentView = new FrameLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(550),
                Height = Application.GetRealHeight(667-64),
            };
            bodyView.AddChidren(contentView);
@@ -105,7 +105,7 @@
            Button btnGroupNameTitle = new Button()
            {
                X = Application.GetRealWidth(16),
                Width = Application.GetRealWidth(78),
                Width = Application.GetRealWidth(178),
                TextID = StringId.GroupNmae,
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = CSS_FontSize.SubheadingFontSize,
@@ -253,13 +253,13 @@
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextID = StringId.SelectedAll,
            };
            if (groupControlLightList.Count > 0)
            if (groupControlLightList.Count == lightList.Count)
            {
                btnChooseAll.TextID = StringId.Cancel;
            }
            roomFloorChangeView.AddChidren(btnChooseAll);
            btnChooseAll.MouseUpEventHandler = (sender, e) => {
                if (groupControlLightList.Count > 0)
                if (groupControlLightList.Count == lightList.Count)
                {
                    groupControlLightList.Clear();
                    btnChooseAll.TextID = StringId.SelectAll;
@@ -267,11 +267,33 @@
                }
                else
                {
                    groupControlLightList.Clear();
                    groupControlLightList.AddRange(lightList);
                    btnChooseAll.TextID = StringId.Cancel;
                    btnConfrim.IsSelected = true;
                }
                LoadLightRow(lightList);
                for (int i = 0; i < functionListView.ChildrenCount; i++)
                {
                    var view = functionListView.GetChildren(i);
                    if (view.GetType() == typeof(LightRow))
                    {
                        if (view.Tag != null && view.Tag.ToString() == "row")
                        {
                            for (int j = 0; j < (view as FrameLayout).ChildrenCount; j++)
                            {
                                var btn = (view as FrameLayout).GetChildren(j);
                                if (btn.GetType() == typeof(Button))
                                {
                                    if (btn.Tag != null && btn.Tag.ToString() == "ChooseIcon")
                                    {
                                        (btn as Button).IsSelected = groupControlLightList.Count == lightList.Count;
                                    }
                                }
                            }
                        }
                    }
                }
            };
            #endregion
@@ -360,8 +382,8 @@
                                {
                                    try
                                    {
                                        var addTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<GroupControl>(pack.Data.ToString());
                                        FunctionList.List.groupControls.Add(addTemp);
                                        var addTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GroupControl>>(pack.Data.ToString());
                                        FunctionList.List.groupControls.AddRange(addTemp);
                                    }
                                    catch (Exception ex)
                                    {
@@ -413,6 +435,11 @@
                            {
                                if (pack.Code == StateCode.SUCCESS)
                                {
                                    var temp = FunctionList.List.groupControls.Find((obj) => obj.userDeviceGroupControlId == groupControl.userDeviceGroupControlId);
                                    if(temp!= null)
                                    {
                                        temp = groupControl;
                                    }
                                    backActon?.Invoke();
                                    this.RemoveFromParent();
                                }
@@ -484,6 +511,10 @@
                                    groupControl = groupControlTemps[0];
                                    Application.RunOnMainThread(() =>
                                    {
                                        if (groupControl.sids.Count == lightList.Count)
                                        {
                                            btnChooseAll.TextID = StringId.Cancel;
                                        }
                                        LoadLightRow(lightList);
                                    });
                                }
@@ -534,15 +565,16 @@
                            showCount = 0;
                            functionListView.RemoveAll();
                        }
                        int i = 0;
                        foreach (var function in functions)
                        for(var i =0;i<100;i++)
                        //foreach (var function in functions)
                        {
                            i++;
                            if (i > 100)
                            showCount++;
                            if (showCount >= functions.Count)
                            {
                                break;
                            }
                            showCount++;
                            var function = functions[showCount];
                            var functionDiv = new LightRow(function)
                            {
                                Gravity = Gravity.CenterHorizontal,
@@ -550,7 +582,7 @@
                                BorderColor = 0x00FFFFFF,
                                BorderWidth = 1,
                                BackgroundColor = CSS_Color.MainBackgroundColor,
                                Tag = function.spk + function.sid
                                Tag = "row"
                            };
                            functionDiv.AddChidren(new Button()
                            {
@@ -563,7 +595,7 @@
                            Action setAction = () =>
                            {
                                if (groupControlLightList.Count > 0)
                                if (groupControlLightList.Count > 1)
                                {
                                    btnConfrim.IsSelected = true;
                                }
@@ -571,6 +603,20 @@
                                {
                                    btnConfrim.IsSelected = false;
                                }
                                if (groupControlLightList.Count == functions.Count)
                                {
                                    if (!btnChooseAll.IsSelected)
                                    {
                                        btnChooseAll.IsSelected = true;
                                    }
                                }
                                else
                                {
                                    if (btnChooseAll.IsSelected)
                                    {
                                        btnChooseAll.IsSelected = false;
                                    }
                                }
                            };
                            if (groupControl.sids.Find((obj) => obj.sid == function.sid) != null)
                            {
HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs
@@ -39,7 +39,7 @@
            contentView = new VerticalScrolViewLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(550),
                Height = Application.GetRealHeight(667 - 64),
                BackgroundColor = CSS_Color.MainBackgroundColor,
            };
            bodyView.AddChidren(contentView);
@@ -185,7 +185,16 @@
                    EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
                        var page = new AddGroupControlPage(groupControl,
                           () => {
                               try
                               {
                                   Application.RunOnMainThread(() =>
                                   {
                                       btnFunctionLocationInfo.Text = groupControl.GetRoomListName();
                                   });
                               }catch(Exception ex)
                               {
                                   MainPage.Log($"刷新群控房间信息异常:{ex.Message}");
                               }
                           });
                        MainPage.BasePageView.AddChidren(page);
                        page.LoadPage();
HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/GroupChooseRoomPage.cs
@@ -62,9 +62,7 @@
            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
            new TopViewDiv(bodyView, Language.StringByID(StringId.CombinedDimming)).LoadTopView();
            var contentView = new VerticalScrolViewLayout()
            contentView = new VerticalScrolViewLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(667 - 64),
@@ -176,41 +174,50 @@
        /// </summary>
        void LoadMethod_AllElection()
        {
            btnAllRoomText.MouseUpEventHandler += (sender, e) =>
            btnAllRoomText.MouseUpEventHandler = (sender, e) =>
            {
                btnChooseAll.IsSelected = !btnChooseAll.IsSelected;
                for (int i = 0; i < contentView.ChildrenCount; i++)
                try
                {
                    var view = contentView.GetChildren(i);
                    if (view.GetType() == typeof(FrameLayout))
                    btnChooseAll.IsSelected = !btnChooseAll.IsSelected;
                    for (int i = 0; i < contentView.ChildrenCount; i++)
                    {
                        if (view.Tag != null && view.Tag.ToString() == "row")
                        var view = contentView.GetChildren(i);
                        if (view.GetType() == typeof(FrameLayout))
                        {
                            for (int j = 0; j < (view as FrameLayout).ChildrenCount; j++)
                            if (view.Tag != null && view.Tag.ToString() == "row")
                            {
                                var btn = (view as FrameLayout).GetChildren(j);
                                if (btn.GetType() == typeof(Button))
                                for (int j = 0; j < (view as FrameLayout).ChildrenCount; j++)
                                {
                                    if (btn.Tag != null && btn.Tag.ToString() == "ChooseIcon")
                                    var btn = (view as FrameLayout).GetChildren(j);
                                    if (btn.GetType() == typeof(Button))
                                    {
                                        (btn as Button).IsSelected = btnChooseAll.IsSelected;
                                        if (btn.Tag != null && btn.Tag.ToString() == "ChooseIcon")
                                        {
                                            (btn as Button).IsSelected = btnChooseAll.IsSelected;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                function.roomIds.Clear();
                if (btnChooseAll.IsSelected)
                {
                    foreach (var room in Entity.SpatialInfo.CurrentSpatial.RoomList)
                    function.roomIds.Clear();
                    if (btnChooseAll.IsSelected)
                    {
                        if (btnChooseAll.IsSelected)
                        foreach (var room in Entity.SpatialInfo.CurrentSpatial.RoomList)
                        {
                            function.roomIds.Add(room.roomId);
                            if (btnChooseAll.IsSelected)
                            {
                                function.roomIds.Add(room.roomId);
                            }
                        }
                    }
                }catch(Exception ex)
                {
                    MainPage.Log($"GroupChooseRoom 全选按钮事件 error : {ex.Message}");
                    Application.RunOnMainThread(() => {
                        this.RemoveFromParent();
                    });
                }
            };
        }
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFaceManagementPage.cs
@@ -109,13 +109,9 @@
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.TextualColor,
                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                    Text = "    为保护您的个人隐私权益,特向您通知并申请明确同意授权。请你仔细阅读",
                    TextID = StringId.FaceProTipText1,
                    IsMoreLines = true,
                };
                if (Language.CurrentLanguage != "Chinese")
                {
                    btnMsg.Text = "   In order to protect your personal privacy rights, we hereby notify you and apply for explicit consent authorization. Please read it carefully";
                }
                contentView.AddChidren(btnMsg);
                Button btnMsg1 = new Button()
@@ -127,13 +123,9 @@
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.MainColor,
                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                    Text = "    《On Pro人脸信息采集协议》",
                    TextID = StringId.FaceProTipText2,
                    IsMoreLines = true,
                };
                if (Language.CurrentLanguage != "Chinese")
                {
                    btnMsg1.Text = "    'On Pro Face Information Collection Protocol'";
                }
                contentView.AddChidren(btnMsg1);
@@ -146,13 +138,9 @@
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.TextualColor,
                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                    Text = "    若同意该协议,请点击【同意】按键,表示您已经理解并同意人脸信息采集协议。",
                    TextID = StringId.FaceProTipText3,
                    IsMoreLines = true,
                };
                if (Language.CurrentLanguage != "Chinese")
                {
                    btnMsg2.Text = "   If you agree to this agreement, please click the [Agree] button to indicate that you have understood and agreed to the face information collection agreement.";
                }
                contentView.AddChidren(btnMsg2);
                Button btnLine = new Button()
@@ -256,6 +244,7 @@
                            {
                                Application.RunOnMainThread(() =>
                                {
                                    memberInfo.userFaceUrl = "";
                                    btnAddFace.ImageBytes = null;
                                    btnAddFace.UnSelectedImagePath = "PersonalCenter/FacePassage/FaceIcon.png";
                                    btnDeleteFaceDate.Enable = btnDeleteFaceDate.Visible = false;
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs
@@ -178,6 +178,13 @@
                    Width = Application.GetRealWidth(311),
                    BackgroundColor = CSS_Color.DividingLineColor,
                });
                if(string.IsNullOrEmpty(memberInfo.Account))
                {
                    LoadView_BindAccount(memberInfo, btnMemberEmail, btnMemberName, memberHeadImageView);
                }
                #endregion
                #region 昵称信息
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPageBLL.cs
@@ -227,6 +227,75 @@
            btn2.MouseUpEventHandler = eventHandler;
        }
        void LoadView_BindAccount(ResidenceMemberInfo mInfo,Button btnShowText,Button btnClick,ImageView ivClick)
        {
            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
            {
                if (!string.IsNullOrEmpty(btnShowText.Text))
                {
                    return;
                }
                Action<string> callBack = (str) =>
                {
                    if (string.IsNullOrEmpty(str))
                    {
                        new Tip()
                        {
                            CloseTime = 1,
                            Text = Language.StringByID(StringId.PleaseEnterContent),
                            Direction = AMPopTipDirection.None,
                        }.Show(bodyView);
                        return;
                    }
                    var waitPage = new Loading();
                    bodyView.AddChidren(waitPage);
                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
                    new Thread(() =>
                    {
                        try
                        {
                            var responsePack = new HttpServerRequest().SubChildBindAccount(mInfo.id, str);
                            if (responsePack.Code.ToUpper() == StateCode.SUCCESS)
                            {
                                Application.RunOnMainThread(() =>
                                {
                                    btnShowText.Text = str;
                                });
                                //mInfo.Account = str;
                            }
                            else
                            {
                                IMessageCommon.Current.ShowErrorInfoAlter(responsePack.Code);
                            }
                        }
                        catch (Exception ex)
                        {
                            MainPage.Log($"update user name error : {ex.Message}");
                        }
                        finally
                        {
                            Application.RunOnMainThread(() =>
                            {
                                if (waitPage != null)
                                {
                                    waitPage.RemoveFromParent();
                                    waitPage = null;
                                }
                            });
                        }
                    })
                    { IsBackground = true }.Start();
                };
                new PublicAssmebly().LoadDialog_EditParater(StringId.BindSubAccount, "", callBack, StringId.NicknameCannotBeEmpty, 0, new List<string>());
            };
            btnShowText.MouseUpEventHandler = eventHandler;
            btnClick.MouseUpEventHandler = eventHandler;
            ivClick.MouseUpEventHandler = eventHandler;
        }
        /// <summary>
        /// 修改创建场景权限
        /// </summary>
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
@@ -616,7 +616,8 @@
                            TextID = StringId.CombinedDimming,
                            TextAlignment = TextAlignment.Center,
                            TextColor = CSS_Color.FirstLevelTitleColor,
                            TextSize = CSS_FontSize.PromptFontSize_FirstLevel
                            TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                            IsMoreLines = true,
                        };
                        faceManagementView.AddChidren(btnFaceManagementText);
HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/DeliveryQrCodePage.cs
@@ -20,7 +20,6 @@
        /// <summary>
        /// 
        /// </summary>
        /// <param name="isStartCheckResidenceThread">是否开启住宅监听线程,没有住宅的时候别人扫码添加你为成员的时候调用</param>
        public void LoadPage()
        {
            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
@@ -56,90 +55,52 @@
            };
            bodyView.AddChidren(btnHomeName);
            //二维码
            int codeWidth = Application.GetRealWidth(266);
            ImageView codeImage = new ImageView()
            {
                Gravity = Gravity.Center,
                Height = codeWidth,
                Width = codeWidth,
                ImageBytes = Scan.BytesFromText(Entity.DB_ResidenceData.Instance.CurrentRegion.deliverUrl,codeWidth, codeWidth),
            };
            backView.AddChidren(codeImage);
            ////二维码中心头像
            //int imageWidth = Application.GetMinRealAverage(60);
            //int imageX = codeImage.X + (codeWidth - imageWidth) / 2;
            //int imageY = codeImage.Y + (codeWidth - imageWidth) / 2;
            //ImageView headImage2 = new ImageView()
            //{
            //    X = imageX,
            //    Y = imageY,
            //    Width = imageWidth,
            //    Height = imageWidth,
            //    ImagePath = UserInfo.Current.headImagePagePath,
            //    BorderColor = CSS_Color.MainBackgroundColor,
            //    BorderWidth = (uint)Application.GetRealWidth(2),
            //    Radius = (uint)Application.GetMinRealAverage(30),
            //};
            //backView.AddChidren(headImage2);
        }
        /// <summary>
        /// 开启检测住宅是否已经添加了的线程
        /// </summary>
        private void StartCheckResidenceThread()
        {
            //获取住宅列表的参数
            var requestJson = DAL.Server.HttpUtil.GetSignRequestJson(new DAL.Server.GetHomeListObj() { homeType = HomeTypeEnum.ALL.ToString() });
            new System.Threading.Thread(() =>
            {
                while (this.Parent != null)
            var waitPage = new Loading();
            bodyView.AddChidren(waitPage);
            waitPage.Start("");
            new System.Threading.Thread(() => {
                try
                {
                    System.Threading.Thread.Sleep(4000);
                    if (this.Parent == null)
                    var pack = Common.ApiUtlis.Ins.HttpRequest.GetHouseDeliveryUrl();
                    if (pack != null)
                    {
                        break;
                    }
                    //访问云端获取列表
                    var resultObj = DAL.Server.HttpUtil.RequestHttpsPost(DAL.Server.NewAPI.API_POST_Gethomepager, requestJson);
                    if (resultObj.Code == DAL.Server.StateCode.SUCCESS)
                    {
                        var homeList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RegionInfoRes>>(resultObj.Data.ToString());
                        if (homeList == null || homeList.Count == 0)
                        if (pack.Code == DAL.Server.StateCode.SUCCESS)
                        {
                            //如果还没有住宅的话,继续下一次检测
                            continue;
                            var deliveryUrl = pack.Data.ToString();
                            Application.RunOnMainThread(() => {
                                //二维码
                                int codeWidth = Application.GetRealWidth(266);
                                ImageView codeImage = new ImageView()
                                {
                                    Gravity = Gravity.Center,
                                    Height = codeWidth,
                                    Width = codeWidth,
                                    ImageBytes = Scan.BytesFromText(deliveryUrl, codeWidth, codeWidth),
                                };
                                backView.AddChidren(codeImage);
                            });
                        }
                        //调用On原来的方法,刷新住宅列表及其缓存
                        var pm = new DAL.Server.HttpServerRequest();
                        pm.GetHomePager();
                    }
                }
                catch (Exception ex)
                {
                    MainPage.Log($"获取住宅交付链接异常:{ex.Message}");
                }
                finally
                {
                    if(waitPage!= null)
                    {
                        Application.RunOnMainThread(() =>
                        {
                            if (this.Parent == null)
                            {
                                return;
                            }
                            //跳转页面----
                            MainPage.GoUserPage(true, false, () =>
                            {
                                //显示欢迎回家的弹窗界面
                                var form = new WellcomToHomeForm();
                                form.ShowForm();
                            });
                            waitPage.RemoveFromParent();
                        });
                        break;
                    }
                }
            })
            { IsBackground = true }.Start();
        }
    }
}
HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePage.cs
@@ -274,121 +274,124 @@
            };
            roomManagementRow.AddChidren(btnRoomManagementSkinIcon);
            #endregion
            if (DB_ResidenceData.Instance.CurrentRegion.deliverStatus == "PAID")
            //已经交付
            if (DB_ResidenceData.Instance.CurrentRegion.deliverStatus == "Delivered" || DB_ResidenceData.Instance.CurrentRegion.deliverStatus == "SECONDARY_DEBUGGIN")
            {
                #region 管理员权限迁移
                contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8) });
                administratorPermissionMigrationRow = new FrameLayout()
                {
                    Height = Application.GetRealHeight(65),
                    BackgroundColor = CSS_Color.MainBackgroundColor,
                };
                if (DB_ResidenceData.Instance.CurrentRegion.isOtherShare == false)
                {
                    //是主账号本人才能显示这个菜单
                    contentView.AddChidren(administratorPermissionMigrationRow);
                }
                btnAdministratorPermissionMigrationTitle = new Button()
                if (DB_ResidenceData.Instance.CurrentRegion.deliverStatus != "SECONDARY_DEBUGGIN")
                {
                    X = Application.GetRealWidth(16),
                    Y = Application.GetRealHeight(10),
                    Width = Application.GetRealWidth(308),
                    Height = Application.GetRealHeight(24),
                    TextID = StringId.AdministratorPermissionMigration,
                    TextAlignment = TextAlignment.CenterLeft,
                    TextSize = CSS_FontSize.SubheadingFontSize,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                };
                administratorPermissionMigrationRow.AddChidren(btnAdministratorPermissionMigrationTitle);
                btnAdministratorPermissionMigrationExplan = new Button()
                {
                    X = Application.GetRealWidth(16),
                    Y = btnAdministratorPermissionMigrationTitle.Bottom,
                    Width = Application.GetRealWidth(308),
                    Height = Application.GetRealHeight(21),
                    TextID = StringId.AdministratorPermissionMigrationExPlan,
                    TextAlignment = TextAlignment.CenterLeft,
                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                    TextColor = CSS_Color.PromptingColor1,
                };
                administratorPermissionMigrationRow.AddChidren(btnAdministratorPermissionMigrationExplan);
                btnAdministratorPermissionMigrationSkinIcon = new Button()
                {
                    X = Application.GetRealWidth(343),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetMinRealAverage(16),
                    Height = Application.GetMinRealAverage(16),
                    UnSelectedImagePath = "Public/RightIcon.png",
                };
                administratorPermissionMigrationRow.AddChidren(btnAdministratorPermissionMigrationSkinIcon);
                administratorPermissionMigrationRow.AddChidren(
                    new Button()
                    #region 管理员权限迁移
                    contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8) });
                    administratorPermissionMigrationRow = new FrameLayout()
                    {
                        Gravity = Gravity.CenterHorizontal,
                        Y = Application.GetRealHeight(64),
                        Height = Application.GetRealHeight(1),
                        Width = Application.GetRealWidth(343),
                        BackgroundColor = CSS_Color.DividingLineColor,
                    });
                #endregion
                        Height = Application.GetRealHeight(65),
                        BackgroundColor = CSS_Color.MainBackgroundColor,
                    };
                    if (DB_ResidenceData.Instance.CurrentRegion.isOtherShare == false)
                    {
                        //是主账号本人才能显示这个菜单
                        contentView.AddChidren(administratorPermissionMigrationRow);
                    }
                #region 过户
                transferRow = new FrameLayout()
                {
                    Y = administratorPermissionMigrationRow.Bottom,
                    Height = Application.GetRealHeight(65),
                    BackgroundColor = CSS_Color.MainBackgroundColor,
                };
                //有网关才能过户
                if (DB_ResidenceData.Instance.HomeGateway != null && string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.gatewayId) == false
                    && DB_ResidenceData.Instance.CurrentRegion.isOtherShare == false)
                {
                    contentView.AddChidren(transferRow);
                    btnAdministratorPermissionMigrationTitle = new Button()
                    {
                        X = Application.GetRealWidth(16),
                        Y = Application.GetRealHeight(10),
                        Width = Application.GetRealWidth(308),
                        Height = Application.GetRealHeight(24),
                        TextID = StringId.AdministratorPermissionMigration,
                        TextAlignment = TextAlignment.CenterLeft,
                        TextSize = CSS_FontSize.SubheadingFontSize,
                        TextColor = CSS_Color.FirstLevelTitleColor,
                    };
                    administratorPermissionMigrationRow.AddChidren(btnAdministratorPermissionMigrationTitle);
                    btnAdministratorPermissionMigrationExplan = new Button()
                    {
                        X = Application.GetRealWidth(16),
                        Y = btnAdministratorPermissionMigrationTitle.Bottom,
                        Width = Application.GetRealWidth(308),
                        Height = Application.GetRealHeight(21),
                        TextID = StringId.AdministratorPermissionMigrationExPlan,
                        TextAlignment = TextAlignment.CenterLeft,
                        TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                        TextColor = CSS_Color.PromptingColor1,
                    };
                    administratorPermissionMigrationRow.AddChidren(btnAdministratorPermissionMigrationExplan);
                    btnAdministratorPermissionMigrationSkinIcon = new Button()
                    {
                        X = Application.GetRealWidth(343),
                        Gravity = Gravity.CenterVertical,
                        Width = Application.GetMinRealAverage(16),
                        Height = Application.GetMinRealAverage(16),
                        UnSelectedImagePath = "Public/RightIcon.png",
                    };
                    administratorPermissionMigrationRow.AddChidren(btnAdministratorPermissionMigrationSkinIcon);
                    administratorPermissionMigrationRow.AddChidren(
                        new Button()
                        {
                            Gravity = Gravity.CenterHorizontal,
                            Y = Application.GetRealHeight(64),
                            Height = Application.GetRealHeight(1),
                            Width = Application.GetRealWidth(343),
                            BackgroundColor = CSS_Color.DividingLineColor,
                        });
                    #endregion
                    #region 过户
                    transferRow = new FrameLayout()
                    {
                        Y = administratorPermissionMigrationRow.Bottom,
                        Height = Application.GetRealHeight(65),
                        BackgroundColor = CSS_Color.MainBackgroundColor,
                    };
                    //有网关才能过户
                    if (DB_ResidenceData.Instance.HomeGateway != null && string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.gatewayId) == false
                        && DB_ResidenceData.Instance.CurrentRegion.isOtherShare == false)
                    {
                        contentView.AddChidren(transferRow);
                    }
                    btnTransferTitle = new Button()
                    {
                        X = Application.GetRealWidth(16),
                        Y = Application.GetRealHeight(10),
                        Width = Application.GetRealWidth(308),
                        Height = Application.GetRealHeight(24),
                        TextID = StringId.Transfer,
                        TextAlignment = TextAlignment.CenterLeft,
                        TextSize = CSS_FontSize.SubheadingFontSize,
                        TextColor = CSS_Color.FirstLevelTitleColor,
                    };
                    transferRow.AddChidren(btnTransferTitle);
                    btnTrasferExplan = new Button()
                    {
                        X = Application.GetRealWidth(16),
                        Y = btnTransferTitle.Bottom,
                        Width = Application.GetRealWidth(308),
                        Height = Application.GetRealHeight(21),
                        TextID = StringId.TransferExPlan,
                        TextAlignment = TextAlignment.CenterLeft,
                        TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                        TextColor = CSS_Color.PromptingColor1,
                    };
                    transferRow.AddChidren(btnTrasferExplan);
                    btnTrasferSkinIcon = new Button()
                    {
                        X = Application.GetRealWidth(343),
                        Gravity = Gravity.CenterVertical,
                        Width = Application.GetMinRealAverage(16),
                        Height = Application.GetMinRealAverage(16),
                        UnSelectedImagePath = "Public/RightIcon.png",
                    };
                    transferRow.AddChidren(btnTrasferSkinIcon);
                    #endregion
                }
                btnTransferTitle = new Button()
                {
                    X = Application.GetRealWidth(16),
                    Y = Application.GetRealHeight(10),
                    Width = Application.GetRealWidth(308),
                    Height = Application.GetRealHeight(24),
                    TextID = StringId.Transfer,
                    TextAlignment = TextAlignment.CenterLeft,
                    TextSize = CSS_FontSize.SubheadingFontSize,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                };
                transferRow.AddChidren(btnTransferTitle);
                btnTrasferExplan = new Button()
                {
                    X = Application.GetRealWidth(16),
                    Y = btnTransferTitle.Bottom,
                    Width = Application.GetRealWidth(308),
                    Height = Application.GetRealHeight(21),
                    TextID = StringId.TransferExPlan,
                    TextAlignment = TextAlignment.CenterLeft,
                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                    TextColor = CSS_Color.PromptingColor1,
                };
                transferRow.AddChidren(btnTrasferExplan);
                btnTrasferSkinIcon = new Button()
                {
                    X = Application.GetRealWidth(343),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetMinRealAverage(16),
                    Height = Application.GetMinRealAverage(16),
                    UnSelectedImagePath = "Public/RightIcon.png",
                };
                transferRow.AddChidren(btnTrasferSkinIcon);
                #endregion
                #region 调试权限
                contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8) });
@@ -452,12 +455,11 @@
                #endregion
                LoadEvent_SkipAdminMigrationConfirmPage();
                LoadEvent_SkipTransferConfirmPage();
            }
            else
            //调试完成  才能加载二维码
            else if (DB_ResidenceData.Instance.CurrentRegion.deliverStatus == "WAIT_DELIVERED")
            {
                #region 交付二维码
                contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8) });
@@ -479,7 +481,7 @@
                };
                deliveryQRcodeRow.AddChidren(btnDeliveryQRcodeTitle);
                var btnDeliveryQRcodeRightIcon = new Button()
                {
                    X = Application.GetRealWidth(343),
@@ -491,7 +493,8 @@
                deliveryQRcodeRow.AddChidren(btnDeliveryQRcodeRightIcon);
                EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
                EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
                {
                    var skipPage = new DeliveryQrCodePage();
                    MainPage.BasePageView.AddChidren(skipPage);
                    skipPage.LoadPage();
@@ -502,6 +505,55 @@
                btnDeliveryQRcodeRightIcon.MouseUpEventHandler = eventHandler;
                #endregion
            }
            else
            {
                #region 房屋状态提示
                contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8) });
                var houseStatusTipRow = new FrameLayout()
                {
                    Height = Application.GetRealHeight(50),
                    BackgroundColor = CSS_Color.MainBackgroundColor,
                };
                contentView.AddChidren(houseStatusTipRow);
                var btnHouseStatusTipTitle = new Button()
                {
                    X = Application.GetRealWidth(16),
                    Width = Application.GetRealWidth(308),
                    TextID = StringId.HouseStatus,
                    TextAlignment = TextAlignment.CenterLeft,
                    TextSize = CSS_FontSize.SubheadingFontSize,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                };
                houseStatusTipRow.AddChidren(btnHouseStatusTipTitle);
                switch (DB_ResidenceData.Instance.CurrentRegion.deliverStatus)
                {
                    case "To_Be_Debugged"://待调试
                        btnHouseStatusTipTitle.Text += Language.StringByID(StringId.To_Be_Debugged);
                        break;
                    case "Debugging"://调试中
                        btnHouseStatusTipTitle.Text += Language.StringByID(StringId.Debugging);
                        break;
                    case "INITIAL_TATE"://初始态
                        btnHouseStatusTipTitle.Text += Language.StringByID(StringId.INITIAL_TATE);
                        break;
                    case "ACCEPTANCE"://验收
                        btnHouseStatusTipTitle.Text += Language.StringByID(StringId.ACCEPTANCE);
                        break;
                    case "To_Be_Accepted"://待验收
                        btnHouseStatusTipTitle.Text += Language.StringByID(StringId.To_Be_Accepted);
                        break;
                    default:
                        btnHouseStatusTipTitle.Text += Language.StringByID(StringId.INITIAL_TATE);
                        break;
                }
                #endregion
            }
            LoadEventList();
        }
    }
HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage.cs
@@ -122,13 +122,38 @@
            int attrViewHight = Application.GetRealHeight(18 + 22);
            //只有继电器
            if (!hadDimming && !hadCCT && !hadRGB)
            {
                attrViewHight += Application.GetRealHeight(50);
                if (hadRGB)
                {
                    attrViewHight += Application.GetRealHeight(248);
                    hadDimming = true;
                }
                if (hadCCT)
                {
                    attrViewHight += Application.GetRealHeight(75 + 11);
                    hadDimming = true;
                }
                if (hadDimming)
                {
                    attrViewHight += Application.GetRealHeight(54 + 11);
                }
                attrView.Height = attrViewHight;
                contentView.AddChidren(attrView);
                attrView.AddChidren(new Button() { Height = Application.GetRealHeight(18) });
                if (hadDimming)
                {
                    LoadDimmingAttrView(attrView);
                }
                if (hadCCT)
                {
                    LoadCctAttrView(attrView);
                }
                if (hadRGB)
                {
                    LoadRgbAttrView(attrView);
                }
                var view = new FrameLayout()
                {
@@ -188,42 +213,7 @@
                    group.Control(d);
                };
            }
            else
            {
                if (hadRGB)
                {
                    attrViewHight += Application.GetRealHeight(248);
                    hadDimming = true;
                }
                if (hadCCT)
                {
                    attrViewHight += Application.GetRealHeight(54 + 11);
                    hadDimming = true;
                }
                if (hadDimming)
                {
                    attrViewHight += Application.GetRealHeight(54 + 11);
                }
                attrView.Height = attrViewHight;
                contentView.AddChidren(attrView);
                attrView.AddChidren(new Button() { Height = Application.GetRealHeight(18) });
                if (hadDimming)
                {
                    LoadDimmingAttrView(attrView);
                }
                if (hadCCT)
                {
                    LoadCctAttrView(attrView);
                }
                if (hadRGB)
                {
                    LoadRgbAttrView(attrView);
                }
            }
            contentView.Height = Application.GetRealHeight(52 + 44) + attrViewHight;
            contentView.Gravity = Gravity.Center;
@@ -352,7 +342,7 @@
            #region 色温
            var cctView = new FrameLayout()
            {
                Height = Application.GetRealHeight(54 + 11)
                Height = Application.GetRealHeight(75 + 11)
            };
            attrView.AddChidren(cctView);
@@ -362,7 +352,7 @@
            btnTempClolor.X = Application.GetRealWidth(35);
            btnTempClolor.Y = Application.GetRealHeight(1);
            btnTempClolor.Width = Application.GetRealWidth(224);
            btnTempClolor.Height = Application.GetRealHeight(21);
            btnTempClolor.Height = Application.GetRealHeight(42);
            btnTempClolor.TextAlignment = TextAlignment.CenterLeft;
            btnTempClolor.TextColor = CSS_Color.FirstLevelTitleColor;
            btnTempClolor.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs
@@ -217,15 +217,16 @@
                            showCount = 0;
                            functionListView.RemoveAll();
                        }
                        int i = 0;
                        foreach (var function in functions)
                        for(var i =0;i<100;i++)
                        //foreach (var function in functions)
                        {
                            i++;
                            if (i > 100)
                            showCount++;
                            if (showCount >= functions.Count)
                            {
                                break;
                            }
                            showCount++;
                            var function = functions[showCount];
                            var functionDiv = new LightRow(function)
                            {
                                Gravity = Gravity.CenterHorizontal,
@@ -415,7 +416,8 @@
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "FunctionIcon/Light/LightScene/CheckIcon.png",
                SelectedImagePath = "FunctionIcon/Light/LightScene/CheckOnIcon.png",
                IsSelected = functions.Find((obj) => obj.deviceId == function.deviceId) != null
                IsSelected = functions.Find((obj) => obj.deviceId == function.deviceId) != null,
                Tag = "ChooseIcon"
            };
            if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl)
            {
@@ -443,10 +445,10 @@
                    }
                }
                ///刷新界面
                if (functions.Count == 0 || functions.Count == 1)
                {
                //if (functions.Count == 0 || functions.Count == 1)
                //{
                    action();
                }
                //}
            };
        }
HDL_ON/UI/UI2/FuntionControlView/OrderFunctionPage.cs
@@ -136,18 +136,16 @@
                            showCount = 0;
                            functionListView.RemoveAll();
                        }
                        int i = 0;
                        foreach (var function in functions)
                        for(var i =0;i<100;i++)
                        //foreach (var function in functions)
                        {
                            i++;
                            if (i > 100)
                            showCount++;
                            if (showCount >= functions.Count)
                            {
                                break;
                            }
                            showCount++;
                            var function = functions[showCount];
                            var functionDiv = new OrderFunctionRow()
                            {
                                Gravity = Gravity.CenterHorizontal,