Merge "[Bouncer] Add initial text for bouncer." into tm-qpr-dev

This commit is contained in:
Aaron Liu
2022-06-06 20:11:18 +00:00
committed by Android (Google) Code Review
9 changed files with 98 additions and 26 deletions

View File

@@ -18,6 +18,7 @@ package com.android.keyguard;
import android.content.res.ColorStateList;
import android.content.res.Configuration;
import android.text.TextUtils;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
@@ -103,6 +104,15 @@ public class KeyguardMessageAreaController extends ViewController<KeyguardMessag
mView.setMessage(resId);
}
/**
* Set Text if KeyguardMessageArea is empty.
*/
public void setMessageIfEmpty(int resId) {
if (TextUtils.isEmpty(mView.getText())) {
setMessage(resId);
}
}
public void setNextMessageColor(ColorStateList colorState) {
mView.setNextMessageColor(colorState);
}

View File

@@ -205,6 +205,7 @@ public class KeyguardPasswordViewController
if (reason != KeyguardSecurityView.SCREEN_ON || mShowImeAtScreenOn) {
showInput();
}
mMessageAreaController.setMessageIfEmpty(R.string.keyguard_enter_your_password);
}
private void showInput() {

View File

@@ -303,6 +303,12 @@ public class KeyguardPatternViewController
displayDefaultSecurityMessage();
}
@Override
public void onResume(int reason) {
super.onResume(reason);
mMessageAreaController.setMessageIfEmpty(R.string.keyguard_enter_your_pattern);
}
@Override
public boolean needsInput() {
return false;

View File

@@ -127,6 +127,7 @@ public abstract class KeyguardPinBasedInputViewController<T extends KeyguardPinB
public void onResume(int reason) {
super.onResume(reason);
mPasswordEntry.requestFocus();
mMessageAreaController.setMessageIfEmpty(R.string.keyguard_enter_your_pin);
}
@Override

View File

@@ -17,11 +17,13 @@
package com.android.keyguard;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import android.test.suitebuilder.annotation.SmallTest;
import android.testing.AndroidTestingRunner;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
@@ -90,4 +92,19 @@ public class KeyguardMessageAreaControllerTest extends SysuiTestCase {
mMessageAreaController.setBouncerShowing(true);
verify(mKeyguardMessageArea).setBouncerShowing(true);
}
@Test
public void testSetMessageIfEmpty_empty() {
mMessageAreaController.setMessage("");
mMessageAreaController.setMessageIfEmpty(R.string.keyguard_enter_your_pin);
verify(mKeyguardMessageArea).setMessage(R.string.keyguard_enter_your_pin);
}
@Test
public void testSetMessageIfEmpty_notEmpty() {
mMessageAreaController.setMessage("abc");
mMessageAreaController.setMessageIfEmpty(R.string.keyguard_enter_your_pin);
verify(mKeyguardMessageArea, never()).setMessage(getContext()
.getResources().getText(R.string.keyguard_enter_your_pin));
}
}

View File

@@ -73,25 +73,25 @@ class KeyguardPasswordViewControllerTest : SysuiTestCase() {
@Before
fun setup() {
MockitoAnnotations.initMocks(this)
Mockito.`when`(keyguardPasswordView
.findViewById<KeyguardMessageArea>(R.id.keyguard_message_area))
.thenReturn(mKeyguardMessageArea)
Mockito.`when`(
keyguardPasswordView.findViewById<KeyguardMessageArea>(R.id.keyguard_message_area)
).thenReturn(mKeyguardMessageArea)
Mockito.`when`(messageAreaControllerFactory.create(mKeyguardMessageArea))
.thenReturn(mKeyguardMessageAreaController)
.thenReturn(mKeyguardMessageAreaController)
keyguardPasswordViewController = KeyguardPasswordViewController(
keyguardPasswordView,
keyguardUpdateMonitor,
securityMode,
lockPatternUtils,
keyguardSecurityCallback,
messageAreaControllerFactory,
latencyTracker,
inputMethodManager,
emergencyButtonController,
mainExecutor,
mContext.resources,
falsingCollector,
keyguardViewController
keyguardPasswordView,
keyguardUpdateMonitor,
securityMode,
lockPatternUtils,
keyguardSecurityCallback,
messageAreaControllerFactory,
latencyTracker,
inputMethodManager,
emergencyButtonController,
mainExecutor,
mContext.resources,
falsingCollector,
keyguardViewController
)
}
@@ -110,4 +110,11 @@ class KeyguardPasswordViewControllerTest : SysuiTestCase() {
keyguardPasswordViewController.onResume(KeyguardSecurityView.VIEW_REVEALED)
verify(keyguardPasswordView, never()).requestFocus()
}
}
@Test
fun onResume_testSetInitialText() {
keyguardPasswordViewController.onResume(KeyguardSecurityView.SCREEN_ON)
verify(mKeyguardMessageAreaController)
.setMessageIfEmpty(R.string.keyguard_enter_your_password)
}
}

View File

@@ -31,8 +31,8 @@ import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.`when`
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations
@SmallTest
@@ -41,28 +41,39 @@ import org.mockito.MockitoAnnotations
class KeyguardPatternViewControllerTest : SysuiTestCase() {
@Mock
private lateinit var mKeyguardPatternView: KeyguardPatternView
@Mock
private lateinit var mKeyguardUpdateMonitor: KeyguardUpdateMonitor
@Mock
private lateinit var mSecurityMode: KeyguardSecurityModel.SecurityMode
@Mock
private lateinit var mLockPatternUtils: LockPatternUtils
@Mock
private lateinit var mKeyguardSecurityCallback: KeyguardSecurityCallback
@Mock
private lateinit var mLatencyTracker: LatencyTracker
private var mFalsingCollector: FalsingCollector = FalsingCollectorFake()
@Mock
private lateinit var mEmergencyButtonController: EmergencyButtonController
@Mock
private lateinit
var mKeyguardMessageAreaControllerFactory: KeyguardMessageAreaController.Factory
@Mock
private lateinit var mKeyguardMessageArea: KeyguardMessageArea
@Mock
private lateinit var mKeyguardMessageAreaController: KeyguardMessageAreaController
@Mock
private lateinit var mLockPatternView: LockPatternView
@Mock
private lateinit var mPostureController: DevicePostureController
@@ -73,15 +84,17 @@ class KeyguardPatternViewControllerTest : SysuiTestCase() {
MockitoAnnotations.initMocks(this)
`when`(mKeyguardPatternView.isAttachedToWindow).thenReturn(true)
`when`(mKeyguardPatternView.findViewById<KeyguardMessageArea>(R.id.keyguard_message_area))
.thenReturn(mKeyguardMessageArea)
.thenReturn(mKeyguardMessageArea)
`when`(mKeyguardPatternView.findViewById<LockPatternView>(R.id.lockPatternView))
.thenReturn(mLockPatternView)
.thenReturn(mLockPatternView)
`when`(mKeyguardMessageAreaControllerFactory.create(mKeyguardMessageArea))
.thenReturn(mKeyguardMessageAreaController)
mKeyguardPatternViewController = KeyguardPatternViewController(mKeyguardPatternView,
mKeyguardUpdateMonitor, mSecurityMode, mLockPatternUtils, mKeyguardSecurityCallback,
mLatencyTracker, mFalsingCollector, mEmergencyButtonController,
mKeyguardMessageAreaControllerFactory, mPostureController)
.thenReturn(mKeyguardMessageAreaController)
mKeyguardPatternViewController = KeyguardPatternViewController(
mKeyguardPatternView,
mKeyguardUpdateMonitor, mSecurityMode, mLockPatternUtils, mKeyguardSecurityCallback,
mLatencyTracker, mFalsingCollector, mEmergencyButtonController,
mKeyguardMessageAreaControllerFactory, mPostureController
)
}
@Test
@@ -90,4 +103,11 @@ class KeyguardPatternViewControllerTest : SysuiTestCase() {
mKeyguardPatternViewController.onPause()
verify(mKeyguardMessageAreaController).setMessage("")
}
@Test
fun onResume_setInitialText() {
mKeyguardPatternViewController.onResume(KeyguardSecurityView.SCREEN_ON)
verify(mKeyguardMessageAreaController)
.setMessageIfEmpty(R.string.keyguard_enter_your_pattern)
}
}

View File

@@ -113,5 +113,11 @@ public class KeyguardPinBasedInputViewControllerTest extends SysuiTestCase {
mKeyguardPinViewController.onResume(KeyguardSecurityView.SCREEN_ON);
verify(mPasswordEntry).requestFocus();
}
@Test
public void onResume_setInitialText() {
mKeyguardPinViewController.onResume(KeyguardSecurityView.SCREEN_ON);
verify(mKeyguardMessageAreaController).setMessageIfEmpty(R.string.keyguard_enter_your_pin);
}
}

View File

@@ -104,6 +104,8 @@ public class KeyguardSecurityContainerControllerTest extends SysuiTestCase {
@Mock
private KeyguardMessageAreaController.Factory mKeyguardMessageAreaControllerFactory;
@Mock
private KeyguardMessageAreaController mKeyguardMessageAreaController;
@Mock
private KeyguardMessageArea mKeyguardMessageArea;
@Mock
private ConfigurationController mConfigurationController;
@@ -147,6 +149,8 @@ public class KeyguardSecurityContainerControllerTest extends SysuiTestCase {
when(mKeyguardPasswordView.getRootView()).thenReturn(mSecurityViewFlipper);
when(mKeyguardPasswordView.findViewById(R.id.keyguard_message_area))
.thenReturn(mKeyguardMessageArea);
when(mKeyguardMessageAreaControllerFactory.create(any(KeyguardMessageArea.class)))
.thenReturn(mKeyguardMessageAreaController);
when(mKeyguardPasswordView.getWindowInsetsController()).thenReturn(mWindowInsetsController);
mKeyguardPasswordViewController = new KeyguardPasswordViewController(
(KeyguardPasswordView) mKeyguardPasswordView, mKeyguardUpdateMonitor,