JLChen
2020-12-12 b3abfd30576871c32f2839a322fa3bb783f96498
2020-12-12 1.解锁逻辑优化
7个文件已修改
650 ■■■■■ 已修改文件
.vs/HDL_APP_Project/xs/UserPrefs.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Language.ini 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Language.ini 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/R.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockGesturePage.cs 306 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockPasswordPage.cs 271 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockSettingsPageBLL.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,13 +1,8 @@
<Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default">
  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008030-00014C392121802E" />
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockSettingsPageBLL.cs">
  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS automaticSigning="False" PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008030-00014C392121802E" />
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockPasswordPage.cs">
    <Files>
      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockSettingsPageBLL.cs" Line="301" Column="26" IsPinned="True" />
      <File FileName="HDL_ON/Common/HDLCommon.cs" Line="308" Column="21" />
      <File FileName="HDL_ON/Entity/Room.cs" Line="416" Column="31" />
      <File FileName="HDL_ON/Entity/DB_ResidenceData.cs" Line="146" Column="33" />
      <File FileName="HDL_ON/Entity/UserInfo.cs" Line="53" Column="21" />
      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockSettingsPage.cs" Line="1" Column="1" />
      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockPasswordPage.cs" Line="1" Column="1" />
    </Files>
    <Pads>
      <Pad Id="ProjectPad">
@@ -16,29 +11,26 @@
            <Node name="HDL_ON" expanded="True">
              <Node name="Common" expanded="True" />
              <Node name="DAL" expanded="True">
                <Node name="Mqtt" expanded="True" />
                <Node name="Server" expanded="True" />
              </Node>
              <Node name="Entity" expanded="True">
                <Node name="Function" expanded="True" />
              </Node>
              <Node name="Entity" expanded="True" />
              <Node name="UI" expanded="True">
                <Node name="UI0-Public" expanded="True" />
                <Node name="UI1-Login" expanded="True" />
                <Node name="UI2" expanded="True">
                  <Node name="3-Intelligence" expanded="True">
                    <Node name="Scene" expanded="True" />
                  </Node>
                  <Node name="4-PersonalCenter" expanded="True">
                    <Node name="RoomListManage" expanded="True" />
                    <Node name="UnlockSetting" expanded="True">
                      <Node name="AppUnlockSettingsPageBLL.cs" selected="True" />
                      <Node name="AppUnlockPasswordPage.cs" selected="True" />
                    </Node>
                  </Node>
                </Node>
              </Node>
            </Node>
            <Node name="HDL-ON_Android" expanded="True" />
            <Node name="HDL-ON_Android" expanded="True">
              <Node name="Assets" expanded="True" />
            </Node>
            <Node name="HDL-ON_iOS" expanded="True">
              <Node name="Other" expanded="True" />
              <Node name="Resources" expanded="True" />
            </Node>
          </Node>
@@ -52,12 +44,10 @@
    <String>Shared.Droid.TouchID/Shared.Droid.TouchID.csproj</String>
    <String>Shared.IOS/Shared.IOS.csproj</String>
  </DisabledProjects>
  <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhone" />
  <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" />
  <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.364c4b3158493098" />
  <MonoDevelop.Ide.DebuggingService.Breakpoints>
    <BreakpointStore>
      <Breakpoint file="/Users/jlchen/JLChen/ProjectsCode/HDLGit/ON+/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/AddRoom/AddRoomPage.cs" relfile="HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/AddRoom/AddRoomPage.cs" line="449" column="1" />
    </BreakpointStore>
    <BreakpointStore />
  </MonoDevelop.Ide.DebuggingService.Breakpoints>
  <MultiItemStartupConfigurations />
</Properties>
HDL-ON_Android/Assets/Language.ini
@@ -562,6 +562,7 @@
9045=上传失败
9046=修改成功!
9047=您的密码已经修改生效,请重新登录
9048=使用账号密码登录
10000=无效登录密钥,请重新登录!
10001=请求服务器失败,请稍后再试!
HDL-ON_iOS/Resources/Language.ini
@@ -562,6 +562,7 @@
9045=上传失败
9046=修改成功!
9047=您的密码已经修改生效,请重新登录
9048=使用账号密码登录
10000=无效登录密钥,请重新登录!
10001=请求服务器失败,请稍后再试!
HDL_ON/Common/R.cs
@@ -703,6 +703,10 @@
        /// 您的密码已经修改生效,请重新登录
        /// </summary>
        public const int YourPasswordHasBeenChanged = 9047;
        /// <summary>
        /// 使用账号密码登录
        /// </summary>
        public const int LogWithAccountAndPassword = 9048;
        #region 网络请求响应错误提示信息
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockGesturePage.cs
@@ -135,197 +135,68 @@
                        //密码验证失败
                        PasswordInputError(optionType);
                    }
                    //if (optionType == "2")
                    //{
                    //    //移除当前界面,每次返回都返回到最上级
                    //    this.RemoveFromParent();
                    //    var page = new AppUnlockGesturePage("", backAction);
                    //    MainPage.BasePageView.AddChidren(page);
                    //    page.LoadPage("1");
                    //    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    //    return;
                    //}
                    //if(optionType == "7")
                    //{
                    //    if (passwrod == oldPasswrod)
                    //    {
                    //        this.RemoveFromParent();
                    //        backAction();
                    //    }
                    //    else
                    //    {
                    //        btnTipMsg.TextID = StringId.AuthenticationFailedGestureError;
                    //        btnTipMsg.IsSelected = true;
                    //        btnTipMsg.Visible = true;
                    //    }
                    //    return;
                    //}
                    //if (optionType == "3" || optionType == "4")
                    //{
                    //    if (passwrod == oldPasswrod)
                    //    {
                    //        if (optionType == "4")
                    //        {
                    //            backAction();
                    //            this.RemoveFromParent();
                    //            return;
                    //        }
                    //        if (UserInfo.Current.appUnlockType.Contains("2"))
                    //        {
                    //            UserInfo.Current.appUnlockType = new System.Collections.Generic.List<string>();
                    //            UserInfo.Current.appUnlockPasswrod = "";
                    //            UserInfo.Current.SaveUserInfo();
                    //            this.RemoveFromParent();
                    //            backAction();
                    //        }
                    //    }
                    //    else
                    //    {
                    //        btnTipMsg.TextID = StringId.AuthenticationFailedGestureError;
                    //        btnTipMsg.IsSelected = true;
                    //        btnTipMsg.Visible = true;
                    //    }
                    //    return;
                    //}
                    //if (optionType == "5" || optionType == "6"|| optionType == "8" || optionType == "9")
                    //{
                    //    if (passwrod == oldPasswrod)
                    //    {
                    //        if (optionType == "5" )//&& UserInfo.Current.appUnlockType.Contains("3"))
                    //        {
                    //            if (UserInfo.Current.appUnlockType.Contains("3"))
                    //                UserInfo.Current.appUnlockType.Remove("3");
                    //            else
                    //                UserInfo.Current.appUnlockType.Add("3");
                    //            UserInfo.Current.SaveUserInfo();
                    //            this.RemoveFromParent();
                    //        }
                    //        if ( optionType == "6")
                    //        {
                    //            if (UserInfo.Current.appUnlockType.Contains("4"))
                    //                UserInfo.Current.appUnlockType.Remove("4");
                    //            else
                    //                UserInfo.Current.appUnlockType.Add("4");
                    //            UserInfo.Current.SaveUserInfo();
                    //            this.RemoveFromParent();
                    //        }
                    //        if (optionType == "8" && !UserInfo.Current.appUnlockType.Contains("3"))
                    //        {
                    //            UserInfo.Current.appUnlockType.Add("3");
                    //            UserInfo.Current.SaveUserInfo();
                    //            this.RemoveFromParent();
                    //        }
                    //        if (!UserInfo.Current.appUnlockType.Contains("4") && optionType == "9")
                    //        {
                    //            UserInfo.Current.appUnlockType.Remove("4");
                    //            UserInfo.Current.SaveUserInfo();
                    //            this.RemoveFromParent();
                    //        }
                    //        backAction();
                    //    }
                    //    else
                    //    {
                    //        btnTipMsg.TextID = StringId.AuthenticationFailedGestureError;
                    //        btnTipMsg.IsSelected = true;
                    //        btnTipMsg.Visible = true;
                    //    }
                    //    return;
                    //}
                    //if (passwrod == oldPasswrod)
                    //{
                    //    this.RemoveFromParent();
                    //    var page = new OperationResultDisPalyPage();
                    //    page.Show();
                    //    page.LoadPage(true, Language.StringByID(StringId.SetSuccessfully), Language.StringByID(StringId.SetSuccessfully), "");
                    //    //page.LoadPage(true, Language.StringByID(StringId.SetSuccessfully), Language.StringByID(StringId.SetSuccessfully), "");
                    //    string tipMsg = TouchIDUtils.getTouchIDSupperType() == TouchIDUtils.TouchIDSupperType.TouchID ? Language.StringByID(StringId.TurnOnFingerprintUnlocking) :
                    //                    Language.StringByID(StringId.TurnOnFaceIdUnlocking);
                    //    if (TouchIDUtils.getTouchIDSupperType() != TouchIDUtils.TouchIDSupperType.None)
                    //    {
                    //        Action<bool> action = (result) =>
                    //        {
                    //            var unlockType = TouchIDUtils.getTouchIDSupperType() == TouchIDUtils.TouchIDSupperType.TouchID ? "3" : "4";
                    //            if (result)
                    //            {
                    //                if (!UserInfo.Current.appUnlockType.Contains(unlockType))
                    //                {
                    //                    UserInfo.Current.appUnlockType.Add(unlockType);
                    //                }
                    //            }
                    //            else
                    //            {
                    //                if (UserInfo.Current.appUnlockType.Contains(unlockType))
                    //                {
                    //                    UserInfo.Current.appUnlockType.Remove(unlockType);
                    //                }
                    //            }
                    //            UserInfo.Current.SaveUserInfo();
                    //            backAction();
                    //        };
                    //        page.AdditionalOperations(tipMsg, action);
                    //    }
                    //    if (!UserInfo.Current.appUnlockType.Contains("2"))
                    //    {
                    //        UserInfo.Current.appUnlockType.Add("2");
                    //    }
                    //    UserInfo.Current.appUnlockPasswrod = passwrod;
                    //    UserInfo.Current.SaveUserInfo();
                    //    backAction();
                    //}
                    //else
                    //{
                    //    btnTipMsg.Text = Language.StringByID(StringId.DrawingInconsistencyError);
                    //    btnTipMsg.IsSelected = true;
                    //}
                }
            };
            if (optionType == "5" || optionType == "6" || optionType == "7")
            //加载底部验证按钮
            if (optionType == "5" || optionType == "6")
            {
                Button btnLoginAccountVerify = new Button()
                {
                    Y = Application.GetRealHeight(517),
                    Height = Application.GetRealHeight(60),
                    TextAlignment = TextAlignment.Center,
                    TextSize = CSS_FontSize.TextFontSize,
                    TextColor = CSS_Color.MainColor,
                    TextID = StringId.EnterLoginPasswordVerification,
                };
                bodyView.AddChidren(btnLoginAccountVerify);
                btnLoginAccountVerify.MouseUpEventHandler = (sender, e) =>
                {
                    if (optionType == "7")
                    {
                        MainPage.GoLoginPage(UserInfo.Current);
                    }
                    else
                    {
                        Action<string> action = (pw) =>
                        {
                            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();
                            }
                            else
                            {
                                //登录失败
                                IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
                            }
                        };
                        new PublicAssmebly().LoadDialog_EditParater(StringId.EnterLoginPasswordVerification, "", action, StringId.PlsEntryPassword, 0, new System.Collections.Generic.List<string>(), true);
                    }
                };
                //输入登录密码验证 提示按钮
                AddInputPasswordTipButton();
            }
            else if (optionType == "7")
            {
                //使用账户密码登录按钮 提示按钮
                AddLoginTipButton();
            }
            //if (optionType == "5" || optionType == "6" || optionType == "7")
            //{
            //    Button btnLoginAccountVerify = new Button()
            //    {
            //        Y = Application.GetRealHeight(517),
            //        Height = Application.GetRealHeight(60),
            //        TextAlignment = TextAlignment.Center,
            //        TextSize = CSS_FontSize.TextFontSize,
            //        TextColor = CSS_Color.MainColor,
            //        TextID = StringId.EnterLoginPasswordVerification,
            //    };
            //    bodyView.AddChidren(btnLoginAccountVerify);
            //    btnLoginAccountVerify.MouseUpEventHandler = (sender, e) =>
            //    {
            //        if (optionType == "7")
            //        {
            //            MainPage.GoLoginPage(UserInfo.Current);
            //        }
            //        else
            //        {
            //            Action<string> action = (pw) =>
            //            {
            //                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();
            //                }
            //                else
            //                {
            //                    //登录失败
            //                    IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
            //                }
            //            };
            //            new PublicAssmebly().LoadDialog_EditParater(StringId.EnterLoginPasswordVerification, "", action, StringId.PlsEntryPassword, 0, new System.Collections.Generic.List<string>(), true);
            //        }
            //    };
            //}
        }
        /// <summary>
@@ -461,5 +332,70 @@
                backAction();
            }
        }
        /// <summary>
        /// 使用账户密码登录按钮 提示按钮
        /// </summary>
        void AddLoginTipButton()
        {
            Button btnLoginAccountVerify = new Button()
            {
                Y = Application.GetRealHeight(517),
                Height = Application.GetRealHeight(60),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.TextFontSize,
                TextColor = CSS_Color.MainColor,
                TextID = StringId.LogWithAccountAndPassword,
            };
            bodyView.AddChidren(btnLoginAccountVerify);
            btnLoginAccountVerify.MouseUpEventHandler = (sender, e) =>
            {
                //退出登录
                HDLCommon.Current.Logout();
            };
        }
        /// <summary>
        /// 输入登录密码验证 提示按钮
        /// </summary>
        void AddInputPasswordTipButton()
        {
            Button btnLoginAccountVerify = new Button()
            {
                Y = Application.GetRealHeight(517),
                Height = Application.GetRealHeight(60),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.TextFontSize,
                TextColor = CSS_Color.MainColor,
                TextID = StringId.EnterLoginPasswordVerification,
            };
            bodyView.AddChidren(btnLoginAccountVerify);
            btnLoginAccountVerify.MouseUpEventHandler = (sender, e) =>
            {
                //输入登录密码验证
                Action<string> action = (pw) =>
                {
                    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();
                    }
                    else
                    {
                        //登录失败
                        IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
                    }
                };
                new PublicAssmebly().LoadDialog_EditParater(StringId.EnterLoginPasswordVerification, "", action, StringId.PlsEntryPassword, 0, new System.Collections.Generic.List<string>(), true);
            };
        }
    }
}
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockPasswordPage.cs
@@ -20,7 +20,7 @@
        string passwrod = "";
        string oldPasswrod = "";
        Action backAction;
        public AppUnlockPasswordPage(string pw,Action action)
        public AppUnlockPasswordPage(string pw, Action action)
        {
            bodyView = this;
            oldPasswrod = pw;
@@ -54,16 +54,16 @@
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextID = string.IsNullOrEmpty(oldPasswrod)? StringId.PlsEntryPassword : StringId.PlsRegisterRepeatPassword,
                TextID = string.IsNullOrEmpty(oldPasswrod) ? StringId.PlsEntryPassword : StringId.PlsRegisterRepeatPassword,
            };
            bodyView.AddChidren(btnTipTitle);
            if (optionType == "2"|| optionType == "3")
            if (optionType == "2" || optionType == "3")
            {
                btnTipTitle.TextID = StringId.PleaseEnterTheOriginalDigitalPassword;
            }
            if(optionType == "7")
            if (optionType == "7")
            {
                btnTipTitle.TextID = StringId.PlsEntryPassword;
            }
@@ -154,7 +154,7 @@
            etPassword.TextChangeEventHandler = (sender, e) => {
                passwrod = etPassword.Text.Trim();
                switch(etPassword.Text.Trim().Length)
                switch (etPassword.Text.Trim().Length)
                {
                    case 0:
                        btnTipIcon1.IsSelected = false;
@@ -191,7 +191,7 @@
                        {
                            //移除当前界面,每次返回都返回到最上级
                            this.RemoveFromParent();
                            var page = new AppUnlockPasswordPage(passwrod,backAction);
                            var page = new AppUnlockPasswordPage(passwrod, backAction);
                            MainPage.BasePageView.AddChidren(page);
                            page.LoadPage(optionType);
                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
@@ -209,145 +209,6 @@
                                //密码验证失败
                                PasswordInputError(optionType);
                            }
                            //if (optionType == "2")
                            //{
                            //    //移除当前界面,每次返回都返回到最上级
                            //    this.RemoveFromParent();
                            //    var page = new AppUnlockPasswordPage("", backAction);
                            //    MainPage.BasePageView.AddChidren(page);
                            //    page.LoadPage("1");
                            //    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                            //    return;
                            //}
                            //if (optionType == "7")
                            //{
                            //    if (passwrod == oldPasswrod)
                            //    {
                            //        //MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                            //        this.RemoveFromParent();
                            //        backAction();
                            //        return;
                            //    }
                            //    else
                            //    {
                            //        btnTipError.TextID = StringId.AuthenticationFailedPasswordError;
                            //        etPassword.Text = "";
                            //        btnTipError.Visible = true;
                            //    }
                            //    return;
                            //}
                            //if (optionType == "3"|| optionType == "4")
                            //{
                            //    if (passwrod == oldPasswrod)
                            //    {
                            //        if(optionType == "4")
                            //        {
                            //            backAction();
                            //            this.RemoveFromParent();
                            //            return;
                            //        }
                            //        if (UserInfo.Current.appUnlockType.Contains("1"))
                            //        {
                            //            UserInfo.Current.appUnlockType =new System.Collections.Generic.List<string>();//.Remove("1");
                            //            UserInfo.Current.appUnlockPasswrod = "";
                            //            UserInfo.Current.SaveUserInfo();
                            //            this.RemoveFromParent();
                            //            backAction();
                            //        }
                            //    }
                            //    else
                            //    {
                            //        btnTipError.TextID = StringId.AuthenticationFailedPasswordError;
                            //        etPassword.Text = "";
                            //        btnTipError.Visible = true;
                            //    }
                            //    return;
                            //}
                            ////关闭/开启指纹或者面容
                            //if (optionType == "5" || optionType == "6")//|| optionType == "8" || optionType == "9")
                            //{
                            //    if (passwrod == oldPasswrod)
                            //    {
                            //        if (optionType == "5")
                            //        {
                            //            if (UserInfo.Current.appUnlockType.Contains("3"))
                            //                UserInfo.Current.appUnlockType.Remove("3");
                            //            else
                            //                UserInfo.Current.appUnlockType.Add("3");
                            //            UserInfo.Current.SaveUserInfo();
                            //            this.RemoveFromParent();
                            //        }
                            //        if (optionType == "6")
                            //        {
                            //            if (UserInfo.Current.appUnlockType.Contains("4"))
                            //                UserInfo.Current.appUnlockType.Remove("4");
                            //            else
                            //                UserInfo.Current.appUnlockType.Add("4");
                            //            UserInfo.Current.SaveUserInfo();
                            //            this.RemoveFromParent();
                            //        }
                            //        backAction();
                            //    }
                            //    else
                            //    {
                            //        btnTipError.TextID = StringId.AuthenticationFailedPasswordError;
                            //        etPassword.Text = "";
                            //        btnTipError.Visible = true;
                            //    }
                            //    return;
                            //}
                            //if (passwrod == oldPasswrod)
                            //{
                            //    this.RemoveFromParent();
                            //    var page = new OperationResultDisPalyPage();
                            //    page.Show();
                            //    page.LoadPage(true, Language.StringByID(StringId.SetSuccessfully), Language.StringByID(StringId.SetSuccessfully), "");
                            //    string tipMsg = TouchIDUtils.getTouchIDSupperType() == TouchIDUtils.TouchIDSupperType.TouchID ? Language.StringByID(StringId.TurnOnFingerprintUnlocking) :
                            //                    Language.StringByID(StringId.TurnOnFaceIdUnlocking);
                            //    if (TouchIDUtils.getTouchIDSupperType() != TouchIDUtils.TouchIDSupperType.None)
                            //    {
                            //        var unlockType = TouchIDUtils.getTouchIDSupperType() == TouchIDUtils.TouchIDSupperType.TouchID ? "3" : "4";
                            //        Action<bool> action = (result) =>
                            //        {
                            //            if (result)
                            //            {
                            //                if (!UserInfo.Current.appUnlockType.Contains(unlockType))
                            //                {
                            //                    UserInfo.Current.appUnlockType.Add(unlockType);
                            //                }
                            //            }
                            //            else
                            //            {
                            //                if (UserInfo.Current.appUnlockType.Contains(unlockType))
                            //                {
                            //                    UserInfo.Current.appUnlockType.Remove(unlockType);
                            //                }
                            //            }
                            //            backAction();
                            //            UserInfo.Current.SaveUserInfo();
                            //        };
                            //        page.AdditionalOperations(tipMsg, action);
                            //    }
                            //    if (!UserInfo.Current.appUnlockType.Contains("1"))
                            //    {
                            //        UserInfo.Current.appUnlockType.Add("1");
                            //    }
                            //    UserInfo.Current.appUnlockPasswrod = passwrod;
                            //    UserInfo.Current.SaveUserInfo();
                            //    backAction();
                            //}
                            //else
                            //{
                            //    btnTipError.TextID = StringId.IncorrectRepeatPassword;
                            //    etPassword.Text = "";
                            //    btnTipError.Visible = true;
                            //}
                        }
                        break;
                }
@@ -364,50 +225,16 @@
            etPassword.Foucs = true;
            if (optionType == "3" || optionType == "5" || optionType == "6" || optionType == "7")
            //加载底部验证按钮
            if (optionType == "3" || optionType == "5" || optionType == "6")
            {
                Button btnLoginAccountVerify = new Button()
                {
                    Y = Application.GetRealHeight(517),
                    Height = Application.GetRealHeight(60),
                    TextAlignment = TextAlignment.Center,
                    TextSize = CSS_FontSize.TextFontSize,
                    TextColor = CSS_Color.MainColor,
                    TextID = StringId.EnterLoginPasswordVerification,
                };
                bodyView.AddChidren(btnLoginAccountVerify);
                btnLoginAccountVerify.MouseUpEventHandler = (sender, e) =>
                {
                    if (optionType == "7")
                    {
                        //MainPage.GoLoginPage( UserInfo.Current);
                        //2020-12-12 退出登录
                        HDLCommon.Current.Logout();
                    }
                    else
                    {
                        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();
                            }
                            else
                            {
                                //登录失败
                                IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
                            }
                        };
                        new PublicAssmebly().LoadDialog_EditParater(StringId.EnterLoginPasswordVerification, "", action, StringId.PlsEntryPassword, 0, new System.Collections.Generic.List<string>(), true);
                    }
                };
                //输入登录密码验证 提示按钮
                AddInputPasswordTipButton();
            }
            else if(optionType == "7")
            {
                //使用账户密码登录按钮 提示按钮
                AddLoginTipButton();
            }
        }
@@ -552,5 +379,73 @@
                backAction();
            }
        }
        /// <summary>
        /// 使用账户密码登录按钮 提示按钮
        /// </summary>
        void AddLoginTipButton(){
            Button btnLoginAccountVerify = new Button()
            {
                Y = Application.GetRealHeight(517),
                Height = Application.GetRealHeight(60),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.TextFontSize,
                TextColor = CSS_Color.MainColor,
                TextID = StringId.LogWithAccountAndPassword,
            };
            bodyView.AddChidren(btnLoginAccountVerify);
            btnLoginAccountVerify.MouseUpEventHandler = (sender, e) =>
            {
                //退出登录
                HDLCommon.Current.Logout();
            };
        }
        /// <summary>
        /// 输入登录密码验证 提示按钮
        /// </summary>
        void AddInputPasswordTipButton()
        {
            Button btnLoginAccountVerify = new Button()
            {
                Y = Application.GetRealHeight(517),
                Height = Application.GetRealHeight(60),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.TextFontSize,
                TextColor = CSS_Color.MainColor,
                TextID = StringId.EnterLoginPasswordVerification,
            };
            bodyView.AddChidren(btnLoginAccountVerify);
            btnLoginAccountVerify.MouseUpEventHandler = (sender, e) =>
            {
                //输入登录密码验证
                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();
                    }
                    else
                    {
                        Application.RunOnMainThread(() =>
                        {
                            Utlis.ShowTip(Language.StringByID(StringId.AuthenticationFailedPasswordError));
                        });
                        ////登录失败
                        //IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
                    }
                };
                new PublicAssmebly().LoadDialog_EditParater(StringId.EnterLoginPasswordVerification, "", action, StringId.PlsEntryPassword, 0, new System.Collections.Generic.List<string>(), true);
            };
        }
    }
}
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockSettingsPageBLL.cs
@@ -120,6 +120,11 @@
            EventHandler<MouseEventArgs> eventHandler2 = (sender, e) =>
            {
                bool result = !btnStartupBg.IsSelected;
                if (!result)
                {
                    //如果启动解锁 不能取消启动解锁
                    if (!CheckIfCanDeselect("1")) return;
                }
                btnStartupBg.IsSelected = btnStartupSelectionIcon.IsSelected = btnStartupSelectionTip.IsSelected = result;
                btnTipMsg.Text = Language.StringByID(StringId.AtStartupTipMsg);
@@ -158,6 +163,12 @@
            EventHandler<MouseEventArgs> eventHandler3 = (sender, e) =>
            {
                bool result = !btnSecurityBg.IsSelected;
                if (!result)
                {
                    //如果只剩布防/撤防一种 不能取消布防/撤防
                    if (!CheckIfCanDeselect("2")) return;
                }
                btnSecurityBg.IsSelected = btnSecuritySelectionIcon.IsSelected = btnSecuritySelectionTip.IsSelected = result;
                btnTipMsg.Text = Language.StringByID(StringId.DefenseAndUndefenseTipMsg);
@@ -197,6 +208,12 @@
            EventHandler<MouseEventArgs> eventHandler4 = (sender, e) =>
            {
                bool result = !btnDoorlockBg.IsSelected;
                if (!result)
                {
                    //如果只剩远程开锁不能取消远程开锁
                    if (!CheckIfCanDeselect("3")) return;
                }
                btnDoorlockBg.IsSelected = btnDoorlockSelectionIcon.IsSelected = btnDoorlockSelectionTip.IsSelected = result;
                btnTipMsg.Text = Language.StringByID(StringId.RemoteUnlockingTipMsg);
@@ -363,5 +380,21 @@
                };
            }
        }
        /// <summary>
        /// 判断是否能够取消,如果只剩最后一种解锁方案禁止取消
        /// </summary>
        /// <param name="appUnlockPageType">1:启动时 2:布防撤防时 3:远程开锁时</param>
        /// <returns></returns>
        bool CheckIfCanDeselect(string appUnlockPageType)
        {
            if (UserInfo.Current.appUnlockPage.Count == 1 && UserInfo.Current.appUnlockPage.Contains(appUnlockPageType))
            {
                return false;
            }
            return true;
        }
    }
}