wxr
2020-12-15 dbf79099f47d5f06223edfd5b8dc06c51b1830aa
Merge branch 'CJL' into NewFilePath
5个文件已添加
16个文件已修改
872 ■■■■ 已修改文件
DLL/Shared.IOS.TBL.dll 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Shared.IOS.dll 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Language.ini 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/PersonalCenter/AppUnlockSetting/FaceIdIconBig.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/PersonalCenter/AppUnlockSetting/FingerIconBlue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/HDL-ON_Android.csproj 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Info.plist 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Language.ini 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/PersonalCenter/AppUnlockSetting/FaceIdIconBig.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/PersonalCenter/AppUnlockSetting/FingerIconBlue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/zh-Hans.lproj/InfoPlist.strings 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/HDLCommon.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/R.cs 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/IMessageCommon.cs 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI0-Public/AppUnlockPage.cs 228 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPageBLL.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockGesturePage.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockPasswordPage.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockSettingsPage.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockSettingsPageBLL.cs 283 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Shared.IOS.TBL.dll
Binary files differ
DLL/Shared.IOS.dll
Binary files differ
HDL-ON_Android/Assets/Language.ini
@@ -566,6 +566,7 @@
9047=您的密码已经修改生效,请重新登录
9048=使用账号密码登录
9049=密码连续输错次数已达到10次,用户已被锁定,请次日0点后再登陆
9050=验证面容ID
10000=无效登录密钥,请重新登录!
10001=请求服务器失败,请稍后再试!
@@ -584,3 +585,20 @@
10014=当前住宅不属于该账号
10015=住宅名称已存在
10016=住宅不存在
10017=请求失败,参数异常!
10018=绑定号码重复
10019=请先绑定网关
10020=网关不存在
10021=网关离线
10022=设备离线
10023=控制失败
10024=场景已经存在
10025=自动化已经存在
10026=spk不支持该功能
10027=spk功能不支持此功能值
10028=没有权限
10029=设备目标重复
10030=没有远程控制权限
10031=设备不能为空
10032=用户没有设备的权限
10033=设备不存在
HDL-ON_Android/Assets/Phone/PersonalCenter/AppUnlockSetting/FaceIdIconBig.png
HDL-ON_Android/Assets/Phone/PersonalCenter/AppUnlockSetting/FingerIconBlue.png
HDL-ON_Android/HDL-ON_Android.csproj
@@ -651,10 +651,8 @@
    <AndroidAsset Include="Assets\Phone\LogicIcon\selectTheFun.png" />
    <AndroidAsset Include="Assets\Phone\LogicIcon\selectTheScene.png" />
    <AndroidAsset Include="Assets\Phone\LogicIcon\selectTheTime.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Light\ColorWheelGray.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Light\ColorWheelTip.png" />
    <AndroidAsset Include="Assets\Phone\oRobot.png" />
    <AndroidAsset Include="Assets\Phone\RoomListBg.png" />
    <AndroidAsset Include="Assets\Phone\PersonalCenter\AppUnlockSetting\FaceIdIconBig.png" />
    <AndroidAsset Include="Assets\Phone\PersonalCenter\AppUnlockSetting\FingerIconBlue.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidNativeLibrary Include="libs\armeabi-v7a\libelianjni.so" />
HDL-ON_iOS/Info.plist
@@ -58,9 +58,9 @@
    <key>UIRequiresFullScreen</key>
    <true/>
    <key>NSCameraUsageDescription</key>
    <string>设置房间或者场景的背景图片</string>
    <string>App wants to access your camera to set the background picture of the room</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>设置房间或者场景的背景图片</string>
    <string>App wants to access your photo library to set the background image of the room</string>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
@@ -100,11 +100,11 @@
    <key>CFBundleVersion</key>
    <string>202009282</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>获取天气预报</string>
    <string>Use geographic location to provide services such as weather</string>
    <key>NSAppleMusicUsageDescription</key>
    <string>需要访问您的音乐库以连接到外部播放器播放音乐。</string>
    <string>App needs to access your music library to connect to an external player to play music.</string>
    <key>NSLocationAlwaysUsageDescription </key>
    <string>获取天气预报</string>
    <string>Use geographic location to provide services such as weather</string>
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>weixinULAPI</string>
@@ -113,11 +113,11 @@
        <string>AispeechMobile</string>
        <string>qqmusic</string>
    </array>
    <key>CFBundleDevelopmentRegion</key>
    <string>zh_CN</string>
    <key>UIBackgroundModes</key>
    <array>
        <string>remote-notification</string>
    </array>
    <key>NSFaceIDUsageDescription</key>
    <string>Need to use Face ID for unlock verification</string>
</dict>
</plist>
HDL-ON_iOS/Resources/Language.ini
@@ -566,6 +566,7 @@
9047=您的密码已经修改生效,请重新登录
9048=使用账号密码登录
9049=密码连续输错次数已达到10次,用户已被锁定,请次日0点后再登陆
9050=验证面容ID
10000=无效登录密钥,请重新登录!
10001=请求服务器失败,请稍后再试!
@@ -583,4 +584,21 @@
10013=不能把自己添加为成员
10014=当前住宅不属于该账号
10015=住宅名称已存在
10016=住宅不存在
10016=住宅不存在
10017=请求失败,参数异常!
10018=绑定号码重复
10019=请先绑定网关
10020=网关不存在
10021=网关离线
10022=设备离线
10023=控制失败
10024=场景已经存在
10025=自动化已经存在
10026=spk不支持该功能
10027=spk功能不支持此功能值
10028=没有权限
10029=设备目标重复
10030=没有远程控制权限
10031=设备不能为空
10032=用户没有设备的权限
10033=设备不存在
HDL-ON_iOS/Resources/Phone/PersonalCenter/AppUnlockSetting/FaceIdIconBig.png
HDL-ON_iOS/Resources/Phone/PersonalCenter/AppUnlockSetting/FingerIconBlue.png
HDL-ON_iOS/Resources/zh-Hans.lproj/InfoPlist.strings
New file
@@ -0,0 +1,6 @@
"NSAppleMusicUsageDescription"="读取你的音乐列表,以便连接外部播放器播放音乐";
"NSCameraUsageDescription"="应用程序希望访问您的相机,用于设置房间的背景图片";
"NSPhotoLibraryUsageDescription"="应用程序希望访问您的照片库,用于设置房间的背景图片";
"NSLocationWhenInUseUsageDescription"="使用期间需要使用地理位置,以便提供服务,如天气";
"NSLocationAlwaysUsageDescription"="使用地理位置,以便提供服务,如天气";
"NSFaceIDUsageDescription"="需要使用Face ID,用于解锁验证";
HDL_ON/Common/HDLCommon.cs
@@ -281,9 +281,11 @@
        {
            //未登录不用处理
            if (!UserInfo.Current.IsLogin) return;
#if DEBUG
            return;
#endif
            Logout();
        }
HDL_ON/Common/R.cs
@@ -713,6 +713,12 @@
        /// 密码连续输错次数已达到10次,用户已被锁定,请次日0点后再登陆
        /// </summary>
        public const int AccountLoginLock = 9049;
        /// <summary>
        /// 验证面容ID
        /// </summary>
        public const int VerifyFaceID = 9050;
        #region 网络请求响应错误提示信息
        /// <summary>
@@ -784,7 +790,78 @@
        /// 住宅不存在
        /// </summary>
        public const int Home_NoExists = 10016;
        /// <summary>
        /// 请求失败,参数异常!
        /// </summary>
        public const int RequestFailedParameterException = 10017;
        /// <summary>
        /// 绑定号码重复
        /// </summary>
        public const int DuplicateBindingNumber = 10018;
        /// <summary>
        /// 当前住宅没有绑定网关
        /// </summary>
        public const int PleaseBindTheGatewayFirst = 10019;
        /// <summary>
        /// 网关不存在
        /// </summary>
        public const int GatewayDoesNotExist = 10020;
        /// <summary>
        /// 网关离线
        /// </summary>
        public const int GatewayOffline = 10021;
        /// <summary>
        /// 设备离线
        /// </summary>
        public const int DeviceOffline = 10022;
        /// <summary>
        /// 控制失败,请稍后再试!
        /// </summary>
        public const int ControlFailure = 10023;
        /// <summary>
        /// 场景已经存在
        /// </summary>
        public const int SceneAlreadyExists = 10024;
        /// <summary>
        /// 自动化已经存在
        /// </summary>
        public const int AutomationAlreadyExists = 10025;
        /// <summary>
        /// spk不支持该功能
        /// </summary>
        public const int SpkNotSupportThisFeature = 10026;
        /// <summary>
        /// spk功能不支持此功能值
        /// </summary>
        public const int SpkNotSupportThisFunctionValue = 10027;
        /// <summary>
        /// 没有权限
        /// </summary>
        public const int PermissionDenied = 10028;
        /// <summary>
        /// 设备目标重复
        /// </summary>
        public const int DuplicateDeviceTarget = 10029;
        /// <summary>
        /// 没有远程控制权限
        /// </summary>
        public const int NoRemoteControlPermission = 10030;
        /// <summary>
        /// 设备不能为空
        /// </summary>
        public const int TheDeviceCannotBeEmpty = 10031;
        /// <summary>
        /// 用户没有设备的权限
        /// </summary>
        public const int NotHavePermissionToTheDevice = 10032;
        /// <summary>
        /// 设备不存在
        /// </summary>
        public const int TheDeviceDoesNotExist = 10033;
        #endregion
        #endregion
    }
HDL_ON/DAL/Server/IMessageCommon.cs
@@ -74,6 +74,8 @@
            //stateCodeDic["3"] = StringId.SystemIsBusy;
            //签名错误
            stateCodeDic["4"] = StringId.SignatureError;
            //请求失败,参数异常!
            stateCodeDic["9"] = StringId.RequestFailedParameterException;
            //验证码校验失败
            stateCodeDic[StateCode.VERIFICATION_CODE_WRONG] = StringId.VerificationCodeWrong;
            //验证码发送频繁,请稍后再试!
@@ -85,6 +87,8 @@
            stateCodeDic[StateCode.TOKEN_EXPIRED] = StringId.NotLogin;
            //解析用户身份错误,请重新登录
            stateCodeDic["10006"] = StringId.InvalidToken;
            //您已在另一个设备登录
            stateCodeDic["10007"] = StringId.LoggedOnOtherDevices;
            //登录失败,账号或者密码错误
            stateCodeDic["10008"] = StringId.LoginFailed_AccountOrPasswordError;
            //用户已经被禁用
@@ -101,14 +105,24 @@
            stateCodeDic["10014"] = StringId.AccountExist;
            //原密码错误
            stateCodeDic["10015"] = StringId.OldPwdNoYes;
            ////绑定号码重复
            //stateCodeDic["10016"] = StringId.10016;
            ////注册失败
            //stateCodeDic["10017"] = StringId.10017;
            //绑定号码重复
            stateCodeDic["10016"] = StringId.DuplicateBindingNumber;
            //注册失败
            stateCodeDic["10017"] = StringId.RegistrationFailedPleaseTryAgain;
            ////租户不存在
            //stateCodeDic["10018"] = StringId.10018;
            //密码连续输错次数已达到10次,用户已被锁定,请次日0点后再登陆
            stateCodeDic["10019"] = StringId.AccountLoginLock;
            //没有权限
            stateCodeDic["10105"] = StringId.PermissionDenied;
            //验证码已经发送
            stateCodeDic["10207"] = StringId.VerificationCodePrompt;
            //发送验证码错误
            stateCodeDic["10210"] = StringId.VerificationCodeWrong;
            ////枚举类型错误
            //stateCodeDic["11003"] = StringId.11003;
@@ -133,10 +147,46 @@
            //stateCodeDic["10403"] = StringId.HOME_ID_EXISTS;
            //住宅不存在
            stateCodeDic["10404"] = StringId.Home_NoExists;
            //住宅没有绑定网关
            stateCodeDic["10503"] = StringId.PleaseBindTheGatewayFirst;
            ////调用用户模块接口失败
            //stateCodeDic["10213"] = HDL_ON.StringId;
            //*********网关*********
            //网关不存在
            stateCodeDic["10506"] = StringId.GatewayDoesNotExist;
            //*********场景/自动化*********
            //场景已存在
            stateCodeDic["14501"] = StringId.SceneAlreadyExists;
            //自动化已存在
            stateCodeDic["14502"] = StringId.AutomationAlreadyExists;
            //*********设备*********
            //设备目标重复
            stateCodeDic["10801"] = StringId.DuplicateDeviceTarget;
            //没有远程控制权限
            stateCodeDic["10802"] = StringId.NoRemoteControlPermission;
            //设备不能为空
            stateCodeDic["10803"] = StringId.TheDeviceCannotBeEmpty;
            //用户没有设备的权限
            stateCodeDic["10804"] = StringId.NotHavePermissionToTheDevice;
            //设备不存在
            stateCodeDic["10805"] = StringId.TheDeviceDoesNotExist;
            //控制失败
            stateCodeDic["20000"] = StringId.ControlFailure;
            //网关离线
            stateCodeDic["20001"] = StringId.GatewayOffline;
            //设备离线
            stateCodeDic["20002"] = StringId.DeviceOffline;
            //spk不支持该功能
            stateCodeDic["20101"] = StringId.SpkNotSupportThisFeature;
            //spk功能不支持此功能值
            stateCodeDic["20102"] = StringId.SpkNotSupportThisFunctionValue;
            #endregion
            #endregion
HDL_ON/UI/UI0-Public/AppUnlockPage.cs
@@ -10,7 +10,7 @@
        void LoadOption()
        {
            //2020-12-12 未登录或者APP未启动都返回,解决闪退问题
            if ( UserInfo.Current == null || !UserInfo.Current.IsLogin || MainPage.BasePageView == null)
            if (UserInfo.Current == null || !UserInfo.Current.IsLogin || MainPage.BasePageView == null)
            {
                return;
            }
@@ -21,46 +21,13 @@
            //1:验证指纹
            if (UserInfo.Current.appUnlockType.Contains("3"))
            {
                Action fAction = () =>
                {
                    LoadOption();
                };
                LoadGesturePage("7", fAction);
                TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
                TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
                {
                    if (e == TouchIDUtils.TouchIDState.Success)
                    {
                        MainPage.Log("KK:TouchID验证成功");
                        UserInfo.Current.unlockTime = DateTime.Now;
                        MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                    }
                    else
                    {
                        ///将验证指纹的页面移除
                        MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                        if (UserInfo.Current.appUnlockType.Contains("1"))
                        {
                            var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, action);
                            MainPage.BasePageView.AddChidren(page);
                            page.LoadPage("7");
                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                        }
                        else if (UserInfo.Current.appUnlockType.Contains("2"))
                        {
                            var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, action);
                            MainPage.BasePageView.AddChidren(page);
                            page.LoadPage("7");
                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                        }
                    }
                };
                TouchIDVerification();
            }
            else if (UserInfo.Current.appUnlockType.Contains("4"))
            {
                //Face ID验证
                //2020-12-11 待增加面容失败验证页面,不然会导致锁屏加密无效
                FaceIDVerification();
            }
            else if (UserInfo.Current.appUnlockType.Contains("1"))
            {
@@ -120,6 +87,57 @@
        }
        /// <summary>
        /// 指纹验证
        /// </summary>
        void TouchIDVerification()
        {
            //验证成功Action
            Action successAction = () =>
            {
                UserInfo.Current.unlockTime = DateTime.Now;
            };
            //弹出指纹验证对话框
            Action fingerAction = () =>
            {
                TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
            };
            //加载UI页面
            LoadGesturePage("7", fingerAction);
            TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
            {
                if (e == TouchIDUtils.TouchIDState.Success)
                {
                    MainPage.Log("KK:TouchID验证成功");
                    UserInfo.Current.unlockTime = DateTime.Now;
                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                }
                else
                {
                    ///将验证指纹的页面移除
                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                    if (UserInfo.Current.appUnlockType.Contains("1"))
                    {
                        var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, successAction);
                        MainPage.BasePageView.AddChidren(page);
                        page.LoadPage("7");
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    }
                    else if (UserInfo.Current.appUnlockType.Contains("2"))
                    {
                        var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, successAction);
                        MainPage.BasePageView.AddChidren(page);
                        page.LoadPage("7");
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    }
                }
            };
        }
        /// <summary>
        /// 加载指纹验证界面
        /// </summary>
        public void LoadGesturePage(string optionType, Action fingerAction)
@@ -152,7 +170,7 @@
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(102),
                Height = Application.GetRealWidth(102),
                UnSelectedImagePath = "PersonalCenter/AppUnlockSetting/FingerIconRed.png",
                UnSelectedImagePath = "PersonalCenter/AppUnlockSetting/FingerIconBlue.png",
            };
            bodyView.AddChidren(btnFingerIcon);
@@ -200,7 +218,141 @@
            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            //dialog.Show();
            Console.WriteLine("-0987654321");
            //Console.WriteLine("-0987654321");
        }
        /// <summary>
        /// 面容ID验证
        /// </summary>
        void FaceIDVerification()
        {
            //验证成功Action
            Action successAction = () =>
            {
                UserInfo.Current.unlockTime = DateTime.Now;
            };
            //弹出指纹验证对话框
            Action faceIDAction = () =>
            {
                TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.VerifyFaceID));
            };
            //加载UI页面
            LoadFaceIDGesturePage("7", faceIDAction);
            TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.VerifyFaceID));
            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
            {
                if (e == TouchIDUtils.TouchIDState.Success)
                {
                    MainPage.Log("KK:TouchID验证成功");
                    UserInfo.Current.unlockTime = DateTime.Now;
                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                }
                else
                {
                    ///将验证指纹的页面移除
                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                    if (UserInfo.Current.appUnlockType.Contains("1"))
                    {
                        var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, successAction);
                        MainPage.BasePageView.AddChidren(page);
                        page.LoadPage("7");
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    }
                    else if (UserInfo.Current.appUnlockType.Contains("2"))
                    {
                        var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, successAction);
                        MainPage.BasePageView.AddChidren(page);
                        page.LoadPage("7");
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    }
                }
            };
        }
        /// <summary>
        /// 加载面容ID验证界面
        /// </summary>
        public void LoadFaceIDGesturePage(string optionType, Action faceIDAction)
        {
            var bodyView = new FrameLayout()
            {
                BackgroundColor = CSS.CSS_Color.MainBackgroundColor
            };
            MainPage.BasePageView.AddChidren(bodyView);
            bodyView.AddChidren(new Button()
            {
                Height = Application.GetRealHeight(64),
                BackgroundColor = CSS.CSS_Color.BackgroundColor,
            });
            bodyView.AddChidren(new Button()
            {
                Y = Application.GetRealHeight(196),
                Height = Application.GetRealHeight(42),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                TextSize = CSS.CSS_FontSize.SubheadingFontSize,
                TextID = StringId.VerifyFaceID,
            });
            var btnFaceIdIcon = new Button()
            {
                Y = Application.GetRealHeight(260),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(102),
                Height = Application.GetRealWidth(102),
                UnSelectedImagePath = "PersonalCenter/AppUnlockSetting/FaceIdIconBig.png",
            };
            bodyView.AddChidren(btnFaceIdIcon);
            btnFaceIdIcon.MouseUpEventHandler = (sender, e) =>
            {
                faceIDAction();
            };
            var btnOtherVerify = new Button()
            {
                Y = Application.GetRealHeight(527),
                Height = Application.GetRealHeight(40),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS.CSS_Color.MainColor,
                TextSize = CSS.CSS_FontSize.TextFontSize,
                TextID = UserInfo.Current.appUnlockType.Contains("1") ? StringId.VerifyDigitalPassword : StringId.VerifyGesturePassword,
            };
            bodyView.AddChidren(btnOtherVerify);
            btnOtherVerify.MouseUpEventHandler = (sender, e) =>
            {
                ///将验证面容ID的页面移除
                MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                Action action = () =>
                {
                    UserInfo.Current.unlockTime = DateTime.Now;
                };
                if (UserInfo.Current.appUnlockType.Contains("1"))
                {
                    var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, action);
                    MainPage.BasePageView.AddChidren(page);
                    page.LoadPage(optionType);
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                }
                else if (UserInfo.Current.appUnlockType.Contains("2"))
                {
                    var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, action);
                    MainPage.BasePageView.AddChidren(page);
                    page.LoadPage(optionType);
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                }
            };
            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
        }
    }
}
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs
@@ -23,25 +23,6 @@
        {
            bodyView = this;
            residenceMemberInfos = new List<ResidenceMemberInfo>();
//#if DEBUG
//            //tr测试住宅----测试分享
//            var light = new Light()
//            {
//                sid = "030101123456780202010005ABCP",
//                deviceId = "1333657366709645314",
//                name = "灯1",
//            };
//            light.SaveFunctionData();
//            var light2 = new Light()
//            {
//                sid = "030101123456780202010005ABCQ",
//                deviceId = "1333657366743199746",
//                name = "灯2"
//            };
//            light2.SaveFunctionData();
//            DB_ResidenceData.functionList.lights.Add(light);
//            DB_ResidenceData.functionList.lights.Add(light2);
//#endif
        }
        public void LoadPage()
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPageBLL.cs
@@ -114,11 +114,6 @@
            {
                //提示
                IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code);
                //账号或者密码错误
                Application.RunOnMainThread(() =>
                {
                    waitPage.Hide();
                });
            }
            Application.RunOnMainThread(() =>
            {
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockGesturePage.cs
@@ -66,7 +66,7 @@
                IsBold = true,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
                TextID = optionType == "7" ? StringId.SetGesturePassword : StringId.VerifyGesturePassword,
                TextID =  StringId.VerifyGesturePassword,
            };
            bodyView.AddChidren(btnTipTitle);
@@ -79,14 +79,27 @@
                TextColor = CSS_Color.TextualColor,
                SelectedTextColor = CSS_Color.WarningColor,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = optionType == "2" ? StringId.DrawUnlockPatternAgain : StringId.DrawUnlockPattern,
                TextID = StringId.DrawUnlockPattern,
            };
            bodyView.AddChidren(btnTipMsg);
            if (optionType == "7")
            if (optionType == "1")
            {
                btnTipTitle.TextID = StringId.DrawUnlockPattern;
                btnTipMsg.TextID = string.IsNullOrEmpty(oldPasswrod) ? StringId.DrawUnlockPattern : StringId.DrawUnlockPatternAgain;
                //设置手势密码
                btnTipTitle.TextID = StringId.SetGesturePassword;
            }else if(optionType == "2")
            {
                //请输入原手势密码
                btnTipTitle.TextID = StringId.PleaseDrawTheOriginalGesturePassword;
            }
            //if (optionType == "7")
            //{
            //    //请绘制解锁图案
            //    btnTipTitle.TextID = StringId.DrawUnlockPattern;
            //}
            GestureLockView mGestureLockView = new GestureLockView
            {
@@ -145,7 +158,7 @@
            if (optionType == "5" || optionType == "6")
            {
                //输入登录密码验证 提示按钮
                AddInputPasswordTipButton();
                AddInputPasswordTipButton(optionType);
            }
            else if (optionType == "7")
            {
@@ -242,9 +255,13 @@
                                Language.StringByID(StringId.TurnOnFaceIdUnlocking);
                if (TouchIDUtils.getTouchIDSupperType() != TouchIDUtils.TouchIDSupperType.None)
                {
                    Action<bool> action = (result) =>
                    var unlockType = TouchIDUtils.getTouchIDSupperType() == TouchIDUtils.TouchIDSupperType.TouchID ? "3" : "4";
                    //如果之前没设置指纹或者面容ID才显示是否开启
                    if (!UserInfo.Current.appUnlockType.Contains(unlockType))
                    {
                        var unlockType = TouchIDUtils.getTouchIDSupperType() == TouchIDUtils.TouchIDSupperType.TouchID ? "3" : "4";
                        Action<bool> action = (result) =>
                    {
                        if (result)
                        {
                            if (!UserInfo.Current.appUnlockType.Contains(unlockType))
@@ -262,7 +279,8 @@
                        UserInfo.Current.SaveUserInfo();
                        backAction();
                    };
                    page.AdditionalOperations(tipMsg, action);
                        page.AdditionalOperations(tipMsg, action);
                    }
                }
                if (!UserInfo.Current.appUnlockType.Contains("2"))
                {
@@ -360,7 +378,7 @@
        /// <summary>
        /// 输入登录密码验证 提示按钮
        /// </summary>
        void AddInputPasswordTipButton()
        void AddInputPasswordTipButton(string optionType)
        {
            Button btnLoginAccountVerify = new Button()
            {
@@ -381,16 +399,19 @@
                    var resultObj = new HttpServerRequest().LoginByPassword(UserInfo.Current.AccountString, pw);
                    if (resultObj.Code == StateCode.SUCCESS)
                    {
                        UserInfo.Current.appUnlockPasswrod = "";
                        UserInfo.Current.appUnlockType = new System.Collections.Generic.List<string>();
                        UserInfo.Current.SaveUserInfo();
                        this.RemoveFromParent();
                        backAction();
                        //UserInfo.Current.appUnlockPasswrod = "";
                        //UserInfo.Current.appUnlockType = new System.Collections.Generic.List<string>();
                        //UserInfo.Current.SaveUserInfo();
                        //this.RemoveFromParent();
                        //backAction();
                        PasswordInputPassed(optionType);
                    }
                    else
                    {
                        //登录失败
                        IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
                        Application.RunOnMainThread(() =>
                        {
                            Utlis.ShowTip(Language.StringByID(StringId.AuthenticationFailedPasswordError));
                        });
                    }
                };
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockPasswordPage.cs
@@ -58,12 +58,15 @@
            };
            bodyView.AddChidren(btnTipTitle);
            if (optionType == "2" || optionType == "3")
            if (optionType == "1")
            {
                btnTipTitle.TextID = string.IsNullOrEmpty(oldPasswrod) ? StringId.PlsEntryPassword : StringId.PlsRegisterRepeatPassword;
            }
            else if (optionType == "2")
            {
                btnTipTitle.TextID = StringId.PleaseEnterTheOriginalDigitalPassword;
            }
            if (optionType == "7")
            else
            {
                btnTipTitle.TextID = StringId.PlsEntryPassword;
            }
@@ -152,7 +155,8 @@
            //etPassword.MouseUpEventHandler = (sender, e) => { };
            etPassword.TextChangeEventHandler = (sender, e) => {
            etPassword.TextChangeEventHandler = (sender, e) =>
            {
                passwrod = etPassword.Text.Trim();
                switch (etPassword.Text.Trim().Length)
                {
@@ -214,7 +218,8 @@
                }
            };
            EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
            {
                etPassword.Foucs = true;
            };
            bodyView.MouseUpEventHandler = eventHandler;
@@ -229,9 +234,9 @@
            if (optionType == "3" || optionType == "5" || optionType == "6")
            {
                //输入登录密码验证 提示按钮
                AddInputPasswordTipButton();
                AddInputPasswordTipButton(optionType);
            }
            else if(optionType == "7")
            else if (optionType == "7")
            {
                //使用账户密码登录按钮 提示按钮
                AddLoginTipButton();
@@ -285,26 +290,33 @@
                if (TouchIDUtils.getTouchIDSupperType() != TouchIDUtils.TouchIDSupperType.None)
                {
                    var unlockType = TouchIDUtils.getTouchIDSupperType() == TouchIDUtils.TouchIDSupperType.TouchID ? "3" : "4";
                    Action<bool> action = (result) =>
                    //如果之前没设置指纹或者面容ID才显示是否开启
                    if (!UserInfo.Current.appUnlockType.Contains(unlockType))
                    {
                        if (result)
                        Action<bool> action = (result) =>
                        {
                            if (!UserInfo.Current.appUnlockType.Contains(unlockType))
                            if (result)
                            {
                                UserInfo.Current.appUnlockType.Add(unlockType);
                                if (!UserInfo.Current.appUnlockType.Contains(unlockType))
                                {
                                    UserInfo.Current.appUnlockType.Add(unlockType);
                                }
                            }
                        }
                        else
                        {
                            if (UserInfo.Current.appUnlockType.Contains(unlockType))
                            else
                            {
                                UserInfo.Current.appUnlockType.Remove(unlockType);
                                if (UserInfo.Current.appUnlockType.Contains(unlockType))
                                {
                                    UserInfo.Current.appUnlockType.Remove(unlockType);
                                }
                            }
                        }
                        backAction();
                        UserInfo.Current.SaveUserInfo();
                    };
                    page.AdditionalOperations(tipMsg, action);
                            backAction();
                            UserInfo.Current.SaveUserInfo();
                        };
                        page.AdditionalOperations(tipMsg, action);
                    }
                }
                if (!UserInfo.Current.appUnlockType.Contains("1"))
                {
@@ -384,7 +396,8 @@
        /// <summary>
        /// 使用账户密码登录按钮 提示按钮
        /// </summary>
        void AddLoginTipButton(){
        void AddLoginTipButton()
        {
            Button btnLoginAccountVerify = new Button()
            {
                Y = Application.GetRealHeight(517),
@@ -406,7 +419,7 @@
        /// <summary>
        /// 输入登录密码验证 提示按钮
        /// </summary>
        void AddInputPasswordTipButton()
        void AddInputPasswordTipButton(string optionType)
        {
            Button btnLoginAccountVerify = new Button()
            {
@@ -422,15 +435,18 @@
            btnLoginAccountVerify.MouseUpEventHandler = (sender, e) =>
            {
                //输入登录密码验证
                Action<string> action = (pw) => {
                Action<string> action = (pw) =>
                {
                    var resultObj = new HttpServerRequest().LoginByPassword(UserInfo.Current.AccountString, pw);
                    if (resultObj.Code.ToUpper() == StateCode.SUCCESS)
                    {
                        UserInfo.Current.appUnlockPasswrod = "";
                        UserInfo.Current.appUnlockType = new System.Collections.Generic.List<string>();
                        UserInfo.Current.SaveUserInfo();
                        this.RemoveFromParent();
                        backAction();
                        //UserInfo.Current.appUnlockPasswrod = "";
                        //UserInfo.Current.appUnlockType = new System.Collections.Generic.List<string>();
                        //UserInfo.Current.SaveUserInfo();
                        //this.RemoveFromParent();
                        //backAction();
                        PasswordInputPassed(optionType);
                    }
                    else
                    {
@@ -438,8 +454,7 @@
                        {
                            Utlis.ShowTip(Language.StringByID(StringId.AuthenticationFailedPasswordError));
                        });
                        ////登录失败
                        //IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
                    }
                };
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockSettingsPage.cs
@@ -696,7 +696,7 @@
            {
                Height = Application.GetRealHeight(51),
            };
            if (sTouchID && UserInfo.Current.appUnlockPasswrod != ""&&!UserInfo.Current.appUnlockType.Contains("4"))
            if (sTouchID && UserInfo.Current.appUnlockPasswrod != "" && !UserInfo.Current.appUnlockType.Contains("4"))
            {
                unlockOptionView.AddChidren(fingerprintUnlockDiv);
            }
@@ -750,7 +750,7 @@
            {
                Height = Application.GetRealHeight(50),
            };
            if (sFaceID && UserInfo.Current.appUnlockPasswrod != "" && !UserInfo.Current.appUnlockType.Contains("4"))
            if (sFaceID && UserInfo.Current.appUnlockPasswrod != "" && !UserInfo.Current.appUnlockType.Contains("3"))
            {
                unlockOptionView.AddChidren(faceIdUnlockDiv);
            }
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockSettingsPageBLL.cs
@@ -44,48 +44,19 @@
                    unlockOptionView.Visible = false;
                    refreshAction();
                };
                Action action1 = () => {
                Action action1 = () =>
                {
                    if (!btnUnprotectedBg.IsSelected)
                    {
                        //1:验证指纹
                        if (UserInfo.Current.appUnlockType.Contains("3"))
                        {
                            TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
                            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
                            {
                                if (e == TouchIDUtils.TouchIDState.NotSupport)
                                {
                                    MainPage.Log("KK:当前设备不支持TouchID验证,请输入密码来验证");
                                }
                                else if (e == TouchIDUtils.TouchIDState.Success)
                                {
                                    MainPage.Log("KK:TouchID验证成功");
                                    action();
                                }
                                else if (e == TouchIDUtils.TouchIDState.InputPassword || e == TouchIDUtils.TouchIDState.TouchIDLockout)
                                {
                                    MainPage.Log("KK:用户选择手动输入密码");
                                    if (UserInfo.Current.appUnlockType.Contains("1"))
                                    {
                                        var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, action);
                                        MainPage.BasePageView.AddChidren(page);
                                        page.LoadPage("4");
                                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                                    }
                                    else if (UserInfo.Current.appUnlockType.Contains("1"))
                                    {
                                        var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, action);
                                        MainPage.BasePageView.AddChidren(page);
                                        page.LoadPage("4");
                                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                                    }
                                }
                            };
                            TouchIDVerification_TurnOffUnlock(action);
                        }
                        else if (UserInfo.Current.appUnlockType.Contains("4"))
                        {
                            //Face ID验证
                            //
                            FaceIDVerification_TurnOffUnlock(action);
                        }
                        else if (UserInfo.Current.appUnlockType.Contains("1"))
                        {
@@ -319,64 +290,14 @@
            {
                btnFingerprintUnlockSwtichIcon.MouseUpEventHandler = (sender, e1) =>
                {
                    Action fingerAction = () => {
                        TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
                    };
                    new AppUnlockPage().LoadGesturePage("5",fingerAction);
                    TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
                    TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
                    {
                        if (e == TouchIDUtils.TouchIDState.Success)
                        {
                            var result = btnFingerprintUnlockSwtichIcon.IsSelected = !btnFingerprintUnlockSwtichIcon.IsSelected;
                            if (result)
                            {
                                if (!UserInfo.Current.appUnlockType.Contains("3"))
                                {
                                    UserInfo.Current.appUnlockType.Add("3");
                                    UserInfo.Current.SaveUserInfo();
                                }
                            }
                            else
                            {
                                if (UserInfo.Current.appUnlockType.Contains("3"))
                                {
                                    UserInfo.Current.appUnlockType.Remove("3");
                                    UserInfo.Current.SaveUserInfo();
                                }
                            }
                            //MainPage.BasePageView.RemoveAt(MainPage.BasePageView.ChildrenCount - 1);
                            MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                        }
                        else// if (e == TouchIDUtils.TouchIDState.InputPassword || e == TouchIDUtils.TouchIDState.TouchIDLockout)
                        {
                            if (UserInfo.Current.appUnlockType.Contains("1"))
                            {
                                var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, refreshAction);
                                MainPage.BasePageView.AddChidren(page);
                                page.LoadPage("5");
                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                            }
                            else if (UserInfo.Current.appUnlockType.Contains("2"))
                            {
                                var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, refreshAction);
                                MainPage.BasePageView.AddChidren(page);
                                page.LoadPage("5");
                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                            }
                        }
                    };
                    TouchIDVerification_SwtichOnOff();
                };
            }
            if (sFaceID)
            {
                btnFaceIdUnlockSwtichIcon.MouseUpEventHandler = (sender, e1) =>
                {
                    //btnFaceIdUnlockSwtichIcon.IsSelected = !btnFaceIdUnlockSwtichIcon.IsSelected;
                    if (!btnFaceIdUnlockSwtichIcon.IsSelected)
                    { }
                    FaceIDVerification_SwtichOnOff();
                };
            }
        }
@@ -396,5 +317,197 @@
            return true;
        }
        /// <summary>
        /// 面容ID开启和关闭
        /// </summary>
        void FaceIDVerification_SwtichOnOff()
        {
            //6:面容ID开关
            string optionType = "6";
            //4:面容ID
            string faceIDUnlockType = "4";
            Action fingerAction = () =>
            {
                TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.VerifyFaceID));
            };
            new AppUnlockPage().LoadFaceIDGesturePage(optionType, fingerAction);
            TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.VerifyFaceID));
            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
            {
                if (e == TouchIDUtils.TouchIDState.Success)
                {
                    var result = btnFaceIdUnlockSwtichIcon.IsSelected = !btnFaceIdUnlockSwtichIcon.IsSelected;
                    if (result)
                    {
                        if (!UserInfo.Current.appUnlockType.Contains(faceIDUnlockType))
                        {
                            UserInfo.Current.appUnlockType.Add(faceIDUnlockType);
                            UserInfo.Current.SaveUserInfo();
                        }
                    }
                    else
                    {
                        if (UserInfo.Current.appUnlockType.Contains(faceIDUnlockType))
                        {
                            UserInfo.Current.appUnlockType.Remove(faceIDUnlockType);
                            UserInfo.Current.SaveUserInfo();
                        }
                    }
                    //MainPage.BasePageView.RemoveAt(MainPage.BasePageView.ChildrenCount - 1);
                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                }
                else// if (e == TouchIDUtils.TouchIDState.InputPassword || e == TouchIDUtils.TouchIDState.TouchIDLockout)
                {
                    ///将验证面容ID的页面移除
                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                    GotogoToVerifyPasswordPage(optionType, refreshAction);
                }
            };
        }
        /// <summary>
        /// FaceID验证 关闭解锁设置
        /// </summary>
        /// <param name="action">验证成功事件</param>
        void FaceIDVerification_TurnOffUnlock(Action successAction)
        {
            //使用密码验证
            Action goToVerifyPasswordAction = () =>
            {
                //关闭解锁验证
                GotogoToVerifyPasswordPage("4", successAction);
            };
            TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.VerifyFaceID));
            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
            {
                if (e == TouchIDUtils.TouchIDState.Success)
                {
                    MainPage.Log("KK:FaceID验证成功");
                    successAction?.Invoke();
                }
                else if (e == TouchIDUtils.TouchIDState.NotSupport)
                {
                    MainPage.Log("KK:当前设备不支持FaceID验证,请输入密码来验证");
                    goToVerifyPasswordAction();
                }
                else if (e == TouchIDUtils.TouchIDState.InputPassword || e == TouchIDUtils.TouchIDState.TouchIDLockout)
                {
                    MainPage.Log("KK:用户选择手动输入密码");
                    goToVerifyPasswordAction();
                }
            };
        }
        /// <summary>
        /// 指纹ID开启和关闭
        /// </summary>
        void TouchIDVerification_SwtichOnOff()
        {
            //5:指纹ID开关
            string optionType = "5";
            Action fingerAction = () =>
            {
                TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
            };
            new AppUnlockPage().LoadGesturePage(optionType, fingerAction);
            TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
            {
                if (e == TouchIDUtils.TouchIDState.Success)
                {
                    var result = btnFingerprintUnlockSwtichIcon.IsSelected = !btnFingerprintUnlockSwtichIcon.IsSelected;
                    if (result)
                    {
                        if (!UserInfo.Current.appUnlockType.Contains("3"))
                        {
                            UserInfo.Current.appUnlockType.Add("3");
                            UserInfo.Current.SaveUserInfo();
                        }
                    }
                    else
                    {
                        if (UserInfo.Current.appUnlockType.Contains("3"))
                        {
                            UserInfo.Current.appUnlockType.Remove("3");
                            UserInfo.Current.SaveUserInfo();
                        }
                    }
                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                }
                else// if (e == TouchIDUtils.TouchIDState.InputPassword || e == TouchIDUtils.TouchIDState.TouchIDLockout)
                {
                    ///将验证指纹ID的页面移除
                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                    GotogoToVerifyPasswordPage(optionType, refreshAction);
                }
            };
        }
        /// <summary>
        /// TouchID验证 关闭解锁设置
        /// </summary>
        /// <param name="action">验证成功事件</param>
        void TouchIDVerification_TurnOffUnlock(Action successAction)
        {
            //使用密码验证
            Action goToVerifyPasswordAction = () =>
            {
                //关闭解锁验证
                GotogoToVerifyPasswordPage("4", successAction);
            };
            TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
            {
                if (e == TouchIDUtils.TouchIDState.NotSupport)
                {
                    MainPage.Log("KK:当前设备不支持TouchID验证,请输入密码来验证");
                    goToVerifyPasswordAction?.Invoke();
                }
                else if (e == TouchIDUtils.TouchIDState.Success)
                {
                    MainPage.Log("KK:TouchID验证成功");
                    successAction?.Invoke();
                }
                else if (e == TouchIDUtils.TouchIDState.InputPassword || e == TouchIDUtils.TouchIDState.TouchIDLockout)
                {
                    MainPage.Log("KK:用户选择手动输入密码");
                    goToVerifyPasswordAction?.Invoke();
                }
            };
        }
        /// <summary>
        /// 跳转手势或者密码验证界面
        /// </summary>
        /// <param name="optionType">1:设置密码;2:验证密码;3:关闭密码;4:关闭解锁设置;5:指纹ID开关;6:面容ID开关;7:解锁验证</param>
        /// <param name="successAction"></param>
        void GotogoToVerifyPasswordPage(string optionType, Action successAction)
        {
            if (UserInfo.Current.appUnlockType.Contains("1"))
            {
                var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, successAction);
                MainPage.BasePageView.AddChidren(page);
                page.LoadPage(optionType);
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            }
            else if (UserInfo.Current.appUnlockType.Contains("2"))
            {
                var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, successAction);
                MainPage.BasePageView.AddChidren(page);
                page.LoadPage(optionType);
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            }
        }
    }
}