diff --git a/core/java/android/app/assist/AssistStructure.java b/core/java/android/app/assist/AssistStructure.java index ef41b10640cb2..d568662409d7a 100644 --- a/core/java/android/app/assist/AssistStructure.java +++ b/core/java/android/app/assist/AssistStructure.java @@ -2237,6 +2237,22 @@ public class AssistStructure implements Parcelable { return mWindowNodes.get(index); } + // TODO(b/35708678): temporary method that disable one-way warning flag on binder. + /** @hide */ + public void ensureDataForAutofill() { + if (mHaveData) { + return; + } + mHaveData = true; + Binder.allowBlocking(mReceiveChannel); + try { + ParcelTransferReader reader = new ParcelTransferReader(mReceiveChannel); + reader.go(); + } finally { + Binder.defaultBlocking(mReceiveChannel); + } + } + /** @hide */ public void ensureData() { if (mHaveData) { diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java index 5eee9ed6c9b2b..4abf0f8e8f1ab 100644 --- a/services/autofill/java/com/android/server/autofill/Session.java +++ b/services/autofill/java/com/android/server/autofill/Session.java @@ -254,7 +254,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState // change AssistStructure so it provides a "one-way" writeToParcel() method that // sends all the data try { - structure.ensureData(); + structure.ensureDataForAutofill(); } catch (RuntimeException e) { wtf(e, "Exception lazy loading assist structure for %s: %s", structure.getActivityComponent(), e);