Loading core/java/com/android/internal/app/IBatteryStats.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -130,7 +130,7 @@ interface IBatteryStats { long getAwakeTimePlugged(); void noteBleScanStarted(in WorkSource ws, boolean isUnoptimized); void noteBleScanStopped(in WorkSource ws); void noteBleScanStopped(in WorkSource ws, boolean isUnoptimized); void noteResetBleScan(); void noteBleScanResults(in WorkSource ws, int numNewResults); Loading core/java/com/android/internal/os/BatteryStatsImpl.java +6 −9 Original line number Diff line number Diff line Loading @@ -4879,7 +4879,7 @@ public class BatteryStatsImpl extends BatteryStats { } } private void noteBluetoothScanStoppedLocked(int uid) { private void noteBluetoothScanStoppedLocked(int uid, boolean isUnoptimized) { uid = mapUid(uid); final long elapsedRealtime = mClocks.elapsedRealtime(); final long uptime = mClocks.uptimeMillis(); Loading @@ -4891,13 +4891,13 @@ public class BatteryStatsImpl extends BatteryStats { addHistoryRecordLocked(elapsedRealtime, uptime); mBluetoothScanTimer.stopRunningLocked(elapsedRealtime); } getUidStatsLocked(uid).noteBluetoothScanStoppedLocked(elapsedRealtime); getUidStatsLocked(uid).noteBluetoothScanStoppedLocked(elapsedRealtime, isUnoptimized); } public void noteBluetoothScanStoppedFromSourceLocked(WorkSource ws) { public void noteBluetoothScanStoppedFromSourceLocked(WorkSource ws, boolean isUnoptimized) { final int N = ws.size(); for (int i = 0; i < N; i++) { noteBluetoothScanStoppedLocked(ws.get(i)); noteBluetoothScanStoppedLocked(ws.get(i), isUnoptimized); } } Loading Loading @@ -6169,14 +6169,11 @@ public class BatteryStatsImpl extends BatteryStats { } } public void noteBluetoothScanStoppedLocked(long elapsedRealtimeMs) { public void noteBluetoothScanStoppedLocked(long elapsedRealtimeMs, boolean isUnoptimized) { if (mBluetoothScanTimer != null) { mBluetoothScanTimer.stopRunningLocked(elapsedRealtimeMs); } // In the ble code, a scan cannot change types and nested starts are not possible. // So if an unoptimizedScan is running, it is now being stopped. if (mBluetoothUnoptimizedScanTimer != null && mBluetoothUnoptimizedScanTimer.isRunningLocked()) { if (isUnoptimized && mBluetoothUnoptimizedScanTimer != null) { mBluetoothUnoptimizedScanTimer.stopRunningLocked(elapsedRealtimeMs); } } Loading core/tests/coretests/src/com/android/internal/os/BatteryStatsBackgroundStatsTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -217,10 +217,6 @@ public class BatteryStatsBackgroundStatsTest extends TestCase { curr = 1000 * (clocks.realtime = clocks.uptime = 305); bi.updateTimeBasesLocked(false, false, curr, curr); // off battery // Stop timer curr = 1000 * (clocks.realtime = clocks.uptime = 409); bi.noteBluetoothScanStoppedFromSourceLocked(ws); // Start timer (unoptimized) curr = 1000 * (clocks.realtime = clocks.uptime = 1000); bi.noteBluetoothScanStartedFromSourceLocked(ws, true); Loading @@ -233,9 +229,13 @@ public class BatteryStatsBackgroundStatsTest extends TestCase { curr = 1000 * (clocks.realtime = clocks.uptime = 3004); bi.noteUidProcessStateLocked(UID, ActivityManager.PROCESS_STATE_TOP); // Stop timer // Stop timer (optimized) curr = 1000 * (clocks.realtime = clocks.uptime = 3409); bi.noteBluetoothScanStoppedFromSourceLocked(ws, false); // Stop timer (unoptimized) curr = 1000 * (clocks.realtime = clocks.uptime = 4008); bi.noteBluetoothScanStoppedFromSourceLocked(ws); bi.noteBluetoothScanStoppedFromSourceLocked(ws, true); // Test curr = 1000 * (clocks.realtime = clocks.uptime = 5000); Loading core/tests/coretests/src/com/android/internal/os/BatteryStatsNoteTest.java +0 −2 Original line number Diff line number Diff line Loading @@ -58,8 +58,6 @@ public class BatteryStatsNoteTest extends TestCase{ assertEquals(101, bi.getUidStats().get(UID).getBluetoothScanResultCounter() .getCountLocked(STATS_SINCE_CHARGED)); // TODO: remove next line when Counter misreporting values when plugged-in bug is fixed. bi.noteUidProcessStateLocked(UID, ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND); BatteryStats.Counter bgCntr = bi.getUidStats().get(UID).getBluetoothScanResultBgCounter(); if (bgCntr != null) { assertEquals(0, bgCntr.getCountLocked(STATS_SINCE_CHARGED)); Loading services/core/java/com/android/server/am/BatteryStatsService.java +2 −2 Original line number Diff line number Diff line Loading @@ -913,10 +913,10 @@ public final class BatteryStatsService extends IBatteryStats.Stub } @Override public void noteBleScanStopped(WorkSource ws) { public void noteBleScanStopped(WorkSource ws, boolean isUnoptimized) { enforceCallingPermission(); synchronized (mStats) { mStats.noteBluetoothScanStoppedFromSourceLocked(ws); mStats.noteBluetoothScanStoppedFromSourceLocked(ws, isUnoptimized); } } Loading Loading
core/java/com/android/internal/app/IBatteryStats.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -130,7 +130,7 @@ interface IBatteryStats { long getAwakeTimePlugged(); void noteBleScanStarted(in WorkSource ws, boolean isUnoptimized); void noteBleScanStopped(in WorkSource ws); void noteBleScanStopped(in WorkSource ws, boolean isUnoptimized); void noteResetBleScan(); void noteBleScanResults(in WorkSource ws, int numNewResults); Loading
core/java/com/android/internal/os/BatteryStatsImpl.java +6 −9 Original line number Diff line number Diff line Loading @@ -4879,7 +4879,7 @@ public class BatteryStatsImpl extends BatteryStats { } } private void noteBluetoothScanStoppedLocked(int uid) { private void noteBluetoothScanStoppedLocked(int uid, boolean isUnoptimized) { uid = mapUid(uid); final long elapsedRealtime = mClocks.elapsedRealtime(); final long uptime = mClocks.uptimeMillis(); Loading @@ -4891,13 +4891,13 @@ public class BatteryStatsImpl extends BatteryStats { addHistoryRecordLocked(elapsedRealtime, uptime); mBluetoothScanTimer.stopRunningLocked(elapsedRealtime); } getUidStatsLocked(uid).noteBluetoothScanStoppedLocked(elapsedRealtime); getUidStatsLocked(uid).noteBluetoothScanStoppedLocked(elapsedRealtime, isUnoptimized); } public void noteBluetoothScanStoppedFromSourceLocked(WorkSource ws) { public void noteBluetoothScanStoppedFromSourceLocked(WorkSource ws, boolean isUnoptimized) { final int N = ws.size(); for (int i = 0; i < N; i++) { noteBluetoothScanStoppedLocked(ws.get(i)); noteBluetoothScanStoppedLocked(ws.get(i), isUnoptimized); } } Loading Loading @@ -6169,14 +6169,11 @@ public class BatteryStatsImpl extends BatteryStats { } } public void noteBluetoothScanStoppedLocked(long elapsedRealtimeMs) { public void noteBluetoothScanStoppedLocked(long elapsedRealtimeMs, boolean isUnoptimized) { if (mBluetoothScanTimer != null) { mBluetoothScanTimer.stopRunningLocked(elapsedRealtimeMs); } // In the ble code, a scan cannot change types and nested starts are not possible. // So if an unoptimizedScan is running, it is now being stopped. if (mBluetoothUnoptimizedScanTimer != null && mBluetoothUnoptimizedScanTimer.isRunningLocked()) { if (isUnoptimized && mBluetoothUnoptimizedScanTimer != null) { mBluetoothUnoptimizedScanTimer.stopRunningLocked(elapsedRealtimeMs); } } Loading
core/tests/coretests/src/com/android/internal/os/BatteryStatsBackgroundStatsTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -217,10 +217,6 @@ public class BatteryStatsBackgroundStatsTest extends TestCase { curr = 1000 * (clocks.realtime = clocks.uptime = 305); bi.updateTimeBasesLocked(false, false, curr, curr); // off battery // Stop timer curr = 1000 * (clocks.realtime = clocks.uptime = 409); bi.noteBluetoothScanStoppedFromSourceLocked(ws); // Start timer (unoptimized) curr = 1000 * (clocks.realtime = clocks.uptime = 1000); bi.noteBluetoothScanStartedFromSourceLocked(ws, true); Loading @@ -233,9 +229,13 @@ public class BatteryStatsBackgroundStatsTest extends TestCase { curr = 1000 * (clocks.realtime = clocks.uptime = 3004); bi.noteUidProcessStateLocked(UID, ActivityManager.PROCESS_STATE_TOP); // Stop timer // Stop timer (optimized) curr = 1000 * (clocks.realtime = clocks.uptime = 3409); bi.noteBluetoothScanStoppedFromSourceLocked(ws, false); // Stop timer (unoptimized) curr = 1000 * (clocks.realtime = clocks.uptime = 4008); bi.noteBluetoothScanStoppedFromSourceLocked(ws); bi.noteBluetoothScanStoppedFromSourceLocked(ws, true); // Test curr = 1000 * (clocks.realtime = clocks.uptime = 5000); Loading
core/tests/coretests/src/com/android/internal/os/BatteryStatsNoteTest.java +0 −2 Original line number Diff line number Diff line Loading @@ -58,8 +58,6 @@ public class BatteryStatsNoteTest extends TestCase{ assertEquals(101, bi.getUidStats().get(UID).getBluetoothScanResultCounter() .getCountLocked(STATS_SINCE_CHARGED)); // TODO: remove next line when Counter misreporting values when plugged-in bug is fixed. bi.noteUidProcessStateLocked(UID, ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND); BatteryStats.Counter bgCntr = bi.getUidStats().get(UID).getBluetoothScanResultBgCounter(); if (bgCntr != null) { assertEquals(0, bgCntr.getCountLocked(STATS_SINCE_CHARGED)); Loading
services/core/java/com/android/server/am/BatteryStatsService.java +2 −2 Original line number Diff line number Diff line Loading @@ -913,10 +913,10 @@ public final class BatteryStatsService extends IBatteryStats.Stub } @Override public void noteBleScanStopped(WorkSource ws) { public void noteBleScanStopped(WorkSource ws, boolean isUnoptimized) { enforceCallingPermission(); synchronized (mStats) { mStats.noteBluetoothScanStoppedFromSourceLocked(ws); mStats.noteBluetoothScanStoppedFromSourceLocked(ws, isUnoptimized); } } Loading