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

Commit 54c558c7 authored by Jack Nudelman's avatar Jack Nudelman
Browse files

Ensure radio off reasons are not shared amongst phones.

Bug: 189967128
Test: make, atest com.android.internal.telephony.ServiceStateTrackerTest#testSetRadioPowerForReason
Change-Id: Id1cd8dcde23126350d02d730c6fcb31bad678af6
Merged-In: Id1cd8dcde23126350d02d730c6fcb31bad678af6
parent 45c587dd
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -190,7 +190,7 @@ public class ServiceStateTracker extends Handler {
    private List<CellInfo> mLastCellInfoList = null;
    private List<PhysicalChannelConfig> mLastPhysicalChannelConfigList = null;

    private static final Set<Integer> sRadioPowerOffReasons = new HashSet();
    private final Set<Integer> mRadioPowerOffReasons = new HashSet();

    @UnsupportedAppUsage
    private SignalStrength mSignalStrength;
@@ -710,7 +710,7 @@ public class ServiceStateTracker extends Handler {
                Settings.Global.ENABLE_CELLULAR_ON_BOOT, 1);
        mDesiredPowerState = (enableCellularOnBoot > 0) && ! (airplaneMode > 0);
        if (!mDesiredPowerState) {
            sRadioPowerOffReasons.add(Phone.RADIO_POWER_REASON_USER);
            mRadioPowerOffReasons.add(Phone.RADIO_POWER_REASON_USER);
        }
        mRadioPowerLog.log("init : airplane mode = " + airplaneMode + " enableCellularOnBoot = " +
                enableCellularOnBoot);
@@ -1082,7 +1082,7 @@ public class ServiceStateTracker extends Handler {
     * @return the current reasons for which the radio is off.
     */
    public Set<Integer> getRadioPowerOffReasons() {
        return sRadioPowerOffReasons;
        return mRadioPowerOffReasons;
    }

    /**
@@ -1090,7 +1090,7 @@ public class ServiceStateTracker extends Handler {
     * test emergency calls.
     */
    public void clearAllRadioOffReasons() {
        sRadioPowerOffReasons.clear();
        mRadioPowerOffReasons.clear();
    }

    /**
@@ -1126,21 +1126,21 @@ public class ServiceStateTracker extends Handler {
            if (forEmergencyCall) {
                clearAllRadioOffReasons();
            } else {
                sRadioPowerOffReasons.remove(reason);
                mRadioPowerOffReasons.remove(reason);
            }
        } else {
            sRadioPowerOffReasons.add(reason);
            mRadioPowerOffReasons.add(reason);
        }
        if (power == mDesiredPowerState && !forceApply) {
            log("setRadioPower mDesiredPowerState is already " + power + " Do nothing.");
            return;
        }
        if (power && !sRadioPowerOffReasons.isEmpty()) {
        if (power && !mRadioPowerOffReasons.isEmpty()) {
            log("setRadioPowerForReason " + "power: " + power + " forEmergencyCall= "
                    + forEmergencyCall + " isSelectedPhoneForEmergencyCall: "
                    + isSelectedPhoneForEmergencyCall + " forceApply " + forceApply + "reason:"
                    + reason + " will not power on the radio as it is powered off for the "
                    + "following reasons: " + sRadioPowerOffReasons + ".");
                    + "following reasons: " + mRadioPowerOffReasons + ".");
            return;
        }