Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ed9af066 authored by Dianne Hackborn's avatar Dianne Hackborn Committed by Android (Google) Code Review
Browse files

Merge "Fix issue #20655182: API Review: ViewAssistStructure" into mnc-dev

parents 180fd278 49b043f3
Loading
Loading
Loading
Loading
+40 −39
Original line number Diff line number Diff line
@@ -217,6 +217,7 @@ package android {
  public static final class R.attr {
    ctor public R.attr();
    field public static final int __reserved0 = 16844020; // 0x10104f4
    field public static final int absListViewStyle = 16842858; // 0x101006a
    field public static final int accessibilityEventTypes = 16843648; // 0x1010380
    field public static final int accessibilityFeedbackType = 16843650; // 0x1010382
@@ -300,7 +301,6 @@ package android {
    field public static final int anyDensity = 16843372; // 0x101026c
    field public static final int apduServiceBanner = 16843757; // 0x10103ed
    field public static final int apiKey = 16843281; // 0x1010211
    field public static final int assistBlocked = 16844020; // 0x10104f4
    field public static final int author = 16843444; // 0x10102b4
    field public static final int authorities = 16842776; // 0x1010018
    field public static final int autoAdvanceViewId = 16843535; // 0x101030f
@@ -35901,7 +35901,7 @@ package android.view {
    method public boolean dispatchNestedPreScroll(int, int, int[], int[]);
    method public boolean dispatchNestedScroll(int, int, int, int, int[]);
    method public boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
    method public void dispatchProvideAssistStructure(android.view.ViewAssistStructure);
    method public void dispatchProvideStructure(android.view.ViewStructure);
    method protected void dispatchRestoreInstanceState(android.util.SparseArray<android.os.Parcelable>);
    method protected void dispatchSaveInstanceState(android.util.SparseArray<android.os.Parcelable>);
    method protected void dispatchSetActivated(boolean);
@@ -36081,7 +36081,6 @@ package android.view {
    method public void invalidateOutline();
    method public boolean isAccessibilityFocused();
    method public boolean isActivated();
    method public boolean isAssistBlocked();
    method public boolean isAttachedToWindow();
    method public boolean isClickable();
    method public boolean isDirty();
@@ -36163,8 +36162,8 @@ package android.view {
    method protected void onMeasure(int, int);
    method protected void onOverScrolled(int, int, boolean, boolean);
    method public void onPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
    method public void onProvideAssistStructure(android.view.ViewAssistStructure);
    method public void onProvideVirtualAssistStructure(android.view.ViewAssistStructure);
    method public void onProvideStructure(android.view.ViewStructure);
    method public void onProvideVirtualStructure(android.view.ViewStructure);
    method protected void onRestoreInstanceState(android.os.Parcelable);
    method public void onRtlPropertiesChanged(int);
    method protected android.os.Parcelable onSaveInstanceState();
@@ -36227,7 +36226,6 @@ package android.view {
    method public void setActivated(boolean);
    method public void setAlpha(float);
    method public void setAnimation(android.view.animation.Animation);
    method public void setAssistBlocked(boolean);
    method public void setBackground(android.graphics.drawable.Drawable);
    method public void setBackgroundColor(int);
    method public deprecated void setBackgroundDrawable(android.graphics.drawable.Drawable);
@@ -36590,40 +36588,8 @@ package android.view {
    method public static android.animation.Animator createCircularReveal(android.view.View, int, int, float, float);
  }
  public abstract class ViewAssistStructure {
  public abstract deprecated class ViewAssistStructure extends android.view.ViewStructure {
    ctor public ViewAssistStructure();
    method public abstract void asyncCommit();
    method public abstract android.view.ViewAssistStructure asyncNewChild(int);
    method public abstract void clearExtras();
    method public abstract android.os.Bundle editExtras();
    method public abstract int getChildCount();
    method public abstract java.lang.CharSequence getHint();
    method public abstract java.lang.CharSequence getText();
    method public abstract int getTextSelectionEnd();
    method public abstract int getTextSelectionStart();
    method public abstract android.view.ViewAssistStructure newChild(int);
    method public abstract void setAccessibilityFocused(boolean);
    method public abstract void setActivated(boolean);
    method public abstract void setAssistBlocked(boolean);
    method public abstract void setCheckable(boolean);
    method public abstract void setChecked(boolean);
    method public abstract void setChildCount(int);
    method public abstract void setClassName(java.lang.String);
    method public abstract void setClickable(boolean);
    method public abstract void setContentDescription(java.lang.CharSequence);
    method public abstract void setDimens(int, int, int, int, int, int);
    method public abstract void setEnabled(boolean);
    method public abstract void setFocusable(boolean);
    method public abstract void setFocused(boolean);
    method public abstract void setHint(java.lang.CharSequence);
    method public abstract void setId(int, java.lang.String, java.lang.String, java.lang.String);
    method public abstract void setLongClickable(boolean);
    method public abstract void setSelected(boolean);
    method public abstract void setStylusButtonPressable(boolean);
    method public abstract void setText(java.lang.CharSequence);
    method public abstract void setText(java.lang.CharSequence, int, int);
    method public abstract void setTextPaint(android.text.TextPaint);
    method public abstract void setVisibility(int);
  }
  public class ViewConfiguration {
@@ -37000,6 +36966,41 @@ package android.view {
    method public android.view.ViewPropertyAnimator zBy(float);
  }
  public abstract class ViewStructure {
    ctor public ViewStructure();
    method public abstract void asyncCommit();
    method public abstract android.view.ViewAssistStructure asyncNewChild(int);
    method public abstract int getChildCount();
    method public abstract android.os.Bundle getExtras();
    method public abstract java.lang.CharSequence getHint();
    method public abstract java.lang.CharSequence getText();
    method public abstract int getTextSelectionEnd();
    method public abstract int getTextSelectionStart();
    method public abstract boolean hasExtras();
    method public abstract android.view.ViewAssistStructure newChild(int);
    method public abstract void setAccessibilityFocused(boolean);
    method public abstract void setActivated(boolean);
    method public abstract void setCheckable(boolean);
    method public abstract void setChecked(boolean);
    method public abstract void setChildCount(int);
    method public abstract void setClassName(java.lang.String);
    method public abstract void setClickable(boolean);
    method public abstract void setContentDescription(java.lang.CharSequence);
    method public abstract void setDimens(int, int, int, int, int, int);
    method public abstract void setEnabled(boolean);
    method public abstract void setFocusable(boolean);
    method public abstract void setFocused(boolean);
    method public abstract void setHint(java.lang.CharSequence);
    method public abstract void setId(int, java.lang.String, java.lang.String, java.lang.String);
    method public abstract void setLongClickable(boolean);
    method public abstract void setSelected(boolean);
    method public abstract void setStylusButtonPressable(boolean);
    method public abstract void setText(java.lang.CharSequence);
    method public abstract void setText(java.lang.CharSequence, int, int);
    method public abstract void setTextPaint(android.text.TextPaint);
    method public abstract void setVisibility(int);
  }
  public final class ViewStub extends android.view.View {
    ctor public ViewStub(android.content.Context);
    ctor public ViewStub(android.content.Context, int);
+41 −40
Original line number Diff line number Diff line
@@ -289,6 +289,7 @@ package android {
  public static final class R.attr {
    ctor public R.attr();
    field public static final int __reserved0 = 16844020; // 0x10104f4
    field public static final int absListViewStyle = 16842858; // 0x101006a
    field public static final int accessibilityEventTypes = 16843648; // 0x1010380
    field public static final int accessibilityFeedbackType = 16843650; // 0x1010382
@@ -372,7 +373,6 @@ package android {
    field public static final int anyDensity = 16843372; // 0x101026c
    field public static final int apduServiceBanner = 16843757; // 0x10103ed
    field public static final int apiKey = 16843281; // 0x1010211
    field public static final int assistBlocked = 16844020; // 0x10104f4
    field public static final int author = 16843444; // 0x10102b4
    field public static final int authorities = 16842776; // 0x1010018
    field public static final int autoAdvanceViewId = 16843535; // 0x101030f
@@ -38112,7 +38112,7 @@ package android.view {
    method public boolean dispatchNestedPreScroll(int, int, int[], int[]);
    method public boolean dispatchNestedScroll(int, int, int, int, int[]);
    method public boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
    method public void dispatchProvideAssistStructure(android.view.ViewAssistStructure);
    method public void dispatchProvideStructure(android.view.ViewStructure);
    method protected void dispatchRestoreInstanceState(android.util.SparseArray<android.os.Parcelable>);
    method protected void dispatchSaveInstanceState(android.util.SparseArray<android.os.Parcelable>);
    method protected void dispatchSetActivated(boolean);
@@ -38292,7 +38292,6 @@ package android.view {
    method public void invalidateOutline();
    method public boolean isAccessibilityFocused();
    method public boolean isActivated();
    method public boolean isAssistBlocked();
    method public boolean isAttachedToWindow();
    method public boolean isClickable();
    method public boolean isDirty();
@@ -38374,8 +38373,8 @@ package android.view {
    method protected void onMeasure(int, int);
    method protected void onOverScrolled(int, int, boolean, boolean);
    method public void onPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
    method public void onProvideAssistStructure(android.view.ViewAssistStructure);
    method public void onProvideVirtualAssistStructure(android.view.ViewAssistStructure);
    method public void onProvideStructure(android.view.ViewStructure);
    method public void onProvideVirtualStructure(android.view.ViewStructure);
    method protected void onRestoreInstanceState(android.os.Parcelable);
    method public void onRtlPropertiesChanged(int);
    method protected android.os.Parcelable onSaveInstanceState();
@@ -38438,7 +38437,6 @@ package android.view {
    method public void setActivated(boolean);
    method public void setAlpha(float);
    method public void setAnimation(android.view.animation.Animation);
    method public void setAssistBlocked(boolean);
    method public void setBackground(android.graphics.drawable.Drawable);
    method public void setBackgroundColor(int);
    method public deprecated void setBackgroundDrawable(android.graphics.drawable.Drawable);
@@ -38801,40 +38799,8 @@ package android.view {
    method public static android.animation.Animator createCircularReveal(android.view.View, int, int, float, float);
  }
  public abstract class ViewAssistStructure {
  public abstract deprecated class ViewAssistStructure extends android.view.ViewStructure {
    ctor public ViewAssistStructure();
    method public abstract void asyncCommit();
    method public abstract android.view.ViewAssistStructure asyncNewChild(int);
    method public abstract void clearExtras();
    method public abstract android.os.Bundle editExtras();
    method public abstract int getChildCount();
    method public abstract java.lang.CharSequence getHint();
    method public abstract java.lang.CharSequence getText();
    method public abstract int getTextSelectionEnd();
    method public abstract int getTextSelectionStart();
    method public abstract android.view.ViewAssistStructure newChild(int);
    method public abstract void setAccessibilityFocused(boolean);
    method public abstract void setActivated(boolean);
    method public abstract void setAssistBlocked(boolean);
    method public abstract void setCheckable(boolean);
    method public abstract void setChecked(boolean);
    method public abstract void setChildCount(int);
    method public abstract void setClassName(java.lang.String);
    method public abstract void setClickable(boolean);
    method public abstract void setContentDescription(java.lang.CharSequence);
    method public abstract void setDimens(int, int, int, int, int, int);
    method public abstract void setEnabled(boolean);
    method public abstract void setFocusable(boolean);
    method public abstract void setFocused(boolean);
    method public abstract void setHint(java.lang.CharSequence);
    method public abstract void setId(int, java.lang.String, java.lang.String, java.lang.String);
    method public abstract void setLongClickable(boolean);
    method public abstract void setSelected(boolean);
    method public abstract void setStylusButtonPressable(boolean);
    method public abstract void setText(java.lang.CharSequence);
    method public abstract void setText(java.lang.CharSequence, int, int);
    method public abstract void setTextPaint(android.text.TextPaint);
    method public abstract void setVisibility(int);
  }
  public class ViewConfiguration {
@@ -39211,6 +39177,41 @@ package android.view {
    method public android.view.ViewPropertyAnimator zBy(float);
  }
  public abstract class ViewStructure {
    ctor public ViewStructure();
    method public abstract void asyncCommit();
    method public abstract android.view.ViewAssistStructure asyncNewChild(int);
    method public abstract int getChildCount();
    method public abstract android.os.Bundle getExtras();
    method public abstract java.lang.CharSequence getHint();
    method public abstract java.lang.CharSequence getText();
    method public abstract int getTextSelectionEnd();
    method public abstract int getTextSelectionStart();
    method public abstract boolean hasExtras();
    method public abstract android.view.ViewAssistStructure newChild(int);
    method public abstract void setAccessibilityFocused(boolean);
    method public abstract void setActivated(boolean);
    method public abstract void setCheckable(boolean);
    method public abstract void setChecked(boolean);
    method public abstract void setChildCount(int);
    method public abstract void setClassName(java.lang.String);
    method public abstract void setClickable(boolean);
    method public abstract void setContentDescription(java.lang.CharSequence);
    method public abstract void setDimens(int, int, int, int, int, int);
    method public abstract void setEnabled(boolean);
    method public abstract void setFocusable(boolean);
    method public abstract void setFocused(boolean);
    method public abstract void setHint(java.lang.CharSequence);
    method public abstract void setId(int, java.lang.String, java.lang.String, java.lang.String);
    method public abstract void setLongClickable(boolean);
    method public abstract void setSelected(boolean);
    method public abstract void setStylusButtonPressable(boolean);
    method public abstract void setText(java.lang.CharSequence);
    method public abstract void setText(java.lang.CharSequence, int, int);
    method public abstract void setTextPaint(android.text.TextPaint);
    method public abstract void setVisibility(int);
  }
  public final class ViewStub extends android.view.View {
    ctor public ViewStub(android.content.Context);
    ctor public ViewStub(android.content.Context, int);
@@ -41801,7 +41802,7 @@ package android.webkit {
    method public abstract boolean onKeyUp(int, android.view.KeyEvent);
    method public abstract void onMeasure(int, int);
    method public abstract void onOverScrolled(int, int, boolean, boolean);
    method public abstract void onProvideVirtualAssistStructure(android.view.ViewAssistStructure);
    method public abstract void onProvideVirtualAssistStructure(android.view.ViewStructure);
    method public abstract void onScrollChanged(int, int, int, int);
    method public abstract void onSizeChanged(int, int, int, int);
    method public abstract void onStartTemporaryDetach();
+12 −4
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.util.Log;
import android.view.View;
import android.view.ViewAssistStructure;
import android.view.ViewRootImpl;
import android.view.WindowManager;
import android.view.WindowManagerGlobal;

import java.util.ArrayList;
@@ -140,7 +141,14 @@ final public class AssistStructure implements Parcelable {
            mTitle = root.getTitle();
            mRoot = new ViewNode();
            ViewNodeBuilder builder = new ViewNodeBuilder(assist, mRoot, false);
            view.dispatchProvideAssistStructure(builder);
            if ((root.getWindowFlags()&WindowManager.LayoutParams.FLAG_SECURE) != 0) {
                // This is a secure window, so it doesn't want a screenshot, and that
                // means we should also not copy out its view hierarchy.
                view.onProvideStructure(builder);
                builder.setAssistBlocked(true);
                return;
            }
            view.dispatchProvideStructure(builder);
        }

        WindowNode(Parcel in, PooledStringReader preader) {
@@ -652,7 +660,7 @@ final public class AssistStructure implements Parcelable {
        }

        @Override
        public Bundle editExtras() {
        public Bundle getExtras() {
            if (mNode.mExtras != null) {
                return mNode.mExtras;
            }
@@ -661,8 +669,8 @@ final public class AssistStructure implements Parcelable {
        }

        @Override
        public void clearExtras() {
            mNode.mExtras = null;
        public boolean hasExtras() {
            return mNode.mExtras != null;
        }

        @Override
+29 −23
Original line number Diff line number Diff line
@@ -633,7 +633,6 @@ import java.util.concurrent.atomic.AtomicInteger;
 * </p>
 *
 * @attr ref android.R.styleable#View_alpha
 * @attr ref android.R.styleable#View_assistBlocked
 * @attr ref android.R.styleable#View_background
 * @attr ref android.R.styleable#View_clickable
 * @attr ref android.R.styleable#View_contentDescription
@@ -2533,7 +2532,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            PFLAG3_SCROLL_INDICATOR_END >> SCROLL_INDICATORS_TO_PFLAGS3_LSHIFT;
    /**
     * <p>Indicates that we are allowing {@link android.view.ViewAssistStructure} to traverse
     * <p>Indicates that we are allowing {@link ViewStructure} to traverse
     * into this view.<p>
     */
    static final int PFLAG3_ASSIST_BLOCKED = 0x100;
@@ -4050,11 +4049,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                        viewFlagMasks |= SAVE_DISABLED_MASK;
                    }
                    break;
                case com.android.internal.R.styleable.View_assistBlocked:
                    if (a.getBoolean(attr, false)) {
                        mPrivateFlags3 |= PFLAG3_ASSIST_BLOCKED;
                    }
                    break;
                case com.android.internal.R.styleable.View_duplicateParentState:
                    if (a.getBoolean(attr, false)) {
                        viewFlagValues |= DUPLICATE_PARENT_STATE;
@@ -6163,7 +6157,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     * @param structure Fill in with structured view data.  The default implementation
     * fills in all data that can be inferred from the view itself.
     */
    public void onProvideAssistStructure(ViewAssistStructure structure) {
    public void onProvideStructure(ViewStructure structure) {
        final int id = mID;
        if (id > 0 && (id&0xff000000) != 0 && (id&0x00ff0000) != 0
                && (id&0x0000ffff) != 0) {
@@ -6217,6 +6211,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        structure.setContentDescription(getContentDescription());
    }
    /** @hide */
    public void onProvideAssistStructure(ViewStructure structure) {
        onProvideStructure(structure);
    }
    /**
     * Called when assist structure is being retrieved from a view as part of
     * {@link android.app.Activity#onProvideAssistData Activity.onProvideAssistData} to
@@ -6225,19 +6224,24 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     * view's virtual accessibility nodes, if any.  You can override this for a more
     * optimal implementation providing this data.
     */
    public void onProvideVirtualAssistStructure(ViewAssistStructure structure) {
    public void onProvideVirtualStructure(ViewStructure structure) {
        AccessibilityNodeProvider provider = getAccessibilityNodeProvider();
        if (provider != null) {
            AccessibilityNodeInfo info = createAccessibilityNodeInfo();
            Log.i("View", "Provider of " + this + ": children=" + info.getChildCount());
            structure.setChildCount(1);
            ViewAssistStructure root = structure.newChild(0);
            populateVirtualAssistStructure(root, provider, info);
            ViewStructure root = structure.newChild(0);
            populateVirtualStructure(root, provider, info);
            info.recycle();
        }
    }
    private void populateVirtualAssistStructure(ViewAssistStructure structure,
    /** @hide */
    public void onProvideVirtualAssistStructure(ViewStructure structure) {
        onProvideVirtualStructure(structure);
    }
    private void populateVirtualStructure(ViewStructure structure,
            AccessibilityNodeProvider provider, AccessibilityNodeInfo info) {
        structure.setId(AccessibilityNodeInfo.getVirtualDescendantId(info.getSourceNodeId()),
                null, null, null);
@@ -6288,19 +6292,19 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            for (int i=0; i<NCHILDREN; i++) {
                AccessibilityNodeInfo cinfo = provider.createAccessibilityNodeInfo(
                        AccessibilityNodeInfo.getVirtualDescendantId(info.getChildId(i)));
                ViewAssistStructure child = structure.newChild(i);
                populateVirtualAssistStructure(child, provider, cinfo);
                ViewStructure child = structure.newChild(i);
                populateVirtualStructure(child, provider, cinfo);
                cinfo.recycle();
            }
        }
    }
    /**
     * Dispatch creation of {@link ViewAssistStructure} down the hierarchy.  The default
     * implementation calls {@link #onProvideAssistStructure} and
     * {@link #onProvideVirtualAssistStructure}.
     * Dispatch creation of {@link ViewStructure} down the hierarchy.  The default
     * implementation calls {@link #onProvideStructure} and
     * {@link #onProvideVirtualStructure}.
     */
    public void dispatchProvideAssistStructure(ViewAssistStructure structure) {
    public void dispatchProvideStructure(ViewStructure structure) {
        if (!isAssistBlocked()) {
            onProvideAssistStructure(structure);
            onProvideVirtualAssistStructure(structure);
@@ -7904,8 +7908,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
    }
    /**
     * @hide
     * Indicates whether this view will participate in data collection through
     * {@link android.view.ViewAssistStructure}.  If true, it will not provide any data
     * {@link ViewStructure}.  If true, it will not provide any data
     * for itself or its children.  If false, the normal data collection will be allowed.
     *
     * @return Returns false if assist data collection is not blocked, else true.
@@ -7918,17 +7923,18 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
    }
    /**
     * @hide
     * Controls whether assist data collection from this view and its children is enabled
     * (that is, whether {@link #onProvideAssistStructure} and
     * {@link #onProvideVirtualAssistStructure} will be called).  The default value is false,
     * (that is, whether {@link #onProvideStructure} and
     * {@link #onProvideVirtualStructure} will be called).  The default value is false,
     * allowing normal assist collection.  Setting this to false will disable assist collection.
     *
     * @param enabled Set to true to <em>disable</em> assist data collection, or false
     * (the default) to allow it.
     *
     * @see #isAssistBlocked()
     * @see #onProvideAssistStructure
     * @see #onProvideVirtualAssistStructure
     * @see #onProvideStructure
     * @see #onProvideVirtualStructure
     * @attr ref android.R.styleable#View_assistBlocked
     */
    public void setAssistBlocked(boolean enabled) {
+3 −64

File changed.

Preview size limit exceeded, changes collapsed.

Loading