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

Commit 0921f755 authored by Diya Bera's avatar Diya Bera Committed by Android (Google) Code Review
Browse files

Merge "Refactor IUdfpsHbmListener to be refresh-rate specific"

parents bf2ec82d f7f819dd
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
/*
 * Copyright (C) 2021 The Android Open Source Project
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -16,28 +16,28 @@
package android.hardware.fingerprint;

/**
 * A listener for the high-brightness mode (HBM) transitions. This allows other components to
 * perform certain actions when the HBM is toggled on or off. For example, a display manager
 * implementation can subscribe to these events from UdfpsController and adjust the display's
 * refresh rate when the HBM is enabled.
 * A callback for UDFPS refresh rate. This allows other components to
 * perform certain actions when the refresh rate is enabled or disabled.
 * For example, a display manager implementation can subscribe to these
 * events from UdfpsController when refresh rate is enabled or disabled.
 *
 * @hide
 */
oneway interface IUdfpsHbmListener {
oneway interface IUdfpsRefreshRateRequestCallback {
    /**
     * UdfpsController will call this method when the HBM is enabled.
     * Sets the appropriate display refresh rate for UDFPS.
     *
     * @param displayId The displayId for which the HBM is enabled. See
     * @param displayId The displayId for which the refresh rate should be set. See
     *        {@link android.view.Display#getDisplayId()}.
     */
    void onHbmEnabled(int displayId);
    void onRequestEnabled(int displayId);

    /**
     * UdfpsController will call this method when the HBM is disabled.
     * Unsets the appropriate display refresh rate for UDFPS.
     *
     * @param displayId The displayId for which the HBM is disabled. See
     * @param displayId The displayId for which the refresh rate should be unset. See
     *        {@link android.view.Display#getDisplayId()}.
     */
    void onHbmDisabled(int displayId);
    void onRequestDisabled(int displayId);
}
+3 −3
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ import android.graphics.Rect;
import android.hardware.biometrics.IBiometricContextListener;
import android.hardware.biometrics.IBiometricSysuiReceiver;
import android.hardware.biometrics.PromptInfo;
import android.hardware.fingerprint.IUdfpsHbmListener;
import android.hardware.fingerprint.IUdfpsRefreshRateRequestCallback;
import android.media.INearbyMediaDevicesProvider;
import android.media.MediaRoute2Info;
import android.os.Bundle;
@@ -175,9 +175,9 @@ oneway interface IStatusBar
    void setBiometicContextListener(in IBiometricContextListener listener);

    /**
     * Sets an instance of IUdfpsHbmListener for UdfpsController.
     * Sets an instance of IUdfpsRefreshRateRequestCallback for UdfpsController.
     */
    void setUdfpsHbmListener(in IUdfpsHbmListener listener);
    void setUdfpsRefreshRateCallback(in IUdfpsRefreshRateRequestCallback callback);

    /**
     * Notifies System UI that the display is ready to show system decorations.
+3 −3
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ import android.graphics.Rect;
import android.hardware.biometrics.IBiometricContextListener;
import android.hardware.biometrics.IBiometricSysuiReceiver;
import android.hardware.biometrics.PromptInfo;
import android.hardware.fingerprint.IUdfpsHbmListener;
import android.hardware.fingerprint.IUdfpsRefreshRateRequestCallback;
import android.media.INearbyMediaDevicesProvider;
import android.media.MediaRoute2Info;
import android.net.Uri;
@@ -136,9 +136,9 @@ interface IStatusBarService
    void setBiometicContextListener(in IBiometricContextListener listener);

    /**
     * Sets an instance of IUdfpsHbmListener for UdfpsController.
     * Sets an instance of IUdfpsRefreshRateRequestCallback for UdfpsController.
     */
    void setUdfpsHbmListener(in IUdfpsHbmListener listener);
    void setUdfpsRefreshRateCallback(in IUdfpsRefreshRateRequestCallback callback);

    /**
     * Show a warning that the device is about to go to sleep due to user inactivity.
+11 −10
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ import android.hardware.face.IFaceAuthenticatorsRegisteredCallback;
import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback;
import android.hardware.fingerprint.IUdfpsHbmListener;
import android.hardware.fingerprint.IUdfpsRefreshRateRequestCallback;
import android.os.Bundle;
import android.os.Handler;
import android.os.RemoteException;
@@ -147,7 +147,7 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
    @NonNull private final WindowManager mWindowManager;
    @NonNull private final DisplayManager mDisplayManager;
    @Nullable private UdfpsController mUdfpsController;
    @Nullable private IUdfpsHbmListener mUdfpsHbmListener;
    @Nullable private IUdfpsRefreshRateRequestCallback mUdfpsRefreshRateRequestCallback;
    @Nullable private SidefpsController mSidefpsController;
    @Nullable private IBiometricContextListener mBiometricContextListener;
    @Nullable private UdfpsLogger mUdfpsLogger;
@@ -883,21 +883,22 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
    }

    /**
     * Stores the listener received from {@link com.android.server.display.DisplayModeDirector}.
     * Stores the callback received from {@link com.android.server.display.DisplayModeDirector}.
     *
     * DisplayModeDirector implements {@link IUdfpsHbmListener} and registers it with this class by
     * calling {@link CommandQueue#setUdfpsHbmListener(IUdfpsHbmListener)}.
     * DisplayModeDirector implements {@link IUdfpsRefreshRateRequestCallback}
     * and registers it with this class by calling
     * {@link CommandQueue#setUdfpsRefreshRateCallback(IUdfpsRefreshRateRequestCallback)}.
     */
    @Override
    public void setUdfpsHbmListener(IUdfpsHbmListener listener) {
        mUdfpsHbmListener = listener;
    public void setUdfpsRefreshRateCallback(IUdfpsRefreshRateRequestCallback callback) {
        mUdfpsRefreshRateRequestCallback = callback;
    }

    /**
     * @return IUdfpsHbmListener that can be set by DisplayModeDirector.
     * @return IUdfpsRefreshRateRequestCallback that can be set by DisplayModeDirector.
     */
    @Nullable public IUdfpsHbmListener getUdfpsHbmListener() {
        return mUdfpsHbmListener;
    @Nullable public IUdfpsRefreshRateRequestCallback getUdfpsRefreshRateCallback() {
        return mUdfpsRefreshRateRequestCallback;
    }

    @Override
+3 −3
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@ constructor(
            logger.e(TAG, "enable | already requested")
            return
        }
        if (authController.udfpsHbmListener == null) {
        if (authController.udfpsRefreshRateCallback == null) {
            logger.e(TAG, "enable | mDisplayManagerCallback is null")
            return
        }
@@ -60,7 +60,7 @@ constructor(
        try {
            // This method is a misnomer. It has nothing to do with HBM, its purpose is to set
            // the appropriate display refresh rate.
            authController.udfpsHbmListener!!.onHbmEnabled(request.displayId)
            authController.udfpsRefreshRateCallback!!.onRequestEnabled(request.displayId)
            logger.v(TAG, "enable | requested optimal refresh rate for UDFPS")
        } catch (e: RemoteException) {
            logger.e(TAG, "enable", e)
@@ -84,7 +84,7 @@ constructor(

        try {
            // Allow DisplayManager to unset the UDFPS refresh rate.
            authController.udfpsHbmListener!!.onHbmDisabled(request.displayId)
            authController.udfpsRefreshRateCallback!!.onRequestDisabled(request.displayId)
            logger.v(TAG, "disable | removed the UDFPS refresh rate request")
        } catch (e: RemoteException) {
            logger.e(TAG, "disable", e)
Loading