Loading packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java +16 −19 Original line number Diff line number Diff line Loading @@ -134,7 +134,6 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks, private float mScaleFactor = 1f; // sensor locations without any resolution scaling nor rotation adjustments: @Nullable private final Point mFaceSensorLocationDefault; @Nullable private final Point mFingerprintSensorLocationDefault; // cached sensor locations: @Nullable private Point mFaceSensorLocation; @Nullable private Point mFingerprintSensorLocation; Loading Loading @@ -595,12 +594,24 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks, @Nullable private Point getFingerprintSensorLocationInNaturalOrientation() { if (getUdfpsLocation() != null) { return getUdfpsLocation(); } else { int xFpLocation = mCachedDisplayInfo.getNaturalWidth() / 2; try { xFpLocation = mContext.getResources().getDimensionPixelSize( com.android.systemui.R.dimen .physical_fingerprint_sensor_center_screen_location_x); } catch (Resources.NotFoundException e) { } return new Point( (int) (mFingerprintSensorLocationDefault.x * mScaleFactor), (int) (mFingerprintSensorLocationDefault.y * mScaleFactor) (int) (xFpLocation * mScaleFactor), (int) (mContext.getResources().getDimensionPixelSize( com.android.systemui.R.dimen .physical_fingerprint_sensor_center_screen_location_y) * mScaleFactor) ); } } /** * @return where the fingerprint sensor exists in pixels exists the current device orientation. Loading Loading @@ -778,19 +789,6 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks, } mDisplay = mContext.getDisplay(); mDisplay.getDisplayInfo(mCachedDisplayInfo); int xFpLocation = mCachedDisplayInfo.getNaturalWidth() / 2; try { xFpLocation = mContext.getResources().getDimensionPixelSize( com.android.systemui.R.dimen .physical_fingerprint_sensor_center_screen_location_x); } catch (Resources.NotFoundException e) { } mFingerprintSensorLocationDefault = new Point( xFpLocation, mContext.getResources().getDimensionPixelSize(com.android.systemui.R.dimen .physical_fingerprint_sensor_center_screen_location_y) ); updateSensorLocations(); IntentFilter filter = new IntentFilter(); Loading Loading @@ -1265,7 +1263,6 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks, pw.println(" mScaleFactor=" + mScaleFactor); pw.println(" faceAuthSensorLocationDefault=" + mFaceSensorLocationDefault); pw.println(" faceAuthSensorLocation=" + getFaceSensorLocation()); pw.println(" fingerprintSensorLocationDefault=" + mFingerprintSensorLocationDefault); pw.println(" fingerprintSensorLocationInNaturalOrientation=" + getFingerprintSensorLocationInNaturalOrientation()); pw.println(" fingerprintSensorLocation=" + getFingerprintSensorLocation()); Loading packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static com.google.common.truth.Truth.assertThat; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertNotSame; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; Loading @@ -33,6 +34,8 @@ import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; Loading @@ -48,6 +51,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Point; import android.hardware.biometrics.BiometricAuthenticator; import android.hardware.biometrics.BiometricConstants; Loading Loading @@ -177,6 +181,8 @@ public class AuthControllerTest extends SysuiTestCase { private ArgumentCaptor<IFaceAuthenticatorsRegisteredCallback> mFaceAuthenticatorsRegisteredCaptor; @Captor private ArgumentCaptor<BiometricStateListener> mBiometricStateCaptor; @Mock private Resources mResources; private TestableContext mContextSpy; private Execution mExecution; Loading Loading @@ -905,6 +911,25 @@ public class AuthControllerTest extends SysuiTestCase { ); } @Test public void testUpdateFingerprintLocation_defaultPointChanges_whenConfigChanges() { when(mContextSpy.getResources()).thenReturn(mResources); doReturn(500).when(mResources) .getDimensionPixelSize(eq(com.android.systemui.R.dimen .physical_fingerprint_sensor_center_screen_location_y)); mAuthController.onConfigurationChanged(null /* newConfig */); final Point firstFpLocation = mAuthController.getFingerprintSensorLocation(); doReturn(1000).when(mResources) .getDimensionPixelSize(eq(com.android.systemui.R.dimen .physical_fingerprint_sensor_center_screen_location_y)); mAuthController.onConfigurationChanged(null /* newConfig */); assertNotSame(firstFpLocation, mAuthController.getFingerprintSensorLocation()); } private void showDialog(int[] sensorIds, boolean credentialAllowed) { mAuthController.showAuthenticationDialog(createTestPromptInfo(), mReceiver /* receiver */, Loading Loading
packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java +16 −19 Original line number Diff line number Diff line Loading @@ -134,7 +134,6 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks, private float mScaleFactor = 1f; // sensor locations without any resolution scaling nor rotation adjustments: @Nullable private final Point mFaceSensorLocationDefault; @Nullable private final Point mFingerprintSensorLocationDefault; // cached sensor locations: @Nullable private Point mFaceSensorLocation; @Nullable private Point mFingerprintSensorLocation; Loading Loading @@ -595,12 +594,24 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks, @Nullable private Point getFingerprintSensorLocationInNaturalOrientation() { if (getUdfpsLocation() != null) { return getUdfpsLocation(); } else { int xFpLocation = mCachedDisplayInfo.getNaturalWidth() / 2; try { xFpLocation = mContext.getResources().getDimensionPixelSize( com.android.systemui.R.dimen .physical_fingerprint_sensor_center_screen_location_x); } catch (Resources.NotFoundException e) { } return new Point( (int) (mFingerprintSensorLocationDefault.x * mScaleFactor), (int) (mFingerprintSensorLocationDefault.y * mScaleFactor) (int) (xFpLocation * mScaleFactor), (int) (mContext.getResources().getDimensionPixelSize( com.android.systemui.R.dimen .physical_fingerprint_sensor_center_screen_location_y) * mScaleFactor) ); } } /** * @return where the fingerprint sensor exists in pixels exists the current device orientation. Loading Loading @@ -778,19 +789,6 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks, } mDisplay = mContext.getDisplay(); mDisplay.getDisplayInfo(mCachedDisplayInfo); int xFpLocation = mCachedDisplayInfo.getNaturalWidth() / 2; try { xFpLocation = mContext.getResources().getDimensionPixelSize( com.android.systemui.R.dimen .physical_fingerprint_sensor_center_screen_location_x); } catch (Resources.NotFoundException e) { } mFingerprintSensorLocationDefault = new Point( xFpLocation, mContext.getResources().getDimensionPixelSize(com.android.systemui.R.dimen .physical_fingerprint_sensor_center_screen_location_y) ); updateSensorLocations(); IntentFilter filter = new IntentFilter(); Loading Loading @@ -1265,7 +1263,6 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks, pw.println(" mScaleFactor=" + mScaleFactor); pw.println(" faceAuthSensorLocationDefault=" + mFaceSensorLocationDefault); pw.println(" faceAuthSensorLocation=" + getFaceSensorLocation()); pw.println(" fingerprintSensorLocationDefault=" + mFingerprintSensorLocationDefault); pw.println(" fingerprintSensorLocationInNaturalOrientation=" + getFingerprintSensorLocationInNaturalOrientation()); pw.println(" fingerprintSensorLocation=" + getFingerprintSensorLocation()); Loading
packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static com.google.common.truth.Truth.assertThat; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertNotSame; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; Loading @@ -33,6 +34,8 @@ import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; Loading @@ -48,6 +51,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Point; import android.hardware.biometrics.BiometricAuthenticator; import android.hardware.biometrics.BiometricConstants; Loading Loading @@ -177,6 +181,8 @@ public class AuthControllerTest extends SysuiTestCase { private ArgumentCaptor<IFaceAuthenticatorsRegisteredCallback> mFaceAuthenticatorsRegisteredCaptor; @Captor private ArgumentCaptor<BiometricStateListener> mBiometricStateCaptor; @Mock private Resources mResources; private TestableContext mContextSpy; private Execution mExecution; Loading Loading @@ -905,6 +911,25 @@ public class AuthControllerTest extends SysuiTestCase { ); } @Test public void testUpdateFingerprintLocation_defaultPointChanges_whenConfigChanges() { when(mContextSpy.getResources()).thenReturn(mResources); doReturn(500).when(mResources) .getDimensionPixelSize(eq(com.android.systemui.R.dimen .physical_fingerprint_sensor_center_screen_location_y)); mAuthController.onConfigurationChanged(null /* newConfig */); final Point firstFpLocation = mAuthController.getFingerprintSensorLocation(); doReturn(1000).when(mResources) .getDimensionPixelSize(eq(com.android.systemui.R.dimen .physical_fingerprint_sensor_center_screen_location_y)); mAuthController.onConfigurationChanged(null /* newConfig */); assertNotSame(firstFpLocation, mAuthController.getFingerprintSensorLocation()); } private void showDialog(int[] sensorIds, boolean credentialAllowed) { mAuthController.showAuthenticationDialog(createTestPromptInfo(), mReceiver /* receiver */, Loading