diff --git a/lib/core/utils/platform/auth.dart b/lib/core/utils/platform/auth.dart index a53b5f9e..2fdc0fec 100644 --- a/lib/core/utils/platform/auth.dart +++ b/lib/core/utils/platform/auth.dart @@ -32,36 +32,28 @@ abstract final class BioAuth { biometrics.contains(BiometricType.fingerprint); } - static void auth([int count = 0]) async { + static Future 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 authWithResult() async { + static Future goWithResult() async { if (!await isAvail) return AuthResult.notAvail; try { await _auth.stopAuthentication(); diff --git a/lib/data/res/github_id.dart b/lib/data/res/github_id.dart index 09663100..f741c1b0 100644 --- a/lib/data/res/github_id.dart +++ b/lib/data/res/github_id.dart @@ -62,5 +62,8 @@ abstract final class GithubIds { 'Tridays', 'Nebulosa-Cat', 'dani7959', + 'MoMingRose', + 'sakalakagg', + 'cz32483490', }; } diff --git a/lib/view/page/home.dart b/lib/view/page/home.dart index 298f5843..3360585c 100644 --- a/lib/view/page/home.dart +++ b/lib/view/page/home.dart @@ -82,13 +82,13 @@ class _HomePageState extends State 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 afterFirstLayout(BuildContext context) async { // Auth required for first launch - BioAuth.auth(); + BioAuth.go(); if (Stores.setting.autoCheckAppUpdate.fetch()) { doUpdate(context); diff --git a/lib/view/page/setting/platform/platform_pub.dart b/lib/view/page/setting/platform/platform_pub.dart index 047ac28f..be1375cc 100644 --- a/lib/view/page/setting/platform/platform_pub.dart +++ b/lib/view/page/setting/platform/platform_pub.dart @@ -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);