summaryrefslogtreecommitdiffstats
path: root/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/contacts/common/interactions/ImportExportDialogFragment.java')
-rw-r--r--src/com/android/contacts/common/interactions/ImportExportDialogFragment.java30
1 files changed, 23 insertions, 7 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);
}
}
}