From dbe07a587cd0c6a4b8770bf8f296c5b01cf12ab5 Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Fri, 3 Mar 2017 14:29:17 -0800 Subject: [PATCH] Add forAutoFill suffix on ViewStructure methods that add children. Change-Id: I36f7bd26b7d45fd809d7398cc86de3d2671f2b28 Fixes: 35764877 Test: m update-api --- api/current.txt | 4 +-- api/system-current.txt | 4 +-- api/test-current.txt | 4 +-- .../android/app/assist/AssistStructure.java | 4 +-- core/java/android/view/ViewStructure.java | 36 +++++++++++++------ 5 files changed, 34 insertions(+), 18 deletions(-) diff --git a/api/current.txt b/api/current.txt index 693d512d8a9c6..8828ee27a03f6 100644 --- a/api/current.txt +++ b/api/current.txt @@ -45940,7 +45940,7 @@ package android.view { method public abstract int addChildCount(int); method public abstract void asyncCommit(); method public abstract android.view.ViewStructure asyncNewChild(int); - method public abstract android.view.ViewStructure asyncNewChild(int, int, int); + method public abstract android.view.ViewStructure asyncNewChildForAutoFill(int, int, int); method public abstract int getChildCount(); method public abstract android.os.Bundle getExtras(); method public abstract java.lang.CharSequence getHint(); @@ -45949,7 +45949,7 @@ package android.view { method public abstract int getTextSelectionStart(); method public abstract boolean hasExtras(); method public abstract android.view.ViewStructure newChild(int); - method public abstract android.view.ViewStructure newChild(int, int, int); + method public abstract android.view.ViewStructure newChildForAutoFill(int, int, int); method public abstract void setAccessibilityFocused(boolean); method public abstract void setActivated(boolean); method public abstract void setAlpha(float); diff --git a/api/system-current.txt b/api/system-current.txt index f0959360b4584..316b4c2141d24 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -49326,7 +49326,7 @@ package android.view { method public abstract int addChildCount(int); method public abstract void asyncCommit(); method public abstract android.view.ViewStructure asyncNewChild(int); - method public abstract android.view.ViewStructure asyncNewChild(int, int, int); + method public abstract android.view.ViewStructure asyncNewChildForAutoFill(int, int, int); method public abstract int getChildCount(); method public abstract android.os.Bundle getExtras(); method public abstract java.lang.CharSequence getHint(); @@ -49335,7 +49335,7 @@ package android.view { method public abstract int getTextSelectionStart(); method public abstract boolean hasExtras(); method public abstract android.view.ViewStructure newChild(int); - method public abstract android.view.ViewStructure newChild(int, int, int); + method public abstract android.view.ViewStructure newChildForAutoFill(int, int, int); method public abstract void setAccessibilityFocused(boolean); method public abstract void setActivated(boolean); method public abstract void setAlpha(float); diff --git a/api/test-current.txt b/api/test-current.txt index 4585b8ebc1763..b917e31497a39 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -46303,7 +46303,7 @@ package android.view { method public abstract int addChildCount(int); method public abstract void asyncCommit(); method public abstract android.view.ViewStructure asyncNewChild(int); - method public abstract android.view.ViewStructure asyncNewChild(int, int, int); + method public abstract android.view.ViewStructure asyncNewChildForAutoFill(int, int, int); method public abstract int getChildCount(); method public abstract android.os.Bundle getExtras(); method public abstract java.lang.CharSequence getHint(); @@ -46312,7 +46312,7 @@ package android.view { method public abstract int getTextSelectionStart(); method public abstract boolean hasExtras(); method public abstract android.view.ViewStructure newChild(int); - method public abstract android.view.ViewStructure newChild(int, int, int); + method public abstract android.view.ViewStructure newChildForAutoFill(int, int, int); method public abstract void setAccessibilityFocused(boolean); method public abstract void setActivated(boolean); method public abstract void setAlpha(float); diff --git a/core/java/android/app/assist/AssistStructure.java b/core/java/android/app/assist/AssistStructure.java index a1ef4a6401a30..a7616d8aea5f1 100644 --- a/core/java/android/app/assist/AssistStructure.java +++ b/core/java/android/app/assist/AssistStructure.java @@ -1517,7 +1517,7 @@ public class AssistStructure implements Parcelable { // TODO(b/33197203, b/33802548): add CTS/unit test @Override - public ViewStructure newChild(int index, int virtualId, int flags) { + public ViewStructure newChildForAutoFill(int index, int virtualId, int flags) { return newChild(index, true, virtualId, flags); } @@ -1527,7 +1527,7 @@ public class AssistStructure implements Parcelable { } @Override - public ViewStructure asyncNewChild(int index, int virtualId, int flags) { + public ViewStructure asyncNewChildForAutoFill(int index, int virtualId, int flags) { return asyncNewChild(index, true, virtualId); } diff --git a/core/java/android/view/ViewStructure.java b/core/java/android/view/ViewStructure.java index bc0960c62c62a..92f78b9301c06 100644 --- a/core/java/android/view/ViewStructure.java +++ b/core/java/android/view/ViewStructure.java @@ -258,20 +258,25 @@ public abstract class ViewStructure { /** * Create a new child {@link ViewStructure} in this view, putting into the list of * children at index. + * * @return Returns an fresh {@link ViewStructure} ready to be filled in. */ public abstract ViewStructure newChild(int index); /** - * Like {@link #newChild(int)}, but providing a {@code virtualId} to the child so it can be - * auto-filled by {@link View#autoFillVirtual(int, AutoFillValue)}. + * Create a new child {@link ViewStructure} in this view for auto-fill purposes. * - * @param index child index - * @param virtualId id identifying the virtual child inside the custom view. + * @param index the index (in the list of children) to put the new child at (see + * {@link #addChildCount(int)} and {@link #setChildCount(int)}. + * @param virtualId an opaque ID to the Android System (although it could be meaningful to the + * {@link View} creating the {@link ViewStructure}), but it's the same id used on + * {@link View#autoFillVirtual(int, AutoFillValue)}. * @param flags currently {@code 0}. + * + * @return Returns an fresh {@link ViewStructure} ready to be filled in. */ // TODO(b/33197203, b/33802548): add CTS/unit test - public abstract ViewStructure newChild(int index, int virtualId, int flags); + public abstract ViewStructure newChildForAutoFill(int index, int virtualId, int flags); /** * Like {@link #newChild}, but allows the caller to asynchronously populate the returned @@ -284,15 +289,26 @@ public abstract class ViewStructure { public abstract ViewStructure asyncNewChild(int index); /** - * Like {@link #asyncNewChild(int)}, but providing a {@code virtualId} to the child so it can be - * auto-filled by {@link View#autoFillVirtual(int, AutoFillValue)}. + * Like {@link #newChildForAutoFill(int, int, int)}, but allows the caller to asynchronously + * populate the returned child. * - * @param index child index - * @param virtualId id identifying the virtual child inside the custom view. + *

It can transfer the returned {@link ViewStructure} to another thread for it to build its + * content (and children etc). + * + *

Once done, some thread must call {@link #asyncCommit()} to tell the containing + * {@link ViewStructure} that the async population is done. + * + * @param index the index (in the list of children) to put the new child at (see + * {@link #addChildCount(int)} and {@link #setChildCount(int)}. + * @param virtualId an opaque ID to the Android System (although it could be meaningful to the + * {@link View} creating the {@link ViewStructure}), but it's the same id used on + * {@link View#autoFillVirtual(int, AutoFillValue)}. * @param flags currently {@code 0}. + * + * @return Returns an fresh {@link ViewStructure} ready to be filled in. */ // TODO(b/33197203, b/33802548): add CTS/unit test - public abstract ViewStructure asyncNewChild(int index, int virtualId, int flags); + public abstract ViewStructure asyncNewChildForAutoFill(int index, int virtualId, int flags); /** * Sets the {@link AutoFillType} that can be used to auto-fill this node.