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
This commit is contained in:
@@ -68,7 +68,7 @@ public class KeyguardHostViewController extends ViewController<KeyguardHostView>
|
||||
private final KeyguardUpdateMonitorCallback mUpdateCallback =
|
||||
new KeyguardUpdateMonitorCallback() {
|
||||
@Override
|
||||
public void onTrustGrantedWithFlags(int flags, int userId) {
|
||||
public void onTrustGrantedWithFlags(int flags, int userId, String message) {
|
||||
if (userId != KeyguardUpdateMonitor.getCurrentUser()) return;
|
||||
boolean bouncerVisible = mView.isVisibleToUser();
|
||||
boolean temporaryAndRenewable =
|
||||
|
||||
@@ -486,19 +486,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
||||
FACE_AUTH_TRIGGERED_TRUST_DISABLED);
|
||||
}
|
||||
|
||||
mLogger.logTrustChanged(wasTrusted, enabled, userId);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String message = null;
|
||||
if (KeyguardUpdateMonitor.getCurrentUser() == userId) {
|
||||
CharSequence message = null;
|
||||
final boolean userHasTrust = getUserHasTrust(userId);
|
||||
if (userHasTrust && trustGrantedMessages != null) {
|
||||
for (String msg : trustGrantedMessages) {
|
||||
@@ -508,14 +497,17 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (message != null) {
|
||||
mLogger.logShowTrustGrantedMessage(message.toString());
|
||||
}
|
||||
for (int i = 0; i < mCallbacks.size(); i++) {
|
||||
KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
|
||||
if (cb != null) {
|
||||
cb.showTrustGrantedMessage(message);
|
||||
}
|
||||
mLogger.logTrustChanged(wasTrusted, enabled, userId);
|
||||
if (message != null) {
|
||||
mLogger.logShowTrustGrantedMessage(message.toString());
|
||||
}
|
||||
for (int i = 0; i < mCallbacks.size(); i++) {
|
||||
KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
|
||||
if (cb != null) {
|
||||
cb.onTrustChanged(userId);
|
||||
if (enabled) {
|
||||
cb.onTrustGrantedWithFlags(flags, userId, message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,14 +174,12 @@ public class KeyguardUpdateMonitorCallback {
|
||||
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) { }
|
||||
|
||||
/**
|
||||
* Called when setting the trust granted message.
|
||||
*/
|
||||
public void showTrustGrantedMessage(@Nullable CharSequence message) { }
|
||||
public void onTrustGrantedWithFlags(int flags, int userId, @Nullable String message) { }
|
||||
|
||||
/**
|
||||
* Called when a biometric has been acquired.
|
||||
|
||||
@@ -1179,16 +1179,14 @@ public class KeyguardIndicationController {
|
||||
|
||||
@Override
|
||||
public void onTrustChanged(int userId) {
|
||||
if (getCurrentUser() != userId) {
|
||||
return;
|
||||
}
|
||||
if (!isCurrentUser(userId)) return;
|
||||
updateDeviceEntryIndication(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showTrustGrantedMessage(CharSequence message) {
|
||||
mTrustGrantedIndication = message;
|
||||
updateDeviceEntryIndication(false);
|
||||
public void onTrustGrantedWithFlags(int flags, int userId, @Nullable String message) {
|
||||
if (!isCurrentUser(userId)) return;
|
||||
showTrustGrantedMessage(flags, message);
|
||||
}
|
||||
|
||||
@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) {
|
||||
int followupMsgId = canUnlockWithFingerprint() ? R.string.keyguard_suggest_fingerprint
|
||||
: R.string.keyguard_unlock;
|
||||
|
||||
@@ -1314,7 +1314,10 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
|
||||
Arrays.asList("Unlocked by wearable"));
|
||||
|
||||
// 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
|
||||
|
||||
@@ -1064,7 +1064,7 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
||||
|
||||
// GIVEN a trust granted message but trust isn't granted
|
||||
final String trustGrantedMsg = "testing trust granted message";
|
||||
mController.getKeyguardCallback().showTrustGrantedMessage(trustGrantedMsg);
|
||||
mController.getKeyguardCallback().onTrustGrantedWithFlags(0, 0, trustGrantedMsg);
|
||||
|
||||
verifyHideIndication(INDICATION_TYPE_TRUST);
|
||||
|
||||
@@ -1088,7 +1088,7 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
||||
|
||||
// WHEN the showTrustGranted method is called
|
||||
final String trustGrantedMsg = "testing trust granted message";
|
||||
mController.getKeyguardCallback().showTrustGrantedMessage(trustGrantedMsg);
|
||||
mController.getKeyguardCallback().onTrustGrantedWithFlags(0, 0, trustGrantedMsg);
|
||||
|
||||
// THEN verify the trust granted message shows
|
||||
verifyIndicationMessage(
|
||||
@@ -1105,7 +1105,7 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
||||
when(mKeyguardUpdateMonitor.getUserHasTrust(anyInt())).thenReturn(true);
|
||||
|
||||
// WHEN the showTrustGranted method is called with a null message
|
||||
mController.getKeyguardCallback().showTrustGrantedMessage(null);
|
||||
mController.getKeyguardCallback().onTrustGrantedWithFlags(0, 0, null);
|
||||
|
||||
// THEN verify the default trust granted message shows
|
||||
verifyIndicationMessage(
|
||||
@@ -1122,7 +1122,7 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
||||
when(mKeyguardUpdateMonitor.getUserHasTrust(anyInt())).thenReturn(true);
|
||||
|
||||
// WHEN the showTrustGranted method is called with an EMPTY string
|
||||
mController.getKeyguardCallback().showTrustGrantedMessage("");
|
||||
mController.getKeyguardCallback().onTrustGrantedWithFlags(0, 0, "");
|
||||
|
||||
// THEN verify NO trust message is shown
|
||||
verifyNoMessage(INDICATION_TYPE_TRUST);
|
||||
|
||||
Reference in New Issue
Block a user