mirror of
https://github.com/bitwarden/android.git
synced 2024-12-25 02:18:27 +03:00
fix for vault timeout locking issue on android (#1442)
This commit is contained in:
parent
bd4a275558
commit
a6c95d06b5
4 changed files with 6 additions and 41 deletions
|
@ -118,7 +118,6 @@
|
||||||
<Compile Include="Receivers\ClearClipboardAlarmReceiver.cs" />
|
<Compile Include="Receivers\ClearClipboardAlarmReceiver.cs" />
|
||||||
<Compile Include="Receivers\RestrictionsChangedReceiver.cs" />
|
<Compile Include="Receivers\RestrictionsChangedReceiver.cs" />
|
||||||
<Compile Include="Receivers\EventUploadReceiver.cs" />
|
<Compile Include="Receivers\EventUploadReceiver.cs" />
|
||||||
<Compile Include="Receivers\LockAlarmReceiver.cs" />
|
|
||||||
<Compile Include="Receivers\PackageReplacedReceiver.cs" />
|
<Compile Include="Receivers\PackageReplacedReceiver.cs" />
|
||||||
<Compile Include="Renderers\ExtendedGridRenderer.cs" />
|
<Compile Include="Renderers\ExtendedGridRenderer.cs" />
|
||||||
<Compile Include="Renderers\ExtendedDatePickerRenderer.cs" />
|
<Compile Include="Renderers\ExtendedDatePickerRenderer.cs" />
|
||||||
|
|
|
@ -51,7 +51,6 @@ namespace Bit.Droid
|
||||||
private IAppIdService _appIdService;
|
private IAppIdService _appIdService;
|
||||||
private IStorageService _storageService;
|
private IStorageService _storageService;
|
||||||
private IEventService _eventService;
|
private IEventService _eventService;
|
||||||
private PendingIntent _vaultTimeoutAlarmPendingIntent;
|
|
||||||
private PendingIntent _clearClipboardPendingIntent;
|
private PendingIntent _clearClipboardPendingIntent;
|
||||||
private PendingIntent _eventUploadPendingIntent;
|
private PendingIntent _eventUploadPendingIntent;
|
||||||
private AppOptions _appOptions;
|
private AppOptions _appOptions;
|
||||||
|
@ -64,9 +63,6 @@ namespace Bit.Droid
|
||||||
var eventUploadIntent = new Intent(this, typeof(EventUploadReceiver));
|
var eventUploadIntent = new Intent(this, typeof(EventUploadReceiver));
|
||||||
_eventUploadPendingIntent = PendingIntent.GetBroadcast(this, 0, eventUploadIntent,
|
_eventUploadPendingIntent = PendingIntent.GetBroadcast(this, 0, eventUploadIntent,
|
||||||
PendingIntentFlags.UpdateCurrent);
|
PendingIntentFlags.UpdateCurrent);
|
||||||
var alarmIntent = new Intent(this, typeof(LockAlarmReceiver));
|
|
||||||
_vaultTimeoutAlarmPendingIntent = PendingIntent.GetBroadcast(this, 0, alarmIntent,
|
|
||||||
PendingIntentFlags.UpdateCurrent);
|
|
||||||
var clearClipboardIntent = new Intent(this, typeof(ClearClipboardAlarmReceiver));
|
var clearClipboardIntent = new Intent(this, typeof(ClearClipboardAlarmReceiver));
|
||||||
_clearClipboardPendingIntent = PendingIntent.GetBroadcast(this, 0, clearClipboardIntent,
|
_clearClipboardPendingIntent = PendingIntent.GetBroadcast(this, 0, clearClipboardIntent,
|
||||||
PendingIntentFlags.UpdateCurrent);
|
PendingIntentFlags.UpdateCurrent);
|
||||||
|
@ -104,20 +100,7 @@ namespace Bit.Droid
|
||||||
|
|
||||||
_broadcasterService.Subscribe(_activityKey, (message) =>
|
_broadcasterService.Subscribe(_activityKey, (message) =>
|
||||||
{
|
{
|
||||||
if (message.Command == "scheduleVaultTimeoutTimer")
|
if (message.Command == "startEventTimer")
|
||||||
{
|
|
||||||
var alarmManager = GetSystemService(AlarmService) as AlarmManager;
|
|
||||||
var vaultTimeoutMinutes = (int)message.Data;
|
|
||||||
var vaultTimeoutMs = vaultTimeoutMinutes * 60000;
|
|
||||||
var triggerMs = Java.Lang.JavaSystem.CurrentTimeMillis() + vaultTimeoutMs + 10;
|
|
||||||
alarmManager.Set(AlarmType.RtcWakeup, triggerMs, _vaultTimeoutAlarmPendingIntent);
|
|
||||||
}
|
|
||||||
else if (message.Command == "cancelVaultTimeoutTimer")
|
|
||||||
{
|
|
||||||
var alarmManager = GetSystemService(AlarmService) as AlarmManager;
|
|
||||||
alarmManager.Cancel(_vaultTimeoutAlarmPendingIntent);
|
|
||||||
}
|
|
||||||
else if (message.Command == "startEventTimer")
|
|
||||||
{
|
{
|
||||||
StartEventAlarm();
|
StartEventAlarm();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
using Android.Content;
|
|
||||||
using Bit.Core.Abstractions;
|
|
||||||
using Bit.Core.Utilities;
|
|
||||||
|
|
||||||
namespace Bit.Droid.Receivers
|
|
||||||
{
|
|
||||||
[BroadcastReceiver(Name = "com.x8bit.bitwarden.LockAlarmReceiver", Exported = false)]
|
|
||||||
public class LockAlarmReceiver : BroadcastReceiver
|
|
||||||
{
|
|
||||||
public async override void OnReceive(Context context, Intent intent)
|
|
||||||
{
|
|
||||||
var vaultTimeoutService = ServiceContainer.Resolve<IVaultTimeoutService>("vaultTimeoutService");
|
|
||||||
await vaultTimeoutService.CheckVaultTimeoutAsync();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -178,6 +178,10 @@ namespace Bit.App
|
||||||
SyncIfNeeded();
|
SyncIfNeeded();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (Device.RuntimePlatform == Device.Android)
|
||||||
|
{
|
||||||
|
await _vaultTimeoutService.CheckVaultTimeoutAsync();
|
||||||
|
}
|
||||||
_messagingService.Send("startEventTimer");
|
_messagingService.Send("startEventTimer");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -216,7 +220,6 @@ namespace Bit.App
|
||||||
private async void ResumedAsync()
|
private async void ResumedAsync()
|
||||||
{
|
{
|
||||||
await _vaultTimeoutService.CheckVaultTimeoutAsync();
|
await _vaultTimeoutService.CheckVaultTimeoutAsync();
|
||||||
_messagingService.Send("cancelVaultTimeoutTimer");
|
|
||||||
_messagingService.Send("startEventTimer");
|
_messagingService.Send("startEventTimer");
|
||||||
await ClearCacheIfNeededAsync();
|
await ClearCacheIfNeededAsync();
|
||||||
Prime();
|
Prime();
|
||||||
|
@ -313,11 +316,7 @@ namespace Bit.App
|
||||||
vaultTimeout = await _storageService.GetAsync<int?>(Constants.VaultTimeoutKey);
|
vaultTimeout = await _storageService.GetAsync<int?>(Constants.VaultTimeoutKey);
|
||||||
}
|
}
|
||||||
vaultTimeout = vaultTimeout.GetValueOrDefault(-1);
|
vaultTimeout = vaultTimeout.GetValueOrDefault(-1);
|
||||||
if (vaultTimeout > 0)
|
if (vaultTimeout == 0)
|
||||||
{
|
|
||||||
_messagingService.Send("scheduleVaultTimeoutTimer", vaultTimeout.Value);
|
|
||||||
}
|
|
||||||
else if (vaultTimeout == 0)
|
|
||||||
{
|
{
|
||||||
var action = await _storageService.GetAsync<string>(Constants.VaultTimeoutActionKey);
|
var action = await _storageService.GetAsync<string>(Constants.VaultTimeoutActionKey);
|
||||||
if (action == "logOut")
|
if (action == "logOut")
|
||||||
|
|
Loading…
Reference in a new issue