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

Commit 257be477 authored by yifan.bai's avatar yifan.bai Committed by Yifan Bai
Browse files

Fix oldMergedSS is altered to OUT_OF_SERVICE.

ServiceState.copyFrom would throw NPE if s.mCellBandwidths is null.
To fix, if s.mCellBandwidths is null, init mCellBandwidths to be null.

Test: Build pass;
Test: atest FrameworksTelephonyTests:ServiceStateTrackerTest

Bug: 112714563
parent 657650ea
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -341,9 +341,11 @@ public class ServiceState implements Parcelable {
        mIsDataRoamingFromRegistration = s.mIsDataRoamingFromRegistration;
        mIsUsingCarrierAggregation = s.mIsUsingCarrierAggregation;
        mChannelNumber = s.mChannelNumber;
        mCellBandwidths = Arrays.copyOf(s.mCellBandwidths, s.mCellBandwidths.length);
        mCellBandwidths = s.mCellBandwidths == null ? null :
                Arrays.copyOf(s.mCellBandwidths, s.mCellBandwidths.length);
        mLteEarfcnRsrpBoost = s.mLteEarfcnRsrpBoost;
        mNetworkRegistrationStates = new ArrayList<>(s.mNetworkRegistrationStates);
        mNetworkRegistrationStates = s.mNetworkRegistrationStates == null ? null :
                new ArrayList<>(s.mNetworkRegistrationStates);
    }

    /**
@@ -783,7 +785,9 @@ public class ServiceState implements Parcelable {
                && mIsEmergencyOnly == s.mIsEmergencyOnly
                && mIsDataRoamingFromRegistration == s.mIsDataRoamingFromRegistration
                && mIsUsingCarrierAggregation == s.mIsUsingCarrierAggregation)
                && mNetworkRegistrationStates.containsAll(s.mNetworkRegistrationStates);
                && (mNetworkRegistrationStates == null ? s.mNetworkRegistrationStates == null :
                        s.mNetworkRegistrationStates != null &&
                        mNetworkRegistrationStates.containsAll(s.mNetworkRegistrationStates));
    }

    /**