summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java68
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java13
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardUserSwitcherPopupMenu.java10
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.java17
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerTest.java16
5 files changed, 66 insertions, 58 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
index 95567ec94794..67ef02a6029b 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
@@ -19,6 +19,8 @@ import static android.view.WindowInsets.Type.ime;
import static android.view.WindowInsets.Type.systemBars;
import static android.view.WindowInsetsAnimation.Callback.DISPATCH_MODE_STOP;
+import static com.android.systemui.plugins.FalsingManager.LOW_PENALTY;
+
import static java.lang.Integer.max;
import android.animation.Animator;
@@ -71,7 +73,7 @@ import com.android.keyguard.KeyguardSecurityModel.SecurityMode;
import com.android.systemui.Gefingerpoken;
import com.android.systemui.R;
import com.android.systemui.animation.Interpolators;
-import com.android.systemui.classifier.FalsingCollector;
+import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.shared.system.SysUiStatsLog;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.statusbar.policy.UserSwitcherController.BaseUserAdapter;
@@ -124,7 +126,7 @@ public class KeyguardSecurityContainer extends FrameLayout {
@VisibleForTesting
KeyguardSecurityViewFlipper mSecurityViewFlipper;
private GlobalSettings mGlobalSettings;
- private FalsingCollector mFalsingCollector;
+ private FalsingManager mFalsingManager;
private UserSwitcherController mUserSwitcherController;
private AlertDialog mAlertDialog;
private boolean mSwipeUpToRetry;
@@ -300,7 +302,7 @@ public class KeyguardSecurityContainer extends FrameLayout {
setupViewMode();
}
- void initMode(@Mode int mode, GlobalSettings globalSettings, FalsingCollector falsingCollector,
+ void initMode(@Mode int mode, GlobalSettings globalSettings, FalsingManager falsingManager,
UserSwitcherController userSwitcherController) {
if (mCurrentMode == mode) return;
Log.i(TAG, "Switching mode from " + modeToString(mCurrentMode) + " to "
@@ -318,7 +320,7 @@ public class KeyguardSecurityContainer extends FrameLayout {
mViewMode = new DefaultViewMode();
}
mGlobalSettings = globalSettings;
- mFalsingCollector = falsingCollector;
+ mFalsingManager = falsingManager;
mUserSwitcherController = userSwitcherController;
setupViewMode();
}
@@ -338,11 +340,11 @@ public class KeyguardSecurityContainer extends FrameLayout {
private void setupViewMode() {
if (mSecurityViewFlipper == null || mGlobalSettings == null
- || mFalsingCollector == null || mUserSwitcherController == null) {
+ || mFalsingManager == null || mUserSwitcherController == null) {
return;
}
- mViewMode.init(this, mGlobalSettings, mSecurityViewFlipper, mFalsingCollector,
+ mViewMode.init(this, mGlobalSettings, mSecurityViewFlipper, mFalsingManager,
mUserSwitcherController);
}
@@ -695,7 +697,7 @@ public class KeyguardSecurityContainer extends FrameLayout {
default void init(@NonNull ViewGroup v, @NonNull GlobalSettings globalSettings,
@NonNull KeyguardSecurityViewFlipper viewFlipper,
- @NonNull FalsingCollector falsingCollector,
+ @NonNull FalsingManager falsingManager,
@NonNull UserSwitcherController userSwitcherController) {};
/** Reinitialize the location */
@@ -732,7 +734,7 @@ public class KeyguardSecurityContainer extends FrameLayout {
@Override
public void init(@NonNull ViewGroup v, @NonNull GlobalSettings globalSettings,
@NonNull KeyguardSecurityViewFlipper viewFlipper,
- @NonNull FalsingCollector falsingCollector,
+ @NonNull FalsingManager falsingManager,
@NonNull UserSwitcherController userSwitcherController) {
mView = v;
mViewFlipper = viewFlipper;
@@ -760,18 +762,18 @@ public class KeyguardSecurityContainer extends FrameLayout {
private KeyguardSecurityViewFlipper mViewFlipper;
private ImageView mUserIconView;
private TextView mUserSwitcher;
- private FalsingCollector mFalsingCollector;
+ private FalsingManager mFalsingManager;
private UserSwitcherController mUserSwitcherController;
private KeyguardUserSwitcherPopupMenu mPopup;
@Override
public void init(@NonNull ViewGroup v, @NonNull GlobalSettings globalSettings,
@NonNull KeyguardSecurityViewFlipper viewFlipper,
- @NonNull FalsingCollector falsingCollector,
+ @NonNull FalsingManager falsingManager,
@NonNull UserSwitcherController userSwitcherController) {
mView = v;
mViewFlipper = viewFlipper;
- mFalsingCollector = falsingCollector;
+ mFalsingManager = falsingManager;
mUserSwitcherController = userSwitcherController;
if (mUserSwitcherViewGroup == null) {
@@ -865,30 +867,26 @@ public class KeyguardSecurityContainer extends FrameLayout {
}
anchor.setClickable(true);
- anchor.setOnTouchListener((v, ev) -> {
- if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) {
- mFalsingCollector.avoidGesture();
- mPopup = new KeyguardUserSwitcherPopupMenu(v.getContext(),
- mFalsingCollector);
- mPopup.setAnchorView(anchor);
- mPopup.setAdapter(adapter);
- mPopup.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- public void onItemClick(AdapterView parent, View view, int pos,
- long id) {
- mFalsingCollector.avoidGesture();
-
- // - 1 to account for the header view
- UserRecord user = adapter.getItem(pos - 1);
- if (!user.isCurrent) {
- adapter.onUserListItemClicked(user);
- }
- mPopup.dismiss();
- mPopup = null;
+ anchor.setOnClickListener((v) -> {
+ if (mFalsingManager.isFalseTap(LOW_PENALTY)) return;
+
+ mPopup = new KeyguardUserSwitcherPopupMenu(v.getContext(), mFalsingManager);
+ mPopup.setAnchorView(anchor);
+ mPopup.setAdapter(adapter);
+ mPopup.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+ public void onItemClick(AdapterView parent, View view, int pos, long id) {
+ if (mFalsingManager.isFalseTap(LOW_PENALTY)) return;
+
+ // - 1 to account for the header view
+ UserRecord user = adapter.getItem(pos - 1);
+ if (!user.isCurrent) {
+ adapter.onUserListItemClicked(user);
}
- });
- mPopup.show();
- }
- return true;
+ mPopup.dismiss();
+ mPopup = null;
+ }
+ });
+ mPopup.show();
});
}
@@ -935,7 +933,7 @@ public class KeyguardSecurityContainer extends FrameLayout {
@Override
public void init(@NonNull ViewGroup v, @NonNull GlobalSettings globalSettings,
@NonNull KeyguardSecurityViewFlipper viewFlipper,
- @NonNull FalsingCollector falsingCollector,
+ @NonNull FalsingManager falsingManager,
@NonNull UserSwitcherController userSwitcherController) {
mView = v;
mViewFlipper = viewFlipper;
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java
index 6b73a324eff3..2fb2211150ec 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java
@@ -51,6 +51,7 @@ import com.android.settingslib.utils.ThreadUtils;
import com.android.systemui.Gefingerpoken;
import com.android.systemui.R;
import com.android.systemui.classifier.FalsingCollector;
+import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.shared.system.SysUiStatsLog;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
@@ -79,6 +80,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
private final SecurityCallback mSecurityCallback;
private final ConfigurationController mConfigurationController;
private final FalsingCollector mFalsingCollector;
+ private final FalsingManager mFalsingManager;
private final UserSwitcherController mUserSwitcherController;
private final GlobalSettings mGlobalSettings;
@@ -234,6 +236,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
KeyguardSecurityViewFlipperController securityViewFlipperController,
ConfigurationController configurationController,
FalsingCollector falsingCollector,
+ FalsingManager falsingManager,
UserSwitcherController userSwitcherController,
GlobalSettings globalSettings) {
super(view);
@@ -250,6 +253,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
mConfigurationController = configurationController;
mLastOrientation = getResources().getConfiguration().orientation;
mFalsingCollector = falsingCollector;
+ mFalsingManager = falsingManager;
mUserSwitcherController = userSwitcherController;
mGlobalSettings = globalSettings;
}
@@ -519,7 +523,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
mode = KeyguardSecurityContainer.MODE_ONE_HANDED;
}
- mView.initMode(mode, mGlobalSettings, mFalsingCollector, mUserSwitcherController);
+ mView.initMode(mode, mGlobalSettings, mFalsingManager, mUserSwitcherController);
}
public void reportFailedUnlockAttempt(int userId, int timeoutMs) {
@@ -609,6 +613,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
private final KeyguardSecurityViewFlipperController mSecurityViewFlipperController;
private final ConfigurationController mConfigurationController;
private final FalsingCollector mFalsingCollector;
+ private final FalsingManager mFalsingManager;
private final GlobalSettings mGlobalSettings;
private final UserSwitcherController mUserSwitcherController;
@@ -625,6 +630,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
KeyguardSecurityViewFlipperController securityViewFlipperController,
ConfigurationController configurationController,
FalsingCollector falsingCollector,
+ FalsingManager falsingManager,
UserSwitcherController userSwitcherController,
GlobalSettings globalSettings) {
mView = view;
@@ -638,6 +644,7 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
mSecurityViewFlipperController = securityViewFlipperController;
mConfigurationController = configurationController;
mFalsingCollector = falsingCollector;
+ mFalsingManager = falsingManager;
mGlobalSettings = globalSettings;
mUserSwitcherController = userSwitcherController;
}
@@ -648,8 +655,8 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard
mAdminSecondaryLockScreenControllerFactory, mLockPatternUtils,
mKeyguardUpdateMonitor, mKeyguardSecurityModel, mMetricsLogger, mUiEventLogger,
mKeyguardStateController, securityCallback, mSecurityViewFlipperController,
- mConfigurationController, mFalsingCollector, mUserSwitcherController,
- mGlobalSettings);
+ mConfigurationController, mFalsingCollector, mFalsingManager,
+ mUserSwitcherController, mGlobalSettings);
}
}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUserSwitcherPopupMenu.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUserSwitcherPopupMenu.java
index ca31b40d7fbf..dfb466788ca7 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUserSwitcherPopupMenu.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUserSwitcherPopupMenu.java
@@ -26,14 +26,14 @@ import android.widget.ListView;
import android.widget.TextView;
import com.android.systemui.R;
-import com.android.systemui.classifier.FalsingCollector;
+import com.android.systemui.plugins.FalsingManager;
/**
* Custom user-switcher for use on the bouncer.
*/
public class KeyguardUserSwitcherPopupMenu extends ListPopupWindow {
private Context mContext;
- private FalsingCollector mFalsingCollector;
+ private FalsingManager mFalsingManager;
private int mLastHeight = -1;
private View.OnLayoutChangeListener mLayoutListener = (v, l, t, r, b, ol, ot, or, ob) -> {
int height = -v.getMeasuredHeight() + getAnchorView().getHeight();
@@ -45,10 +45,10 @@ public class KeyguardUserSwitcherPopupMenu extends ListPopupWindow {
};
public KeyguardUserSwitcherPopupMenu(@NonNull Context context,
- @NonNull FalsingCollector falsingCollector) {
+ @NonNull FalsingManager falsingManager) {
super(context);
mContext = context;
- mFalsingCollector = falsingCollector;
+ mFalsingManager = falsingManager;
Resources res = mContext.getResources();
setBackgroundDrawable(
res.getDrawable(R.drawable.keyguard_user_switcher_popup_bg, context.getTheme()));
@@ -76,7 +76,7 @@ public class KeyguardUserSwitcherPopupMenu extends ListPopupWindow {
listView.setOnTouchListener((v, ev) -> {
if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) {
- mFalsingCollector.avoidGesture();
+ return mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY);
}
return false;
});
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.java
index 98ce138db857..c873804bc82c 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.java
@@ -48,6 +48,7 @@ import com.android.keyguard.KeyguardSecurityModel.SecurityMode;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.classifier.FalsingCollector;
+import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.UserSwitcherController;
@@ -111,6 +112,8 @@ public class KeyguardSecurityContainerControllerTest extends SysuiTestCase {
@Mock
private FalsingCollector mFalsingCollector;
@Mock
+ private FalsingManager mFalsingManager;
+ @Mock
private GlobalSettings mGlobalSettings;
@Mock
private UserSwitcherController mUserSwitcherController;
@@ -147,8 +150,8 @@ public class KeyguardSecurityContainerControllerTest extends SysuiTestCase {
mView, mAdminSecondaryLockScreenControllerFactory, mLockPatternUtils,
mKeyguardUpdateMonitor, mKeyguardSecurityModel, mMetricsLogger, mUiEventLogger,
mKeyguardStateController, mKeyguardSecurityViewFlipperController,
- mConfigurationController, mFalsingCollector, mUserSwitcherController,
- mGlobalSettings).create(mSecurityCallback);
+ mConfigurationController, mFalsingCollector, mFalsingManager,
+ mUserSwitcherController, mGlobalSettings).create(mSecurityCallback);
}
@Test
@@ -185,14 +188,14 @@ public class KeyguardSecurityContainerControllerTest extends SysuiTestCase {
public void onResourcesUpdate_callsThroughOnRotationChange() {
// Rotation is the same, shouldn't cause an update
mKeyguardSecurityContainerController.updateResources();
- verify(mView, never()).initMode(MODE_DEFAULT, mGlobalSettings, mFalsingCollector,
+ verify(mView, never()).initMode(MODE_DEFAULT, mGlobalSettings, mFalsingManager,
mUserSwitcherController);
// Update rotation. Should trigger update
mConfiguration.orientation = Configuration.ORIENTATION_LANDSCAPE;
mKeyguardSecurityContainerController.updateResources();
- verify(mView).initMode(MODE_DEFAULT, mGlobalSettings, mFalsingCollector,
+ verify(mView).initMode(MODE_DEFAULT, mGlobalSettings, mFalsingManager,
mUserSwitcherController);
}
@@ -250,7 +253,7 @@ public class KeyguardSecurityContainerControllerTest extends SysuiTestCase {
.thenReturn((KeyguardInputViewController) mKeyguardPasswordViewController);
mKeyguardSecurityContainerController.showSecurityScreen(SecurityMode.Pattern);
- verify(mView).initMode(MODE_DEFAULT, mGlobalSettings, mFalsingCollector,
+ verify(mView).initMode(MODE_DEFAULT, mGlobalSettings, mFalsingManager,
mUserSwitcherController);
}
@@ -262,7 +265,7 @@ public class KeyguardSecurityContainerControllerTest extends SysuiTestCase {
.thenReturn((KeyguardInputViewController) mKeyguardPasswordViewController);
mKeyguardSecurityContainerController.showSecurityScreen(SecurityMode.Pattern);
- verify(mView).initMode(MODE_ONE_HANDED, mGlobalSettings, mFalsingCollector,
+ verify(mView).initMode(MODE_ONE_HANDED, mGlobalSettings, mFalsingManager,
mUserSwitcherController);
}
@@ -274,7 +277,7 @@ public class KeyguardSecurityContainerControllerTest extends SysuiTestCase {
.thenReturn((KeyguardInputViewController) mKeyguardPasswordViewController);
mKeyguardSecurityContainerController.showSecurityScreen(SecurityMode.Password);
- verify(mView).initMode(MODE_DEFAULT, mGlobalSettings, mFalsingCollector,
+ verify(mView).initMode(MODE_DEFAULT, mGlobalSettings, mFalsingManager,
mUserSwitcherController);
}
}
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerTest.java
index ea7940a58366..77762859de18 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerTest.java
@@ -47,7 +47,7 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
-import com.android.systemui.classifier.FalsingCollector;
+import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.statusbar.policy.UserSwitcherController.UserRecord;
@@ -83,7 +83,7 @@ public class KeyguardSecurityContainerTest extends SysuiTestCase {
@Mock
private GlobalSettings mGlobalSettings;
@Mock
- private FalsingCollector mFalsingCollector;
+ private FalsingManager mFalsingManager;
@Mock
private UserSwitcherController mUserSwitcherController;
@Mock
@@ -117,7 +117,7 @@ public class KeyguardSecurityContainerTest extends SysuiTestCase {
@Test
public void onMeasure_usesHalfWidthWithOneHandedModeEnabled() {
- mKeyguardSecurityContainer.initMode(MODE_ONE_HANDED, mGlobalSettings, mFalsingCollector,
+ mKeyguardSecurityContainer.initMode(MODE_ONE_HANDED, mGlobalSettings, mFalsingManager,
mUserSwitcherController);
int halfWidthMeasureSpec =
@@ -129,7 +129,7 @@ public class KeyguardSecurityContainerTest extends SysuiTestCase {
@Test
public void onMeasure_usesFullWidthWithOneHandedModeDisabled() {
- mKeyguardSecurityContainer.initMode(MODE_DEFAULT, mGlobalSettings, mFalsingCollector,
+ mKeyguardSecurityContainer.initMode(MODE_DEFAULT, mGlobalSettings, mFalsingManager,
mUserSwitcherController);
mKeyguardSecurityContainer.measure(FAKE_MEASURE_SPEC, FAKE_MEASURE_SPEC);
@@ -141,7 +141,7 @@ public class KeyguardSecurityContainerTest extends SysuiTestCase {
int imeInsetAmount = 100;
int systemBarInsetAmount = 10;
- mKeyguardSecurityContainer.initMode(MODE_DEFAULT, mGlobalSettings, mFalsingCollector,
+ mKeyguardSecurityContainer.initMode(MODE_DEFAULT, mGlobalSettings, mFalsingManager,
mUserSwitcherController);
Insets imeInset = Insets.of(0, 0, 0, imeInsetAmount);
@@ -166,7 +166,7 @@ public class KeyguardSecurityContainerTest extends SysuiTestCase {
int imeInsetAmount = 0;
int systemBarInsetAmount = 10;
- mKeyguardSecurityContainer.initMode(MODE_DEFAULT, mGlobalSettings, mFalsingCollector,
+ mKeyguardSecurityContainer.initMode(MODE_DEFAULT, mGlobalSettings, mFalsingManager,
mUserSwitcherController);
Insets imeInset = Insets.of(0, 0, 0, imeInsetAmount);
@@ -187,7 +187,7 @@ public class KeyguardSecurityContainerTest extends SysuiTestCase {
private void setupForUpdateKeyguardPosition(boolean oneHandedMode) {
int mode = oneHandedMode ? MODE_ONE_HANDED : MODE_DEFAULT;
- mKeyguardSecurityContainer.initMode(mode, mGlobalSettings, mFalsingCollector,
+ mKeyguardSecurityContainer.initMode(mode, mGlobalSettings, mFalsingManager,
mUserSwitcherController);
mKeyguardSecurityContainer.measure(FAKE_MEASURE_SPEC, FAKE_MEASURE_SPEC);
@@ -298,7 +298,7 @@ public class KeyguardSecurityContainerTest extends SysuiTestCase {
private void setupUserSwitcher() {
mKeyguardSecurityContainer.initMode(KeyguardSecurityContainer.MODE_USER_SWITCHER,
- mGlobalSettings, mFalsingCollector, mUserSwitcherController);
+ mGlobalSettings, mFalsingManager, mUserSwitcherController);
}
private ArrayList<UserRecord> buildUserRecords(int count) {