Loading src/java/com/android/internal/telephony/GsmCdmaPhone.java +3 −1 Original line number Diff line number Diff line Loading @@ -2331,7 +2331,9 @@ public class GsmCdmaPhone extends Phone { mUiccApplication.set(null); } if (newUiccApplication != null) { if (DBG) logd("New Uicc application found"); if (DBG) { logd("New Uicc application found. type = " + newUiccApplication.getType()); } mUiccApplication.set(newUiccApplication); mIccRecords.set(newUiccApplication.getIccRecords()); registerForIccRecordEvents(); Loading src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java +13 −10 Original line number Diff line number Diff line Loading @@ -16,14 +16,12 @@ package com.android.internal.telephony; import static android.Manifest.permission.READ_PHONE_STATE; import android.app.ActivityManagerNative; import android.app.IUserSwitchObserver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; Loading @@ -37,23 +35,25 @@ import android.os.ServiceManager; import android.os.UserHandle; import android.preference.PreferenceManager; import android.provider.Settings; import android.telephony.Rlog; import android.telephony.CarrierConfigManager; import android.telephony.SubscriptionManager; import android.telephony.Rlog; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.text.TextUtils; import com.android.internal.telephony.uicc.IccCardProxy; import com.android.internal.telephony.uicc.IccConstants; import com.android.internal.telephony.uicc.IccFileHandler; import com.android.internal.telephony.uicc.IccRecords; import com.android.internal.telephony.uicc.IccUtils; import android.text.TextUtils; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.List; import static android.Manifest.permission.READ_PHONE_STATE; /** *@hide */ Loading Loading @@ -381,7 +381,10 @@ public class SubscriptionInfoUpdater extends Handler { } if (SubscriptionManager.isValidSubscriptionId(subId)) { String operator = records.getOperatorNumeric(); TelephonyManager tm = TelephonyManager.getDefault(); String operator = tm.getSimOperatorNumericForPhone(slotId); if (operator != null) { if (subId == SubscriptionController.getInstance().getDefaultSubId()) { MccTable.updateMccMncConfiguration(mContext, operator, false); Loading @@ -390,7 +393,7 @@ public class SubscriptionInfoUpdater extends Handler { } else { logd("EVENT_RECORDS_LOADED Operator name is null"); } TelephonyManager tm = TelephonyManager.getDefault(); String msisdn = tm.getLine1Number(subId); ContentResolver contentResolver = mContext.getContentResolver(); Loading src/java/com/android/internal/telephony/uicc/SIMRecords.java +1 −1 Original line number Diff line number Diff line Loading @@ -1458,7 +1458,7 @@ public class SIMRecords extends IccRecords { mTelephonyManager.setSimOperatorNumericForPhone( mParentApp.getPhoneId(), operator); final SubscriptionController subController = SubscriptionController.getInstance(); subController.setMccMnc(operator, subController.getDefaultSmsSubId()); subController.setMccMnc(operator, subController.getDefaultSubId()); } else { log("onAllRecordsLoaded empty 'gsm.sim.operator.numeric' skipping"); } Loading tests/telephonytests/src/com/android/internal/telephony/SubscriptionInfoUpdaterTest.java +27 −9 Original line number Diff line number Diff line Loading @@ -25,20 +25,18 @@ import android.os.AsyncResult; import android.os.HandlerThread; import android.os.Message; import android.telephony.CarrierConfigManager; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.test.mock.MockContentProvider; import android.test.mock.MockContentResolver; import android.telephony.SubscriptionInfo; import com.android.internal.telephony.uicc.IccFileHandler; import android.test.suitebuilder.annotation.SmallTest; import com.android.internal.telephony.uicc.IccRecords; import static com.android.internal.telephony.TelephonyTestUtils.waitForMs; import com.android.internal.telephony.uicc.IccCardProxy; import com.android.internal.telephony.uicc.IccFileHandler; import com.android.internal.telephony.uicc.IccRecords; import com.android.internal.telephony.uicc.IccUtils; import static org.mockito.Mockito.*; import org.junit.After; import org.junit.Assert; import org.junit.Before; Loading @@ -50,8 +48,24 @@ import org.mockito.stubbing.Answer; import java.util.Arrays; import java.util.HashMap; import static com.android.internal.telephony.TelephonyTestUtils.waitForMs; import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyBoolean; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; public class SubscriptionInfoUpdaterTest extends TelephonyTest { private SubscriptionInfoUpdater mSubscriptionInfoUpdaterUT; private static final int FAKE_SUB_ID = 1; private static final String FAKE_PLMN = "123456"; private TelephonyManager mTelephonyManager; private IccRecords mIccRecord; @Mock private UserInfo mUserInfo; Loading Loading @@ -83,7 +97,7 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest { @Override public void onLooperPrepared() { mSubscriptionInfoUpdaterUT = new SubscriptionInfoUpdater(mContext, new Phone[]{mPhone}, new SubscriptionInfoUpdater(mContext, new Phone[]{mPhone}, new CommandsInterface[]{mSimulatedCommands}); setReady(true); } Loading @@ -101,7 +115,7 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest { replaceInstance(SubscriptionInfoUpdater.class, "PROJECT_SIM_NUM", null, SubscriptionInfoUpdater.STATUS_SIM1_INSERTED); TelephonyManager mTelephonyManager = (TelephonyManager) mContext mTelephonyManager = (TelephonyManager) mContext .getSystemService(Context.TELEPHONY_SERVICE); doReturn(SubscriptionInfoUpdater.STATUS_SIM1_INSERTED) .when(mTelephonyManager).getSimCount(); Loading @@ -109,6 +123,7 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest { .when(mTelephonyManager).getPhoneCount(); doReturn(mUserInfo).when(mIActivityManager).getCurrentUser(); doReturn(new int[]{FAKE_SUB_ID}).when(mSubscriptionController).getSubId(0); mContentProvider = new FakeSubscriptionContentProvider(); ((MockContentResolver) mContext.getContentResolver()).addProvider( SubscriptionManager.CONTENT_URI.getAuthority(), Loading Loading @@ -153,7 +168,7 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest { Intent mIntent = new Intent(TelephonyIntents.ACTION_SIM_STATE_CHANGED); mIntent.putExtra(IccCardConstants.INTENT_KEY_ICC_STATE, IccCardConstants.INTENT_VALUE_ICC_UNKNOWN); mIntent.putExtra(PhoneConstants.PHONE_KEY, 1); mIntent.putExtra(PhoneConstants.PHONE_KEY, FAKE_SUB_ID); mContext.sendBroadcast(mIntent); Loading Loading @@ -209,6 +224,7 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest { doReturn(null).when(mSubscriptionController) .getSubInfoUsingSlotIdWithCheck(eq(0), anyBoolean(), anyString()); doReturn("89012604200000000000").when(mIccRecord).getIccId(); doReturn(FAKE_PLMN).when(mTelephonyManager).getSimOperatorNumericForPhone(0); Intent mIntent = new Intent(IccCardProxy.ACTION_INTERNAL_SIM_STATE_CHANGED); mIntent.putExtra(IccCardConstants.INTENT_KEY_ICC_STATE, IccCardConstants.INTENT_VALUE_ICC_LOADED); Loading @@ -217,9 +233,11 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest { mContext.sendBroadcast(mIntent); waitForMs(100); SubscriptionManager mSubscriptionManager = SubscriptionManager.from(mContext); verify(mTelephonyManager).getSimOperatorNumericForPhone(0); verify(mSubscriptionManager, times(1)).addSubscriptionInfoRecord( eq("89012604200000000000"), eq(0)); verify(mSubscriptionController, times(1)).notifySubscriptionInfoChanged(); verify(mSubscriptionController, times(1)).setMccMnc(FAKE_PLMN, FAKE_SUB_ID); CarrierConfigManager mConfigManager = (CarrierConfigManager) mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE); verify(mConfigManager, times(1)).updateConfigForPhoneId(eq(0), Loading Loading
src/java/com/android/internal/telephony/GsmCdmaPhone.java +3 −1 Original line number Diff line number Diff line Loading @@ -2331,7 +2331,9 @@ public class GsmCdmaPhone extends Phone { mUiccApplication.set(null); } if (newUiccApplication != null) { if (DBG) logd("New Uicc application found"); if (DBG) { logd("New Uicc application found. type = " + newUiccApplication.getType()); } mUiccApplication.set(newUiccApplication); mIccRecords.set(newUiccApplication.getIccRecords()); registerForIccRecordEvents(); Loading
src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java +13 −10 Original line number Diff line number Diff line Loading @@ -16,14 +16,12 @@ package com.android.internal.telephony; import static android.Manifest.permission.READ_PHONE_STATE; import android.app.ActivityManagerNative; import android.app.IUserSwitchObserver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; Loading @@ -37,23 +35,25 @@ import android.os.ServiceManager; import android.os.UserHandle; import android.preference.PreferenceManager; import android.provider.Settings; import android.telephony.Rlog; import android.telephony.CarrierConfigManager; import android.telephony.SubscriptionManager; import android.telephony.Rlog; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.text.TextUtils; import com.android.internal.telephony.uicc.IccCardProxy; import com.android.internal.telephony.uicc.IccConstants; import com.android.internal.telephony.uicc.IccFileHandler; import com.android.internal.telephony.uicc.IccRecords; import com.android.internal.telephony.uicc.IccUtils; import android.text.TextUtils; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.List; import static android.Manifest.permission.READ_PHONE_STATE; /** *@hide */ Loading Loading @@ -381,7 +381,10 @@ public class SubscriptionInfoUpdater extends Handler { } if (SubscriptionManager.isValidSubscriptionId(subId)) { String operator = records.getOperatorNumeric(); TelephonyManager tm = TelephonyManager.getDefault(); String operator = tm.getSimOperatorNumericForPhone(slotId); if (operator != null) { if (subId == SubscriptionController.getInstance().getDefaultSubId()) { MccTable.updateMccMncConfiguration(mContext, operator, false); Loading @@ -390,7 +393,7 @@ public class SubscriptionInfoUpdater extends Handler { } else { logd("EVENT_RECORDS_LOADED Operator name is null"); } TelephonyManager tm = TelephonyManager.getDefault(); String msisdn = tm.getLine1Number(subId); ContentResolver contentResolver = mContext.getContentResolver(); Loading
src/java/com/android/internal/telephony/uicc/SIMRecords.java +1 −1 Original line number Diff line number Diff line Loading @@ -1458,7 +1458,7 @@ public class SIMRecords extends IccRecords { mTelephonyManager.setSimOperatorNumericForPhone( mParentApp.getPhoneId(), operator); final SubscriptionController subController = SubscriptionController.getInstance(); subController.setMccMnc(operator, subController.getDefaultSmsSubId()); subController.setMccMnc(operator, subController.getDefaultSubId()); } else { log("onAllRecordsLoaded empty 'gsm.sim.operator.numeric' skipping"); } Loading
tests/telephonytests/src/com/android/internal/telephony/SubscriptionInfoUpdaterTest.java +27 −9 Original line number Diff line number Diff line Loading @@ -25,20 +25,18 @@ import android.os.AsyncResult; import android.os.HandlerThread; import android.os.Message; import android.telephony.CarrierConfigManager; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.test.mock.MockContentProvider; import android.test.mock.MockContentResolver; import android.telephony.SubscriptionInfo; import com.android.internal.telephony.uicc.IccFileHandler; import android.test.suitebuilder.annotation.SmallTest; import com.android.internal.telephony.uicc.IccRecords; import static com.android.internal.telephony.TelephonyTestUtils.waitForMs; import com.android.internal.telephony.uicc.IccCardProxy; import com.android.internal.telephony.uicc.IccFileHandler; import com.android.internal.telephony.uicc.IccRecords; import com.android.internal.telephony.uicc.IccUtils; import static org.mockito.Mockito.*; import org.junit.After; import org.junit.Assert; import org.junit.Before; Loading @@ -50,8 +48,24 @@ import org.mockito.stubbing.Answer; import java.util.Arrays; import java.util.HashMap; import static com.android.internal.telephony.TelephonyTestUtils.waitForMs; import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyBoolean; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; public class SubscriptionInfoUpdaterTest extends TelephonyTest { private SubscriptionInfoUpdater mSubscriptionInfoUpdaterUT; private static final int FAKE_SUB_ID = 1; private static final String FAKE_PLMN = "123456"; private TelephonyManager mTelephonyManager; private IccRecords mIccRecord; @Mock private UserInfo mUserInfo; Loading Loading @@ -83,7 +97,7 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest { @Override public void onLooperPrepared() { mSubscriptionInfoUpdaterUT = new SubscriptionInfoUpdater(mContext, new Phone[]{mPhone}, new SubscriptionInfoUpdater(mContext, new Phone[]{mPhone}, new CommandsInterface[]{mSimulatedCommands}); setReady(true); } Loading @@ -101,7 +115,7 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest { replaceInstance(SubscriptionInfoUpdater.class, "PROJECT_SIM_NUM", null, SubscriptionInfoUpdater.STATUS_SIM1_INSERTED); TelephonyManager mTelephonyManager = (TelephonyManager) mContext mTelephonyManager = (TelephonyManager) mContext .getSystemService(Context.TELEPHONY_SERVICE); doReturn(SubscriptionInfoUpdater.STATUS_SIM1_INSERTED) .when(mTelephonyManager).getSimCount(); Loading @@ -109,6 +123,7 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest { .when(mTelephonyManager).getPhoneCount(); doReturn(mUserInfo).when(mIActivityManager).getCurrentUser(); doReturn(new int[]{FAKE_SUB_ID}).when(mSubscriptionController).getSubId(0); mContentProvider = new FakeSubscriptionContentProvider(); ((MockContentResolver) mContext.getContentResolver()).addProvider( SubscriptionManager.CONTENT_URI.getAuthority(), Loading Loading @@ -153,7 +168,7 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest { Intent mIntent = new Intent(TelephonyIntents.ACTION_SIM_STATE_CHANGED); mIntent.putExtra(IccCardConstants.INTENT_KEY_ICC_STATE, IccCardConstants.INTENT_VALUE_ICC_UNKNOWN); mIntent.putExtra(PhoneConstants.PHONE_KEY, 1); mIntent.putExtra(PhoneConstants.PHONE_KEY, FAKE_SUB_ID); mContext.sendBroadcast(mIntent); Loading Loading @@ -209,6 +224,7 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest { doReturn(null).when(mSubscriptionController) .getSubInfoUsingSlotIdWithCheck(eq(0), anyBoolean(), anyString()); doReturn("89012604200000000000").when(mIccRecord).getIccId(); doReturn(FAKE_PLMN).when(mTelephonyManager).getSimOperatorNumericForPhone(0); Intent mIntent = new Intent(IccCardProxy.ACTION_INTERNAL_SIM_STATE_CHANGED); mIntent.putExtra(IccCardConstants.INTENT_KEY_ICC_STATE, IccCardConstants.INTENT_VALUE_ICC_LOADED); Loading @@ -217,9 +233,11 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest { mContext.sendBroadcast(mIntent); waitForMs(100); SubscriptionManager mSubscriptionManager = SubscriptionManager.from(mContext); verify(mTelephonyManager).getSimOperatorNumericForPhone(0); verify(mSubscriptionManager, times(1)).addSubscriptionInfoRecord( eq("89012604200000000000"), eq(0)); verify(mSubscriptionController, times(1)).notifySubscriptionInfoChanged(); verify(mSubscriptionController, times(1)).setMccMnc(FAKE_PLMN, FAKE_SUB_ID); CarrierConfigManager mConfigManager = (CarrierConfigManager) mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE); verify(mConfigManager, times(1)).updateConfigForPhoneId(eq(0), Loading