コード例 #1
0
        private async void RowSelected(object sender, SelectedItemChangedEventArgs e)
        {
            ((ListView)sender).SelectedItem = null;
            if (!DoOnce())
            {
                return;
            }
            if (!(e.SelectedItem is SettingsPageListItem item))
            {
                return;
            }

            if (item.Name == AppResources.Sync)
            {
                await Navigation.PushModalAsync(new NavigationPage(new SyncPage()));
            }
            else if (item.Name == AppResources.AutofillAccessibilityService)
            {
                await Navigation.PushModalAsync(new NavigationPage(new AccessibilityServicePage(this)));
            }
            else if (item.Name == AppResources.AutofillService)
            {
                await Navigation.PushModalAsync(new NavigationPage(new AutofillServicePage(this)));
            }
            else if (item.Name == AppResources.PasswordAutofill)
            {
                await Navigation.PushModalAsync(new NavigationPage(new AutofillPage()));
            }
            else if (item.Name == AppResources.AppExtension)
            {
                await Navigation.PushModalAsync(new NavigationPage(new ExtensionPage()));
            }
            else if (item.Name == AppResources.Options)
            {
                await Navigation.PushModalAsync(new NavigationPage(new OptionsPage()));
            }
            else if (item.Name == AppResources.Folders)
            {
                await Navigation.PushModalAsync(new NavigationPage(new FoldersPage()));
            }
            else if (item.Name == AppResources.About)
            {
                await _vm.AboutAsync();
            }
            else if (item.Name == AppResources.Help)
            {
                _vm.Help();
            }
            else if (item.Name == AppResources.FingerprintPhrase)
            {
                await _vm.FingerprintAsync();
            }
            else if (item.Name == AppResources.RateTheApp)
            {
                _vm.Rate();
            }
            else if (item.Name == AppResources.ImportItems)
            {
                _vm.Import();
            }
            else if (item.Name == AppResources.ExportVault)
            {
                await Navigation.PushModalAsync(new NavigationPage(new ExportVaultPage()));
            }
            else if (item.Name == AppResources.ShareVault)
            {
                await _vm.ShareAsync();
            }
            else if (item.Name == AppResources.WebVault)
            {
                _vm.WebVault();
            }
            else if (item.Name == AppResources.ChangeMasterPassword)
            {
                await _vm.ChangePasswordAsync();
            }
            else if (item.Name == AppResources.TwoStepLogin)
            {
                await _vm.TwoStepAsync();
            }
            else if (item.Name == AppResources.LogOut)
            {
                await _vm.LogOutAsync();
            }
            else if (item.Name == AppResources.LockNow)
            {
                await _vm.LockAsync();
            }
            else if (item.Name == AppResources.LockOptions)
            {
                await _vm.LockOptionsAsync();
            }
            else if (item.Name == AppResources.UnlockWithPIN)
            {
                await _vm.UpdatePinAsync();
            }
            else if (item.Name == AppResources.PurchasePremiumMembership)
            {
                _vm.PurchasePremiumMembership();
            }
            else
            {
                var fingerprintName = AppResources.Fingerprint;
                if (Device.RuntimePlatform == Device.iOS)
                {
                    var supportsFace = await _deviceActionService.SupportsFaceBiometricAsync();

                    fingerprintName = supportsFace ? AppResources.FaceID : AppResources.TouchID;
                }
                else if (Device.RuntimePlatform == Device.Android && _deviceActionService.UseNativeBiometric())
                {
                    fingerprintName = AppResources.Biometrics;
                }
                if (item.Name == string.Format(AppResources.UnlockWith, fingerprintName))
                {
                    await _vm.UpdateFingerprintAsync();
                }
            }
        }