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

Commit 11ec4173 authored by Sunny Goyal's avatar Sunny Goyal Committed by Automerger Merge Worker
Browse files

Merge "Exposing some ViewRoomImple methods in shared lib" into rvc-dev am:...

Merge "Exposing some ViewRoomImple methods in shared lib" into rvc-dev am: 0cdc03a7 am: c84358a7

Change-Id: Ie0a5ce1ce7f0f22e130973d6db8390df923b05c2
parents 7f196142 c84358a7
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -38,9 +38,7 @@ android_library {
        "PluginCoreLib",
    ],

    // Enforce that the library is built against java 7 so that there are
    // no compatibility issues with launcher
    java_version: "1.7",

    java_version: "1.8",
    min_sdk_version: "26",
}
+0 −2
Original line number Diff line number Diff line
@@ -18,7 +18,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.systemui.shared">

    <uses-sdk
        android:minSdkVersion="26" />

</manifest>
+7 −0
Original line number Diff line number Diff line
@@ -20,6 +20,9 @@ import android.view.SurfaceControl;
import android.view.View;
import android.view.ViewRootImpl;

/**
 * TODO: Remove this class
 */
public class SurfaceControlCompat {
    final SurfaceControl mSurfaceControl;

@@ -37,4 +40,8 @@ public class SurfaceControlCompat {
    public boolean isValid() {
        return mSurfaceControl != null && mSurfaceControl.isValid();
    }

    public SurfaceControl getSurfaceControl() {
        return mSurfaceControl;
    }
}
+46 −34
Original line number Diff line number Diff line
@@ -23,8 +23,8 @@ import android.os.Handler;
import android.os.Handler.Callback;
import android.os.Message;
import android.os.Trace;
import android.view.Surface;
import android.view.SurfaceControl;
import android.view.SurfaceControl.Transaction;
import android.view.View;
import android.view.ViewRootImpl;

@@ -108,13 +108,12 @@ public class SyncRtSurfaceTransactionApplierCompat {
                    return;
                }
                Trace.traceBegin(Trace.TRACE_TAG_VIEW, "Sync transaction frameNumber=" + frame);
                TransactionCompat t = new TransactionCompat();
                Transaction t = new Transaction();
                for (int i = params.length - 1; i >= 0; i--) {
                    SyncRtSurfaceTransactionApplierCompat.SurfaceParams surfaceParams =
                            params[i];
                    SurfaceControlCompat surface = surfaceParams.surface;
                    t.deferTransactionUntil(surface, mBarrierSurfaceControl, frame);
                    applyParams(t, surfaceParams);
                    t.deferTransactionUntil(surfaceParams.surface, mBarrierSurfaceControl, frame);
                    surfaceParams.applyTo(t);
                }
                t.setEarlyWakeup();
                t.apply();
@@ -152,31 +151,7 @@ public class SyncRtSurfaceTransactionApplierCompat {

    public static void applyParams(TransactionCompat t,
            SyncRtSurfaceTransactionApplierCompat.SurfaceParams params) {
        if ((params.flags & FLAG_MATRIX) != 0) {
            t.setMatrix(params.surface, params.matrix);
        }
        if ((params.flags & FLAG_WINDOW_CROP) != 0) {
            t.setWindowCrop(params.surface, params.windowCrop);
        }
        if ((params.flags & FLAG_ALPHA) != 0) {
            t.setAlpha(params.surface, params.alpha);
        }
        if ((params.flags & FLAG_LAYER) != 0) {
            t.setLayer(params.surface, params.layer);
        }
        if ((params.flags & FLAG_CORNER_RADIUS) != 0) {
            t.setCornerRadius(params.surface, params.cornerRadius);
        }
        if ((params.flags & FLAG_BACKGROUND_BLUR_RADIUS) != 0) {
            t.setBackgroundBlurRadius(params.surface, params.backgroundBlurRadius);
        }
        if ((params.flags & FLAG_VISIBILITY) != 0) {
            if (params.visible) {
                t.show(params.surface);
            } else {
                t.hide(params.surface);
            }
        }
        params.applyTo(t.mTransaction);
    }

    /**
@@ -210,7 +185,7 @@ public class SyncRtSurfaceTransactionApplierCompat {

    public static class SurfaceParams {
        public static class Builder {
            final SurfaceControlCompat surface;
            final SurfaceControl surface;
            int flags;
            float alpha;
            float cornerRadius;
@@ -224,6 +199,13 @@ public class SyncRtSurfaceTransactionApplierCompat {
             * @param surface The surface to modify.
             */
            public Builder(SurfaceControlCompat surface) {
                this(surface.mSurfaceControl);
            }

            /**
             * @param surface The surface to modify.
             */
            public Builder(SurfaceControl surface) {
                this.surface = surface;
            }

@@ -317,11 +299,12 @@ public class SyncRtSurfaceTransactionApplierCompat {
         */
        public SurfaceParams(SurfaceControlCompat surface, float alpha, Matrix matrix,
                Rect windowCrop, int layer, float cornerRadius) {
            this(surface, FLAG_ALL & ~(FLAG_VISIBILITY | FLAG_BACKGROUND_BLUR_RADIUS), alpha,
            this(surface.mSurfaceControl,
                    FLAG_ALL & ~(FLAG_VISIBILITY | FLAG_BACKGROUND_BLUR_RADIUS), alpha,
                    matrix, windowCrop, layer, cornerRadius, 0 /* backgroundBlurRadius */, true);
        }

        private SurfaceParams(SurfaceControlCompat surface, int flags, float alpha, Matrix matrix,
        private SurfaceParams(SurfaceControl surface, int flags, float alpha, Matrix matrix,
                Rect windowCrop, int layer, float cornerRadius, int backgroundBlurRadius,
                boolean visible) {
            this.flags = flags;
@@ -336,8 +319,9 @@ public class SyncRtSurfaceTransactionApplierCompat {
        }

        private final int flags;
        private final float[] mTmpValues = new float[9];

        public final SurfaceControlCompat surface;
        public final SurfaceControl surface;
        public final float alpha;
        public final float cornerRadius;
        public final int backgroundBlurRadius;
@@ -345,5 +329,33 @@ public class SyncRtSurfaceTransactionApplierCompat {
        public final Rect windowCrop;
        public final int layer;
        public final boolean visible;

        public void applyTo(SurfaceControl.Transaction t) {
            if ((flags & FLAG_MATRIX) != 0) {
                t.setMatrix(surface, matrix, mTmpValues);
            }
            if ((flags & FLAG_WINDOW_CROP) != 0) {
                t.setWindowCrop(surface, windowCrop);
            }
            if ((flags & FLAG_ALPHA) != 0) {
                t.setAlpha(surface, alpha);
            }
            if ((flags & FLAG_LAYER) != 0) {
                t.setLayer(surface, layer);
            }
            if ((flags & FLAG_CORNER_RADIUS) != 0) {
                t.setCornerRadius(surface, cornerRadius);
            }
            if ((flags & FLAG_BACKGROUND_BLUR_RADIUS) != 0) {
                t.setBackgroundBlurRadius(surface, backgroundBlurRadius);
            }
            if ((flags & FLAG_VISIBILITY) != 0) {
                if (visible) {
                    t.show(surface);
                } else {
                    t.hide(surface);
                }
            }
        }
    }
}
+10 −2
Original line number Diff line number Diff line
@@ -18,9 +18,8 @@ package com.android.systemui.shared.system;

import android.graphics.Matrix;
import android.graphics.Rect;
import android.view.Surface;
import android.view.SurfaceControl.Transaction;
import android.view.SurfaceControl;
import android.view.SurfaceControl.Transaction;

public class TransactionCompat {

@@ -109,4 +108,13 @@ public class TransactionCompat {
        mTransaction.setColor(surfaceControl.mSurfaceControl, color);
        return this;
    }

    public static void deferTransactionUntil(Transaction t, SurfaceControl surfaceControl,
            SurfaceControl barrier, long frameNumber) {
        t.deferTransactionUntil(surfaceControl, barrier, frameNumber);
    }

    public static void setEarlyWakeup(Transaction t) {
        t.setEarlyWakeup();
    }
}
Loading