Additional changes to SubscriptionManager API as per API council.

bug: 17575308
Change-Id: I7773965094510999bfce8fc6b2b31ba6ce496653
diff --git a/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java b/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java
index 0de0be3..1ea4a5b 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,12 +114,15 @@
         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();
+            final List<SubscriptionInfo> subInfoRecords =
+                    mSubscriptionManager.getActiveSubscriptionInfoList();
             if (subInfoRecords.size() == 1) {
                 adapter.add(new AdapterEntry(getString(R.string.import_from_sim),
                         R.string.import_from_sim, subInfoRecords.get(0).getSubscriptionId()));
@@ -272,27 +277,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 +298,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) {