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

Commit 07520c94 authored by Olawale Ogunwale's avatar Olawale Ogunwale Committed by Gerrit Code Review
Browse files

Merge "DimLayer : remove unnecessary surface transaction calls"

parents 7db6ebe0 6ce3a37f
Loading
Loading
Loading
Loading
+25 −23
Original line number Diff line number Diff line
@@ -140,10 +140,9 @@ public class DimLayer {
    }

    /**
     * @param layer The new layer value.
     * @param inTransaction Whether the call is made within a surface transaction.
     * NOTE: Must be called with Surface transaction open.
     */
    void adjustSurface(int layer, boolean inTransaction) {
    private void adjustBounds() {
        final int dw, dh;
        final float xPos, yPos;
        if (!mStack.isFullscreen()) {
@@ -163,29 +162,31 @@ public class DimLayer {
            yPos = -1 * dh / 6;
        }

        mDimSurface.setPosition(xPos, yPos);
        mDimSurface.setSize(dw, dh);

        mLastBounds.set(mBounds);
    }

    /**
     * @param bounds The new bounds to set
     * @param inTransaction Whether the call is made within a surface transaction.
     */
    void setBounds(Rect bounds, boolean inTransaction) {
        mBounds.set(bounds);
        if (isDimming() && !mLastBounds.equals(bounds)) {
            try {
                if (!inTransaction) {
                    SurfaceControl.openTransaction();
                }
            mDimSurface.setPosition(xPos, yPos);
            mDimSurface.setSize(dw, dh);
            mDimSurface.setLayer(layer);
                adjustBounds();
            } catch (RuntimeException e) {
            Slog.w(TAG, "Failure setting size or layer", e);
                Slog.w(TAG, "Failure setting size", e);
            } finally {
                if (!inTransaction) {
                    SurfaceControl.closeTransaction();
                }
            }
        mLastBounds.set(mBounds);
        mLayer = layer;
    }

    // Assumes that surface transactions are currently closed.
    void setBounds(Rect bounds) {
        mBounds.set(bounds);
        if (isDimming() && !mLastBounds.equals(bounds)) {
            adjustSurface(mLayer, false);
        }
    }

@@ -224,9 +225,10 @@ public class DimLayer {
            return;
        }

        if (!mLastBounds.equals(mBounds) || mLayer != layer) {
            adjustSurface(layer, true);
        if (!mLastBounds.equals(mBounds)) {
            adjustBounds();
        }
        setLayer(layer);

        long curTime = SystemClock.uptimeMillis();
        final boolean animating = isAnimating();
+2 −2
Original line number Diff line number Diff line
@@ -126,8 +126,8 @@ public class TaskStack {
            return false;
        }

        mDimLayer.setBounds(bounds);
        mAnimationBackgroundSurface.setBounds(bounds);
        mDimLayer.setBounds(bounds, false);
        mAnimationBackgroundSurface.setBounds(bounds, false);
        mBounds.set(bounds);

        return true;