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

Commit b2a8da33 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Merge cherrypicks of ['googleplex-android-review.googlesource.com/31177516'] into 25Q1-release.

Change-Id: I691988dfd6440365e80cff30bc77e80985708786
parents d673c1e5 290a5fad
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -2993,14 +2993,11 @@ public class ServiceStateTracker extends Handler {

        String satellitePlmn = null;
        SatelliteModemStateListener satelliteModemStateListener = getSatelliteModemStateListener();
        if (combinedRegState == ServiceState.STATE_OUT_OF_SERVICE
                && satelliteModemStateListener != null
        if (satelliteModemStateListener != null
                && satelliteModemStateListener.isInConnectedState()) {
            // If device is connected to the nb-iot satellite,
            // 1) No service but nb-iot satellite is connected ->
            //    expected to show "Satellite" for demo mode.
            satellitePlmn = getSatelliteDisplayName();
        }
        log("updateCarrierDisplayName: satellitePlmn=" + satellitePlmn);

        if (mPhone.isPhoneTypeGsm()) {
            // The values of plmn/showPlmn change in different scenarios.
+16 −4
Original line number Diff line number Diff line
@@ -614,7 +614,8 @@ public class SatelliteController extends Handler {
            new ArrayList<>();
    // The ID of the satellite subscription that has highest priority and is provisioned.
    @GuardedBy("mSatelliteTokenProvisionedLock")
    private int mSelectedSatelliteSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
    @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
    protected int mSelectedSatelliteSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
    // The last ICC ID that framework configured to modem.
    @GuardedBy("mSatelliteTokenProvisionedLock")
    private String mLastConfiguredIccId;
@@ -7426,9 +7427,13 @@ public class SatelliteController extends Handler {
            selectedSubId = getNtnOnlySubscriptionId();
        }

        synchronized (mSatelliteTokenProvisionedLock) {
            mSelectedSatelliteSubId = selectedSubId;
        int preSelectedSatelliteSubId = getSelectedSatelliteSubId();
        setSelectedSatelliteSubId(selectedSubId);
        if (preSelectedSatelliteSubId != getSelectedSatelliteSubId()) {
            plogd("selectBindingSatelliteSubscription: SelectedSatelliteSubId changed");
            evaluateCarrierRoamingNtnEligibilityChange();
        }

        setSatellitePhone(selectedSubId);
        if (selectedSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
            int carrierId = getSatelliteCarrierId();
@@ -7714,6 +7719,13 @@ public class SatelliteController extends Handler {
        }
    }

    @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
    protected void setSelectedSatelliteSubId(int subId) {
        synchronized (mSatelliteTokenProvisionedLock) {
            mSelectedSatelliteSubId = subId;
        }
    }

    /** Return the carrier ID of the binding satellite subscription. */
    public int getSatelliteCarrierId() {
        synchronized (mSatelliteTokenProvisionedLock) {
@@ -7764,7 +7776,7 @@ public class SatelliteController extends Handler {
            return false;
        }

        int subId = phone.getSubId();
        int subId = getSelectedSatelliteSubId();
        if (!isSatelliteRoamingP2pSmSSupported(subId)) {
            plogd("isCarrierRoamingNtnEligible(" + subId + "): doesn't support P2P SMS");
            return false;
+28 −0
Original line number Diff line number Diff line
@@ -3590,6 +3590,34 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        Bundle b = getExtrasFromLastSpnUpdateIntent();
        assertThat(b.getString(TelephonyManager.EXTRA_PLMN)).isEqualTo(SATELLITE_DISPLAY_NAME);
        assertThat(b.getBoolean(TelephonyManager.EXTRA_SHOW_PLMN)).isTrue();

        // Override operator name to "Satellite" when registration state is IN_SERVICE.
        mSimulatedCommands.setVoiceRegState(
                NetworkRegistrationInfo.REGISTRATION_STATE_ROAMING);
        mSimulatedCommands.setVoiceRadioTech(ServiceState.RIL_RADIO_TECHNOLOGY_LTE);
        mSimulatedCommands.setDataRegState(
                NetworkRegistrationInfo.REGISTRATION_STATE_ROAMING);
        mSimulatedCommands.setDataRadioTech(ServiceState.RIL_RADIO_TECHNOLOGY_LTE);
        doReturn(ServiceState.STATE_IN_SERVICE).when(mServiceState).getState();
        doReturn(ServiceState.STATE_IN_SERVICE).when(mServiceState).getDataRegistrationState();
        doReturn("Skylo Technologies").when(mServiceState).getOperatorAlpha();

        mBundle.putBoolean(
                CarrierConfigManager.KEY_ENABLE_CARRIER_DISPLAY_NAME_RESOLVER_BOOL, false);
        mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_NAME_OVERRIDE_BOOL, true);
        mBundle.putString(CarrierConfigManager.KEY_CARRIER_NAME_STRING, "");
        sendCarrierConfigUpdate(PHONE_ID);

        callback.onSatelliteModemStateChanged(
                SatelliteManager.SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING);
        waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());

        // update the spn
        sst.updateCarrierDisplayName();

        b = getExtrasFromLastSpnUpdateIntent();
        assertThat(b.getString(TelephonyManager.EXTRA_PLMN)).isEqualTo(SATELLITE_DISPLAY_NAME);
        assertThat(b.getBoolean(TelephonyManager.EXTRA_SHOW_PLMN)).isTrue();
    }

}
+15 −6
Original line number Diff line number Diff line
@@ -4261,6 +4261,8 @@ public class SatelliteControllerTest extends TelephonyTest {
            );
        }
        mSatelliteControllerUT.setSatellitePhone(1);
        mSatelliteControllerUT.setSelectedSatelliteSubId(SUB_ID);
        mSatelliteControllerUT.isSatelliteProvisioned = true;
        mSatelliteControllerUT.setIsSatelliteAllowedState(true);
        processAllMessages();

@@ -4327,6 +4329,8 @@ public class SatelliteControllerTest extends TelephonyTest {
            );
        }
        mSatelliteControllerUT.setSatellitePhone(1);
        mSatelliteControllerUT.setSelectedSatelliteSubId(SUB_ID);
        mSatelliteControllerUT.isSatelliteProvisioned = true;
        mSatelliteControllerUT.isSatelliteAllowedCallback = null;
        setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
        mSatelliteControllerUT.setIsSatelliteAllowedState(true);
@@ -6169,6 +6173,8 @@ public class SatelliteControllerTest extends TelephonyTest {
        public String packageName = "com.example.app";
        public boolean isSatelliteBeingDisabled = false;
        public boolean mIsApplicationSupportsP2P = false;
        public int selectedSatelliteSubId = -1;
        public boolean isSatelliteProvisioned;

        TestSatelliteController(
                Context context, Looper looper, @NonNull FeatureFlags featureFlags) {
@@ -6231,13 +6237,16 @@ public class SatelliteControllerTest extends TelephonyTest {
        }

        @Override
        protected boolean isSubscriptionProvisioned(int subId) {
            synchronized (mSatellitePhoneLock) {
                if (mSatellitePhone.getSubId() == subId) {
                    return true;
        protected void setSelectedSatelliteSubId(int subId) {
            logd("setSelectedSatelliteSubId: subId=" + subId);
            synchronized (mSatelliteTokenProvisionedLock) {
                mSelectedSatelliteSubId = subId;
            }
        }
            return false;

        @Override
        protected boolean isSubscriptionProvisioned(int subId) {
            return isSatelliteProvisioned;
        }

        @Override