Update to follow battery stats change.

Improve how we decide that WIFI is on.

Change-Id: If209d85dd88b6bdd56913684a890f732b8234a8c
This commit is contained in:
Dianne Hackborn
2014-06-20 14:46:55 -07:00
parent c24ffca0f4
commit 96debb5c96

View File

@@ -545,6 +545,7 @@ public class BatteryHistoryChart extends View {
long lastWallTime = 0; long lastWallTime = 0;
long lastRealtime = 0; long lastRealtime = 0;
int aggrStates = 0; int aggrStates = 0;
int aggrStates2 = 0;
boolean first = true; boolean first = true;
if (stats.startIteratingHistoryLocked()) { if (stats.startIteratingHistoryLocked()) {
final HistoryItem rec = new HistoryItem(); final HistoryItem rec = new HistoryItem();
@@ -569,6 +570,7 @@ public class BatteryHistoryChart extends View {
lastInteresting = pos; lastInteresting = pos;
mHistDataEnd = rec.time; mHistDataEnd = rec.time;
aggrStates |= rec.states; aggrStates |= rec.states;
aggrStates2 |= rec.states2;
} }
} }
} }
@@ -577,7 +579,10 @@ public class BatteryHistoryChart extends View {
mEndWallTime = mEndDataWallTime + (remainingTimeUs/1000); mEndWallTime = mEndDataWallTime + (remainingTimeUs/1000);
mNumHist = lastInteresting; mNumHist = lastInteresting;
mHaveGps = (aggrStates&HistoryItem.STATE_GPS_ON_FLAG) != 0; mHaveGps = (aggrStates&HistoryItem.STATE_GPS_ON_FLAG) != 0;
mHaveWifi = (aggrStates&HistoryItem.STATE_WIFI_RUNNING_FLAG) != 0; mHaveWifi = (aggrStates2&HistoryItem.STATE2_WIFI_RUNNING_FLAG) != 0
|| (aggrStates&(HistoryItem.STATE_WIFI_FULL_LOCK_FLAG
|HistoryItem.STATE_WIFI_MULTICAST_ON_FLAG
|HistoryItem.STATE_WIFI_SCAN_FLAG)) != 0;
if (!com.android.settings.Utils.isWifiOnly(getContext())) { if (!com.android.settings.Utils.isWifiOnly(getContext())) {
mHavePhoneSignal = true; mHavePhoneSignal = true;
} }
@@ -774,7 +779,8 @@ public class BatteryHistoryChart extends View {
Path curLevelPath = null; Path curLevelPath = null;
Path lastLinePath = null; Path lastLinePath = null;
boolean lastCharging = false, lastScreenOn = false, lastGpsOn = false; boolean lastCharging = false, lastScreenOn = false, lastGpsOn = false;
boolean lastWifiRunning = false, lastCpuRunning = false; boolean lastWifiRunning = false, lastWifiSupplRunning = false, lastCpuRunning = false;
int lastWifiSupplState = BatteryStats.WIFI_SUPPL_STATE_INVALID;
final int N = mNumHist; final int N = mNumHist;
if (mStats.startIteratingHistoryLocked()) { if (mStats.startIteratingHistoryLocked()) {
final HistoryItem rec = new HistoryItem(); final HistoryItem rec = new HistoryItem();
@@ -868,8 +874,33 @@ public class BatteryHistoryChart extends View {
lastGpsOn = gpsOn; lastGpsOn = gpsOn;
} }
final boolean wifiRunning = final int wifiSupplState =
(rec.states&HistoryItem.STATE_WIFI_RUNNING_FLAG) != 0; ((rec.states2&HistoryItem.STATE2_WIFI_SUPPL_STATE_MASK)
>> HistoryItem.STATE2_WIFI_SUPPL_STATE_SHIFT);
boolean wifiRunning;
if (lastWifiSupplState != wifiSupplState) {
lastWifiSupplState = wifiSupplState;
switch (wifiSupplState) {
case BatteryStats.WIFI_SUPPL_STATE_DISCONNECTED:
case BatteryStats.WIFI_SUPPL_STATE_DORMANT:
case BatteryStats.WIFI_SUPPL_STATE_INACTIVE:
case BatteryStats.WIFI_SUPPL_STATE_INTERFACE_DISABLED:
case BatteryStats.WIFI_SUPPL_STATE_INVALID:
case BatteryStats.WIFI_SUPPL_STATE_UNINITIALIZED:
wifiRunning = lastWifiSupplRunning = false;
break;
default:
wifiRunning = lastWifiSupplRunning = true;
break;
}
} else {
wifiRunning = lastWifiSupplRunning;
}
if ((rec.states&(HistoryItem.STATE_WIFI_FULL_LOCK_FLAG
|HistoryItem.STATE_WIFI_MULTICAST_ON_FLAG
|HistoryItem.STATE_WIFI_SCAN_FLAG)) != 0) {
wifiRunning = true;
}
if (wifiRunning != lastWifiRunning) { if (wifiRunning != lastWifiRunning) {
if (wifiRunning) { if (wifiRunning) {
mWifiRunningPath.moveTo(x, h-mWifiRunningOffset); mWifiRunningPath.moveTo(x, h-mWifiRunningOffset);
@@ -899,8 +930,8 @@ public class BatteryHistoryChart extends View {
} else if ((rec.states&HistoryItem.STATE_PHONE_SCANNING_FLAG) != 0) { } else if ((rec.states&HistoryItem.STATE_PHONE_SCANNING_FLAG) != 0) {
bin = 1; bin = 1;
} else { } else {
bin = (rec.states&HistoryItem.STATE_SIGNAL_STRENGTH_MASK) bin = (rec.states&HistoryItem.STATE_PHONE_SIGNAL_STRENGTH_MASK)
>> HistoryItem.STATE_SIGNAL_STRENGTH_SHIFT; >> HistoryItem.STATE_PHONE_SIGNAL_STRENGTH_SHIFT;
bin += 2; bin += 2;
} }
mPhoneSignalChart.addTick(x, bin); mPhoneSignalChart.addTick(x, bin);