compare with _lastNotificationUri

This commit is contained in:
Kyle Spearrin 2017-05-30 08:18:56 -04:00
parent f494570725
commit e651a13980
1 changed files with 19 additions and 6 deletions

View File

@ -56,7 +56,8 @@ namespace Bit.Android
}.ToDictionary(n => n.PackageName);
private readonly IAppSettingsService _appSettings;
private long _lastNotification = 0;
private long _lastNotificationTime = 0;
private string _lastNotificationUri = null;
public AutofillService()
{
@ -109,11 +110,21 @@ namespace Bit.Android
break;
}
else if(_appSettings.AutofillPasswordField && AutofillActivity.LastCredentials == null)
{
if(string.IsNullOrWhiteSpace(_lastNotificationUri))
{
CancelNotification(notificationManager);
break;
}
var uri = GetUri(root);
if(uri != _lastNotificationUri)
{
CancelNotification(notificationManager);
break;
}
}
if(e.PackageName == BitwardenPackage)
{
CancelNotification(notificationManager);
@ -138,8 +149,8 @@ namespace Bit.Android
allEditTexts.Dispose();
usernameEditText.Dispose();
passwordNodes.Dispose();
}
passwordNodes.Dispose();
}
if(!needToFill)
@ -211,11 +222,12 @@ namespace Bit.Android
public void CancelNotification(NotificationManager notificationManager)
{
if(Java.Lang.JavaSystem.CurrentTimeMillis() - _lastNotification < 250)
if(Java.Lang.JavaSystem.CurrentTimeMillis() - _lastNotificationTime < 250)
{
return;
}
_lastNotificationUri = null;
notificationManager?.Cancel(AutoFillNotificationId);
}
@ -324,7 +336,8 @@ namespace Bit.Android
builder.SetPriority(-1);
}
_lastNotification = now;
_lastNotificationTime = now;
_lastNotificationUri = uri;
notificationManager.Notify(AutoFillNotificationId, builder.Build());
builder.Dispose();