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

Unverified Commit 6e9a09fe authored by TheScarastic's avatar TheScarastic Committed by Michael Bestas
Browse files

udfps: Make pressed udfps view configurable

 * set a solid color by configuring config_udfpsColor
 * set a custom image by setting udfps_icon_pressed and making
   config_udfpsColor #00ffffff (transparent)

Change-Id: I028e0ba6ee012dc84cd365078ef4cbfbaad5cedc
parent 7c3dcc94
Loading
Loading
Loading
Loading
+108 B
Loading image diff...
+3 −0
Original line number Diff line number Diff line
@@ -15,6 +15,9 @@
     limitations under the License.
-->
<resources>
    <!-- Color of the UDFPS pressed view -->
    <color name="config_udfpsColor">#ffffffff</color>

    <!-- Doze: does the double tap sensor need a proximity check? -->
    <bool name="doze_double_tap_proximity_check">false</bool>

+15 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.biometrics;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PixelFormat;
@@ -29,6 +30,8 @@ import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

import com.android.systemui.res.R;

/**
 * Surface View for providing the Global High-Brightness Mode (GHBM) illumination for UDFPS.
 */
@@ -54,6 +57,8 @@ public class UdfpsSurfaceView extends SurfaceView implements SurfaceHolder.Callb
    boolean mAwaitingSurfaceToStartIllumination;
    boolean mHasValidSurface;

    private Drawable mUdfpsIconPressed;

    public UdfpsSurfaceView(Context context, AttributeSet attrs) {
        super(context, attrs);

@@ -69,8 +74,10 @@ public class UdfpsSurfaceView extends SurfaceView implements SurfaceHolder.Callb

        mSensorPaint = new Paint(0 /* flags */);
        mSensorPaint.setAntiAlias(true);
        mSensorPaint.setARGB(255, 255, 255, 255);
        mSensorPaint.setColor(context.getColor(R.color.config_udfpsColor));
        mSensorPaint.setStyle(Paint.Style.FILL);

        mUdfpsIconPressed = context.getDrawable(R.drawable.udfps_icon_pressed);
    }

    @Override public void surfaceCreated(SurfaceHolder holder) {
@@ -134,6 +141,13 @@ public class UdfpsSurfaceView extends SurfaceView implements SurfaceHolder.Callb
        Canvas canvas = null;
        try {
            canvas = mHolder.lockCanvas();
            mUdfpsIconPressed.setBounds(
                    Math.round(sensorRect.left),
                    Math.round(sensorRect.top),
                    Math.round(sensorRect.right),
                    Math.round(sensorRect.bottom)
            );
            mUdfpsIconPressed.draw(canvas);
            canvas.drawOval(sensorRect, mSensorPaint);
        } finally {
            // Make sure the surface is never left in a bad state.