Loading src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java +6 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import android.preference.PreferenceManager; import android.provider.Settings; import android.provider.Settings.Global; import android.provider.Settings.SettingNotFoundException; import android.service.carrier.CarrierIdentifier; import android.service.carrier.CarrierService; import android.service.euicc.EuiccProfileInfo; import android.service.euicc.EuiccService; Loading Loading @@ -728,6 +729,11 @@ public class SubscriptionInfoUpdater extends Handler { values.put(SubscriptionManager.DISPLAY_NAME, embeddedProfile.getNickname()); values.put(SubscriptionManager.NAME_SOURCE, SubscriptionManager.NAME_SOURCE_USER_INPUT); values.put(SubscriptionManager.PROFILE_CLASS, embeddedProfile.getProfileClass()); CarrierIdentifier cid = embeddedProfile.getCarrierIdentifier(); if (cid != null) { values.put(SubscriptionManager.CARRIER_ID, CarrierResolver.getCarrierIdFromIdentifier(mContext, cid)); } hasChanges = true; contentResolver.update(SubscriptionManager.CONTENT_URI, values, SubscriptionManager.ICC_ID + "=\"" + embeddedProfile.getIccid() + "\"", null); Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +12 −0 Original line number Diff line number Diff line Loading @@ -648,6 +648,8 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { if (mCarrierConfigLoaded) { mImsManager.updateImsServiceConfig(true); } // For compatibility with apps that still use deprecated intent sendImsServiceStateIntent(ImsManager.ACTION_IMS_SERVICE_UP); } private void stopListeningForCalls() { Loading @@ -662,6 +664,16 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { } mImsManager.close(); } // For compatibility with apps that still use deprecated intent sendImsServiceStateIntent(ImsManager.ACTION_IMS_SERVICE_DOWN); } private void sendImsServiceStateIntent(String intentAction) { Intent intent = new Intent(intentAction); intent.putExtra(ImsManager.EXTRA_PHONE_ID, mPhone.getPhoneId()); if (mPhone != null && mPhone.getContext() != null) { mPhone.getContext().sendBroadcast(intent); } } public void dispose() { Loading src/java/com/android/internal/telephony/uicc/UiccProfile.java +16 −4 Original line number Diff line number Diff line Loading @@ -338,16 +338,28 @@ public class UiccProfile extends IccCard { boolean preferCcName = config.getBoolean( CarrierConfigManager.KEY_CARRIER_NAME_OVERRIDE_BOOL, false); String ccName = config.getString(CarrierConfigManager.KEY_CARRIER_NAME_STRING); String newCarrierName = null; String currSpn = getServiceProviderName(); // If carrier config is priority, use it regardless - the preference // and the name were both set by the carrier, so this is safe; // otherwise, if the SPN is priority but we don't have one *and* we have // a name in carrier config, use the carrier config name as a backup. if (preferCcName || (TextUtils.isEmpty(getServiceProviderName()) && !TextUtils.isEmpty(ccName))) { if (preferCcName || (TextUtils.isEmpty(currSpn) && !TextUtils.isEmpty(ccName))) { newCarrierName = ccName; } else if (TextUtils.isEmpty(currSpn)) { // currSpn is empty and could not get name from carrier config; get name from carrier id Phone phone = PhoneFactory.getPhone(mPhoneId); if (phone != null) { newCarrierName = phone.getCarrierName(); } } if (!TextUtils.isEmpty(newCarrierName)) { if (mIccRecords != null) { mIccRecords.setServiceProviderName(ccName); mIccRecords.setServiceProviderName(newCarrierName); } mTelephonyManager.setSimOperatorNameForPhone(mPhoneId, ccName); mTelephonyManager.setSimOperatorNameForPhone(mPhoneId, newCarrierName); mOperatorBrandOverrideRegistrants.notifyRegistrants(); } Loading tests/telephonytests/src/android/telephony/ims/ImsServiceTest.java +0 −57 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package android.telephony.ims; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; import static junit.framework.Assert.fail; Loading @@ -39,14 +38,12 @@ import android.util.SparseArray; import androidx.test.runner.AndroidJUnit4; import com.android.ims.ImsManager; import com.android.ims.internal.IImsFeatureStatusCallback; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; /** * Unit tests for ImsService Loading Loading @@ -125,50 +122,6 @@ public class ImsServiceTest { assertTrue(mTestImsService.mTestMmTelFeature.isUtInterfaceCalled); } /** * Tests that the new ImsService still sends the IMS_SERVICE_UP broadcast when the feature is * set to ready. */ @Test @SmallTest public void testImsServiceUpSentCompat() throws RemoteException { mTestImsServiceBinder.createMmTelFeature(TEST_SLOT_0, mTestCallback); mTestImsService.mSpyMmTelFeature.sendSetFeatureState(ImsFeature.STATE_READY); ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); verify(mMockContext).sendBroadcast(intentCaptor.capture()); try { // Verify IMS_SERVICE_UP is sent assertNotNull(intentCaptor.getValue()); verifyServiceUpSent(intentCaptor.getValue()); } catch (IndexOutOfBoundsException e) { fail("Did not receive all intents"); } } /** * Tests that the new ImsService still sends the IMS_SERVICE_DOWN broadcast when the feature is * set to initializing. */ @Test @SmallTest public void testImsServiceDownSentCompatInitializing() throws RemoteException { mTestImsServiceBinder.createMmTelFeature(TEST_SLOT_0, mTestCallback); mTestImsService.mSpyMmTelFeature.sendSetFeatureState(ImsFeature.STATE_INITIALIZING); ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); verify(mMockContext).sendBroadcast(intentCaptor.capture()); try { // IMS_SERVICE_DOWN is sent when the service is STATE_INITIALIZING. assertNotNull(intentCaptor.getValue()); verifyServiceDownSent(intentCaptor.getValue()); } catch (IndexOutOfBoundsException e) { fail("Did not receive all intents"); } } /** * Tests that the ImsService will return the correct ImsFeatureConfiguration when queried. */ Loading @@ -185,14 +138,4 @@ public class ImsServiceTest { assertEquals(config, result); } private void verifyServiceDownSent(Intent testIntent) { assertEquals(ImsManager.ACTION_IMS_SERVICE_DOWN, testIntent.getAction()); assertEquals(TEST_SLOT_0, testIntent.getIntExtra(ImsManager.EXTRA_PHONE_ID, -1)); } private void verifyServiceUpSent(Intent testIntent) { assertEquals(ImsManager.ACTION_IMS_SERVICE_UP, testIntent.getAction()); assertEquals(TEST_SLOT_0, testIntent.getIntExtra(ImsManager.EXTRA_PHONE_ID, -1)); } } Loading
src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java +6 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import android.preference.PreferenceManager; import android.provider.Settings; import android.provider.Settings.Global; import android.provider.Settings.SettingNotFoundException; import android.service.carrier.CarrierIdentifier; import android.service.carrier.CarrierService; import android.service.euicc.EuiccProfileInfo; import android.service.euicc.EuiccService; Loading Loading @@ -728,6 +729,11 @@ public class SubscriptionInfoUpdater extends Handler { values.put(SubscriptionManager.DISPLAY_NAME, embeddedProfile.getNickname()); values.put(SubscriptionManager.NAME_SOURCE, SubscriptionManager.NAME_SOURCE_USER_INPUT); values.put(SubscriptionManager.PROFILE_CLASS, embeddedProfile.getProfileClass()); CarrierIdentifier cid = embeddedProfile.getCarrierIdentifier(); if (cid != null) { values.put(SubscriptionManager.CARRIER_ID, CarrierResolver.getCarrierIdFromIdentifier(mContext, cid)); } hasChanges = true; contentResolver.update(SubscriptionManager.CONTENT_URI, values, SubscriptionManager.ICC_ID + "=\"" + embeddedProfile.getIccid() + "\"", null); Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +12 −0 Original line number Diff line number Diff line Loading @@ -648,6 +648,8 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { if (mCarrierConfigLoaded) { mImsManager.updateImsServiceConfig(true); } // For compatibility with apps that still use deprecated intent sendImsServiceStateIntent(ImsManager.ACTION_IMS_SERVICE_UP); } private void stopListeningForCalls() { Loading @@ -662,6 +664,16 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { } mImsManager.close(); } // For compatibility with apps that still use deprecated intent sendImsServiceStateIntent(ImsManager.ACTION_IMS_SERVICE_DOWN); } private void sendImsServiceStateIntent(String intentAction) { Intent intent = new Intent(intentAction); intent.putExtra(ImsManager.EXTRA_PHONE_ID, mPhone.getPhoneId()); if (mPhone != null && mPhone.getContext() != null) { mPhone.getContext().sendBroadcast(intent); } } public void dispose() { Loading
src/java/com/android/internal/telephony/uicc/UiccProfile.java +16 −4 Original line number Diff line number Diff line Loading @@ -338,16 +338,28 @@ public class UiccProfile extends IccCard { boolean preferCcName = config.getBoolean( CarrierConfigManager.KEY_CARRIER_NAME_OVERRIDE_BOOL, false); String ccName = config.getString(CarrierConfigManager.KEY_CARRIER_NAME_STRING); String newCarrierName = null; String currSpn = getServiceProviderName(); // If carrier config is priority, use it regardless - the preference // and the name were both set by the carrier, so this is safe; // otherwise, if the SPN is priority but we don't have one *and* we have // a name in carrier config, use the carrier config name as a backup. if (preferCcName || (TextUtils.isEmpty(getServiceProviderName()) && !TextUtils.isEmpty(ccName))) { if (preferCcName || (TextUtils.isEmpty(currSpn) && !TextUtils.isEmpty(ccName))) { newCarrierName = ccName; } else if (TextUtils.isEmpty(currSpn)) { // currSpn is empty and could not get name from carrier config; get name from carrier id Phone phone = PhoneFactory.getPhone(mPhoneId); if (phone != null) { newCarrierName = phone.getCarrierName(); } } if (!TextUtils.isEmpty(newCarrierName)) { if (mIccRecords != null) { mIccRecords.setServiceProviderName(ccName); mIccRecords.setServiceProviderName(newCarrierName); } mTelephonyManager.setSimOperatorNameForPhone(mPhoneId, ccName); mTelephonyManager.setSimOperatorNameForPhone(mPhoneId, newCarrierName); mOperatorBrandOverrideRegistrants.notifyRegistrants(); } Loading
tests/telephonytests/src/android/telephony/ims/ImsServiceTest.java +0 −57 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package android.telephony.ims; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; import static junit.framework.Assert.fail; Loading @@ -39,14 +38,12 @@ import android.util.SparseArray; import androidx.test.runner.AndroidJUnit4; import com.android.ims.ImsManager; import com.android.ims.internal.IImsFeatureStatusCallback; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; /** * Unit tests for ImsService Loading Loading @@ -125,50 +122,6 @@ public class ImsServiceTest { assertTrue(mTestImsService.mTestMmTelFeature.isUtInterfaceCalled); } /** * Tests that the new ImsService still sends the IMS_SERVICE_UP broadcast when the feature is * set to ready. */ @Test @SmallTest public void testImsServiceUpSentCompat() throws RemoteException { mTestImsServiceBinder.createMmTelFeature(TEST_SLOT_0, mTestCallback); mTestImsService.mSpyMmTelFeature.sendSetFeatureState(ImsFeature.STATE_READY); ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); verify(mMockContext).sendBroadcast(intentCaptor.capture()); try { // Verify IMS_SERVICE_UP is sent assertNotNull(intentCaptor.getValue()); verifyServiceUpSent(intentCaptor.getValue()); } catch (IndexOutOfBoundsException e) { fail("Did not receive all intents"); } } /** * Tests that the new ImsService still sends the IMS_SERVICE_DOWN broadcast when the feature is * set to initializing. */ @Test @SmallTest public void testImsServiceDownSentCompatInitializing() throws RemoteException { mTestImsServiceBinder.createMmTelFeature(TEST_SLOT_0, mTestCallback); mTestImsService.mSpyMmTelFeature.sendSetFeatureState(ImsFeature.STATE_INITIALIZING); ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); verify(mMockContext).sendBroadcast(intentCaptor.capture()); try { // IMS_SERVICE_DOWN is sent when the service is STATE_INITIALIZING. assertNotNull(intentCaptor.getValue()); verifyServiceDownSent(intentCaptor.getValue()); } catch (IndexOutOfBoundsException e) { fail("Did not receive all intents"); } } /** * Tests that the ImsService will return the correct ImsFeatureConfiguration when queried. */ Loading @@ -185,14 +138,4 @@ public class ImsServiceTest { assertEquals(config, result); } private void verifyServiceDownSent(Intent testIntent) { assertEquals(ImsManager.ACTION_IMS_SERVICE_DOWN, testIntent.getAction()); assertEquals(TEST_SLOT_0, testIntent.getIntExtra(ImsManager.EXTRA_PHONE_ID, -1)); } private void verifyServiceUpSent(Intent testIntent) { assertEquals(ImsManager.ACTION_IMS_SERVICE_UP, testIntent.getAction()); assertEquals(TEST_SLOT_0, testIntent.getIntExtra(ImsManager.EXTRA_PHONE_ID, -1)); } }