diff options
| author | 2017-10-20 13:04:19 -0700 | |
|---|---|---|
| committer | 2017-10-20 13:05:25 -0700 | |
| commit | 6f12e67e1724cc52d0f5a5ca0b201a612d2859d8 (patch) | |
| tree | ebe2e1e947514329e1e26693ed06ef8f6edd02b7 | |
| parent | 24604a3a62a1bf79ec5b53bbc674a65f0ae59da3 (diff) | |
Minor improvements on Autofill:
- Don't print PII on Dataset.toString()
- Use proper method to get last response
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases
Bug: 67867469
Change-Id: I41579ba30366e07193ab4f7790e5a107c85d6ec2
4 files changed, 25 insertions, 19 deletions
diff --git a/core/java/android/service/autofill/Dataset.java b/core/java/android/service/autofill/Dataset.java index b2cdef29f3e0..331130e767ae 100644 --- a/core/java/android/service/autofill/Dataset.java +++ b/core/java/android/service/autofill/Dataset.java @@ -150,8 +150,16 @@ public final class Dataset implements Parcelable { public String toString() { if (!sDebug) return super.toString(); - return new StringBuilder("Dataset " + mId + " [") - .append("fieldIds=").append(mFieldIds) + final StringBuilder builder = new StringBuilder("Dataset[id="); + if (mId == null) { + builder.append("null"); + } else { + // Cannot disclose id because it could contain PII. + builder.append(mId.length()).append("_chars"); + } + + return builder + .append(", fieldIds=").append(mFieldIds) .append(", fieldValues=").append(mFieldValues) .append(", fieldPresentations=") .append(mFieldPresentations == null ? 0 : mFieldPresentations.size()) diff --git a/core/java/android/service/autofill/FillEventHistory.java b/core/java/android/service/autofill/FillEventHistory.java index d6c0dbfee23c..b1857b303b36 100644 --- a/core/java/android/service/autofill/FillEventHistory.java +++ b/core/java/android/service/autofill/FillEventHistory.java @@ -129,6 +129,11 @@ public final class FillEventHistory implements Parcelable { } @Override + public String toString() { + return mEvents == null ? "no events" : mEvents.toString(); + } + + @Override public int describeContents() { return 0; } diff --git a/core/java/android/service/autofill/FillResponse.java b/core/java/android/service/autofill/FillResponse.java index d91cebb1face..d2033fa9130a 100644 --- a/core/java/android/service/autofill/FillResponse.java +++ b/core/java/android/service/autofill/FillResponse.java @@ -71,7 +71,7 @@ public final class FillResponse implements Parcelable { private FillResponse(@NonNull Builder builder) { mDatasets = (builder.mDatasets != null) ? new ParceledListSlice<>(builder.mDatasets) : null; mSaveInfo = builder.mSaveInfo; - mClientState = builder.mCLientState; + mClientState = builder.mClientState; mPresentation = builder.mPresentation; mAuthentication = builder.mAuthentication; mAuthenticationIds = builder.mAuthenticationIds; @@ -145,7 +145,7 @@ public final class FillResponse implements Parcelable { public static final class Builder { private ArrayList<Dataset> mDatasets; private SaveInfo mSaveInfo; - private Bundle mCLientState; + private Bundle mClientState; private RemoteViews mPresentation; private IntentSender mAuthentication; private AutofillId[] mAuthenticationIds; @@ -288,7 +288,7 @@ public final class FillResponse implements Parcelable { */ public Builder setClientState(@Nullable Bundle clientState) { throwIfDestroyed(); - mCLientState = clientState; + mClientState = clientState; return this; } diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java index 59fc34d0d881..b720f74cae16 100644 --- a/services/autofill/java/com/android/server/autofill/Session.java +++ b/services/autofill/java/com/android/server/autofill/Session.java @@ -846,12 +846,9 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState * when necessary. */ public void logContextCommittedLocked() { - if (mResponses == null) { - if (sVerbose) Slog.v(TAG, "logContextCommittedLocked(): skipped (no responses)"); - return; - } + final FillResponse lastResponse = getLastResponseLocked("logContextCommited()"); + if (lastResponse == null) return; - final FillResponse lastResponse = mResponses.valueAt(mResponses.size() -1); final int flags = lastResponse.getFlags(); if ((flags & FillResponse.FLAG_TRACK_CONTEXT_COMMITED) == 0) { if (sDebug) Slog.d(TAG, "logContextCommittedLocked(): ignored by flags " + flags); @@ -1599,11 +1596,10 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState * Checks whether a view should be ignored. */ private boolean isIgnoredLocked(AutofillId id) { - if (mResponses == null || mResponses.size() == 0) { - return false; - } // Always check the latest response only - final FillResponse response = mResponses.valueAt(mResponses.size() - 1); + final FillResponse response = getLastResponseLocked(null); + if (response == null) return false; + return ArrayUtils.contains(response.getIgnoredIds(), id); } @@ -1680,13 +1676,10 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState } private void updateTrackedIdsLocked() { - if (mResponses == null || mResponses.size() == 0) { - return; - } - // Only track the views of the last response as only those are reported back to the // service, see #showSaveLocked - final FillResponse response = mResponses.valueAt(getLastResponseIndexLocked()); + final FillResponse response = getLastResponseLocked(null); + if (response == null) return; ArraySet<AutofillId> trackedViews = null; boolean saveOnAllViewsInvisible = false; |