Loading packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java +21 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.hardware.face.FaceSensorPropertiesInternal; import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.FingerprintSensorPropertiesInternal; import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback; import android.hardware.fingerprint.IUdfpsHbmListener; import android.os.Bundle; import android.os.Handler; import android.os.Looper; Loading Loading @@ -100,6 +101,8 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, @Nullable private UdfpsController mUdfpsController; @Nullable private IUdfpsHbmListener mUdfpsHbmListener; @Nullable private SidefpsController mSidefpsController; @VisibleForTesting TaskStackListener mTaskStackListener; Loading Loading @@ -470,6 +473,24 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, mActivityTaskManager.registerTaskStackListener(mTaskStackListener); } /** * Stores the listener received from {@link com.android.server.display.DisplayModeDirector}. * * DisplayModeDirector implements {@link IUdfpsHbmListener} and registers it with this class by * calling {@link CommandQueue#setUdfpsHbmListener(IUdfpsHbmListener)}. */ @Override public void setUdfpsHbmListener(IUdfpsHbmListener listener) { mUdfpsHbmListener = listener; } /** * @return IUdfpsHbmListener that can be set by DisplayModeDirector. */ @Nullable public IUdfpsHbmListener getUdfpsHbmListener() { return mUdfpsHbmListener; } @Override public void showAuthenticationDialog(PromptInfo promptInfo, IBiometricSysuiReceiver receiver, int[] sensorIds, boolean credentialAllowed, boolean requireConfirmation, Loading services/core/java/com/android/server/display/DisplayManagerService.java +2 −0 Original line number Diff line number Diff line Loading @@ -512,6 +512,8 @@ public final class DisplayManagerService extends SystemService { } } } } else if (phase == PHASE_BOOT_COMPLETED) { mDisplayModeDirector.onBootCompleted(); } } Loading services/core/java/com/android/server/display/DisplayModeDirector.java +10 −1 Original line number Diff line number Diff line Loading @@ -155,7 +155,6 @@ public class DisplayModeDirector { mSettingsObserver.observe(); mDisplayObserver.observe(); mBrightnessObserver.observe(sensorManager); mUdfpsObserver.observe(); synchronized (mLock) { // We may have a listener already registered before the call to start, so go ahead and // notify them to pick up our newly initialized state. Loading @@ -163,6 +162,16 @@ public class DisplayModeDirector { } } /** * Same as {@link #start(SensorManager)}, but for observers that need to be delayed even more, * for example until SystemUI is ready. */ public void onBootCompleted() { // UDFPS observer registers a listener with SystemUI which might not be ready until the // system is fully booted. mUdfpsObserver.observe(); } public void setLoggingEnabled(boolean loggingEnabled) { if (mLoggingEnabled == loggingEnabled) { return; Loading services/tests/servicestests/src/com/android/server/display/DisplayModeDirectorTest.java +2 −1 Original line number Diff line number Diff line Loading @@ -854,7 +854,7 @@ public class DisplayModeDirectorTest { createDirectorFromRefreshRateArray(new float[] {60.f, 90.f, 110.f}, 0); verify(mStatusBarMock, never()).setUdfpsHbmListener(any()); director.start(createMockSensorManager()); director.onBootCompleted(); verify(mStatusBarMock).setUdfpsHbmListener(eq(director.getUdpfsObserver())); } Loading @@ -863,6 +863,7 @@ public class DisplayModeDirectorTest { DisplayModeDirector director = createDirectorFromRefreshRateArray(new float[] {60.f, 90.f, 110.f}, 0); director.start(createMockSensorManager()); director.onBootCompleted(); ArgumentCaptor<IUdfpsHbmListener> captor = ArgumentCaptor.forClass(IUdfpsHbmListener.class); verify(mStatusBarMock).setUdfpsHbmListener(captor.capture()); Loading Loading
packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java +21 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.hardware.face.FaceSensorPropertiesInternal; import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.FingerprintSensorPropertiesInternal; import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback; import android.hardware.fingerprint.IUdfpsHbmListener; import android.os.Bundle; import android.os.Handler; import android.os.Looper; Loading Loading @@ -100,6 +101,8 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, @Nullable private UdfpsController mUdfpsController; @Nullable private IUdfpsHbmListener mUdfpsHbmListener; @Nullable private SidefpsController mSidefpsController; @VisibleForTesting TaskStackListener mTaskStackListener; Loading Loading @@ -470,6 +473,24 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, mActivityTaskManager.registerTaskStackListener(mTaskStackListener); } /** * Stores the listener received from {@link com.android.server.display.DisplayModeDirector}. * * DisplayModeDirector implements {@link IUdfpsHbmListener} and registers it with this class by * calling {@link CommandQueue#setUdfpsHbmListener(IUdfpsHbmListener)}. */ @Override public void setUdfpsHbmListener(IUdfpsHbmListener listener) { mUdfpsHbmListener = listener; } /** * @return IUdfpsHbmListener that can be set by DisplayModeDirector. */ @Nullable public IUdfpsHbmListener getUdfpsHbmListener() { return mUdfpsHbmListener; } @Override public void showAuthenticationDialog(PromptInfo promptInfo, IBiometricSysuiReceiver receiver, int[] sensorIds, boolean credentialAllowed, boolean requireConfirmation, Loading
services/core/java/com/android/server/display/DisplayManagerService.java +2 −0 Original line number Diff line number Diff line Loading @@ -512,6 +512,8 @@ public final class DisplayManagerService extends SystemService { } } } } else if (phase == PHASE_BOOT_COMPLETED) { mDisplayModeDirector.onBootCompleted(); } } Loading
services/core/java/com/android/server/display/DisplayModeDirector.java +10 −1 Original line number Diff line number Diff line Loading @@ -155,7 +155,6 @@ public class DisplayModeDirector { mSettingsObserver.observe(); mDisplayObserver.observe(); mBrightnessObserver.observe(sensorManager); mUdfpsObserver.observe(); synchronized (mLock) { // We may have a listener already registered before the call to start, so go ahead and // notify them to pick up our newly initialized state. Loading @@ -163,6 +162,16 @@ public class DisplayModeDirector { } } /** * Same as {@link #start(SensorManager)}, but for observers that need to be delayed even more, * for example until SystemUI is ready. */ public void onBootCompleted() { // UDFPS observer registers a listener with SystemUI which might not be ready until the // system is fully booted. mUdfpsObserver.observe(); } public void setLoggingEnabled(boolean loggingEnabled) { if (mLoggingEnabled == loggingEnabled) { return; Loading
services/tests/servicestests/src/com/android/server/display/DisplayModeDirectorTest.java +2 −1 Original line number Diff line number Diff line Loading @@ -854,7 +854,7 @@ public class DisplayModeDirectorTest { createDirectorFromRefreshRateArray(new float[] {60.f, 90.f, 110.f}, 0); verify(mStatusBarMock, never()).setUdfpsHbmListener(any()); director.start(createMockSensorManager()); director.onBootCompleted(); verify(mStatusBarMock).setUdfpsHbmListener(eq(director.getUdpfsObserver())); } Loading @@ -863,6 +863,7 @@ public class DisplayModeDirectorTest { DisplayModeDirector director = createDirectorFromRefreshRateArray(new float[] {60.f, 90.f, 110.f}, 0); director.start(createMockSensorManager()); director.onBootCompleted(); ArgumentCaptor<IUdfpsHbmListener> captor = ArgumentCaptor.forClass(IUdfpsHbmListener.class); verify(mStatusBarMock).setUdfpsHbmListener(captor.capture()); Loading