Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5dccdb24 authored by Beverly's avatar Beverly Committed by Beverly Tai
Browse files

Don't show any trust granted message if passed an empty string

If the trustGranted call has flag DISPLAY_MESSAGE and
message is intentionally set to an empty string "", then
don't show ANY trust granted message. If the message is null
or DISPLAY_MESSAGE is not set when trust is granted,
then the device will show its default trust granted string.

Test: atest KeyguardIndicationControllerTest
Test: manually grantTrust with the FLAG_GRANT_TRUST_DISPLAY_MESSAGE
and an empty string. See that device has trust granted and doesn't
show any keyguard indication message.
Fixes: 243075236
Change-Id: Ic31a1758e9baa27b236f09ba8e656d15dd04e7f0
parent 939a2a95
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -141,7 +141,9 @@ public class TrustAgentService extends Service {
     *
     * 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
     * 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;

+2 −2
Original line number Diff line number Diff line
@@ -440,8 +440,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
            final boolean userHasTrust = getUserHasTrust(userId);
            if (userHasTrust && trustGrantedMessages != null) {
                for (String msg : trustGrantedMessages) {
                    if (!TextUtils.isEmpty(msg)) {
                    message = msg;
                    if (!TextUtils.isEmpty(message)) {
                        break;
                    }
                }
+2 −2
Original line number Diff line number Diff line
@@ -687,11 +687,11 @@ public class KeyguardIndicationController {
    /**
     * 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
    String getTrustGrantedIndication() {
        return TextUtils.isEmpty(mTrustGrantedIndication)
        return mTrustGrantedIndication == null
                ? mContext.getString(R.string.keyguard_indication_trust_unlocked)
                : mTrustGrantedIndication.toString();
    }
+34 −2
Original line number Diff line number Diff line
@@ -994,14 +994,14 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
    }

    @Test
    public void onTrustGrantedMessageDoesShowsOnTrustGranted() {
    public void onTrustGrantedMessageShowsOnTrustGranted() {
        createController();
        mController.setVisible(true);

        // GIVEN trust is granted
        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";
        mController.getKeyguardCallback().showTrustGrantedMessage(trustGrantedMsg);

@@ -1011,6 +1011,38 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
                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
    public void coEx_faceSuccess_showsPressToOpen() {
        // GIVEN bouncer isn't showing, can skip bouncer, udfps is supported, no a11y enabled
+1 −1
Original line number Diff line number Diff line
@@ -1211,7 +1211,7 @@ public class TrustManagerService extends SystemService {
            if (info.userId == userId
                    && info.agent.isTrusted()
                    && info.agent.shouldDisplayTrustGrantedMessage()
                    && !TextUtils.isEmpty(info.agent.getMessage())) {
                    && info.agent.getMessage() != null) {
                trustGrantedMessages.add(info.agent.getMessage().toString());
            }
        }