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

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

Merge "Add "assist block" API."

parents 2ff8ca65 799d8d0a
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -299,6 +299,7 @@ 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
@@ -4071,6 +4072,7 @@ package android.app {
    method public int getWidth();
    method public boolean isAccessibilityFocused();
    method public boolean isActivated();
    method public boolean isAssistBlocked();
    method public boolean isCheckable();
    method public boolean isChecked();
    method public boolean isClickable();
@@ -36051,6 +36053,7 @@ 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();
@@ -36193,6 +36196,7 @@ 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);
@@ -36555,6 +36559,7 @@ package android.view {
    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);
+5 −0
Original line number Diff line number Diff line
@@ -372,6 +372,7 @@ 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
@@ -4162,6 +4163,7 @@ package android.app {
    method public int getWidth();
    method public boolean isAccessibilityFocused();
    method public boolean isActivated();
    method public boolean isAssistBlocked();
    method public boolean isCheckable();
    method public boolean isChecked();
    method public boolean isClickable();
@@ -38251,6 +38253,7 @@ 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();
@@ -38393,6 +38396,7 @@ 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);
@@ -38755,6 +38759,7 @@ package android.view {
    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);
+11 −0
Original line number Diff line number Diff line
@@ -218,6 +218,7 @@ final public class AssistStructure implements Parcelable {
        static final int FLAGS_FOCUSED = 0x00000020;
        static final int FLAGS_ACCESSIBILITY_FOCUSED = 0x04000000;
        static final int FLAGS_SELECTED = 0x00000040;
        static final int FLAGS_ASSIST_BLOCKED = 0x00000080;
        static final int FLAGS_ACTIVATED = 0x40000000;
        static final int FLAGS_CHECKABLE = 0x00000100;
        static final int FLAGS_CHECKED = 0x00000200;
@@ -356,6 +357,10 @@ final public class AssistStructure implements Parcelable {
            return mFlags&ViewNode.FLAGS_VISIBILITY_MASK;
        }

        public boolean isAssistBlocked() {
            return (mFlags&ViewNode.FLAGS_ASSIST_BLOCKED) == 0;
        }

        public boolean isEnabled() {
            return (mFlags&ViewNode.FLAGS_DISABLED) == 0;
        }
@@ -483,6 +488,12 @@ final public class AssistStructure implements Parcelable {
            mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_VISIBILITY_MASK) | visibility;
        }

        @Override
        public void setAssistBlocked(boolean state) {
            mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_ASSIST_BLOCKED)
                    | (state ? 0 : ViewNode.FLAGS_ASSIST_BLOCKED);
        }

        @Override
        public void setEnabled(boolean state) {
            mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_DISABLED)
+60 −3
Original line number Diff line number Diff line
@@ -631,6 +631,7 @@ 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
@@ -2324,6 +2325,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     *                               1   PFLAG3_IS_LAID_OUT
     *                              1    PFLAG3_MEASURE_NEEDED_BEFORE_LAYOUT
     *                             1     PFLAG3_CALLED_SUPER
     *                            1      PFLAG3_APPLYING_INSETS
     *                           1       PFLAG3_FITTING_SYSTEM_WINDOWS
     *                          1        PFLAG3_NESTED_SCROLLING_ENABLED
     *                         1         PFLAG3_ASSIST_BLOCKED
     * |-------|-------|-------|-------|
     */
@@ -2380,6 +2385,12 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
    static final int DRAG_MASK = PFLAG2_DRAG_CAN_ACCEPT | PFLAG2_DRAG_HOVERED;
    /**
     * <p>Indicates that we are allowing {@link android.view.ViewAssistStructure} to traverse
     * into this view.<p>
     */
    static final int PFLAG3_ASSIST_BLOCKED = 0x100;
    /**
     * Always allow a user to over-scroll this view, provided it is a
     * view that can scroll.
@@ -3869,6 +3880,11 @@ 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;
@@ -5890,8 +5906,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     * {@link #onProvideVirtualAssistStructure}.
     */
    public void dispatchProvideAssistStructure(ViewAssistStructure structure) {
        if (!isAssistBlocked()) {
            onProvideAssistStructure(structure);
            onProvideVirtualAssistStructure(structure);
        } else {
            structure.setClassName(getAccessibilityClassName().toString());
            structure.setAssistBlocked(true);
        }
    }
    /**
@@ -7457,6 +7478,42 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        return (mPrivateFlags & PFLAG_PRESSED) == PFLAG_PRESSED;
    }
    /**
     * Indicates whether this view will participate in data collection through
     * {@link android.view.ViewAssistStructure}.  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.
     *
     * @see #setAssistBlocked(boolean)
     * @attr ref android.R.styleable#View_assistBlocked
     */
    public boolean isAssistBlocked() {
        return (mPrivateFlags3 & PFLAG3_ASSIST_BLOCKED) != 0;
    }
    /**
     * 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,
     * 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
     * @attr ref android.R.styleable#View_assistBlocked
     */
    public void setAssistBlocked(boolean enabled) {
        if (enabled) {
            mPrivateFlags3 |= PFLAG3_ASSIST_BLOCKED;
        } else {
            mPrivateFlags3 &= ~PFLAG3_ASSIST_BLOCKED;
        }
    }
    /**
     * Indicates whether this view will save its state (that is,
     * whether its {@link #onSaveInstanceState} method will be called).
+2 −0
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ public abstract class ViewAssistStructure {

    public abstract void setVisibility(int visibility);

    public abstract void setAssistBlocked(boolean state);

    public abstract void setEnabled(boolean state);

    public abstract void setClickable(boolean state);
Loading