From 8f44ed5bd485b49d65c6a21f2cb6e2421189aab9 Mon Sep 17 00:00:00 2001 From: Jimmy Date: Sat, 25 Jul 2026 02:39:23 +0800 Subject: [PATCH 1/2] Require authorization before disabling biometrics --- OneGateApp/Pages/DisableBiometricPage.xaml.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/OneGateApp/Pages/DisableBiometricPage.xaml.cs b/OneGateApp/Pages/DisableBiometricPage.xaml.cs index 70ee979..f7f196f 100644 --- a/OneGateApp/Pages/DisableBiometricPage.xaml.cs +++ b/OneGateApp/Pages/DisableBiometricPage.xaml.cs @@ -9,15 +9,28 @@ namespace NeoOrder.OneGate.Pages; public partial class DisableBiometricPage : ContentPage { readonly ApplicationDbContext dbContext; + readonly WalletAuthorizationService authorizationService; - public DisableBiometricPage(ApplicationDbContext dbContext) + public DisableBiometricPage(ApplicationDbContext dbContext, WalletAuthorizationService authorizationService) { this.dbContext = dbContext; + this.authorizationService = authorizationService; InitializeComponent(); } async void OnDisableClicked(object sender, EventArgs e) { + bool authorized; + try + { + authorized = await authorizationService.RequestAuthorizationAsync(this, Strings.DisableBiometric, Strings.DisableBiometricText); + } + catch (OperationCanceledException) + { + return; + } + if (!authorized) return; + await dbContext.Settings.DeleteAsync("biometric/credential"); GlobalStates.Invalidate(); await Shell.Current.GoToAsync(".."); From f77bc5e32d6fb2d649bb47d887faa474c3a7ff97 Mon Sep 17 00:00:00 2001 From: OneGate Dev Date: Thu, 13 Aug 2026 14:23:15 +0800 Subject: [PATCH 2/2] Align biometric authorization handling --- OneGateApp/Pages/DisableBiometricPage.xaml.cs | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/OneGateApp/Pages/DisableBiometricPage.xaml.cs b/OneGateApp/Pages/DisableBiometricPage.xaml.cs index f7f196f..fb0e2ee 100644 --- a/OneGateApp/Pages/DisableBiometricPage.xaml.cs +++ b/OneGateApp/Pages/DisableBiometricPage.xaml.cs @@ -9,27 +9,18 @@ namespace NeoOrder.OneGate.Pages; public partial class DisableBiometricPage : ContentPage { readonly ApplicationDbContext dbContext; - readonly WalletAuthorizationService authorizationService; + readonly WalletAuthorizationService walletAuthorizationService; - public DisableBiometricPage(ApplicationDbContext dbContext, WalletAuthorizationService authorizationService) + public DisableBiometricPage(ApplicationDbContext dbContext, WalletAuthorizationService walletAuthorizationService) { this.dbContext = dbContext; - this.authorizationService = authorizationService; + this.walletAuthorizationService = walletAuthorizationService; InitializeComponent(); } async void OnDisableClicked(object sender, EventArgs e) { - bool authorized; - try - { - authorized = await authorizationService.RequestAuthorizationAsync(this, Strings.DisableBiometric, Strings.DisableBiometricText); - } - catch (OperationCanceledException) - { - return; - } - if (!authorized) return; + if (!await walletAuthorizationService.RequestAuthorizationAsync(this, Strings.DisableBiometric, Strings.DisableBiometricText)) return; await dbContext.Settings.DeleteAsync("biometric/credential"); GlobalStates.Invalidate();