mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
@@ -32,36 +32,28 @@ abstract final class BioAuth {
|
||||
biometrics.contains(BiometricType.fingerprint);
|
||||
}
|
||||
|
||||
static void auth([int count = 0]) async {
|
||||
static Future<void> go([int count = 0]) async {
|
||||
if (Stores.setting.useBioAuth.fetch()) {
|
||||
if (!_isAuthing) {
|
||||
_isAuthing = true;
|
||||
final val = await authWithResult();
|
||||
final val = await goWithResult();
|
||||
switch (val) {
|
||||
case AuthResult.success:
|
||||
// wait for animation
|
||||
Future.delayed(
|
||||
isIOS
|
||||
? const Duration(milliseconds: 1300)
|
||||
: const Duration(seconds: 1),
|
||||
() => _isAuthing = false,
|
||||
);
|
||||
break;
|
||||
case AuthResult.fail:
|
||||
case AuthResult.cancel:
|
||||
_isAuthing = false;
|
||||
auth(count + 1);
|
||||
go(count + 1);
|
||||
break;
|
||||
case AuthResult.notAvail:
|
||||
_isAuthing = false;
|
||||
Stores.setting.useBioAuth.put(false);
|
||||
break;
|
||||
}
|
||||
_isAuthing = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static Future<AuthResult> authWithResult() async {
|
||||
static Future<AuthResult> goWithResult() async {
|
||||
if (!await isAvail) return AuthResult.notAvail;
|
||||
try {
|
||||
await _auth.stopAuthentication();
|
||||
|
||||
@@ -62,5 +62,8 @@ abstract final class GithubIds {
|
||||
'Tridays',
|
||||
'Nebulosa-Cat',
|
||||
'dani7959',
|
||||
'MoMingRose',
|
||||
'sakalakagg',
|
||||
'cz32483490',
|
||||
};
|
||||
}
|
||||
|
||||
@@ -82,13 +82,13 @@ class _HomePageState extends State<HomePage>
|
||||
|
||||
switch (state) {
|
||||
case AppLifecycleState.resumed:
|
||||
BioAuth.auth();
|
||||
if (!Pros.server.isAutoRefreshOn) {
|
||||
Pros.server.startAutoRefresh();
|
||||
}
|
||||
HomeWidgetMC.update();
|
||||
break;
|
||||
case AppLifecycleState.paused:
|
||||
BioAuth.go();
|
||||
// Keep running in background on Android device
|
||||
if (isAndroid && Stores.setting.bgRun.fetch()) {
|
||||
// Keep this if statement single
|
||||
@@ -316,7 +316,7 @@ ${GithubIds.participants.map((e) => '[$e](${e.url})').join(' ')}
|
||||
@override
|
||||
Future<void> afterFirstLayout(BuildContext context) async {
|
||||
// Auth required for first launch
|
||||
BioAuth.auth();
|
||||
BioAuth.go();
|
||||
|
||||
if (Stores.setting.autoCheckAppUpdate.fetch()) {
|
||||
doUpdate(context);
|
||||
|
||||
@@ -36,7 +36,7 @@ abstract final class PlatformPublicSettings {
|
||||
return;
|
||||
}
|
||||
// Only auth when turn off (val == false)
|
||||
final result = await BioAuth.authWithResult();
|
||||
final result = await BioAuth.goWithResult();
|
||||
// If failed, turn on again
|
||||
if (result != AuthResult.success) {
|
||||
Stores.setting.useBioAuth.put(true);
|
||||
|
||||
Reference in New Issue
Block a user