diff options
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/contacts/common/interactions/ImportExportDialogFragment.java | 30 | ||||
-rw-r--r-- | src/com/android/contacts/common/util/AccountSelectionUtil.java | 2 |
2 files changed, 24 insertions, 8 deletions
diff --git a/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java b/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java index 1ea4a5b9..0de0be30 100644 --- a/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java +++ b/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java @@ -69,8 +69,6 @@ public class ImportExportDialogFragment extends DialogFragment Contacts.LOOKUP_KEY }; - private SubscriptionManager mSubscriptionManager; - /** Preferred way to show this dialog */ public static void show(FragmentManager fragmentManager, boolean contactsAreAvailable, Class callingActivity) { @@ -114,15 +112,12 @@ public class ImportExportDialogFragment extends DialogFragment 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 = - mSubscriptionManager.getActiveSubscriptionInfoList(); + 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())); @@ -277,6 +272,27 @@ public class ImportExportDialogFragment extends DialogFragment 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())) { @@ -298,7 +314,7 @@ public class ImportExportDialogFragment extends DialogFragment } public AdapterEntry(String label, int resId) { - this(label, resId, SubscriptionManager.INVALID_SUBSCRIPTION_ID); + this(label, resId, SubscriptionManager.INVALID_SUB_ID); } } } diff --git a/src/com/android/contacts/common/util/AccountSelectionUtil.java b/src/com/android/contacts/common/util/AccountSelectionUtil.java index c3780410..da30e89a 100644 --- a/src/com/android/contacts/common/util/AccountSelectionUtil.java +++ b/src/com/android/contacts/common/util/AccountSelectionUtil.java @@ -74,7 +74,7 @@ public class AccountSelectionUtil { 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_SUBSCRIPTION_ID); + this(context, accountList, resId, SubscriptionManager.INVALID_SUB_ID); } public void onClick(DialogInterface dialog, int which) { |