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

Commit 43f222f0 authored by Adam Lesinski's avatar Adam Lesinski
Browse files

BatteryStats: Account for remaining OS wakelock time at the end of processing all apps

Bug:18724932
Change-Id: I01cfd18acb3332ad35fd0d48d9c50bc37e5ccd08
parent b035c6d9
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -480,6 +480,7 @@ public final class BatteryStatsHelper {
        final boolean forAllUsers = (asUsers.get(UserHandle.USER_ALL) != null);
        mStatsPeriod = mTypeBatteryRealtime;

        BatterySipper osSipper = null;
        final SparseArray<? extends Uid> uidStats = mStats.getUidStats();
        final int NU = uidStats.size();
        for (int iu = 0; iu < NU; iu++) {
@@ -526,14 +527,18 @@ public final class BatteryStatsHelper {
                }

                if (uid == 0) {
                    osSipper = app;
                }
            }
        }

        if (osSipper != null) {
            // The device has probably been awake for longer than the screen on
            // time and application wake lock time would account for.  Assign
            // this remainder to the OS, if possible.
                    mWakelockPowerCalculator.calculateRemaining(app, mStats, mRawRealtime,
            mWakelockPowerCalculator.calculateRemaining(osSipper, mStats, mRawRealtime,
                                                        mRawUptime, mStatsType);
                    app.sumPower();
                }
            }
            osSipper.sumPower();
        }
    }