Loading core/java/com/android/internal/os/BatteryStatsImpl.java +12 −25 Original line number Diff line number Diff line Loading @@ -106,7 +106,6 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; Loading Loading @@ -1062,7 +1061,7 @@ public class BatteryStatsImpl extends BatteryStats { // methods are protected not private to be VisibleForTesting public static class TimeBase { protected final ArrayList<WeakReference<TimeBaseObs>> mObservers = new ArrayList<>(); protected final ArrayList<TimeBaseObs> mObservers = new ArrayList<>(); protected long mUptime; protected long mRealtime; Loading Loading @@ -1106,24 +1105,17 @@ public class BatteryStatsImpl extends BatteryStats { } public void add(TimeBaseObs observer) { mObservers.add(new WeakReference<TimeBaseObs>(observer)); mObservers.add(observer); } public void remove(TimeBaseObs observer) { if (!mObservers.removeIf(ref -> ref.get() == observer)) { if (!mObservers.remove(observer)) { Slog.wtf(TAG, "Removed unknown observer: " + observer); } } public boolean hasObserver(TimeBaseObs observer) { Iterator<WeakReference<TimeBaseObs>> i = mObservers.iterator(); while (i.hasNext()) { TimeBaseObs obs = i.next().get(); if (obs == observer) { return true; } } return false; return mObservers.contains(observer); } public void init(long uptime, long realtime) { Loading Loading @@ -1212,11 +1204,9 @@ public class BatteryStatsImpl extends BatteryStats { mRealtimeStart = realtime; long batteryUptime = mUnpluggedUptime = getUptime(uptime); long batteryRealtime = mUnpluggedRealtime = getRealtime(realtime); for (WeakReference<TimeBaseObs> ref : mObservers) { TimeBaseObs obs = ref.get(); if (obs != null) { obs.onTimeStarted(realtime, batteryUptime, batteryRealtime); } for (int i = mObservers.size() - 1; i >= 0; i--) { mObservers.get(i).onTimeStarted(realtime, batteryUptime, batteryRealtime); } } else { mPastUptime += uptime - mUptimeStart; Loading @@ -1224,14 +1214,11 @@ public class BatteryStatsImpl extends BatteryStats { long batteryUptime = getUptime(uptime); long batteryRealtime = getRealtime(realtime); for (WeakReference<TimeBaseObs> ref : mObservers) { TimeBaseObs obs = ref.get(); if (obs != null) { obs.onTimeStopped(realtime, batteryUptime, batteryRealtime); } for (int i = mObservers.size() - 1; i >= 0; i--) { mObservers.get(i).onTimeStopped(realtime, batteryUptime, batteryRealtime); } } mObservers.removeIf(ref -> ref.get() == null); return true; } return false; Loading Loading
core/java/com/android/internal/os/BatteryStatsImpl.java +12 −25 Original line number Diff line number Diff line Loading @@ -106,7 +106,6 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; Loading Loading @@ -1062,7 +1061,7 @@ public class BatteryStatsImpl extends BatteryStats { // methods are protected not private to be VisibleForTesting public static class TimeBase { protected final ArrayList<WeakReference<TimeBaseObs>> mObservers = new ArrayList<>(); protected final ArrayList<TimeBaseObs> mObservers = new ArrayList<>(); protected long mUptime; protected long mRealtime; Loading Loading @@ -1106,24 +1105,17 @@ public class BatteryStatsImpl extends BatteryStats { } public void add(TimeBaseObs observer) { mObservers.add(new WeakReference<TimeBaseObs>(observer)); mObservers.add(observer); } public void remove(TimeBaseObs observer) { if (!mObservers.removeIf(ref -> ref.get() == observer)) { if (!mObservers.remove(observer)) { Slog.wtf(TAG, "Removed unknown observer: " + observer); } } public boolean hasObserver(TimeBaseObs observer) { Iterator<WeakReference<TimeBaseObs>> i = mObservers.iterator(); while (i.hasNext()) { TimeBaseObs obs = i.next().get(); if (obs == observer) { return true; } } return false; return mObservers.contains(observer); } public void init(long uptime, long realtime) { Loading Loading @@ -1212,11 +1204,9 @@ public class BatteryStatsImpl extends BatteryStats { mRealtimeStart = realtime; long batteryUptime = mUnpluggedUptime = getUptime(uptime); long batteryRealtime = mUnpluggedRealtime = getRealtime(realtime); for (WeakReference<TimeBaseObs> ref : mObservers) { TimeBaseObs obs = ref.get(); if (obs != null) { obs.onTimeStarted(realtime, batteryUptime, batteryRealtime); } for (int i = mObservers.size() - 1; i >= 0; i--) { mObservers.get(i).onTimeStarted(realtime, batteryUptime, batteryRealtime); } } else { mPastUptime += uptime - mUptimeStart; Loading @@ -1224,14 +1214,11 @@ public class BatteryStatsImpl extends BatteryStats { long batteryUptime = getUptime(uptime); long batteryRealtime = getRealtime(realtime); for (WeakReference<TimeBaseObs> ref : mObservers) { TimeBaseObs obs = ref.get(); if (obs != null) { obs.onTimeStopped(realtime, batteryUptime, batteryRealtime); } for (int i = mObservers.size() - 1; i >= 0; i--) { mObservers.get(i).onTimeStopped(realtime, batteryUptime, batteryRealtime); } } mObservers.removeIf(ref -> ref.get() == null); return true; } return false; Loading