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

Commit 29046f3f authored by Dave Mankoff's avatar Dave Mankoff
Browse files

Remove BatteryController reference from ReverseChargingController

A circular depenency between these two classes could result in an
NPE during intialization.

Test: manual
Fixes: 168778439
Change-Id: Ic67cfb3e3af3fb0d9380853e40bd7aca83301ea4
parent 246e9240
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -105,6 +105,9 @@ public interface BatteryController extends DemoMode, Dumpable,

        default void onExtremeBatterySaverChanged(boolean isExtreme) {
        }

        default void onWirelessChargingChanged(boolean isWirlessCharging) {
        }
    }

    /**
+15 −3
Original line number Diff line number Diff line
@@ -77,7 +77,7 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
    private boolean mCharged;
    protected boolean mPowerSave;
    private boolean mAodPowerSave;
    protected boolean mWirelessCharging;
    private boolean mWirelessCharging;
    private boolean mTestMode = false;
    @VisibleForTesting
    boolean mHasReceivedBattery = false;
@@ -155,6 +155,7 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
        cb.onBatteryLevelChanged(mLevel, mPluggedIn, mCharging);
        cb.onPowerSaveChanged(mPowerSave);
        cb.onBatteryUnknownStateChanged(mStateUnknown);
        cb.onWirelessChargingChanged(mWirelessCharging);
    }

    @Override
@@ -179,8 +180,12 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
                    BatteryManager.BATTERY_STATUS_UNKNOWN);
            mCharged = status == BatteryManager.BATTERY_STATUS_FULL;
            mCharging = mCharged || status == BatteryManager.BATTERY_STATUS_CHARGING;
            mWirelessCharging = mCharging && intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0)
                    == BatteryManager.BATTERY_PLUGGED_WIRELESS;
            if (mWirelessCharging != (mCharging
                    && intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0)
                    == BatteryManager.BATTERY_PLUGGED_WIRELESS)) {
                mWirelessCharging = !mWirelessCharging;
                fireWirelessChargingChanged();
            }

            boolean present = intent.getBooleanExtra(EXTRA_PRESENT, true);
            boolean unknown = !present;
@@ -227,6 +232,13 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
        }
    }

    private void fireWirelessChargingChanged() {
        synchronized (mChangeCallbacks) {
            mChangeCallbacks.forEach(batteryStateChangeCallback ->
                    batteryStateChangeCallback.onWirelessChargingChanged(mWirelessCharging));
        }
    }

    @Override
    public boolean isPluggedIn() {
        return mPluggedIn;