diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 496ab439bdc02..ecbe59872a21f 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -1425,6 +1425,9 @@
Device will stay locked until you manually unlock
+
+ %1$s\n%2$s
+
Get notifications faster
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
index 4f8e6cfdf767e..9af90d6979478 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
@@ -284,6 +284,14 @@ public class KeyguardIndicationController implements StateListener,
return mContext.getString(R.string.keyguard_indication_trust_unlocked);
}
+ /**
+ * Sets if the device is plugged in
+ */
+ @VisibleForTesting
+ void setPowerPluggedIn(boolean plugged) {
+ mPowerPluggedIn = plugged;
+ }
+
/**
* Returns the indication text indicating that trust is currently being managed.
*
@@ -382,29 +390,48 @@ public class KeyguardIndicationController implements StateListener,
int userId = KeyguardUpdateMonitor.getCurrentUser();
String trustGrantedIndication = getTrustGrantedIndication();
String trustManagedIndication = getTrustManagedIndication();
+
+ String powerIndication = null;
+ if (mPowerPluggedIn) {
+ powerIndication = computePowerIndication();
+ }
+
if (!mKeyguardUpdateMonitor.isUserUnlocked(userId)) {
mTextView.switchIndication(com.android.internal.R.string.lockscreen_storage_locked);
mTextView.setTextColor(mInitialTextColorState);
} else if (!TextUtils.isEmpty(mTransientIndication)) {
- mTextView.switchIndication(mTransientIndication);
+ if (powerIndication != null) {
+ String indication = mContext.getResources().getString(
+ R.string.keyguard_indication_trust_unlocked_plugged_in,
+ mTransientIndication, powerIndication);
+ mTextView.switchIndication(indication);
+ } else {
+ mTextView.switchIndication(mTransientIndication);
+ }
mTextView.setTextColor(mTransientTextColorState);
} else if (!TextUtils.isEmpty(trustGrantedIndication)
&& mKeyguardUpdateMonitor.getUserHasTrust(userId)) {
- mTextView.switchIndication(trustGrantedIndication);
+ if (powerIndication != null) {
+ String indication = mContext.getResources().getString(
+ R.string.keyguard_indication_trust_unlocked_plugged_in,
+ trustGrantedIndication, powerIndication);
+ mTextView.switchIndication(indication);
+ } else {
+ mTextView.switchIndication(trustGrantedIndication);
+ }
mTextView.setTextColor(mInitialTextColorState);
} else if (!TextUtils.isEmpty(mAlignmentIndication)) {
mTextView.switchIndication(mAlignmentIndication);
mTextView.setTextColor(Utils.getColorError(mContext));
} else if (mPowerPluggedIn) {
- String indication = computePowerIndication();
if (DEBUG_CHARGING_SPEED) {
- indication += ", " + (mChargingWattage / 1000) + " mW";
+ powerIndication += ", " + (mChargingWattage / 1000) + " mW";
}
mTextView.setTextColor(mInitialTextColorState);
if (animate) {
- animateText(mTextView, indication);
+ animateText(mTextView, powerIndication);
} else {
- mTextView.switchIndication(indication);
+ mTextView.switchIndication(powerIndication);
}
} else if (!TextUtils.isEmpty(trustManagedIndication)
&& mKeyguardUpdateMonitor.getUserTrustIsManaged(userId)
@@ -469,7 +496,8 @@ public class KeyguardIndicationController implements StateListener,
});
}
- private String computePowerIndication() {
+ @VisibleForTesting
+ String computePowerIndication() {
if (mPowerCharged) {
return mContext.getResources().getString(R.string.keyguard_charged);
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java
index 581d795af3df0..f72b18cbd8a58 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java
@@ -403,4 +403,18 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
verify(mStatusBarStateController).addCallback(eq(mController));
verify(mKeyguardUpdateMonitor, times(2)).registerCallback(any());
}
+
+ @Test
+ public void unlockMethodCache_listenerUpdatesPluggedIndication() {
+ createController();
+ when(mKeyguardUpdateMonitor.getUserHasTrust(anyInt())).thenReturn(true);
+ mController.setPowerPluggedIn(true);
+ mController.setVisible(true);
+ String powerIndication = mController.computePowerIndication();
+ String pluggedIndication = mContext.getString(R.string.keyguard_indication_trust_unlocked);
+ pluggedIndication = mContext.getString(
+ R.string.keyguard_indication_trust_unlocked_plugged_in,
+ pluggedIndication, powerIndication);
+ assertThat(mTextView.getText()).isEqualTo(pluggedIndication);
+ }
}