Merge "Don't show any trust granted message if passed an empty string" into tm-qpr-dev

This commit is contained in:
Beverly Tai
2022-09-09 20:43:56 +00:00
committed by Android (Google) Code Review
5 changed files with 42 additions and 8 deletions

View File

@@ -141,7 +141,9 @@ public class TrustAgentService extends Service {
* *
* Without this flag, the message passed to {@code grantTrust} is only used for debugging * Without this flag, the message passed to {@code grantTrust} is only used for debugging
* purposes. With the flag, it may be displayed to the user as the reason why the device is * purposes. With the flag, it may be displayed to the user as the reason why the device is
* unlocked. * unlocked. If this flag isn't set OR the message is set to null, the device will display
* its own default message for trust granted. If the TrustAgent intentionally doesn't want to
* show any message, then it can set this flag AND set the message to an empty string.
*/ */
public static final int FLAG_GRANT_TRUST_DISPLAY_MESSAGE = 1 << 3; public static final int FLAG_GRANT_TRUST_DISPLAY_MESSAGE = 1 << 3;

View File

@@ -482,8 +482,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
final boolean userHasTrust = getUserHasTrust(userId); final boolean userHasTrust = getUserHasTrust(userId);
if (userHasTrust && trustGrantedMessages != null) { if (userHasTrust && trustGrantedMessages != null) {
for (String msg : trustGrantedMessages) { for (String msg : trustGrantedMessages) {
if (!TextUtils.isEmpty(msg)) {
message = msg; message = msg;
if (!TextUtils.isEmpty(message)) {
break; break;
} }
} }

View File

@@ -692,11 +692,11 @@ public class KeyguardIndicationController {
/** /**
* Returns the indication text indicating that trust has been granted. * Returns the indication text indicating that trust has been granted.
* *
* @return {@code null} or an empty string if a trust indication text should not be shown. * @return an empty string if a trust indication text should not be shown.
*/ */
@VisibleForTesting @VisibleForTesting
String getTrustGrantedIndication() { String getTrustGrantedIndication() {
return TextUtils.isEmpty(mTrustGrantedIndication) return mTrustGrantedIndication == null
? mContext.getString(R.string.keyguard_indication_trust_unlocked) ? mContext.getString(R.string.keyguard_indication_trust_unlocked)
: mTrustGrantedIndication.toString(); : mTrustGrantedIndication.toString();
} }

View File

@@ -1050,14 +1050,14 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
} }
@Test @Test
public void onTrustGrantedMessageDoesShowsOnTrustGranted() { public void onTrustGrantedMessageShowsOnTrustGranted() {
createController(); createController();
mController.setVisible(true); mController.setVisible(true);
// GIVEN trust is granted // GIVEN trust is granted
when(mKeyguardUpdateMonitor.getUserHasTrust(anyInt())).thenReturn(true); when(mKeyguardUpdateMonitor.getUserHasTrust(anyInt())).thenReturn(true);
// WHEN the showTrustGranted message is called // WHEN the showTrustGranted method is called
final String trustGrantedMsg = "testing trust granted message"; final String trustGrantedMsg = "testing trust granted message";
mController.getKeyguardCallback().showTrustGrantedMessage(trustGrantedMsg); mController.getKeyguardCallback().showTrustGrantedMessage(trustGrantedMsg);
@@ -1067,6 +1067,38 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
trustGrantedMsg); trustGrantedMsg);
} }
@Test
public void onTrustGrantedMessage_nullMessage_showsDefaultMessage() {
createController();
mController.setVisible(true);
// GIVEN trust is granted
when(mKeyguardUpdateMonitor.getUserHasTrust(anyInt())).thenReturn(true);
// WHEN the showTrustGranted method is called with a null message
mController.getKeyguardCallback().showTrustGrantedMessage(null);
// THEN verify the default trust granted message shows
verifyIndicationMessage(
INDICATION_TYPE_TRUST,
getContext().getString(R.string.keyguard_indication_trust_unlocked));
}
@Test
public void onTrustGrantedMessage_emptyString_showsNoMessage() {
createController();
mController.setVisible(true);
// GIVEN trust is granted
when(mKeyguardUpdateMonitor.getUserHasTrust(anyInt())).thenReturn(true);
// WHEN the showTrustGranted method is called with an EMPTY string
mController.getKeyguardCallback().showTrustGrantedMessage("");
// THEN verify NO trust message is shown
verifyNoMessage(INDICATION_TYPE_TRUST);
}
@Test @Test
public void coEx_faceSuccess_showsPressToOpen() { public void coEx_faceSuccess_showsPressToOpen() {
// GIVEN bouncer isn't showing, can skip bouncer, udfps is supported, no a11y enabled // GIVEN bouncer isn't showing, can skip bouncer, udfps is supported, no a11y enabled

View File

@@ -1211,7 +1211,7 @@ public class TrustManagerService extends SystemService {
if (info.userId == userId if (info.userId == userId
&& info.agent.isTrusted() && info.agent.isTrusted()
&& info.agent.shouldDisplayTrustGrantedMessage() && info.agent.shouldDisplayTrustGrantedMessage()
&& !TextUtils.isEmpty(info.agent.getMessage())) { && info.agent.getMessage() != null) {
trustGrantedMessages.add(info.agent.getMessage().toString()); trustGrantedMessages.add(info.agent.getMessage().toString());
} }
} }