From d5ce6564e36fe4291e42f091b322f23c346d1215 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Mon, 6 May 2019 23:16:43 +0200 Subject: [PATCH 31/31] Delay brightness changes, so that dim adjusted --- .../server/fingerprint/FacolaView.java | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/fingerprint/FacolaView.java b/services/core/java/com/android/server/fingerprint/FacolaView.java index ec336fe337c..86f03360ad0 100644 --- a/services/core/java/com/android/server/fingerprint/FacolaView.java +++ b/services/core/java/com/android/server/fingerprint/FacolaView.java @@ -29,6 +29,8 @@ import android.util.Slog; import android.view.WindowManager; import android.graphics.PixelFormat; import android.view.Gravity; +import android.os.Handler; +import android.os.Looper; import java.io.PrintWriter; @@ -47,10 +49,15 @@ public class FacolaView extends ImageView implements OnTouchListener { private final static float UNTOUCHED_DIM = .1f; private final static float TOUCHED_DIM = .9f; + private final Handler mMainHandler; + private boolean visible = false; + private final WindowManager mWM; FacolaView(Context context) { super(context); + mMainHandler = new Handler(Looper.getMainLooper()); + String[] location = android.os.SystemProperties.get("persist.vendor.sys.fp.fod.location.X_Y", "").split(","); String[] size = android.os.SystemProperties.get("persist.vendor.sys.fp.fod.size.width_height", "").split(","); if(size.length == 2 && location.length == 2) { @@ -89,8 +96,13 @@ public class FacolaView extends ImageView implements OnTouchListener { if(mInsideCircle) { try { int nitValue = 3; - if(mXiaomiFingerprint != null) - mXiaomiFingerprint.extCmd(0xa, nitValue); + if(mXiaomiFingerprint != null) { + mMainHandler.postDelayed(() -> { + try { + mXiaomiFingerprint.extCmd(0xa, nitValue); + } catch(Exception e) {} + }, 60); + } } catch(Exception e) { Slog.d("PHH-Enroll", "Failed calling xiaomi fp extcmd"); } @@ -123,8 +135,15 @@ public class FacolaView extends ImageView implements OnTouchListener { invalidate(); if(!mInsideCircle) { - mParams.screenBrightness = .0f; mParams.dimAmount = UNTOUCHED_DIM; + //Changing Dim is instant, changing brightness isn't. + //Have a little pity of users' eyes and wait a bit + mMainHandler.postDelayed(() -> { + if(visible) { + mParams.screenBrightness = .0f; + mWM.updateViewLayout(this, mParams); + } + }, 100); mWM.updateViewLayout(this, mParams); return false; } @@ -133,6 +152,7 @@ public class FacolaView extends ImageView implements OnTouchListener { mParams.screenBrightness = 1.0f; mWM.updateViewLayout(this, mParams); + return true; } @@ -166,6 +186,7 @@ public class FacolaView extends ImageView implements OnTouchListener { mParams.gravity = Gravity.TOP | Gravity.LEFT; mWM.addView(this, mParams); + visible = true; } @@ -188,5 +209,6 @@ public class FacolaView extends ImageView implements OnTouchListener { Slog.d("PHH-Enroll", "Removed facola"); mWM.removeView(this); + visible = false; } } -- 2.17.1