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;
+ }
+
}