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

Commit a79efe0d authored by Rohit Sekhar's avatar Rohit Sekhar
Browse files

base: Create dimlayer on press instead

parent a40cb241
Loading
Loading
Loading
Loading
+53 −24
Original line number Diff line number Diff line
@@ -236,6 +236,21 @@ public class UdfpsController implements DozeReceiver, Dumpable {
    private final List<String> mUdfpsSysfsNodePaths;
    private Handler mHandler;

    private UdfpsHelper mUdfpsHelper;
    private boolean mUseFrameworkDimming;

    private UdfpsHelper getUdfpsHelper(int reason) {
        if (mUdfpsHelper == null && mUseFrameworkDimming) {
            mUdfpsHelper = new UdfpsHelper(
                mContext,
                mWindowManager,
                mShadeInteractor,
                reason
            );
        }
        return mUdfpsHelper;
    }

    private void updateUdfpsNodes(String value) {
        if (!mIsUdfpsNodeFeatureEnabled) {
            Log.d(TAG, "UDFPS node functionality is disabled via overlay.");
@@ -325,6 +340,9 @@ public class UdfpsController implements DozeReceiver, Dumpable {
        public void showUdfpsOverlay(long requestId, int sensorId, int reason,
                @NonNull IUdfpsOverlayControllerCallback callback) {
            mUdfpsOverlayInteractor.setRequestId(requestId);
	    mHandler.post(() -> {
                UdfpsHelper helper = getUdfpsHelper(reason);

                mFgExecutor.execute(() -> UdfpsController.this.showUdfpsOverlay(
                        new UdfpsControllerOverlay(
                            mContext,
@@ -348,8 +366,10 @@ public class UdfpsController implements DozeReceiver, Dumpable {
                            mShadeInteractor,
                            mUdfpsOverlayInteractor,
                            mPowerInteractor,
                        mScope
                            mScope,
                            helper
                        )));
            });
        }

        @Override
@@ -802,6 +822,9 @@ public class UdfpsController implements DozeReceiver, Dumpable {
        mPromptUdfpsTouchOverlayViewModel = promptUdfpsTouchOverlayViewModel;
        mHandler = new Handler(Looper.getMainLooper());

        mUseFrameworkDimming = context.getResources().getBoolean(
            com.android.systemui.res.R.bool.config_udfpsFrameworkDimming);

        mIsUdfpsNodeFeatureEnabled = mContext.getResources().getBoolean(
            com.android.systemui.res.R.bool.config_enableUdfpsSysfsNodes
        );
@@ -1119,6 +1142,9 @@ public class UdfpsController implements DozeReceiver, Dumpable {
        }
        if (isOptical()) {
            mLatencyTracker.onActionStart(ACTION_UDFPS_ILLUMINATE);
	    if (mUdfpsHelper != null) {
                mUdfpsHelper.addDimLayer();
            }
        }
        // Refresh screen timeout and boost process priority if possible.
        if (Flags.bouncerUiRevamp()) {
@@ -1192,6 +1218,9 @@ public class UdfpsController implements DozeReceiver, Dumpable {
                for (Callback cb : mCallbacks) {
                    cb.onFingerUp();
                }
               if (mUdfpsHelper != null) {
                   mUdfpsHelper.removeDimLayer();
               }
            }
        }
        mOnFingerDown = false;
+1 −8
Original line number Diff line number Diff line
@@ -89,6 +89,7 @@ constructor(
    private val udfpsOverlayInteractor: UdfpsOverlayInteractor,
    private val powerInteractor: PowerInteractor,
    @Application private val scope: CoroutineScope,
    private val udfpsHelper: UdfpsHelper?,
) {
    private val currentStateUpdatedToOffAodOrDozing: Flow<Unit> =
        transitionInteractor.currentKeyguardState
@@ -118,12 +119,6 @@ constructor(
        com.android.systemui.res.R.bool.config_udfpsFrameworkDimming
    )

    private val udfpsHelper: UdfpsHelper? = if (useFrameworkDimming) {
        UdfpsHelper(context, windowManager, shadeInteractor, requestReason)
    } else {
        null
    }

    private val coreLayoutParams =
        WindowManager.LayoutParams(
                WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL,
@@ -226,7 +221,6 @@ constructor(
    }

    private fun addViewNowOrLater(view: View, animation: UdfpsAnimationViewController<*>?) {
        udfpsHelper?.addDimLayer()
        addViewRunnable =
            kotlinx.coroutines.Runnable {
                Trace.setCounter("UdfpsAddView", 1)
@@ -275,7 +269,6 @@ constructor(
            }
        }
        udfpsDisplayModeProvider.disable(null)
        udfpsHelper?.removeDimLayer()
        getTouchOverlay()?.apply {
            if (this.parent != null) {
                windowManager.removeView(this)
+16 −0
Original line number Diff line number Diff line
@@ -54,6 +54,22 @@ class UdfpsHelper(
        visibility = View.GONE
    }
) {
    constructor(
        context: Context,
        windowManager: WindowManager,
        shadeInteractor: ShadeInteractor,
        requestReason: Int
    ) : this(
        context,
        windowManager,
        shadeInteractor,
        requestReason,
        View(context).apply {
            setBackgroundColor(Color.BLACK)
            visibility = View.GONE
        }
    )

    private val displayManager = context.getSystemService(DisplayManager::class.java)!!
    private val isKeyguard = requestReason == REASON_AUTH_KEYGUARD
    private var newIsQsExpanded = false