summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/res/values/strings.xml3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java42
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java14
3 files changed, 52 insertions, 7 deletions
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 496ab439bdc0..ecbe59872a21 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -1425,6 +1425,9 @@
<!-- Indication on the keyguard that appears when the user disables trust agents until the next time they unlock manually. [CHAR LIMIT=NONE] -->
<string name="keyguard_indication_trust_disabled">Device will stay locked until you manually unlock</string>
+ <!-- Indication on the keyguard that appears when trust agents unlocks the device and device is plugged in. [CHAR LIMIT=NONE] -->
+ <string name="keyguard_indication_trust_unlocked_plugged_in"><xliff:g id="keyguard_indication" example="Kept unlocked by TrustAgent">%1$s</xliff:g>\n<xliff:g id="power_indication" example="Charging Slowly">%2$s</xliff:g></string>
+
<!-- Title of notification educating the user about enabling notifications on the lockscreen. [CHAR LIMIT=40] -->
<string name="hidden_notifications_title">Get notifications faster</string>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
index 4f8e6cfdf767..9af90d697947 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
@@ -285,6 +285,14 @@ public class KeyguardIndicationController implements StateListener,
}
/**
+ * 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.
*
* @return {@code null} or an empty string if a trust managed text should not be shown.
@@ -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 581d795af3df..f72b18cbd8a5 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);
+ }
}