Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +14 −4 Original line number Diff line number Diff line Loading @@ -2737,9 +2737,13 @@ public class ServiceStateTracker extends Handler { // EXTRA_PLMN = plmn // 4) No service due to power off, aka airplane mode // EXTRA_SHOW_PLMN = false // EXTRA_SHOW_PLMN = true // EXTRA_PLMN = null // 5) Airplane mode but connected to WiFi with WFC disabled // EXTRA_SHOW_PLMN = true // EXTRA_PLMN = plmn IccRecords iccRecords = mIccRecords; int rule = getCarrierNameDisplayBitmask(mSS); boolean noService = false; Loading Loading @@ -2772,10 +2776,16 @@ public class ServiceStateTracker extends Handler { if (DBG) log("updateSpnDisplay: rawPlmn = " + plmn); } else { // Power off state, such as airplane mode, show plmn as "No service" // unless connected to WiFi with WFC disabled, then show plmn showPlmn = true; if (mPhone.getImsPhone() != null && !mPhone.getImsPhone().isWifiCallingEnabled() && mSS.getDataNetworkType() == TelephonyManager.NETWORK_TYPE_IWLAN) { plmn = mSS.getOperatorAlpha(); } else { plmn = Resources.getSystem() .getText(com.android.internal.R.string.lockscreen_carrier_default) .toString(); } if (DBG) log("updateSpnDisplay: radio is off w/ showPlmn=" + showPlmn + " plmn=" + plmn); } Loading tests/telephonytests/src/com/android/internal/telephony/ServiceStateTrackerTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -2439,6 +2439,34 @@ public class ServiceStateTrackerTest extends TelephonyTest { assertThat(b.getBoolean(TelephonyManager.EXTRA_SHOW_PLMN)).isTrue(); } @Test public void testUpdateSpnDisplay_flightModeNoWifiCalling_showSpnAndPlmn() { // GSM phone doReturn(true).when(mPhone).isPhoneTypeGsm(); // Flight mode and connected to WiFI doReturn(ServiceState.STATE_POWER_OFF).when(mServiceState).getVoiceRegState(); doReturn(ServiceState.STATE_POWER_OFF).when(mServiceState).getDataRegState(); doReturn(TelephonyManager.NETWORK_TYPE_IWLAN).when(mServiceState).getDataNetworkType(); doReturn(mServiceState).when(mSST).getServiceState(); // wifi-calling is disable doReturn(false).when(mPhone).isWifiCallingEnabled(); // update the spn sst.updateSpnDisplay(); // Show both spn & plmn String spn = mBundle.getString(CarrierConfigManager.KEY_CARRIER_NAME_STRING); String plmn = mBundle.getStringArray(CarrierConfigManager.KEY_PNN_OVERRIDE_STRING_ARRAY)[0]; plmn = plmn.split("\\s*,\\s*")[0]; Bundle b = getExtrasFromLastSpnUpdateIntent(); assertThat(b.getString(TelephonyManager.EXTRA_SPN)).isEqualTo(spn); assertThat(b.getBoolean(TelephonyManager.EXTRA_SHOW_SPN)).isTrue(); assertThat(b.getString(TelephonyManager.EXTRA_PLMN)).isEqualTo(plmn); assertThat(b.getBoolean(TelephonyManager.EXTRA_SHOW_PLMN)).isTrue(); } @Test public void testUpdateSpnDisplay_spnNotEmptyAndWifiCallingEnabled_showSpnOnly() { // GSM phone Loading Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +14 −4 Original line number Diff line number Diff line Loading @@ -2737,9 +2737,13 @@ public class ServiceStateTracker extends Handler { // EXTRA_PLMN = plmn // 4) No service due to power off, aka airplane mode // EXTRA_SHOW_PLMN = false // EXTRA_SHOW_PLMN = true // EXTRA_PLMN = null // 5) Airplane mode but connected to WiFi with WFC disabled // EXTRA_SHOW_PLMN = true // EXTRA_PLMN = plmn IccRecords iccRecords = mIccRecords; int rule = getCarrierNameDisplayBitmask(mSS); boolean noService = false; Loading Loading @@ -2772,10 +2776,16 @@ public class ServiceStateTracker extends Handler { if (DBG) log("updateSpnDisplay: rawPlmn = " + plmn); } else { // Power off state, such as airplane mode, show plmn as "No service" // unless connected to WiFi with WFC disabled, then show plmn showPlmn = true; if (mPhone.getImsPhone() != null && !mPhone.getImsPhone().isWifiCallingEnabled() && mSS.getDataNetworkType() == TelephonyManager.NETWORK_TYPE_IWLAN) { plmn = mSS.getOperatorAlpha(); } else { plmn = Resources.getSystem() .getText(com.android.internal.R.string.lockscreen_carrier_default) .toString(); } if (DBG) log("updateSpnDisplay: radio is off w/ showPlmn=" + showPlmn + " plmn=" + plmn); } Loading
tests/telephonytests/src/com/android/internal/telephony/ServiceStateTrackerTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -2439,6 +2439,34 @@ public class ServiceStateTrackerTest extends TelephonyTest { assertThat(b.getBoolean(TelephonyManager.EXTRA_SHOW_PLMN)).isTrue(); } @Test public void testUpdateSpnDisplay_flightModeNoWifiCalling_showSpnAndPlmn() { // GSM phone doReturn(true).when(mPhone).isPhoneTypeGsm(); // Flight mode and connected to WiFI doReturn(ServiceState.STATE_POWER_OFF).when(mServiceState).getVoiceRegState(); doReturn(ServiceState.STATE_POWER_OFF).when(mServiceState).getDataRegState(); doReturn(TelephonyManager.NETWORK_TYPE_IWLAN).when(mServiceState).getDataNetworkType(); doReturn(mServiceState).when(mSST).getServiceState(); // wifi-calling is disable doReturn(false).when(mPhone).isWifiCallingEnabled(); // update the spn sst.updateSpnDisplay(); // Show both spn & plmn String spn = mBundle.getString(CarrierConfigManager.KEY_CARRIER_NAME_STRING); String plmn = mBundle.getStringArray(CarrierConfigManager.KEY_PNN_OVERRIDE_STRING_ARRAY)[0]; plmn = plmn.split("\\s*,\\s*")[0]; Bundle b = getExtrasFromLastSpnUpdateIntent(); assertThat(b.getString(TelephonyManager.EXTRA_SPN)).isEqualTo(spn); assertThat(b.getBoolean(TelephonyManager.EXTRA_SHOW_SPN)).isTrue(); assertThat(b.getString(TelephonyManager.EXTRA_PLMN)).isEqualTo(plmn); assertThat(b.getBoolean(TelephonyManager.EXTRA_SHOW_PLMN)).isTrue(); } @Test public void testUpdateSpnDisplay_spnNotEmptyAndWifiCallingEnabled_showSpnOnly() { // GSM phone Loading