diff options
| author | 2017-12-21 02:00:56 +0000 | |
|---|---|---|
| committer | 2017-12-21 02:00:56 +0000 | |
| commit | bd55ffc0f64d45ca93c70385b5a1c90c162d630b (patch) | |
| tree | 96cf81a966761227e149fd0ff4b4ae34222ed297 | |
| parent | 09bb9ec7bff952e40461caf1683994ce535b9ae1 (diff) | |
| parent | 3103c63b2d47a51ad5a39309c91130aecc06665d (diff) | |
Merge "Support new Autofill session after service returns a null FillResponse."
| -rw-r--r-- | core/java/android/view/autofill/AutofillManager.java | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/core/java/android/view/autofill/AutofillManager.java b/core/java/android/view/autofill/AutofillManager.java index d0dbff0e23f3..81b065cfdb33 100644 --- a/core/java/android/view/autofill/AutofillManager.java +++ b/core/java/android/view/autofill/AutofillManager.java @@ -530,10 +530,13 @@ public final class AutofillManager { * @return whether autofill is enabled for the current user. */ public boolean isEnabled() { - if (!hasAutofillFeature() || isDisabledByService()) { + if (!hasAutofillFeature()) { return false; } synchronized (mLock) { + if (isDisabledByServiceLocked()) { + return false; + } ensureServiceClientAddedIfNeededLocked(); return mEnabled; } @@ -605,19 +608,16 @@ public final class AutofillManager { } private boolean shouldIgnoreViewEnteredLocked(@NonNull View view, int flags) { - if (isDisabledByService()) { + if (isDisabledByServiceLocked()) { if (sVerbose) { Log.v(TAG, "ignoring notifyViewEntered(flags=" + flags + ", view=" + view + ") on state " + getStateAsStringLocked()); } return true; } - if (mState == STATE_FINISHED && (flags & FLAG_MANUAL_REQUEST) == 0) { - if (sVerbose) { - Log.v(TAG, "ignoring notifyViewEntered(flags=" + flags + ", view=" + view - + ") on state " + getStateAsStringLocked()); - } - return true; + if (sVerbose && isFinishedLocked()) { + Log.v(TAG, "not ignoring notifyViewEntered(flags=" + flags + ", view=" + view + + ") on state " + getStateAsStringLocked()); } return false; } @@ -1139,10 +1139,10 @@ public final class AutofillManager { Log.v(TAG, "startSessionLocked(): id=" + id + ", bounds=" + bounds + ", value=" + value + ", flags=" + flags + ", state=" + getStateAsStringLocked()); } - if (mState != STATE_UNKNOWN && (flags & FLAG_MANUAL_REQUEST) == 0) { + if (mState != STATE_UNKNOWN && !isFinishedLocked() && (flags & FLAG_MANUAL_REQUEST) == 0) { if (sVerbose) { Log.v(TAG, "not automatically starting session for " + id - + " on state " + getStateAsStringLocked()); + + " on state " + getStateAsStringLocked() + " and flags " + flags); } return; } @@ -1744,10 +1744,14 @@ public final class AutofillManager { return mState == STATE_ACTIVE; } - private boolean isDisabledByService() { + private boolean isDisabledByServiceLocked() { return mState == STATE_DISABLED_BY_SERVICE; } + private boolean isFinishedLocked() { + return mState == STATE_FINISHED; + } + private void post(Runnable runnable) { final AutofillClient client = getClient(); if (client == null) { |