mirror of
https://github.com/bitwarden/mobile
synced 2026-01-08 11:33:31 +00:00
[SG-671] OTP Menu Screen causes Crash on Android (#2097)
* [SG-671] removed unnecessary calc of otpauth period. protected cal of otpauth from crashing the app if url has a wrong format. * [SG-671] changed logger * [SG-671] Refactored GetQueryParams code to used HttpUtility.ParseQueryString. * [SG-671] refactor and null protection. * [SG-671] code format * [SG-671] fixed bug where totp circle countdown was fixed to 30. * [SG-167] added fallback for uri check. Changed all default totp timers to constant. * [SG-671] missed unsaved file * [SG-671] simplified code
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Bit.Core;
|
||||
using Bit.Core.Abstractions;
|
||||
using Bit.Core.Models.View;
|
||||
using Bit.Core.Utilities;
|
||||
@@ -10,26 +11,26 @@ namespace Bit.App.Utilities
|
||||
{
|
||||
private ITotpService _totpService;
|
||||
private CipherView _cipher;
|
||||
private int _interval;
|
||||
|
||||
public TotpHelper(CipherView cipher)
|
||||
{
|
||||
_totpService = ServiceContainer.Resolve<ITotpService>("totpService");
|
||||
_cipher = cipher;
|
||||
_interval = _totpService.GetTimeInterval(cipher?.Login?.Totp);
|
||||
Interval = _totpService.GetTimeInterval(cipher?.Login?.Totp);
|
||||
}
|
||||
|
||||
public string TotpSec { get; private set; }
|
||||
public string TotpCodeFormatted { get; private set; }
|
||||
public double Progress { get; private set; }
|
||||
public double Interval { get; private set; } = Constants.TotpDefaultTimer;
|
||||
|
||||
public async Task GenerateNewTotpValues()
|
||||
{
|
||||
var epoc = CoreHelpers.EpocUtcNow() / 1000;
|
||||
var mod = epoc % _interval;
|
||||
var totpSec = _interval - mod;
|
||||
var mod = epoc % Interval;
|
||||
var totpSec = Interval - mod;
|
||||
TotpSec = totpSec.ToString();
|
||||
Progress = totpSec * 100 / 30;
|
||||
Progress = totpSec * 100 / Interval;
|
||||
if (mod == 0 || string.IsNullOrEmpty(TotpCodeFormatted))
|
||||
{
|
||||
TotpCodeFormatted = await TotpUpdateCodeAsync();
|
||||
|
||||
Reference in New Issue
Block a user