Loading packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java +1 −0 Original line number Diff line number Diff line Loading @@ -236,6 +236,7 @@ public class KeyguardPatternViewController getKeyguardSecurityCallback().onCancelClicked(); }); } mView.onDevicePostureChanged(mPostureController.getDevicePosture()); mPostureController.addCallback(mPostureCallback); } Loading packages/SystemUI/tests/src/com/android/keyguard/KeyguardPatternViewControllerTest.kt +59 −37 Original line number Diff line number Diff line Loading @@ -18,10 +18,12 @@ package com.android.keyguard import android.testing.AndroidTestingRunner import android.testing.TestableLooper import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.test.filters.SmallTest import com.android.internal.util.LatencyTracker import com.android.internal.widget.LockPatternUtils import com.android.internal.widget.LockPatternView import com.android.systemui.R import com.android.systemui.SysuiTestCase import com.android.systemui.classifier.FalsingCollector Loading @@ -29,6 +31,10 @@ import com.android.systemui.classifier.FalsingCollectorFake import com.android.systemui.flags.FakeFeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.statusbar.policy.DevicePostureController import com.android.systemui.statusbar.policy.DevicePostureController.DEVICE_POSTURE_HALF_OPENED import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.whenever import com.google.common.truth.Truth.assertThat import org.junit.Before import org.junit.Test import org.junit.runner.RunWith Loading @@ -45,7 +51,7 @@ import org.mockito.MockitoAnnotations @RunWith(AndroidTestingRunner::class) @TestableLooper.RunWithLooper class KeyguardPatternViewControllerTest : SysuiTestCase() { @Mock private lateinit var mKeyguardPatternView: KeyguardPatternView private lateinit var mKeyguardPatternView: KeyguardPatternView @Mock private lateinit var mKeyguardUpdateMonitor: KeyguardUpdateMonitor Loading @@ -63,14 +69,10 @@ class KeyguardPatternViewControllerTest : SysuiTestCase() { @Mock private lateinit var mKeyguardMessageAreaControllerFactory: KeyguardMessageAreaController.Factory @Mock private lateinit var mKeyguardMessageArea: BouncerKeyguardMessageArea @Mock private lateinit var mKeyguardMessageAreaController: KeyguardMessageAreaController<BouncerKeyguardMessageArea> @Mock private lateinit var mLockPatternView: LockPatternView @Mock private lateinit var mPostureController: DevicePostureController private lateinit var mKeyguardPatternViewController: KeyguardPatternViewController Loading @@ -79,18 +81,14 @@ class KeyguardPatternViewControllerTest : SysuiTestCase() { @Before fun setup() { MockitoAnnotations.initMocks(this) `when`(mKeyguardPatternView.isAttachedToWindow).thenReturn(true) `when`( mKeyguardPatternView.requireViewById<BouncerKeyguardMessageArea>( R.id.bouncer_message_area)) .thenReturn(mKeyguardMessageArea) `when`(mKeyguardPatternView.findViewById<LockPatternView>(R.id.lockPatternView)) .thenReturn(mLockPatternView) `when`(mKeyguardMessageAreaControllerFactory.create(mKeyguardMessageArea)) whenever(mKeyguardMessageAreaControllerFactory.create(any())) .thenReturn(mKeyguardMessageAreaController) `when`(mKeyguardPatternView.resources).thenReturn(context.resources) fakeFeatureFlags = FakeFeatureFlags() fakeFeatureFlags.set(Flags.REVAMPED_BOUNCER_MESSAGES, false) mKeyguardPatternView = View.inflate(mContext, R.layout.keyguard_pattern_view, null) as KeyguardPatternView mKeyguardPatternViewController = KeyguardPatternViewController( mKeyguardPatternView, Loading @@ -103,14 +101,38 @@ class KeyguardPatternViewControllerTest : SysuiTestCase() { mEmergencyButtonController, mKeyguardMessageAreaControllerFactory, mPostureController, fakeFeatureFlags) fakeFeatureFlags ) mKeyguardPatternView.onAttachedToWindow() } @Test fun tabletopPostureIsDetectedFromStart() { overrideResource(R.dimen.half_opened_bouncer_height_ratio, 0.5f) whenever(mPostureController.devicePosture).thenReturn(DEVICE_POSTURE_HALF_OPENED) mKeyguardPatternViewController.onViewAttached() assertThat(getPatternTopGuideline()).isEqualTo(getExpectedTopGuideline()) } private fun getPatternTopGuideline(): Float { val cs = ConstraintSet() val container = mKeyguardPatternView.findViewById(R.id.pattern_container) as ConstraintLayout cs.clone(container) return cs.getConstraint(R.id.pattern_top_guideline).layout.guidePercent } private fun getExpectedTopGuideline(): Float { return mContext.resources.getFloat(R.dimen.half_opened_bouncer_height_ratio) } @Test fun withFeatureFlagOn_oldMessage_isHidden() { fakeFeatureFlags.set(Flags.REVAMPED_BOUNCER_MESSAGES, true) mKeyguardPatternViewController.init() mKeyguardPatternViewController.onViewAttached() verify<KeyguardMessageAreaController<*>>(mKeyguardMessageAreaController).disable() } Loading Loading
packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java +1 −0 Original line number Diff line number Diff line Loading @@ -236,6 +236,7 @@ public class KeyguardPatternViewController getKeyguardSecurityCallback().onCancelClicked(); }); } mView.onDevicePostureChanged(mPostureController.getDevicePosture()); mPostureController.addCallback(mPostureCallback); } Loading
packages/SystemUI/tests/src/com/android/keyguard/KeyguardPatternViewControllerTest.kt +59 −37 Original line number Diff line number Diff line Loading @@ -18,10 +18,12 @@ package com.android.keyguard import android.testing.AndroidTestingRunner import android.testing.TestableLooper import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.test.filters.SmallTest import com.android.internal.util.LatencyTracker import com.android.internal.widget.LockPatternUtils import com.android.internal.widget.LockPatternView import com.android.systemui.R import com.android.systemui.SysuiTestCase import com.android.systemui.classifier.FalsingCollector Loading @@ -29,6 +31,10 @@ import com.android.systemui.classifier.FalsingCollectorFake import com.android.systemui.flags.FakeFeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.statusbar.policy.DevicePostureController import com.android.systemui.statusbar.policy.DevicePostureController.DEVICE_POSTURE_HALF_OPENED import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.whenever import com.google.common.truth.Truth.assertThat import org.junit.Before import org.junit.Test import org.junit.runner.RunWith Loading @@ -45,7 +51,7 @@ import org.mockito.MockitoAnnotations @RunWith(AndroidTestingRunner::class) @TestableLooper.RunWithLooper class KeyguardPatternViewControllerTest : SysuiTestCase() { @Mock private lateinit var mKeyguardPatternView: KeyguardPatternView private lateinit var mKeyguardPatternView: KeyguardPatternView @Mock private lateinit var mKeyguardUpdateMonitor: KeyguardUpdateMonitor Loading @@ -63,14 +69,10 @@ class KeyguardPatternViewControllerTest : SysuiTestCase() { @Mock private lateinit var mKeyguardMessageAreaControllerFactory: KeyguardMessageAreaController.Factory @Mock private lateinit var mKeyguardMessageArea: BouncerKeyguardMessageArea @Mock private lateinit var mKeyguardMessageAreaController: KeyguardMessageAreaController<BouncerKeyguardMessageArea> @Mock private lateinit var mLockPatternView: LockPatternView @Mock private lateinit var mPostureController: DevicePostureController private lateinit var mKeyguardPatternViewController: KeyguardPatternViewController Loading @@ -79,18 +81,14 @@ class KeyguardPatternViewControllerTest : SysuiTestCase() { @Before fun setup() { MockitoAnnotations.initMocks(this) `when`(mKeyguardPatternView.isAttachedToWindow).thenReturn(true) `when`( mKeyguardPatternView.requireViewById<BouncerKeyguardMessageArea>( R.id.bouncer_message_area)) .thenReturn(mKeyguardMessageArea) `when`(mKeyguardPatternView.findViewById<LockPatternView>(R.id.lockPatternView)) .thenReturn(mLockPatternView) `when`(mKeyguardMessageAreaControllerFactory.create(mKeyguardMessageArea)) whenever(mKeyguardMessageAreaControllerFactory.create(any())) .thenReturn(mKeyguardMessageAreaController) `when`(mKeyguardPatternView.resources).thenReturn(context.resources) fakeFeatureFlags = FakeFeatureFlags() fakeFeatureFlags.set(Flags.REVAMPED_BOUNCER_MESSAGES, false) mKeyguardPatternView = View.inflate(mContext, R.layout.keyguard_pattern_view, null) as KeyguardPatternView mKeyguardPatternViewController = KeyguardPatternViewController( mKeyguardPatternView, Loading @@ -103,14 +101,38 @@ class KeyguardPatternViewControllerTest : SysuiTestCase() { mEmergencyButtonController, mKeyguardMessageAreaControllerFactory, mPostureController, fakeFeatureFlags) fakeFeatureFlags ) mKeyguardPatternView.onAttachedToWindow() } @Test fun tabletopPostureIsDetectedFromStart() { overrideResource(R.dimen.half_opened_bouncer_height_ratio, 0.5f) whenever(mPostureController.devicePosture).thenReturn(DEVICE_POSTURE_HALF_OPENED) mKeyguardPatternViewController.onViewAttached() assertThat(getPatternTopGuideline()).isEqualTo(getExpectedTopGuideline()) } private fun getPatternTopGuideline(): Float { val cs = ConstraintSet() val container = mKeyguardPatternView.findViewById(R.id.pattern_container) as ConstraintLayout cs.clone(container) return cs.getConstraint(R.id.pattern_top_guideline).layout.guidePercent } private fun getExpectedTopGuideline(): Float { return mContext.resources.getFloat(R.dimen.half_opened_bouncer_height_ratio) } @Test fun withFeatureFlagOn_oldMessage_isHidden() { fakeFeatureFlags.set(Flags.REVAMPED_BOUNCER_MESSAGES, true) mKeyguardPatternViewController.init() mKeyguardPatternViewController.onViewAttached() verify<KeyguardMessageAreaController<*>>(mKeyguardMessageAreaController).disable() } Loading