Merge "Remove view inflation when getting the running KeyguardBouncer.needsFullscreenBouncer."
This commit is contained in:
committed by
Android (Google) Code Review
commit
a55998b536
@@ -128,7 +128,7 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
|
||||
|
||||
public KeyguardSecurityContainer(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
mSecurityModel = new KeyguardSecurityModel(context);
|
||||
mSecurityModel = Dependency.get(KeyguardSecurityModel.class);
|
||||
mLockPatternUtils = new LockPatternUtils(context);
|
||||
mUpdateMonitor = Dependency.get(KeyguardUpdateMonitor.class);
|
||||
mSpringAnimation = new SpringAnimation(this, DynamicAnimation.Y);
|
||||
|
||||
@@ -25,6 +25,10 @@ import com.android.internal.telephony.IccCardConstants;
|
||||
import com.android.internal.widget.LockPatternUtils;
|
||||
import com.android.systemui.Dependency;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
@Singleton
|
||||
public class KeyguardSecurityModel {
|
||||
|
||||
/**
|
||||
@@ -46,6 +50,7 @@ public class KeyguardSecurityModel {
|
||||
|
||||
private LockPatternUtils mLockPatternUtils;
|
||||
|
||||
@Inject
|
||||
KeyguardSecurityModel(Context context) {
|
||||
mContext = context;
|
||||
mLockPatternUtils = new LockPatternUtils(context);
|
||||
@@ -57,7 +62,7 @@ public class KeyguardSecurityModel {
|
||||
mLockPatternUtils = utils;
|
||||
}
|
||||
|
||||
SecurityMode getSecurityMode(int userId) {
|
||||
public SecurityMode getSecurityMode(int userId) {
|
||||
KeyguardUpdateMonitor monitor = Dependency.get(KeyguardUpdateMonitor.class);
|
||||
|
||||
if (mIsPukScreenAvailable && SubscriptionManager.isValidSubscriptionId(
|
||||
|
||||
@@ -30,6 +30,7 @@ import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.statusbar.IStatusBarService;
|
||||
import com.android.internal.util.Preconditions;
|
||||
import com.android.keyguard.KeyguardSecurityModel;
|
||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
import com.android.keyguard.clock.ClockManager;
|
||||
import com.android.settingslib.bluetooth.LocalBluetoothManager;
|
||||
@@ -316,6 +317,7 @@ public class Dependency {
|
||||
@Inject Lazy<FalsingManager> mFalsingManager;
|
||||
@Inject Lazy<SysUiState> mSysUiStateFlagsContainer;
|
||||
@Inject Lazy<AlarmManager> mAlarmManager;
|
||||
@Inject Lazy<KeyguardSecurityModel> mKeyguardSecurityModel;
|
||||
|
||||
@Inject
|
||||
public Dependency() {
|
||||
@@ -501,6 +503,7 @@ public class Dependency {
|
||||
mProviders.put(FalsingManager.class, mFalsingManager::get);
|
||||
mProviders.put(SysUiState.class, mSysUiStateFlagsContainer::get);
|
||||
mProviders.put(AlarmManager.class, mAlarmManager::get);
|
||||
mProviders.put(KeyguardSecurityModel.class, mKeyguardSecurityModel::get);
|
||||
|
||||
// TODO(b/118592525): to support multi-display , we start to add something which is
|
||||
// per-display, while others may be global. I think it's time to add
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package com.android.systemui.statusbar.phone;
|
||||
|
||||
import static com.android.keyguard.KeyguardSecurityModel.SecurityMode;
|
||||
import static com.android.systemui.DejankUtils.whitelistIpcs;
|
||||
import static com.android.systemui.plugins.ActivityStarter.OnDismissAction;
|
||||
|
||||
import android.content.Context;
|
||||
@@ -38,11 +37,13 @@ import android.view.WindowInsets;
|
||||
|
||||
import com.android.internal.widget.LockPatternUtils;
|
||||
import com.android.keyguard.KeyguardHostView;
|
||||
import com.android.keyguard.KeyguardSecurityModel;
|
||||
import com.android.keyguard.KeyguardSecurityView;
|
||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
import com.android.keyguard.KeyguardUpdateMonitorCallback;
|
||||
import com.android.keyguard.ViewMediatorCallback;
|
||||
import com.android.systemui.DejankUtils;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.keyguard.DismissCallbackRegistry;
|
||||
import com.android.systemui.plugins.FalsingManager;
|
||||
@@ -461,15 +462,9 @@ public class KeyguardBouncer {
|
||||
* notifications on Keyguard, like SIM PIN/PUK.
|
||||
*/
|
||||
public boolean needsFullscreenBouncer() {
|
||||
// TODO(b/140059518)
|
||||
return whitelistIpcs(() -> {
|
||||
ensureView();
|
||||
if (mKeyguardView != null) {
|
||||
SecurityMode mode = mKeyguardView.getSecurityMode();
|
||||
return mode == SecurityMode.SimPin || mode == SecurityMode.SimPuk;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
SecurityMode mode = Dependency.get(KeyguardSecurityModel.class).getSecurityMode(
|
||||
KeyguardUpdateMonitor.getCurrentUser());
|
||||
return mode == SecurityMode.SimPin || mode == SecurityMode.SimPuk;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -89,6 +89,8 @@ public class KeyguardBouncerTest extends SysuiTestCase {
|
||||
private KeyguardBypassController mKeyguardBypassController;
|
||||
@Mock
|
||||
private Handler mHandler;
|
||||
@Mock
|
||||
private KeyguardSecurityModel mKeyguardSecurityModel;
|
||||
|
||||
private KeyguardBouncer mBouncer;
|
||||
|
||||
@@ -97,6 +99,9 @@ public class KeyguardBouncerTest extends SysuiTestCase {
|
||||
com.android.systemui.util.Assert.sMainLooper = TestableLooper.get(this).getLooper();
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mDependency.injectTestDependency(KeyguardUpdateMonitor.class, mKeyguardUpdateMonitor);
|
||||
mDependency.injectTestDependency(KeyguardSecurityModel.class, mKeyguardSecurityModel);
|
||||
when(mKeyguardSecurityModel.getSecurityMode(anyInt()))
|
||||
.thenReturn(KeyguardSecurityModel.SecurityMode.None);
|
||||
DejankUtils.setImmediate(true);
|
||||
final ViewGroup container = new FrameLayout(getContext());
|
||||
when(mKeyguardHostView.getViewTreeObserver()).thenReturn(mViewTreeObserver);
|
||||
@@ -305,14 +310,6 @@ public class KeyguardBouncerTest extends SysuiTestCase {
|
||||
verify(mKeyguardHostView).setTranslationY(anyFloat());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNeedsFullscreenBouncer_asksKeyguardView() {
|
||||
mBouncer.ensureView();
|
||||
mBouncer.needsFullscreenBouncer();
|
||||
verify(mKeyguardHostView).getSecurityMode();
|
||||
verify(mKeyguardHostView, never()).getCurrentSecurityMode();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsFullscreenBouncer_asksKeyguardView() {
|
||||
mBouncer.ensureView();
|
||||
|
||||
Reference in New Issue
Block a user