Additional changes to SubscriptionManager API as per API council.

bug: 17575308
Change-Id: Idd98aa46c15a9219ccf28091c62602ac8bf16c62
diff --git a/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java b/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java
index 0de0be3..fc6e460 100644
--- a/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java
+++ b/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java
@@ -69,6 +69,8 @@
             Contacts.LOOKUP_KEY
     };
 
+    private SubscriptionManager mSubscriptionManager;
+
     /** Preferred way to show this dialog */
     public static void show(FragmentManager fragmentManager, boolean contactsAreAvailable,
             Class callingActivity) {
@@ -112,19 +114,24 @@
         final TelephonyManager manager =
                 (TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE);
 
+        mSubscriptionManager = SubscriptionManager.from(getActivity());
+
         if (res.getBoolean(R.bool.config_allow_import_from_sdcard)) {
             adapter.add(new AdapterEntry(getString(R.string.import_from_sdcard),
                     R.string.import_from_sdcard));
         }
         if (manager != null && res.getBoolean(R.bool.config_allow_sim_import)) {
-            final List<SubscriptionInfo> subInfoRecords = getAllSubInfoList();
-            if (subInfoRecords.size() == 1) {
-                adapter.add(new AdapterEntry(getString(R.string.import_from_sim),
-                        R.string.import_from_sim, subInfoRecords.get(0).getSubscriptionId()));
-            } else {
-                for (SubscriptionInfo record : subInfoRecords) {
-                    adapter.add(new AdapterEntry(getSubDescription(record),
-                            R.string.import_from_sim, record.getSubscriptionId()));
+            final List<SubscriptionInfo> subInfoRecords =
+                    mSubscriptionManager.getActiveSubscriptionInfoList();
+            if (subInfoRecords != null) {
+                if (subInfoRecords.size() == 1) {
+                    adapter.add(new AdapterEntry(getString(R.string.import_from_sim),
+                            R.string.import_from_sim, subInfoRecords.get(0).getSubscriptionId()));
+                } else {
+                    for (SubscriptionInfo record : subInfoRecords) {
+                        adapter.add(new AdapterEntry(getSubDescription(record),
+                                R.string.import_from_sim, record.getSubscriptionId()));
+                    }
                 }
             }
         }
@@ -272,27 +279,6 @@
         dismiss();
     }
 
-    /**
-     * Return the same values as {@link SubscriptionManager#getAllSubscriptionInfoList()} without relying
-     * on any hidden methods.
-     */
-    // TODO: replace with a method that doesn't make assumptions about the number of SIM slots
-    private static List<SubscriptionInfo> getAllSubInfoList() {
-        final List<SubscriptionInfo> subInfoRecords0 = SubscriptionManager.getSubscriptionInfoUsingSlotId(0);
-        final List<SubscriptionInfo> subInfoRecords1 = SubscriptionManager.getSubscriptionInfoUsingSlotId(1);
-        if (subInfoRecords0 == null && subInfoRecords1 != null) {
-            return subInfoRecords1;
-        }
-        if (subInfoRecords0 != null && subInfoRecords1 == null) {
-            return subInfoRecords0;
-        }
-        if (subInfoRecords0 == null && subInfoRecords1 == null) {
-            return Collections.EMPTY_LIST;
-        }
-        subInfoRecords0.addAll(subInfoRecords1);
-        return subInfoRecords0;
-    }
-
     private String getSubDescription(SubscriptionInfo record) {
         CharSequence name = record.getDisplayName();
         if (TextUtils.isEmpty(record.getNumber())) {
@@ -314,7 +300,7 @@
         }
 
         public AdapterEntry(String label, int resId) {
-            this(label, resId, SubscriptionManager.INVALID_SUB_ID);
+            this(label, resId, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
         }
     }
 }
diff --git a/src/com/android/contacts/common/util/AccountSelectionUtil.java b/src/com/android/contacts/common/util/AccountSelectionUtil.java
index da30e89..c378041 100644
--- a/src/com/android/contacts/common/util/AccountSelectionUtil.java
+++ b/src/com/android/contacts/common/util/AccountSelectionUtil.java
@@ -74,7 +74,7 @@
                 int resId) {
             // Subscription id is only needed for importing from SIM card. We can safely ignore
             // its value for SD card importing.
-            this(context, accountList, resId, SubscriptionManager.INVALID_SUB_ID);
+            this(context, accountList, resId, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
         }
 
         public void onClick(DialogInterface dialog, int which) {