summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java20
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/UdfpsLogger.kt4
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowControllerImpl.java5
3 files changed, 27 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
index a64e862000fc..5efc5755316e 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
@@ -81,6 +81,7 @@ import com.android.systemui.doze.DozeReceiver;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.keyguard.data.repository.BiometricType;
+import com.android.systemui.log.core.LogLevel;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.VibratorHelper;
import com.android.systemui.util.concurrency.DelayableExecutor;
@@ -158,7 +159,7 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
@Nullable private UdfpsOverlayParams mUdfpsOverlayParams;
@Nullable private IUdfpsRefreshRateRequestCallback mUdfpsRefreshRateRequestCallback;
@Nullable private SideFpsController mSideFpsController;
- @Nullable private UdfpsLogger mUdfpsLogger;
+ @NonNull private UdfpsLogger mUdfpsLogger;
@VisibleForTesting IBiometricSysuiReceiver mReceiver;
@VisibleForTesting @NonNull final BiometricDisplayListener mOrientationListener;
@Nullable private final List<FaceSensorPropertiesInternal> mFaceProps;
@@ -930,6 +931,23 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
return mUdfpsRefreshRateRequestCallback;
}
+ /**
+ * Requests (or stops requesting) the max refresh rate. This can override user settings
+ * for the max refresh rate.
+ */
+ public void requestMaxRefreshRate(boolean request) throws RemoteException {
+ if (mUdfpsRefreshRateRequestCallback == null) {
+ mUdfpsLogger.log(
+ "PreAuthRefreshRate",
+ "skip request - refreshRateCallback is null",
+ LogLevel.DEBUG
+ );
+ return;
+ }
+ mUdfpsLogger.requestMaxRefreshRate(request);
+ mUdfpsRefreshRateRequestCallback.onAuthenticationPossible(mContext.getDisplayId(), request);
+ }
+
@Override
public void showAuthenticationDialog(PromptInfo promptInfo, IBiometricSysuiReceiver receiver,
int[] sensorIds, boolean credentialAllowed, boolean requireConfirmation,
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsLogger.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsLogger.kt
index 2102a1f72be2..65df8fdd4da4 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsLogger.kt
@@ -42,4 +42,8 @@ class UdfpsLogger @Inject constructor(@UdfpsLog private val logBuffer: LogBuffer
fun log(tag: String, @CompileTimeConstant msg: String, level: LogLevel) {
logBuffer.log(tag, level, msg)
}
+
+ fun requestMaxRefreshRate(request: Boolean) {
+ logBuffer.log("RefreshRate", LogLevel.DEBUG, { bool1 = request }, { "Request max: $bool1" })
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowControllerImpl.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowControllerImpl.java
index 04263882d3a8..d30361b4904d 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowControllerImpl.java
@@ -352,7 +352,10 @@ public class NotificationShadeWindowControllerImpl implements NotificationShadeW
&& !state.keyguardFadingAway && !state.keyguardGoingAway;
if (onKeyguard
&& mAuthController.isUdfpsEnrolled(mUserInteractor.get().getSelectedUserId())) {
- // both max and min display refresh rate must be set to take effect:
+ // Requests the max refresh rate (ie: for smooth display). Note: By setting
+ // the preferred refresh rates below, the refresh rate will not override the max
+ // refresh rate in settings (ie: if smooth display is OFF).
+ // Both max and min display refresh rate must be set to take effect:
mLpChanged.preferredMaxDisplayRefreshRate = mKeyguardPreferredRefreshRate;
mLpChanged.preferredMinDisplayRefreshRate = mKeyguardPreferredRefreshRate;
} else {