Set needs input after inflating.
Make sure that we setNeedsInput after inflating the view. Bug: 274550142 Test: open bouncer with pin/password/pattern/simpin/simpuk Change-Id: I43f93cbf829caa87cde0dc1db34f4da7fe4e094d
This commit is contained in:
@@ -54,19 +54,23 @@ public class KeyguardSecurityViewFlipperController
|
||||
private final Factory mKeyguardSecurityViewControllerFactory;
|
||||
private final FeatureFlags mFeatureFlags;
|
||||
|
||||
private final ViewMediatorCallback mViewMediatorCallback;
|
||||
|
||||
@Inject
|
||||
protected KeyguardSecurityViewFlipperController(KeyguardSecurityViewFlipper view,
|
||||
LayoutInflater layoutInflater,
|
||||
AsyncLayoutInflater asyncLayoutInflater,
|
||||
KeyguardInputViewController.Factory keyguardSecurityViewControllerFactory,
|
||||
EmergencyButtonController.Factory emergencyButtonControllerFactory,
|
||||
FeatureFlags featureFlags) {
|
||||
FeatureFlags featureFlags,
|
||||
ViewMediatorCallback viewMediatorCallback) {
|
||||
super(view);
|
||||
mKeyguardSecurityViewControllerFactory = keyguardSecurityViewControllerFactory;
|
||||
mLayoutInflater = layoutInflater;
|
||||
mEmergencyButtonControllerFactory = emergencyButtonControllerFactory;
|
||||
mAsyncLayoutInflater = asyncLayoutInflater;
|
||||
mFeatureFlags = featureFlags;
|
||||
mViewMediatorCallback = viewMediatorCallback;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -152,6 +156,7 @@ public class KeyguardSecurityViewFlipperController
|
||||
keyguardSecurityCallback);
|
||||
childController.init();
|
||||
mChildren.add(childController);
|
||||
mViewMediatorCallback.setNeedsInput(childController.needsInput());
|
||||
if (onViewInflatedListener != null) {
|
||||
onViewInflatedListener.onViewInflated();
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ import androidx.asynclayoutinflater.view.AsyncLayoutInflater;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.keyguard.KeyguardSecurityModel.SecurityMode;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
|
||||
@@ -42,6 +43,7 @@ import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnit;
|
||||
import org.mockito.junit.MockitoRule;
|
||||
@@ -76,6 +78,8 @@ public class KeyguardSecurityViewFlipperControllerTest extends SysuiTestCase {
|
||||
private KeyguardSecurityCallback mKeyguardSecurityCallback;
|
||||
@Mock
|
||||
private FeatureFlags mFeatureFlags;
|
||||
@Mock
|
||||
private ViewMediatorCallback mViewMediatorCallback;
|
||||
|
||||
private KeyguardSecurityViewFlipperController mKeyguardSecurityViewFlipperController;
|
||||
|
||||
@@ -92,7 +96,7 @@ public class KeyguardSecurityViewFlipperControllerTest extends SysuiTestCase {
|
||||
|
||||
mKeyguardSecurityViewFlipperController = new KeyguardSecurityViewFlipperController(mView,
|
||||
mLayoutInflater, mAsyncLayoutInflater, mKeyguardSecurityViewControllerFactory,
|
||||
mEmergencyButtonControllerFactory, mFeatureFlags);
|
||||
mEmergencyButtonControllerFactory, mFeatureFlags, mViewMediatorCallback);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -122,6 +126,19 @@ public class KeyguardSecurityViewFlipperControllerTest extends SysuiTestCase {
|
||||
AsyncLayoutInflater.OnInflateFinishedListener.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void asynchronouslyInflateView_setNeedsInput() {
|
||||
ArgumentCaptor<AsyncLayoutInflater.OnInflateFinishedListener> argumentCaptor =
|
||||
ArgumentCaptor.forClass(AsyncLayoutInflater.OnInflateFinishedListener.class);
|
||||
mKeyguardSecurityViewFlipperController.asynchronouslyInflateView(SecurityMode.PIN,
|
||||
mKeyguardSecurityCallback, null);
|
||||
verify(mAsyncLayoutInflater).inflate(anyInt(), eq(mView), argumentCaptor.capture());
|
||||
argumentCaptor.getValue().onInflateFinished(
|
||||
LayoutInflater.from(getContext()).inflate(R.layout.keyguard_password_view, null),
|
||||
R.layout.keyguard_password_view, mView);
|
||||
verify(mViewMediatorCallback).setNeedsInput(anyBoolean());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDensityOrFontScaleChanged() {
|
||||
mKeyguardSecurityViewFlipperController.clearViews();
|
||||
|
||||
Reference in New Issue
Block a user