diff --git a/src/Android/AutofillService.cs b/src/Android/AutofillService.cs index b5b807895..b6dc9def6 100644 --- a/src/Android/AutofillService.cs +++ b/src/Android/AutofillService.cs @@ -156,31 +156,40 @@ namespace Bit.Android } else if(_appSettings.AutofillPasswordField && AutofillActivity.LastCredentials == null) { + LogInfo("1"); if(string.IsNullOrWhiteSpace(_lastNotificationUri)) { + LogInfo("2"); CancelNotification(notificationManager); break; } + LogInfo("3"); var uri = GetUri(root); + LogInfo("4"); if(uri != _lastNotificationUri) { + LogInfo("5"); CancelNotification(notificationManager); } else if(uri.StartsWith(App.Constants.AndroidAppProtocol)) { + LogInfo("6"); CancelNotification(notificationManager, 30000); } break; } + LogInfo("7"); if(e.PackageName == BitwardenPackage) { + LogInfo("8"); CancelNotification(notificationManager); break; } + LogInfo("9"); if(_appSettings.AutofillPersistNotification) { var uri = GetUri(root); @@ -214,11 +223,13 @@ namespace Bit.Android } else { + LogInfo("10"); cancelNotification = ScanAndAutofill(root, e, notificationManager, cancelNotification); } if(cancelNotification) { + LogInfo("11"); CancelNotification(notificationManager); } break; @@ -226,6 +237,7 @@ namespace Bit.Android break; } + LogInfo("12"); notificationManager?.Dispose(); root.Dispose(); e.Dispose(); @@ -256,6 +268,7 @@ namespace Bit.Android public bool ScanAndAutofill(AccessibilityNodeInfo root, AccessibilityEvent e, NotificationManager notificationManager, bool cancelNotification) { + LogInfo("13"); var passwordNodes = GetWindowNodes(root, e, n => n.Password, false); if(passwordNodes.Count > 0) { @@ -264,15 +277,18 @@ namespace Bit.Android { if(NeedToAutofill(AutofillActivity.LastCredentials, uri)) { + LogInfo("14"); var allEditTexts = GetWindowNodes(root, e, n => EditText(n), false); var usernameEditText = allEditTexts.TakeWhile(n => !n.Password).LastOrDefault(); FillCredentials(usernameEditText, passwordNodes); + LogInfo("15"); allEditTexts.Dispose(); usernameEditText.Dispose(); } else { + LogInfo("16"); NotifyToAutofill(uri, notificationManager); cancelNotification = false; } @@ -282,13 +298,17 @@ namespace Bit.Android } else if(AutofillActivity.LastCredentials != null) { + LogInfo("17"); System.Threading.Tasks.Task.Run(async () => { + LogInfo("18"); await System.Threading.Tasks.Task.Delay(1000); + LogInfo("19"); AutofillActivity.LastCredentials = null; }); } + LogInfo("20"); passwordNodes.Dispose(); return cancelNotification; }