Merge "Bouncer - Update to use FalsingManager"
This commit is contained in:
committed by
Android (Google) Code Review
commit
ac5575654b
@@ -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();
|
||||
anchor.setOnClickListener((v) -> {
|
||||
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.dismiss();
|
||||
mPopup = null;
|
||||
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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user