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

Commit 634c5f86 authored by Ling Ma's avatar Ling Ma
Browse files

Show emc_only if modem reports emc_only

If modem reports emergency call only, then show the carrier text as
emergency call only, even though this carrier is not preferred when an
emergency call is made. The rationale is from user perspective, the
carrier text should reflect the carrier's coverage ability, not modem
implementatin.

Fix: 275695178
Test: reporter verified at 275695178#comment48
Change-Id: Ic1e3f68b2bf4b0c03a11390834acc5ecee25ef8a
parent 880cb61a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2939,8 +2939,8 @@ public class ServiceStateTracker extends Handler {

                // Force display no service
                final boolean forceDisplayNoService = shouldForceDisplayNoService() && !mIsSimReady;
                if (!forceDisplayNoService && Phone.isEmergencyCallOnly()) {
                    // No service but emergency call allowed
                if (!forceDisplayNoService && (mEmergencyOnly || Phone.isEmergencyCallOnly())) {
                    // The slot is emc only or the slot is masked as oos due to device is emc only
                    plmn = Resources.getSystem()
                            .getText(com.android.internal.R.string.emergency_calls_only).toString();
                } else {
+4 −2
Original line number Diff line number Diff line
@@ -452,10 +452,12 @@ public class CarrierDisplayNameResolver {
        boolean forceDisplayNoService =
                mPhone.getServiceStateTracker().shouldForceDisplayNoService() && !isSimReady;
        ServiceState ss = getServiceState();
        // The slot is emc only or oos but the device is emc only.
        boolean isEmcOnly = ss.isEmergencyOnly() || Phone.isEmergencyCallOnly();
        if (ss.getState() == ServiceState.STATE_POWER_OFF && !forceDisplayNoService
                && !Phone.isEmergencyCallOnly()) {
                && !isEmcOnly) {
            plmn = null;
        } else if (forceDisplayNoService || !Phone.isEmergencyCallOnly()) {
        } else if (forceDisplayNoService || !isEmcOnly) {
            plmn = mContext.getResources().getString(
                    com.android.internal.R.string.lockscreen_carrier_default);
        } else {
+5 −0
Original line number Diff line number Diff line
@@ -2807,6 +2807,11 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        ss.setEmergencyOnly(true);
        sst.mSS = ss;

        // The other phone is in service
        ss = new ServiceState();
        doReturn(ss).when(mSST).getServiceState();
        doReturn(ServiceState.STATE_IN_SERVICE).when(mSST).getCombinedRegState(ss);

        // update the spn
        sst.updateSpnDisplay();