From 690155391ce169f2c9b48558732a12e5d0e91c36 Mon Sep 17 00:00:00 2001 From: Matthew Wong Date: Tue, 28 Jul 2015 09:59:28 -0400 Subject: Dismiss dialog if non password field or window change (the accessibility events already needed to be handled) --- app/src/main/java/com/zeapo/pwdstore/AutofillService.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/zeapo/pwdstore/AutofillService.java b/app/src/main/java/com/zeapo/pwdstore/AutofillService.java index 58bb0994..1636702a 100644 --- a/app/src/main/java/com/zeapo/pwdstore/AutofillService.java +++ b/app/src/main/java/com/zeapo/pwdstore/AutofillService.java @@ -43,8 +43,8 @@ public class AutofillService extends AccessibilityService { private ArrayList items; // password choices private AlertDialog dialog; private static boolean unlockOK = false; // if openkeychain user interaction was successful - private static CharSequence packageName; - private static boolean ignoreActionFocus = false; + private CharSequence packageName; + private boolean ignoreActionFocus = false; public final class Constants { public static final String TAG = "Keychain"; @@ -68,10 +68,15 @@ public class AutofillService extends AccessibilityService { } if (!event.isPassword() || Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2 - || (dialog != null && dialog.isShowing()) || event.getPackageName().equals("org.sufficientlysecure.keychain")) { + if (dialog != null && dialog.isShowing()) { + dialog.dismiss(); + } return; } + if (!event.getSource().equals(info) && dialog != null && dialog.isShowing()) { + dialog.dismiss(); + } if (ignoreActionFocus) { ignoreActionFocus = false; return; -- cgit v1.2.3