Loading packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerImpl.java +22 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.hardware.biometrics.BiometricSourceType; import android.net.Uri; import android.os.Handler; import android.os.Looper; Loading @@ -33,6 +34,8 @@ import android.view.MotionEvent; import android.view.accessibility.AccessibilityManager; import com.android.internal.logging.MetricsLogger; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.Dependency; import com.android.systemui.UiOffloadThread; import com.android.systemui.analytics.DataCollector; Loading Loading @@ -80,6 +83,7 @@ public class FalsingManagerImpl implements FalsingManagerFactory.FalsingManager private boolean mBouncerOffOnDown = false; private boolean mSessionActive = false; private boolean mIsTouchScreen = true; private boolean mJustUnlockedWithFace = false; private int mState = StatusBarState.SHADE; private boolean mScreenOn; private boolean mShowingAod; Loading Loading @@ -120,6 +124,17 @@ public class FalsingManagerImpl implements FalsingManagerFactory.FalsingManager updateConfiguration(); } }; private final KeyguardUpdateMonitorCallback mKeyguardUpdateCallback = new KeyguardUpdateMonitorCallback() { @Override public void onBiometricAuthenticated(int userId, BiometricSourceType biometricSourceType) { if (userId == KeyguardUpdateMonitor.getCurrentUser() && biometricSourceType == BiometricSourceType.FACE) { mJustUnlockedWithFace = true; } } }; FalsingManagerImpl(Context context) { mContext = context; Loading @@ -138,6 +153,7 @@ public class FalsingManagerImpl implements FalsingManagerFactory.FalsingManager updateConfiguration(); Dependency.get(StatusBarStateController.class).addCallback(mStatusBarStateListener); KeyguardUpdateMonitor.getInstance(context).registerCallback(mKeyguardUpdateCallback); } private void updateConfiguration() { Loading Loading @@ -199,6 +215,7 @@ public class FalsingManagerImpl implements FalsingManagerFactory.FalsingManager } mBouncerOn = false; mSessionActive = true; mJustUnlockedWithFace = false; mIsFalseTouchCalls = 0; if (mHumanInteractionClassifier.isEnabled()) { Loading Loading @@ -285,6 +302,11 @@ public class FalsingManagerImpl implements FalsingManagerFactory.FalsingManager // anti-falsed. return false; } if (mJustUnlockedWithFace) { // Unlocking with face is a strong user presence signal, we can assume the user // is present until the next session starts. return false; } mIsFalseTouchCalls++; boolean isFalse = mHumanInteractionClassifier.isFalseTouch(); if (!isFalse) { Loading Loading
packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerImpl.java +22 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.hardware.biometrics.BiometricSourceType; import android.net.Uri; import android.os.Handler; import android.os.Looper; Loading @@ -33,6 +34,8 @@ import android.view.MotionEvent; import android.view.accessibility.AccessibilityManager; import com.android.internal.logging.MetricsLogger; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.Dependency; import com.android.systemui.UiOffloadThread; import com.android.systemui.analytics.DataCollector; Loading Loading @@ -80,6 +83,7 @@ public class FalsingManagerImpl implements FalsingManagerFactory.FalsingManager private boolean mBouncerOffOnDown = false; private boolean mSessionActive = false; private boolean mIsTouchScreen = true; private boolean mJustUnlockedWithFace = false; private int mState = StatusBarState.SHADE; private boolean mScreenOn; private boolean mShowingAod; Loading Loading @@ -120,6 +124,17 @@ public class FalsingManagerImpl implements FalsingManagerFactory.FalsingManager updateConfiguration(); } }; private final KeyguardUpdateMonitorCallback mKeyguardUpdateCallback = new KeyguardUpdateMonitorCallback() { @Override public void onBiometricAuthenticated(int userId, BiometricSourceType biometricSourceType) { if (userId == KeyguardUpdateMonitor.getCurrentUser() && biometricSourceType == BiometricSourceType.FACE) { mJustUnlockedWithFace = true; } } }; FalsingManagerImpl(Context context) { mContext = context; Loading @@ -138,6 +153,7 @@ public class FalsingManagerImpl implements FalsingManagerFactory.FalsingManager updateConfiguration(); Dependency.get(StatusBarStateController.class).addCallback(mStatusBarStateListener); KeyguardUpdateMonitor.getInstance(context).registerCallback(mKeyguardUpdateCallback); } private void updateConfiguration() { Loading Loading @@ -199,6 +215,7 @@ public class FalsingManagerImpl implements FalsingManagerFactory.FalsingManager } mBouncerOn = false; mSessionActive = true; mJustUnlockedWithFace = false; mIsFalseTouchCalls = 0; if (mHumanInteractionClassifier.isEnabled()) { Loading Loading @@ -285,6 +302,11 @@ public class FalsingManagerImpl implements FalsingManagerFactory.FalsingManager // anti-falsed. return false; } if (mJustUnlockedWithFace) { // Unlocking with face is a strong user presence signal, we can assume the user // is present until the next session starts. return false; } mIsFalseTouchCalls++; boolean isFalse = mHumanInteractionClassifier.isFalseTouch(); if (!isFalse) { Loading