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

Commit 3c2e6526 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Remove WindowContextInfoChangeItem pooling (18/n)." into main

parents 8509870e fc0fb78f
Loading
Loading
Loading
Loading
+12 −29
Original line number Diff line number Diff line
@@ -30,44 +30,27 @@ import java.util.Objects;

/**
 * {@link android.window.WindowContext} configuration change message.
 *
 * @hide
 */
public class WindowContextInfoChangeItem extends ClientTransactionItem {

    @Nullable
    private IBinder mClientToken;
    @Nullable
    private WindowContextInfo mInfo;

    @Override
    public void execute(@NonNull ClientTransactionHandler client,
            @NonNull PendingTransactionActions pendingActions) {
        client.handleWindowContextInfoChanged(mClientToken, mInfo);
    }
    @NonNull
    private final IBinder mClientToken;

    // ObjectPoolItem implementation
    @NonNull
    private final WindowContextInfo mInfo;

    private WindowContextInfoChangeItem() {}

    /** Obtains an instance initialized with provided params. */
    public static WindowContextInfoChangeItem obtain(
    public WindowContextInfoChangeItem(
            @NonNull IBinder clientToken, @NonNull Configuration config, int displayId) {
        WindowContextInfoChangeItem instance =
                ObjectPool.obtain(WindowContextInfoChangeItem.class);
        if (instance == null) {
            instance = new WindowContextInfoChangeItem();
        }
        instance.mClientToken = requireNonNull(clientToken);
        instance.mInfo = new WindowContextInfo(new Configuration(config), displayId);

        return instance;
        mClientToken = requireNonNull(clientToken);
        mInfo = new WindowContextInfo(new Configuration(config), displayId);
    }

    @Override
    public void recycle() {
        mClientToken = null;
        mInfo = null;
        ObjectPool.recycle(this);
    public void execute(@NonNull ClientTransactionHandler client,
            @NonNull PendingTransactionActions pendingActions) {
        client.handleWindowContextInfoChanged(mClientToken, mInfo);
    }

    // Parcelable implementation
@@ -82,7 +65,7 @@ public class WindowContextInfoChangeItem extends ClientTransactionItem {
    /** Reads from Parcel. */
    private WindowContextInfoChangeItem(@NonNull Parcel in) {
        mClientToken = in.readStrongBinder();
        mInfo = in.readTypedObject(WindowContextInfo.CREATOR);
        mInfo = requireNonNull(in.readTypedObject(WindowContextInfo.CREATOR));
    }

    public static final @NonNull Creator<WindowContextInfoChangeItem> CREATOR =
+2 −2
Original line number Diff line number Diff line
@@ -174,8 +174,8 @@ public class ClientTransactionItemTest {

    @Test
    public void testWindowContextInfoChangeItem_execute() {
        final WindowContextInfoChangeItem item = WindowContextInfoChangeItem
                .obtain(mWindowClientToken, mConfiguration, DEFAULT_DISPLAY);
        final WindowContextInfoChangeItem item = new WindowContextInfoChangeItem(mWindowClientToken,
                mConfiguration, DEFAULT_DISPLAY);

        item.execute(mHandler, mPendingActions);

+2 −2
Original line number Diff line number Diff line
@@ -330,8 +330,8 @@ class WindowContextListenerController {
            mLastReportedConfig.setTo(config);
            mLastReportedDisplay = displayId;

            mWpc.scheduleClientTransactionItem(WindowContextInfoChangeItem.obtain(
                    mClientToken, config, displayId));
            mWpc.scheduleClientTransactionItem(
                    new WindowContextInfoChangeItem(mClientToken, config, displayId));
            mHasPendingConfiguration = false;
        }