Migrated search for SubInfoRecord to Utils.
Bug: 18293625
Bug: 18293168
Bug: 18291246
Change-Id: Iad01a01d9b60ca010943447b00c1394471e93d5a
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 8d6e55c..e150d75 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -60,6 +60,8 @@
import android.provider.ContactsContract.Profile;
import android.provider.ContactsContract.RawContacts;
import android.service.persistentdata.PersistentDataBlockManager;
+import android.telephony.SubInfoRecord;
+import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
@@ -981,4 +983,42 @@
}
return sb.toString();
}
+
+ /**
+ * finds a record with subId.
+ * Since the number of SIMs are few, an array is fine.
+ */
+ public static SubInfoRecord findRecordBySubId(final int subId) {
+ final List<SubInfoRecord> subInfoList = SubscriptionManager.getActiveSubInfoList();
+ final int subInfoLength = subInfoList.size();
+
+ for (int i = 0; i < subInfoLength; ++i) {
+ final SubInfoRecord sir = subInfoList.get(i);
+ if (sir != null && sir.getSubscriptionId() == subId) {
+ return sir;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * finds a record with slotId.
+ * Since the number of SIMs are few, an array is fine.
+ */
+ public static SubInfoRecord findRecordBySlotId(final int slotId) {
+ final List<SubInfoRecord> subInfoList = SubscriptionManager.getActiveSubInfoList();
+ final int subInfoLength = subInfoList.size();
+
+ for (int i = 0; i < subInfoLength; ++i) {
+ final SubInfoRecord sir = subInfoList.get(i);
+ if (sir.getSimSlotIndex() == slotId) {
+ //Right now we take the first subscription on a SIM.
+ return sir;
+ }
+ }
+
+ return null;
+ }
+
}
diff --git a/src/com/android/settings/sim/SimSettings.java b/src/com/android/settings/sim/SimSettings.java
index f09fb2b..eeb83d4 100644
--- a/src/com/android/settings/sim/SimSettings.java
+++ b/src/com/android/settings/sim/SimSettings.java
@@ -172,7 +172,7 @@
mSelectableSubInfos = new ArrayList<SubInfoRecord>();
mNumSims = 0;
for (int i = 0; i < numSlots; ++i) {
- final SubInfoRecord sir = findRecordBySlotId(i);
+ final SubInfoRecord sir = Utils.findRecordBySlotId(i);
mSimCards.addPreference(new SimPreference(getActivity(), sir, i));
mAvailableSubInfos.add(sir);
if (sir != null) {
@@ -192,7 +192,7 @@
mNumSims = 0;
mAvailableSubInfos = new ArrayList<SubInfoRecord>(numSlots);
for (int i = 0; i < numSlots; ++i) {
- final SubInfoRecord sir = findRecordBySlotId(i);
+ final SubInfoRecord sir = Utils.findRecordBySlotId(i);
mAvailableSubInfos.add(sir);
if (sir != null) {
mNumSims++;
@@ -223,46 +223,9 @@
updateSmsValues();
}
- /**
- * finds a record with subId.
- * Since the number of SIMs are few, an array is fine.
- */
- private SubInfoRecord findRecordBySubId(final int subId) {
- final int availableSubInfoLength = mAvailableSubInfos.size();
-
- for (int i = 0; i < availableSubInfoLength; ++i) {
- final SubInfoRecord sir = mAvailableSubInfos.get(i);
- if (sir != null && sir.getSubscriptionId() == subId) {
- return sir;
- }
- }
-
- return null;
- }
-
- /**
- * finds a record with slotId.
- * Since the number of SIMs are few, an array is fine.
- */
- private SubInfoRecord findRecordBySlotId(final int slotId) {
- if (mSubInfoList != null){
- final int availableSubInfoLength = mSubInfoList.size();
-
- for (int i = 0; i < availableSubInfoLength; ++i) {
- final SubInfoRecord sir = mSubInfoList.get(i);
- if (sir.getSimSlotIndex() == slotId) {
- //Right now we take the first subscription on a SIM.
- return sir;
- }
- }
- }
-
- return null;
- }
-
private void updateSmsValues() {
final Preference simPref = (Preference) findPreference(KEY_SMS);
- final SubInfoRecord sir = findRecordBySubId(SubscriptionManager.getDefaultSmsSubId());
+ final SubInfoRecord sir = Utils.findRecordBySubId(SubscriptionManager.getDefaultSmsSubId());
simPref.setTitle(R.string.sms_messages_title);
if (mSubInfoList.size() == 1) {
simPref.setSummary(mSubInfoList.get(0).getDisplayName());
@@ -276,7 +239,7 @@
private void updateCellularDataValues() {
final Preference simPref = findPreference(KEY_CELLULAR_DATA);
- final SubInfoRecord sir = findRecordBySubId(SubscriptionManager.getDefaultDataSubId());
+ final SubInfoRecord sir = Utils.findRecordBySubId(SubscriptionManager.getDefaultDataSubId());
simPref.setTitle(R.string.cellular_data_title);
if (mSubInfoList.size() == 1) {
simPref.setSummary(mSubInfoList.get(0).getDisplayName());
@@ -576,14 +539,14 @@
mSubInfoRecord.setDisplayName(displayName);
SubscriptionManager.setDisplayName(displayName, subId,
SubscriptionManager.NAME_SOURCE_USER_INPUT);
- findRecordBySubId(subId).setDisplayName(displayName);
+ Utils.findRecordBySubId(subId).setDisplayName(displayName);
final int colorSelected = colorSpinner.getSelectedItemPosition();
int subscriptionId = mSubInfoRecord.getSubscriptionId();
int color = colorArr[colorSelected];
mSubInfoRecord.setColor(color);
SubscriptionManager.setColor(color, subscriptionId);
- findRecordBySubId(subscriptionId).setColor(color);
+ Utils.findRecordBySubId(subscriptionId).setColor(color);
updateAllOptions();
update();