Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6ef9804a authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix total wakelock duration calculation" into main

parents 6ef8942e a90964e1
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -409,11 +409,10 @@ public class BatteryStatsImpl extends BatteryStats {
                @Override
                public long getWakelockDurationMillis() {
                    synchronized (BatteryStatsImpl.this) {
                        long rawRealtimeUs = mClock.uptimeMillis() * 1000;
                        long batteryUptimeUs = getBatteryUptime(rawRealtimeUs);
                        long screenOnTimeUs = getScreenOnTime(rawRealtimeUs,
                        long batteryUptimeUs = getBatteryUptime(mClock.uptimeMillis() * 1000);
                        long screenOnTimeUs = getScreenOnTime(mClock.elapsedRealtime() * 1000,
                                BatteryStats.STATS_SINCE_CHARGED);
                        return (batteryUptimeUs - screenOnTimeUs) / 1000;
                        return Math.max(0, (batteryUptimeUs - screenOnTimeUs) / 1000);
                    }
                }
@@ -437,8 +436,9 @@ public class BatteryStatsImpl extends BatteryStats {
                                }
                            }
                            if (wakeLockTimeUs != 0) {
                                callback.onUidWakelockDuration(u.getUid(), wakeLockTimeUs / 1000);
                            long wakelockTimeMs = wakeLockTimeUs / 1000;
                            if (wakelockTimeMs != 0) {
                                callback.onUidWakelockDuration(u.getUid(), wakelockTimeMs);
                            }
                        }
                    }
+9 −7
Original line number Diff line number Diff line
@@ -108,14 +108,16 @@ class WakelockPowerStatsCollector extends PowerStatsCollector {

        mWakelockDurationRetriever.retrieveUidWakelockDuration((uid, durationMs) -> {
            if (!mFirstCollection) {
                long diffMs = Math.max(0, durationMs - mLastUidWakelockDurations.get(uid));
                if (diffMs != 0) {
                    long[] uidStats = mPowerStats.uidStats.get(uid);
                    if (uidStats == null) {
                        uidStats = new long[mDescriptor.uidStatsArrayLength];
                        mPowerStats.uidStats.put(uid, uidStats);
                    }

                mStatsLayout.setUidUsageDuration(uidStats,
                        Math.max(0, durationMs - mLastUidWakelockDurations.get(uid)));
                    mStatsLayout.setUidUsageDuration(uidStats, diffMs);
                }
            }
            mLastUidWakelockDurations.put(uid, durationMs);
        });