diff --git a/src/Android/Services/DeviceActionService.cs b/src/Android/Services/DeviceActionService.cs index 6faba5f06..aec778f1c 100644 --- a/src/Android/Services/DeviceActionService.cs +++ b/src/Android/Services/DeviceActionService.cs @@ -651,15 +651,19 @@ namespace Bit.Droid.Services private async Task CopyTotpAsync(CipherView cipher) { - var autoCopyDisabled = await _storageService.GetAsync(Constants.DisableAutoTotpCopyKey); - var canAccessPremium = await ServiceContainer.Resolve("userService").CanAccessPremiumAsync(); - if((canAccessPremium || cipher.OrganizationUseTotp) && !autoCopyDisabled.GetValueOrDefault() && - !string.IsNullOrWhiteSpace(cipher?.Login?.Totp)) + if(!string.IsNullOrWhiteSpace(cipher?.Login?.Totp)) { - var totp = await ServiceContainer.Resolve("totpService").GetCodeAsync(cipher.Login.Totp); - if(totp != null) + var userService = ServiceContainer.Resolve("userService"); + var autoCopyDisabled = await _storageService.GetAsync(Constants.DisableAutoTotpCopyKey); + var canAccessPremium = await userService.CanAccessPremiumAsync(); + if((canAccessPremium || cipher.OrganizationUseTotp) && !autoCopyDisabled.GetValueOrDefault()) { - CopyToClipboard(totp); + var totpService = ServiceContainer.Resolve("totpService"); + var totp = await totpService.GetCodeAsync(cipher.Login.Totp); + if(totp != null) + { + CopyToClipboard(totp); + } } } } diff --git a/src/App/Utilities/AppHelpers.cs b/src/App/Utilities/AppHelpers.cs index 91a13923b..295f27916 100644 --- a/src/App/Utilities/AppHelpers.cs +++ b/src/App/Utilities/AppHelpers.cs @@ -29,7 +29,12 @@ namespace Bit.App.Utilities } if(!string.IsNullOrWhiteSpace(cipher.Login.Totp)) { - options.Add(AppResources.CopyTotp); + var userService = ServiceContainer.Resolve("userService"); + var canAccessPremium = await userService.CanAccessPremiumAsync(); + if(canAccessPremium || cipher.OrganizationUseTotp) + { + options.Add(AppResources.CopyTotp); + } } if(cipher.Login.CanLaunch) {