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

Commit 9d026b14 authored by Dmitri Plotnikov's avatar Dmitri Plotnikov Committed by Android (Google) Code Review
Browse files

Merge "Address deadlock between BatteryStatsService and BatteryStatsImpl" into main

parents c327302a ebf5c4c4
Loading
Loading
Loading
Loading
+14 −18
Original line number Diff line number Diff line
@@ -2904,17 +2904,14 @@ public final class BatteryStatsService extends IBatteryStats.Stub
            final int chargeFullUAh, final long chargeTimeToFullSeconds) {
        super.setBatteryState_enforcePermission();

        synchronized (mLock) {
        final long elapsedRealtime = SystemClock.elapsedRealtime();
        final long uptime = SystemClock.uptimeMillis();
        final long currentTime = System.currentTimeMillis();
        final boolean onBattery = BatteryStatsImpl.isOnBattery(plugType, status);
            final boolean batteryStateChanged;
            synchronized (mStats) {
                batteryStateChanged = mStats.isOnBattery() != onBattery;
            }
        mHandler.post(() -> {
            boolean batteryStateChanged;
            synchronized (mStats) {
                batteryStateChanged = mStats.isOnBattery() != onBattery;
                mStats.setBatteryStateLocked(status, health, plugType, level, temp, volt,
                        chargeUAh, chargeFullUAh, chargeTimeToFullSeconds,
                        elapsedRealtime, uptime, currentTime);
@@ -2925,7 +2922,6 @@ public final class BatteryStatsService extends IBatteryStats.Stub
            }
        });
    }
    }

    @Override
    @EnforcePermission(BATTERY_STATS)