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

Commit cb160f31 authored by Beverly's avatar Beverly
Browse files

Setup callbacks for ChipBar for ActiveUnlock

In the KUM callback for trustGranted, send the trustGranted message
along with the flags so that listeners can appropriately decide
whether to show the provided message if the keyguard will dismiss.

Bug: 240196500
Test: atest SystemUITests SystemUIGoogleTests
Test: "Unlocked by Smart Lock" message shows when SmartLock is enabled
Change-Id: I975bfef0bf86672fae5f38f94938f1f2a90d0ef4
parent ed19f58a
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -68,7 +68,7 @@ public class KeyguardHostViewController extends ViewController<KeyguardHostView>
    private final KeyguardUpdateMonitorCallback mUpdateCallback =
    private final KeyguardUpdateMonitorCallback mUpdateCallback =
            new KeyguardUpdateMonitorCallback() {
            new KeyguardUpdateMonitorCallback() {
                @Override
                @Override
                public void onTrustGrantedWithFlags(int flags, int userId) {
                public void onTrustGrantedWithFlags(int flags, int userId, String message) {
                    if (userId != KeyguardUpdateMonitor.getCurrentUser()) return;
                    if (userId != KeyguardUpdateMonitor.getCurrentUser()) return;
                    boolean bouncerVisible = mView.isVisibleToUser();
                    boolean bouncerVisible = mView.isVisibleToUser();
                    boolean temporaryAndRenewable =
                    boolean temporaryAndRenewable =
+12 −20
Original line number Original line Diff line number Diff line
@@ -486,19 +486,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
                    FACE_AUTH_TRIGGERED_TRUST_DISABLED);
                    FACE_AUTH_TRIGGERED_TRUST_DISABLED);
        }
        }


        mLogger.logTrustChanged(wasTrusted, enabled, userId);
        String message = null;
        for (int i = 0; i < mCallbacks.size(); i++) {
            KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
            if (cb != null) {
                cb.onTrustChanged(userId);
                if (enabled && flags != 0) {
                    cb.onTrustGrantedWithFlags(flags, userId);
                }
            }
        }

        if (KeyguardUpdateMonitor.getCurrentUser() == userId) {
        if (KeyguardUpdateMonitor.getCurrentUser() == userId) {
            CharSequence message = null;
            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) {
@@ -508,14 +497,17 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
                    }
                    }
                }
                }
            }
            }

        }
        mLogger.logTrustChanged(wasTrusted, enabled, userId);
        if (message != null) {
        if (message != null) {
            mLogger.logShowTrustGrantedMessage(message.toString());
            mLogger.logShowTrustGrantedMessage(message.toString());
        }
        }
        for (int i = 0; i < mCallbacks.size(); i++) {
        for (int i = 0; i < mCallbacks.size(); i++) {
            KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
            KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
            if (cb != null) {
            if (cb != null) {
                    cb.showTrustGrantedMessage(message);
                cb.onTrustChanged(userId);
                if (enabled) {
                    cb.onTrustGrantedWithFlags(flags, userId, message);
                }
                }
            }
            }
        }
        }
+5 −7
Original line number Original line Diff line number Diff line
@@ -174,14 +174,12 @@ public class KeyguardUpdateMonitorCallback {
    public void onTrustManagedChanged(int userId) { }
    public void onTrustManagedChanged(int userId) { }


    /**
    /**
     * Called after trust was granted with non-zero flags.
     * Called after trust was granted.
     * @param userId of the user that has been granted trust
     * @param message optional message the trust agent has provided to show that should indicate
     *                why trust was granted.
     */
     */
    public void onTrustGrantedWithFlags(int flags, int userId) { }
    public void onTrustGrantedWithFlags(int flags, int userId, @Nullable String message) { }

    /**
     * Called when setting the trust granted message.
     */
    public void showTrustGrantedMessage(@Nullable CharSequence message) { }


    /**
    /**
     * Called when a biometric has been acquired.
     * Called when a biometric has been acquired.
+13 −6
Original line number Original line Diff line number Diff line
@@ -1179,16 +1179,14 @@ public class KeyguardIndicationController {


        @Override
        @Override
        public void onTrustChanged(int userId) {
        public void onTrustChanged(int userId) {
            if (getCurrentUser() != userId) {
            if (!isCurrentUser(userId)) return;
                return;
            }
            updateDeviceEntryIndication(false);
            updateDeviceEntryIndication(false);
        }
        }


        @Override
        @Override
        public void showTrustGrantedMessage(CharSequence message) {
        public void onTrustGrantedWithFlags(int flags, int userId, @Nullable String message) {
            mTrustGrantedIndication = message;
            if (!isCurrentUser(userId)) return;
            updateDeviceEntryIndication(false);
            showTrustGrantedMessage(flags, message);
        }
        }


        @Override
        @Override
@@ -1248,6 +1246,15 @@ public class KeyguardIndicationController {
        }
        }
    }
    }


    private boolean isCurrentUser(int userId) {
        return getCurrentUser() == userId;
    }

    void showTrustGrantedMessage(int flags, @Nullable CharSequence message) {
        mTrustGrantedIndication = message;
        updateDeviceEntryIndication(false);
    }

    private void handleFaceLockoutError(String errString) {
    private void handleFaceLockoutError(String errString) {
        int followupMsgId = canUnlockWithFingerprint() ? R.string.keyguard_suggest_fingerprint
        int followupMsgId = canUnlockWithFingerprint() ? R.string.keyguard_suggest_fingerprint
                : R.string.keyguard_unlock;
                : R.string.keyguard_unlock;
+4 −1
Original line number Original line Diff line number Diff line
@@ -1314,7 +1314,10 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
                Arrays.asList("Unlocked by wearable"));
                Arrays.asList("Unlocked by wearable"));


        // THEN the showTrustGrantedMessage should be called with the first message
        // THEN the showTrustGrantedMessage should be called with the first message
        verify(mTestCallback).showTrustGrantedMessage("Unlocked by wearable");
        verify(mTestCallback).onTrustGrantedWithFlags(
                eq(0),
                eq(KeyguardUpdateMonitor.getCurrentUser()),
                eq("Unlocked by wearable"));
    }
    }


    @Test
    @Test
Loading