RESTRICT AUTOMERGE Add extra battery indication logging am: 067b0ad918
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21872054 Change-Id: I9eb67ab65bc2fc92b3a8ff983cd656c20d08d10d Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -3375,8 +3375,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
|||||||
*/
|
*/
|
||||||
private void handleBatteryUpdate(BatteryStatus status) {
|
private void handleBatteryUpdate(BatteryStatus status) {
|
||||||
Assert.isMainThread();
|
Assert.isMainThread();
|
||||||
mLogger.d("handleBatteryUpdate");
|
|
||||||
final boolean batteryUpdateInteresting = isBatteryUpdateInteresting(mBatteryStatus, status);
|
final boolean batteryUpdateInteresting = isBatteryUpdateInteresting(mBatteryStatus, status);
|
||||||
|
mLogger.logHandleBatteryUpdate(batteryUpdateInteresting);
|
||||||
mBatteryStatus = status;
|
mBatteryStatus = status;
|
||||||
if (batteryUpdateInteresting) {
|
if (batteryUpdateInteresting) {
|
||||||
for (int i = 0; i < mCallbacks.size(); i++) {
|
for (int i = 0; i < mCallbacks.size(); i++) {
|
||||||
|
|||||||
@@ -97,6 +97,21 @@ constructor(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun logUpdateBatteryIndication(
|
||||||
|
powerIndication: String,
|
||||||
|
pluggedIn: Boolean,
|
||||||
|
) {
|
||||||
|
buffer.log(
|
||||||
|
KeyguardIndicationController.TAG,
|
||||||
|
LogLevel.DEBUG,
|
||||||
|
{
|
||||||
|
str1 = powerIndication
|
||||||
|
bool1 = pluggedIn
|
||||||
|
},
|
||||||
|
{ "updateBatteryIndication powerIndication:$str1 pluggedIn:$bool1" }
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
fun logKeyguardSwitchIndication(
|
fun logKeyguardSwitchIndication(
|
||||||
type: Int,
|
type: Int,
|
||||||
message: String?,
|
message: String?,
|
||||||
@@ -112,6 +127,28 @@ constructor(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun logRefreshBatteryInfo(
|
||||||
|
isChargingOrFull: Boolean,
|
||||||
|
powerPluggedIn: Boolean,
|
||||||
|
batteryLevel: Int,
|
||||||
|
batteryOverheated: Boolean
|
||||||
|
) {
|
||||||
|
buffer.log(
|
||||||
|
KeyguardIndicationController.TAG,
|
||||||
|
LogLevel.DEBUG,
|
||||||
|
{
|
||||||
|
bool1 = isChargingOrFull
|
||||||
|
bool2 = powerPluggedIn
|
||||||
|
bool3 = batteryOverheated
|
||||||
|
int1 = batteryLevel
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"refreshBatteryInfo isChargingOrFull:$bool1 powerPluggedIn:$bool2" +
|
||||||
|
" batteryOverheated:$bool3 batteryLevel:$int1"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
fun getKeyguardSwitchIndicationNonSensitiveLog(type: Int, message: String?): String {
|
fun getKeyguardSwitchIndicationNonSensitiveLog(type: Int, message: String?): String {
|
||||||
// only show the battery string. other strings may contain sensitive info
|
// only show the battery string. other strings may contain sensitive info
|
||||||
return if (type == KeyguardIndicationRotateTextViewController.INDICATION_TYPE_BATTERY) {
|
return if (type == KeyguardIndicationRotateTextViewController.INDICATION_TYPE_BATTERY) {
|
||||||
|
|||||||
@@ -657,4 +657,15 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun logHandleBatteryUpdate(isInteresting: Boolean) {
|
||||||
|
logBuffer.log(
|
||||||
|
TAG,
|
||||||
|
DEBUG,
|
||||||
|
{
|
||||||
|
bool1 = isInteresting
|
||||||
|
},
|
||||||
|
{ "handleBatteryUpdate: $bool1" }
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -177,10 +177,12 @@ public class KeyguardIndicationController {
|
|||||||
private boolean mVisible;
|
private boolean mVisible;
|
||||||
private boolean mOrganizationOwnedDevice;
|
private boolean mOrganizationOwnedDevice;
|
||||||
|
|
||||||
|
// these all assume the device is plugged in (wired/wireless/docked) AND chargingOrFull:
|
||||||
private boolean mPowerPluggedIn;
|
private boolean mPowerPluggedIn;
|
||||||
private boolean mPowerPluggedInWired;
|
private boolean mPowerPluggedInWired;
|
||||||
private boolean mPowerPluggedInWireless;
|
private boolean mPowerPluggedInWireless;
|
||||||
private boolean mPowerPluggedInDock;
|
private boolean mPowerPluggedInDock;
|
||||||
|
|
||||||
private boolean mPowerCharged;
|
private boolean mPowerCharged;
|
||||||
private boolean mBatteryOverheated;
|
private boolean mBatteryOverheated;
|
||||||
private boolean mEnableBatteryDefender;
|
private boolean mEnableBatteryDefender;
|
||||||
@@ -499,6 +501,7 @@ public class KeyguardIndicationController {
|
|||||||
powerIndication += ", " + (mChargingWattage / 1000) + " mW";
|
powerIndication += ", " + (mChargingWattage / 1000) + " mW";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mKeyguardLogger.logUpdateBatteryIndication(powerIndication, mPowerPluggedIn);
|
||||||
mRotateTextViewController.updateIndication(
|
mRotateTextViewController.updateIndication(
|
||||||
INDICATION_TYPE_BATTERY,
|
INDICATION_TYPE_BATTERY,
|
||||||
new KeyguardIndication.Builder()
|
new KeyguardIndication.Builder()
|
||||||
@@ -507,6 +510,7 @@ public class KeyguardIndicationController {
|
|||||||
.build(),
|
.build(),
|
||||||
animate);
|
animate);
|
||||||
} else {
|
} else {
|
||||||
|
mKeyguardLogger.log(TAG, LogLevel.DEBUG, "hide battery indication");
|
||||||
// don't show the charging information if device isn't plugged in
|
// don't show the charging information if device isn't plugged in
|
||||||
mRotateTextViewController.hideIndication(INDICATION_TYPE_BATTERY);
|
mRotateTextViewController.hideIndication(INDICATION_TYPE_BATTERY);
|
||||||
}
|
}
|
||||||
@@ -885,6 +889,9 @@ public class KeyguardIndicationController {
|
|||||||
updateLockScreenIndications(animate, getCurrentUser());
|
updateLockScreenIndications(animate, getCurrentUser());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Assumption: device is charging
|
||||||
|
*/
|
||||||
protected String computePowerIndication() {
|
protected String computePowerIndication() {
|
||||||
int chargingId;
|
int chargingId;
|
||||||
if (mBatteryOverheated) {
|
if (mBatteryOverheated) {
|
||||||
@@ -1035,6 +1042,12 @@ public class KeyguardIndicationController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* KeyguardUpdateMonitor only sends "interesting" battery updates
|
||||||
|
* {@link KeyguardUpdateMonitor#isBatteryUpdateInteresting}.
|
||||||
|
* Therefore, make sure to always check plugged in state along with any charging status
|
||||||
|
* change, or else we could end up with stale state.
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onRefreshBatteryInfo(BatteryStatus status) {
|
public void onRefreshBatteryInfo(BatteryStatus status) {
|
||||||
boolean isChargingOrFull = status.status == BatteryManager.BATTERY_STATUS_CHARGING
|
boolean isChargingOrFull = status.status == BatteryManager.BATTERY_STATUS_CHARGING
|
||||||
@@ -1050,7 +1063,9 @@ public class KeyguardIndicationController {
|
|||||||
mBatteryLevel = status.level;
|
mBatteryLevel = status.level;
|
||||||
mBatteryPresent = status.present;
|
mBatteryPresent = status.present;
|
||||||
mBatteryOverheated = status.isOverheated();
|
mBatteryOverheated = status.isOverheated();
|
||||||
|
// when the battery is overheated, device doesn't charge so only guard on pluggedIn:
|
||||||
mEnableBatteryDefender = mBatteryOverheated && status.isPluggedIn();
|
mEnableBatteryDefender = mBatteryOverheated && status.isPluggedIn();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mChargingTimeRemaining = mPowerPluggedIn
|
mChargingTimeRemaining = mPowerPluggedIn
|
||||||
? mBatteryInfo.computeChargeTimeRemaining() : -1;
|
? mBatteryInfo.computeChargeTimeRemaining() : -1;
|
||||||
@@ -1058,14 +1073,10 @@ public class KeyguardIndicationController {
|
|||||||
mKeyguardLogger.log(TAG, ERROR, "Error calling IBatteryStats", e);
|
mKeyguardLogger.log(TAG, ERROR, "Error calling IBatteryStats", e);
|
||||||
mChargingTimeRemaining = -1;
|
mChargingTimeRemaining = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mKeyguardLogger.logRefreshBatteryInfo(isChargingOrFull, mPowerPluggedIn, mBatteryLevel,
|
||||||
|
mBatteryOverheated);
|
||||||
updateDeviceEntryIndication(!wasPluggedIn && mPowerPluggedInWired);
|
updateDeviceEntryIndication(!wasPluggedIn && mPowerPluggedInWired);
|
||||||
if (mDozing) {
|
|
||||||
if (!wasPluggedIn && mPowerPluggedIn) {
|
|
||||||
showTransientIndication(computePowerIndication());
|
|
||||||
} else if (wasPluggedIn && !mPowerPluggedIn) {
|
|
||||||
hideTransientIndication();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1317,6 +1328,10 @@ public class KeyguardIndicationController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected boolean isPluggedInAndCharging() {
|
||||||
|
return mPowerPluggedIn;
|
||||||
|
}
|
||||||
|
|
||||||
private boolean isCurrentUser(int userId) {
|
private boolean isCurrentUser(int userId) {
|
||||||
return getCurrentUser() == userId;
|
return getCurrentUser() == userId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ public class KeyguardIndicationTextView extends TextView {
|
|||||||
if (mLastAnimator != null) {
|
if (mLastAnimator != null) {
|
||||||
mLastAnimator.cancel();
|
mLastAnimator.cancel();
|
||||||
}
|
}
|
||||||
|
mMessage = "";
|
||||||
setText("");
|
setText("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1030,24 +1030,6 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
|||||||
NumberFormat.getPercentInstance().format(80 / 100f)));
|
NumberFormat.getPercentInstance().format(80 / 100f)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void onRefreshBatteryInfo_pluggedWithOverheat_presentChargingLimited() {
|
|
||||||
createController();
|
|
||||||
BatteryStatus status = new BatteryStatus(BatteryManager.BATTERY_STATUS_DISCHARGING,
|
|
||||||
80 /* level */, BatteryManager.BATTERY_PLUGGED_AC,
|
|
||||||
BatteryManager.BATTERY_HEALTH_OVERHEAT, 0 /* maxChargingWattage */,
|
|
||||||
true /* present */);
|
|
||||||
|
|
||||||
mController.getKeyguardCallback().onRefreshBatteryInfo(status);
|
|
||||||
mController.setVisible(true);
|
|
||||||
|
|
||||||
verifyIndicationMessage(
|
|
||||||
INDICATION_TYPE_BATTERY,
|
|
||||||
mContext.getString(
|
|
||||||
R.string.keyguard_plugged_in_charging_limited,
|
|
||||||
NumberFormat.getPercentInstance().format(80 / 100f)));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onRefreshBatteryInfo_fullChargedWithOverheat_presentChargingLimited() {
|
public void onRefreshBatteryInfo_fullChargedWithOverheat_presentChargingLimited() {
|
||||||
createController();
|
createController();
|
||||||
|
|||||||
Reference in New Issue
Block a user