Loading core/java/android/app/assist/AssistStructure.java +9 −2 Original line number Diff line number Diff line package android.app.assist; import static android.app.assist.flags.Flags.addPlaceholderViewForNullChild; import static android.credentials.Constants.FAILURE_CREDMAN_SELECTOR; import static android.credentials.Constants.SUCCESS_CREDMAN_SELECTOR; import static android.service.autofill.Flags.FLAG_AUTOFILL_CREDMAN_DEV_INTEGRATION; Loading Loading @@ -284,12 +285,18 @@ public class AssistStructure implements Parcelable { mCurViewStackEntry = entry; } void writeView(ViewNode child, Parcel out, PooledStringWriter pwriter, int levelAdj) { void writeView(@Nullable ViewNode child, Parcel out, PooledStringWriter pwriter, int levelAdj) { if (DEBUG_PARCEL) Log.d(TAG, "write view: at " + out.dataPosition() + ", windows=" + mNumWrittenWindows + ", views=" + mNumWrittenViews + ", level=" + (mCurViewStackPos+levelAdj)); out.writeInt(VALIDATE_VIEW_TOKEN); if (addPlaceholderViewForNullChild() && child == null) { if (DEBUG_PARCEL_TREE) Log.d(TAG, "Detected an empty child" + "; writing a placeholder for the child."); child = new ViewNode(); } int flags = child.writeSelfToParcel(out, pwriter, mSanitizeOnWrite, mTmpMatrix, /*willWriteChildren=*/true); mNumWrittenViews++; Loading core/tests/coretests/src/android/app/assist/AssistStructureTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import android.app.assist.AssistStructure.ViewNode; import android.app.assist.AssistStructure.ViewNodeBuilder; Loading @@ -37,6 +38,7 @@ import android.os.Bundle; import android.os.LocaleList; import android.os.OutcomeReceiver; import android.os.Parcel; import android.os.PooledStringWriter; import android.os.SystemClock; import android.text.InputFilter; import android.util.Log; Loading Loading @@ -355,6 +357,18 @@ public class AssistStructureTest { } @Test public void testParcelTransferWriter_writeNull() { AssistStructure structure = new AssistStructure(mActivity, FOR_AUTOFILL, NO_FLAGS); Parcel parcel = Parcel.obtain(); AssistStructure.ParcelTransferWriter writer = new AssistStructure.ParcelTransferWriter(structure, parcel); writer.writeView(null, parcel, new PooledStringWriter(parcel), 0); // No throw any exception. assertTrue(true); } private EditText newSmallView() { EditText view = new EditText(mContext); view.setText("I AM GROOT"); Loading Loading
core/java/android/app/assist/AssistStructure.java +9 −2 Original line number Diff line number Diff line package android.app.assist; import static android.app.assist.flags.Flags.addPlaceholderViewForNullChild; import static android.credentials.Constants.FAILURE_CREDMAN_SELECTOR; import static android.credentials.Constants.SUCCESS_CREDMAN_SELECTOR; import static android.service.autofill.Flags.FLAG_AUTOFILL_CREDMAN_DEV_INTEGRATION; Loading Loading @@ -284,12 +285,18 @@ public class AssistStructure implements Parcelable { mCurViewStackEntry = entry; } void writeView(ViewNode child, Parcel out, PooledStringWriter pwriter, int levelAdj) { void writeView(@Nullable ViewNode child, Parcel out, PooledStringWriter pwriter, int levelAdj) { if (DEBUG_PARCEL) Log.d(TAG, "write view: at " + out.dataPosition() + ", windows=" + mNumWrittenWindows + ", views=" + mNumWrittenViews + ", level=" + (mCurViewStackPos+levelAdj)); out.writeInt(VALIDATE_VIEW_TOKEN); if (addPlaceholderViewForNullChild() && child == null) { if (DEBUG_PARCEL_TREE) Log.d(TAG, "Detected an empty child" + "; writing a placeholder for the child."); child = new ViewNode(); } int flags = child.writeSelfToParcel(out, pwriter, mSanitizeOnWrite, mTmpMatrix, /*willWriteChildren=*/true); mNumWrittenViews++; Loading
core/tests/coretests/src/android/app/assist/AssistStructureTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import android.app.assist.AssistStructure.ViewNode; import android.app.assist.AssistStructure.ViewNodeBuilder; Loading @@ -37,6 +38,7 @@ import android.os.Bundle; import android.os.LocaleList; import android.os.OutcomeReceiver; import android.os.Parcel; import android.os.PooledStringWriter; import android.os.SystemClock; import android.text.InputFilter; import android.util.Log; Loading Loading @@ -355,6 +357,18 @@ public class AssistStructureTest { } @Test public void testParcelTransferWriter_writeNull() { AssistStructure structure = new AssistStructure(mActivity, FOR_AUTOFILL, NO_FLAGS); Parcel parcel = Parcel.obtain(); AssistStructure.ParcelTransferWriter writer = new AssistStructure.ParcelTransferWriter(structure, parcel); writer.writeView(null, parcel, new PooledStringWriter(parcel), 0); // No throw any exception. assertTrue(true); } private EditText newSmallView() { EditText view = new EditText(mContext); view.setText("I AM GROOT"); Loading