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

Commit 71cafe80 authored by Riley Jones's avatar Riley Jones Committed by Android (Google) Code Review
Browse files

Merge "Deprecate obtain and recycle for AccessibilityNodeInfo Test: Feature...

Merge "Deprecate obtain and recycle for AccessibilityNodeInfo Test: Feature removal, should not interfere with existing unit tests Fixes: 208469173"
parents 090608b2 c20406e7
Loading
Loading
Loading
Loading
+17 −17
Original line number Diff line number Diff line
@@ -51385,9 +51385,9 @@ package android.view.accessibility {
    method public int getRecordCount();
    method public int getWindowChanges();
    method public void initFromParcel(android.os.Parcel);
    method public static android.view.accessibility.AccessibilityEvent obtain(int);
    method public static android.view.accessibility.AccessibilityEvent obtain(android.view.accessibility.AccessibilityEvent);
    method public static android.view.accessibility.AccessibilityEvent obtain();
    method @Deprecated public static android.view.accessibility.AccessibilityEvent obtain(int);
    method @Deprecated public static android.view.accessibility.AccessibilityEvent obtain(android.view.accessibility.AccessibilityEvent);
    method @Deprecated public static android.view.accessibility.AccessibilityEvent obtain();
    method public void setAction(int);
    method public void setContentChangeTypes(int);
    method public void setEventTime(long);
@@ -51575,13 +51575,13 @@ package android.view.accessibility {
    method public boolean isShowingHintText();
    method public boolean isTextEntryKey();
    method public boolean isVisibleToUser();
    method public static android.view.accessibility.AccessibilityNodeInfo obtain(android.view.View);
    method public static android.view.accessibility.AccessibilityNodeInfo obtain(android.view.View, int);
    method public static android.view.accessibility.AccessibilityNodeInfo obtain();
    method public static android.view.accessibility.AccessibilityNodeInfo obtain(android.view.accessibility.AccessibilityNodeInfo);
    method @Deprecated public static android.view.accessibility.AccessibilityNodeInfo obtain(android.view.View);
    method @Deprecated public static android.view.accessibility.AccessibilityNodeInfo obtain(android.view.View, int);
    method @Deprecated public static android.view.accessibility.AccessibilityNodeInfo obtain();
    method @Deprecated public static android.view.accessibility.AccessibilityNodeInfo obtain(android.view.accessibility.AccessibilityNodeInfo);
    method public boolean performAction(int);
    method public boolean performAction(int, android.os.Bundle);
    method public void recycle();
    method @Deprecated public void recycle();
    method public boolean refresh();
    method public boolean refreshWithExtraData(String, android.os.Bundle);
    method @Deprecated public void removeAction(int);
@@ -51760,8 +51760,8 @@ package android.view.accessibility {
    method public int getRowCount();
    method public int getSelectionMode();
    method public boolean isHierarchical();
    method public static android.view.accessibility.AccessibilityNodeInfo.CollectionInfo obtain(int, int, boolean);
    method public static android.view.accessibility.AccessibilityNodeInfo.CollectionInfo obtain(int, int, boolean, int);
    method @Deprecated public static android.view.accessibility.AccessibilityNodeInfo.CollectionInfo obtain(int, int, boolean);
    method @Deprecated public static android.view.accessibility.AccessibilityNodeInfo.CollectionInfo obtain(int, int, boolean, int);
    field public static final int SELECTION_MODE_MULTIPLE = 2; // 0x2
    field public static final int SELECTION_MODE_NONE = 0; // 0x0
    field public static final int SELECTION_MODE_SINGLE = 1; // 0x1
@@ -51778,9 +51778,9 @@ package android.view.accessibility {
    method @Nullable public String getRowTitle();
    method @Deprecated public boolean isHeading();
    method public boolean isSelected();
    method public static android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo obtain(int, int, int, int, boolean);
    method public static android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo obtain(int, int, int, int, boolean, boolean);
    method @NonNull public static android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo obtain(@Nullable String, int, int, @Nullable String, int, int, boolean, boolean);
    method @Deprecated public static android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo obtain(int, int, int, int, boolean);
    method @Deprecated public static android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo obtain(int, int, int, int, boolean, boolean);
    method @Deprecated @NonNull public static android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo obtain(@Nullable String, int, int, @Nullable String, int, int, boolean, boolean);
  }
  public static final class AccessibilityNodeInfo.CollectionItemInfo.Builder {
@@ -51808,7 +51808,7 @@ package android.view.accessibility {
    method public float getMax();
    method public float getMin();
    method public int getType();
    method public static android.view.accessibility.AccessibilityNodeInfo.RangeInfo obtain(int, float, float, float);
    method @Deprecated public static android.view.accessibility.AccessibilityNodeInfo.RangeInfo obtain(int, float, float, float);
    field public static final int RANGE_TYPE_FLOAT = 1; // 0x1
    field public static final int RANGE_TYPE_INT = 0; // 0x0
    field public static final int RANGE_TYPE_PERCENT = 2; // 0x2
@@ -51862,9 +51862,9 @@ package android.view.accessibility {
    method public boolean isFullScreen();
    method public boolean isPassword();
    method public boolean isScrollable();
    method public static android.view.accessibility.AccessibilityRecord obtain(android.view.accessibility.AccessibilityRecord);
    method public static android.view.accessibility.AccessibilityRecord obtain();
    method public void recycle();
    method @Deprecated public static android.view.accessibility.AccessibilityRecord obtain(android.view.accessibility.AccessibilityRecord);
    method @Deprecated public static android.view.accessibility.AccessibilityRecord obtain();
    method @Deprecated public void recycle();
    method public void setAddedCount(int);
    method public void setBeforeText(CharSequence);
    method public void setChecked(boolean);
+0 −1
Original line number Diff line number Diff line
@@ -2838,7 +2838,6 @@ package android.view.accessibility {
    method public void addChild(@NonNull android.os.IBinder);
    method public long getSourceNodeId();
    method public void setLeashedParent(@Nullable android.os.IBinder, int);
    method public static void setNumInstancesInUseCounter(java.util.concurrent.atomic.AtomicInteger);
    method public void writeToParcelNoRecycle(android.os.Parcel, int);
  }

+23 −40
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
import android.util.Log;
import android.util.Pools.SynchronizedPool;

import com.android.internal.util.BitUtils;

@@ -806,10 +805,6 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par
     */
    public static final int TYPES_ALL_MASK = 0xFFFFFFFF;

    private static final int MAX_POOL_SIZE = 10;
    private static final SynchronizedPool<AccessibilityEvent> sPool =
            new SynchronizedPool<>(MAX_POOL_SIZE);

    @UnsupportedAppUsage
    private @EventType int mEventType;
    private CharSequence mPackageName;
@@ -1170,7 +1165,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par
     */
    public static AccessibilityEvent obtainWindowsChangedEvent(
            int windowId, int windowChangeTypes) {
        final AccessibilityEvent event = AccessibilityEvent.obtain(TYPE_WINDOWS_CHANGED);
        final AccessibilityEvent event = new AccessibilityEvent(TYPE_WINDOWS_CHANGED);
        event.setWindowId(windowId);
        event.setWindowChanges(windowChangeTypes);
        event.setImportantForAccessibility(true);
@@ -1178,69 +1173,58 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par
    }

    /**
     * Returns a cached instance if such is available or a new one is
     * instantiated with its type property set.
     *
     * <p>In most situations object pooling is not beneficial. Create a new instance using the
     * constructor {@link #AccessibilityEvent(int)} instead.
     * Instantiates a new AccessibilityEvent instance with its type property set.
     *
     * @deprecated Object pooling has been discontinued. Create a new instance using the
     * constructor {@link #AccessibilityEvent()} instead.
     * @param eventType The event type.
     * @return An instance.
     */
    @Deprecated
    public static AccessibilityEvent obtain(int eventType) {
        AccessibilityEvent event = AccessibilityEvent.obtain();
        AccessibilityEvent event = new AccessibilityEvent();
        event.setEventType(eventType);
        return event;
    }

    /**
     * Returns a cached instance if such is available or a new one is
     * created. The returned instance is initialized from the given
     * Instantiates a new AccessibilityEvent instance.
     * The returned instance is initialized from the given
     * <code>event</code>.
     *
     * <p>In most situations object pooling is not beneficial. Create a new instance using the
     * constructor {@link #AccessibilityEvent(AccessibilityEvent)} instead.
     *
     * @deprecated Object pooling has been discontinued. Create a new instance using the
     * constructor {@link #AccessibilityEvent()} instead.
     * @param event The other event.
     * @return An instance.
     */
    @Deprecated
    public static AccessibilityEvent obtain(AccessibilityEvent event) {
        AccessibilityEvent eventClone = AccessibilityEvent.obtain();
        AccessibilityEvent eventClone = new AccessibilityEvent();
        eventClone.init(event);
        return eventClone;
    }

    /**
     * Returns a cached instance if such is available or a new one is
     * instantiated.
     * Instantiates a new AccessibilityEvent instance.
     *
     * <p>In most situations object pooling is not beneficial. Create a new instance using the
     * @deprecated Object pooling has been discontinued. Create a new instance using the
     * constructor {@link #AccessibilityEvent()} instead.
     *
     * @return An instance.
     */
    @Deprecated
    public static AccessibilityEvent obtain() {
        AccessibilityEvent event = sPool.acquire();
        if (event == null) event = new AccessibilityEvent();
        if (DEBUG_ORIGIN) event.originStackTrace = Thread.currentThread().getStackTrace();
        return event;
        return new AccessibilityEvent();
    }

    /**
     * Recycles an instance back to be reused.
     * <p>
     *   <b>Note: You must not touch the object after calling this function.</b>
     * </p>
     * Previously would recycle an instance back to be reused.
     *
     * <p>In most situations object pooling is not beneficial, and recycling is not necessary.
     *
     * @throws IllegalStateException If the event is already recycled.
     * @deprecated Object pooling has been discontinued. Calling this function now will have
     * no effect.
     */
    @Override
    public void recycle() {
        clear();
        sPool.release(this);
    }
    @Deprecated
    public void recycle() {}

    /**
     * Clears the state of this instance.
@@ -1260,7 +1244,6 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par
        if (mRecords != null) {
            while (!mRecords.isEmpty()) {
                AccessibilityRecord record = mRecords.remove(0);
                record.recycle();
            }
        }
        if (DEBUG_ORIGIN) originStackTrace = null;
@@ -1288,7 +1271,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par
        if (recordCount > 0) {
            mRecords = new ArrayList<>(recordCount);
            for (int i = 0; i < recordCount; i++) {
                AccessibilityRecord record = AccessibilityRecord.obtain();
                AccessibilityRecord record = new AccessibilityRecord();
                readAccessibilityRecordFromParcel(record, parcel);
                record.mConnectionId = mConnectionId;
                mRecords.add(record);
@@ -1527,7 +1510,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par
    public static final @android.annotation.NonNull Parcelable.Creator<AccessibilityEvent> CREATOR =
            new Parcelable.Creator<AccessibilityEvent>() {
        public AccessibilityEvent createFromParcel(Parcel parcel) {
            AccessibilityEvent event = AccessibilityEvent.obtain();
            AccessibilityEvent event = new AccessibilityEvent();
            event.initFromParcel(parcel);
            return event;
        }
+98 −228

File changed.

Preview size limit exceeded, changes collapsed.

+13 −47
Original line number Diff line number Diff line
@@ -78,13 +78,6 @@ public class AccessibilityRecord {
        | AccessibilityNodeInfo.FLAG_PREFETCH_SIBLINGS
        | AccessibilityNodeInfo.FLAG_PREFETCH_DESCENDANTS;

    // Housekeeping
    private static final int MAX_POOL_SIZE = 10;
    private static final Object sPoolLock = new Object();
    private static AccessibilityRecord sPool;
    private static int sPoolSize;
    private AccessibilityRecord mNext;
    private boolean mIsInPool;

    @UnsupportedAppUsage
    boolean mSealed;
@@ -821,15 +814,14 @@ public class AccessibilityRecord {
    }

    /**
     * Returns a cached instance if such is available or a new one is
     * instantiated. The instance is initialized with data from the
     * Instantiates a new record initialized with data from the
     * given record.
     *
     * <p>In most situations object pooling is not beneficial. Create a new instance using the
     * constructor {@link #AccessibilityRecord(AccessibilityRecord)} instead.
     *
     * @deprecated Object pooling has been discontinued. Create a new instance using the
     * constructor {@link #AccessibilityRecord()} instead.
     * @return An instance.
     */
    @Deprecated
    public static AccessibilityRecord obtain(AccessibilityRecord record) {
       AccessibilityRecord clone = AccessibilityRecord.obtain();
       clone.init(record);
@@ -837,51 +829,25 @@ public class AccessibilityRecord {
    }

    /**
     * Returns a cached instance if such is available or a new one is
     * instantiated.
     * Instantiates a new record.
     *
     * <p>In most situations object pooling is not beneficial. Create a new instance using the
     * @deprecated Object pooling has been discontinued. Create a new instance using the
     * constructor {@link #AccessibilityRecord()} instead.
     *
     * @return An instance.
     */
    @Deprecated
    public static AccessibilityRecord obtain() {
        synchronized (sPoolLock) {
            if (sPool != null) {
                AccessibilityRecord record = sPool;
                sPool = sPool.mNext;
                sPoolSize--;
                record.mNext = null;
                record.mIsInPool = false;
                return record;
            }
        return new AccessibilityRecord();
    }
    }

    /**
     * Return an instance back to be reused.
     * <p>
     * <strong>Note:</strong> You must not touch the object after calling this function.
     * Would previously return an instance back to be reused.
     *
     * <p>In most situations object pooling is not beneficial, and recycling is not necessary.
     *
     * @throws IllegalStateException If the record is already recycled.
     * @deprecated Object pooling has been discontinued. Calling this function now will have
     * no effect.
     */
    public void recycle() {
        if (mIsInPool) {
            throw new IllegalStateException("Record already recycled!");
        }
        clear();
        synchronized (sPoolLock) {
            if (sPoolSize <= MAX_POOL_SIZE) {
                mNext = sPool;
                sPool = this;
                mIsInPool = true;
                sPoolSize++;
            }
        }
    }
    @Deprecated
    public void recycle() { }

    /**
     * Initialize this record from another one.
Loading