Show charging status in addition to trust granted
If the device is kept unlocked, it displays 'Kept unlocked by TrustAgent' and will not show charging state. This adds the charging state below the unlocked message Test: m, atest KeyguardIndicationControllerTest, check keyguard Fixes: 150780409 Change-Id: I6b3515167c990c27fa89b3742d72db98657768b0
This commit is contained in:
committed by
Lucas Dupin
parent
13b8cec66f
commit
778db3306a
@@ -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>
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user