Merge "Fix DMD setting IUdfpsHbmListener before SysUI is ready" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
fce88b4e68
@@ -43,6 +43,7 @@ import android.hardware.face.FaceSensorPropertiesInternal;
|
|||||||
import android.hardware.fingerprint.FingerprintManager;
|
import android.hardware.fingerprint.FingerprintManager;
|
||||||
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
|
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
|
||||||
import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback;
|
import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback;
|
||||||
|
import android.hardware.fingerprint.IUdfpsHbmListener;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
@@ -100,6 +101,8 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
|
|||||||
@Nullable
|
@Nullable
|
||||||
private UdfpsController mUdfpsController;
|
private UdfpsController mUdfpsController;
|
||||||
@Nullable
|
@Nullable
|
||||||
|
private IUdfpsHbmListener mUdfpsHbmListener;
|
||||||
|
@Nullable
|
||||||
private SidefpsController mSidefpsController;
|
private SidefpsController mSidefpsController;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
TaskStackListener mTaskStackListener;
|
TaskStackListener mTaskStackListener;
|
||||||
@@ -470,6 +473,24 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
|
|||||||
mActivityTaskManager.registerTaskStackListener(mTaskStackListener);
|
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
|
@Override
|
||||||
public void showAuthenticationDialog(PromptInfo promptInfo, IBiometricSysuiReceiver receiver,
|
public void showAuthenticationDialog(PromptInfo promptInfo, IBiometricSysuiReceiver receiver,
|
||||||
int[] sensorIds, boolean credentialAllowed, boolean requireConfirmation,
|
int[] sensorIds, boolean credentialAllowed, boolean requireConfirmation,
|
||||||
|
|||||||
@@ -512,6 +512,8 @@ public final class DisplayManagerService extends SystemService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (phase == PHASE_BOOT_COMPLETED) {
|
||||||
|
mDisplayModeDirector.onBootCompleted();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -155,7 +155,6 @@ public class DisplayModeDirector {
|
|||||||
mSettingsObserver.observe();
|
mSettingsObserver.observe();
|
||||||
mDisplayObserver.observe();
|
mDisplayObserver.observe();
|
||||||
mBrightnessObserver.observe(sensorManager);
|
mBrightnessObserver.observe(sensorManager);
|
||||||
mUdfpsObserver.observe();
|
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
// We may have a listener already registered before the call to start, so go ahead and
|
// 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.
|
// notify them to pick up our newly initialized state.
|
||||||
@@ -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) {
|
public void setLoggingEnabled(boolean loggingEnabled) {
|
||||||
if (mLoggingEnabled == loggingEnabled) {
|
if (mLoggingEnabled == loggingEnabled) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -854,7 +854,7 @@ public class DisplayModeDirectorTest {
|
|||||||
createDirectorFromRefreshRateArray(new float[] {60.f, 90.f, 110.f}, 0);
|
createDirectorFromRefreshRateArray(new float[] {60.f, 90.f, 110.f}, 0);
|
||||||
verify(mStatusBarMock, never()).setUdfpsHbmListener(any());
|
verify(mStatusBarMock, never()).setUdfpsHbmListener(any());
|
||||||
|
|
||||||
director.start(createMockSensorManager());
|
director.onBootCompleted();
|
||||||
verify(mStatusBarMock).setUdfpsHbmListener(eq(director.getUdpfsObserver()));
|
verify(mStatusBarMock).setUdfpsHbmListener(eq(director.getUdpfsObserver()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -863,6 +863,7 @@ public class DisplayModeDirectorTest {
|
|||||||
DisplayModeDirector director =
|
DisplayModeDirector director =
|
||||||
createDirectorFromRefreshRateArray(new float[] {60.f, 90.f, 110.f}, 0);
|
createDirectorFromRefreshRateArray(new float[] {60.f, 90.f, 110.f}, 0);
|
||||||
director.start(createMockSensorManager());
|
director.start(createMockSensorManager());
|
||||||
|
director.onBootCompleted();
|
||||||
ArgumentCaptor<IUdfpsHbmListener> captor =
|
ArgumentCaptor<IUdfpsHbmListener> captor =
|
||||||
ArgumentCaptor.forClass(IUdfpsHbmListener.class);
|
ArgumentCaptor.forClass(IUdfpsHbmListener.class);
|
||||||
verify(mStatusBarMock).setUdfpsHbmListener(captor.capture());
|
verify(mStatusBarMock).setUdfpsHbmListener(captor.capture());
|
||||||
|
|||||||
Reference in New Issue
Block a user