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

Commit 6d990b12 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Close Transactions explicitly" into tm-dev

parents 6f06d92d 0a682bf1
Loading
Loading
Loading
Loading
+17 −9
Original line number Diff line number Diff line
@@ -98,6 +98,13 @@ public class InsetsSourceConsumer {
     */
    private boolean mIsAnimationPending;

    /**
     * @param type The {@link InternalInsetsType} of the consumed insets.
     * @param state The current {@link InsetsState} of the consumed insets.
     * @param transactionSupplier The source of new {@link Transaction} instances. The supplier
     *         must provide *new* instances, which will be explicitly closed by this class.
     * @param controller The {@link InsetsController} to use for insets interaction.
     */
    public InsetsSourceConsumer(@InternalInsetsType int type, InsetsState state,
            Supplier<Transaction> transactionSupplier, InsetsController controller) {
        mType = type;
@@ -390,7 +397,7 @@ public class InsetsSourceConsumer {
            return;
        }

        final Transaction t = mTransactionSupplier.get();
        try (Transaction t = mTransactionSupplier.get()) {
            if (DEBUG) Log.d(TAG, "applyRequestedVisibilityToControl: " + mRequestedVisible);
            if (mRequestedVisible) {
                t.show(mSourceControl.getLeash());
@@ -400,6 +407,7 @@ public class InsetsSourceConsumer {
            // Ensure the alpha value is aligned with the actual requested visibility.
            t.setAlpha(mSourceControl.getLeash(), mRequestedVisible ? 1 : 0);
            t.apply();
        }
        onPerceptible(mRequestedVisible);
    }

+5 −3
Original line number Diff line number Diff line
@@ -65,10 +65,12 @@ public class SyncRtSurfaceTransactionApplier {
        applyParams(t, params);

        mTargetViewRootImpl.registerRtFrameCallback(frame -> {
            if (mTargetSc == null || !mTargetSc.isValid()) {
                return;
            }
            if (mTargetSc != null && mTargetSc.isValid()) {
                applyTransaction(t, frame);
            }
            // The transaction was either dropped, successfully applied, or merged with a future
            // transaction, so we can safely release its resources.
            t.close();
        });

        // Make sure a frame gets scheduled.
+2 −1
Original line number Diff line number Diff line
@@ -4178,7 +4178,7 @@ public final class ViewRootImpl implements ViewParent,
                        + " didProduceBuffer=" + didProduceBuffer);
            }

            Transaction tmpTransaction = new Transaction();
            final Transaction tmpTransaction = new Transaction();
            tmpTransaction.merge(mRtBLASTSyncTransaction);

            // If frame wasn't drawn, clear out the next transaction so it doesn't affect the next
@@ -4209,6 +4209,7 @@ public final class ViewRootImpl implements ViewParent,
                        blastSyncConsumer.accept(mSurfaceChangedTransaction);
                    }
                }
                tmpTransaction.close();

                if (reportNextDraw) {
                    pendingDrawFinished();