using System;
|
using Shared;
|
namespace HDL_ON.UI
|
{
|
/// <summary>
|
/// app解锁界面
|
/// </summary>
|
public class AppUnlockPage
|
{
|
void LoadOption()
|
{
|
//2020-12-12 未登录或者APP未启动都返回,解决闪退问题
|
if (UserInfo.Current == null || !UserInfo.Current.IsLogin || MainPage.BasePageView == null)
|
{
|
return;
|
}
|
Action action = () =>
|
{
|
UserInfo.Current.unlockTime = DateTime.Now;
|
};
|
//1:验证指纹
|
if (UserInfo.Current.appUnlockType.Contains("3"))
|
{
|
TouchIDVerification();
|
}
|
else if (UserInfo.Current.appUnlockType.Contains("4"))
|
{
|
//Face ID验证
|
//2020-12-11 待增加面容失败验证页面,不然会导致锁屏加密无效
|
FaceIDVerification();
|
}
|
else if (UserInfo.Current.appUnlockType.Contains("1"))
|
{
|
var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, action);
|
MainPage.BasePageView.AddChidren(page);
|
page.LoadPage("7");
|
}
|
else if (UserInfo.Current.appUnlockType.Contains("2"))
|
{
|
var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, action);
|
MainPage.BasePageView.AddChidren(page);
|
page.LoadPage("7");
|
}
|
#if __ANDROID__
|
new System.Threading.Thread(() =>
|
{
|
int i = 0;
|
while (i > 1)
|
{
|
MainPage.Log($"倒计时:{i} sec");
|
System.Threading.Thread.Sleep(1000);
|
i++;
|
}
|
Application.RunOnMainThread(() =>
|
{
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
});
|
})
|
{ IsBackground = true }.Start();
|
#else
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
#endif
|
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="isFirstOpen">如果是第一次启动直接弹窗验证密码</param>
|
public void LoadPage(bool isFirstOpen = false)
|
{
|
try
|
{
|
if (!isFirstOpen)
|
{
|
if (UserInfo.Current.unlockTime.AddMinutes(5) > DateTime.Now || UserInfo.Current.appUnlockPasswrod == "" || UserInfo.Current.appUnlockPage.Count == 0)
|
{
|
return;
|
}
|
}
|
LoadOption();
|
}
|
catch
|
{
|
Utlis.WriteLine("AppUnlockPage error");
|
}
|
}
|
|
/// <summary>
|
/// 指纹验证
|
/// </summary>
|
void TouchIDVerification()
|
{
|
//验证成功Action
|
Action successAction = () =>
|
{
|
UserInfo.Current.unlockTime = DateTime.Now;
|
};
|
|
//提示数字密码验证还是绘制手势验证
|
string verificationTitleString = GetVerificationTitleString();
|
|
//弹出指纹验证对话框
|
Action fingerAction = () =>
|
{
|
TouchIDUtils.Instance.showTouchIDWithDescribe(verificationTitleString, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
|
};
|
//加载UI页面
|
LoadGesturePage("7", fingerAction, null);
|
|
TouchIDUtils.Instance.showTouchIDWithDescribe(verificationTitleString, 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>
|
/// <param name="optionType"></param>
|
/// <param name="fingerAction"></param>
|
/// <param name="successAction"></param>
|
public void LoadGesturePage(string optionType, Action fingerAction, Action successAction)
|
{
|
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.PleaseVerifyTheFingerprint,
|
});
|
|
var btnFingerIcon = new Button()
|
{
|
Y = Application.GetRealHeight(260),
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(102),
|
Height = Application.GetRealWidth(102),
|
UnSelectedImagePath = "PersonalCenter/AppUnlockSetting/FingerIconBlue.png",
|
};
|
bodyView.AddChidren(btnFingerIcon);
|
|
btnFingerIcon.MouseUpEventHandler = (sender, e) =>
|
{
|
fingerAction();
|
};
|
|
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) =>
|
{
|
///将验证指纹的页面移除
|
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;
|
//}
|
|
if (successAction == null)
|
{
|
Action action = () =>
|
{
|
UserInfo.Current.unlockTime = DateTime.Now;
|
};
|
GotogoToVerifyPasswordPage(optionType, action);
|
}
|
else
|
{
|
GotogoToVerifyPasswordPage(optionType, successAction);
|
}
|
};
|
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
|
//dialog.Show();
|
//Console.WriteLine("-0987654321");
|
}
|
|
/// <summary>
|
/// 面容ID验证
|
/// </summary>
|
void FaceIDVerification()
|
{
|
//验证成功Action
|
Action successAction = () =>
|
{
|
UserInfo.Current.unlockTime = DateTime.Now;
|
};
|
|
//提示数字密码验证还是绘制手势验证
|
string verificationTitleString = GetVerificationTitleString();
|
|
//弹出指纹验证对话框
|
Action faceIDAction = () =>
|
{
|
TouchIDUtils.Instance.showTouchIDWithDescribe(verificationTitleString, Language.StringByID(StringId.VerifyFaceID));
|
};
|
//加载UI页面
|
LoadFaceIDGesturePage("7", faceIDAction, null);
|
|
TouchIDUtils.Instance.showTouchIDWithDescribe(verificationTitleString, 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>
|
/// <param name="optionType"></param>
|
/// <param name="faceIDAction"></param>
|
/// <param name="successAction">指定成功的事件回调</param>
|
public void LoadFaceIDGesturePage(string optionType, Action faceIDAction, Action successAction)
|
{
|
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();
|
|
if (successAction == null)
|
{
|
Action action = () =>
|
{
|
UserInfo.Current.unlockTime = DateTime.Now;
|
};
|
GotogoToVerifyPasswordPage(optionType, action);
|
}
|
else
|
{
|
GotogoToVerifyPasswordPage(optionType, successAction);
|
}
|
|
};
|
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
|
}
|
|
/// <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;
|
}
|
}
|
|
/// <summary>
|
/// 判断是否数字验证、否则绘制手势验证
|
/// </summary>
|
/// <returns></returns>
|
bool CheckIfUnlockPassword()
|
{
|
return UserInfo.Current.appUnlockType.Contains("1");
|
}
|
|
/// <summary>
|
/// 判断是否数字验证、否则绘制手势验证
|
/// </summary>
|
/// <returns></returns>
|
string GetVerificationTitleString()
|
{
|
if (CheckIfUnlockPassword())
|
{
|
return Language.StringByID(StringId.PasswordVerification);
|
}
|
else
|
{
|
return Language.StringByID(StringId.GestureVerification);
|
}
|
}
|
}
|
}
|