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

Commit 9cbf27af authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix dead lock between AM and BatterySaverStateMachine" into pi-dev

parents 7bedbabd 6e5eb1df
Loading
Loading
Loading
Loading
+24 −15
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.util.proto.ProtoOutputStream;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.os.BackgroundThread;
import com.android.server.power.BatterySaverPolicy;
import com.android.server.power.BatterySaverStateMachineProto;

@@ -124,6 +125,8 @@ public class BatterySaverStateMachine {
        if (DEBUG) {
            Slog.d(TAG, "onBootCompleted");
        }
        // This is called with the power manager lock held. Don't do any
        runOnBgThread(() -> {
            synchronized (mLock) {

                final ContentResolver cr = mContext.getContentResolver();
@@ -143,6 +146,12 @@ public class BatterySaverStateMachine {

                doAutoBatterySaverLocked();
            }
        });
    }

    @VisibleForTesting
    void runOnBgThread(Runnable r) {
        BackgroundThread.getHandler().post(r);
    }

    void refreshSettingsLocked() {
+5 −0
Original line number Diff line number Diff line
@@ -139,6 +139,11 @@ public class BatterySaverStateMachineTest {
        protected int getGlobalSetting(String key, int defValue) {
            return mDevice.getGlobalSetting(key, defValue);
        }

        @Override
        void runOnBgThread(Runnable r) {
            r.run();
        }
    }

    @Before