Loading src/com/android/contacts/ContactsDrawerActivity.java +3 −3 Original line number Diff line number Diff line Loading @@ -703,9 +703,9 @@ public abstract class ContactsDrawerActivity extends AppCompatContactsActivity i onAccountChosen(accounts.get(0), /* extraArgs */ null); return; } SelectAccountDialogFragment.show(getFragmentManager(), null, R.string.dialog_new_group_account, AccountListFilter.ACCOUNTS_GROUP_WRITABLE, /* extraArgs */ null, TAG_SELECT_ACCOUNT_DIALOG); SelectAccountDialogFragment.show(getFragmentManager(), R.string.dialog_new_group_account, AccountListFilter.ACCOUNTS_GROUP_WRITABLE, /* extraArgs */ null, TAG_SELECT_ACCOUNT_DIALOG); } @Override Loading src/com/android/contacts/common/interactions/ImportDialogFragment.java +13 −50 Original line number Diff line number Diff line Loading @@ -25,9 +25,6 @@ import android.content.Context; import android.content.DialogInterface; import android.content.res.Resources; import android.os.Bundle; import android.support.v4.text.TextUtilsCompat; import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; Loading @@ -54,12 +51,11 @@ import java.util.List; /** * An dialog invoked to import/export contacts. */ public class ImportDialogFragment extends DialogFragment implements SelectAccountDialogFragment.Listener { public class ImportDialogFragment extends DialogFragment { public static final String TAG = "ImportDialogFragment"; private static final String KEY_RES_ID = "resourceId"; private static final String KEY_SUBSCRIPTION_ID = "subscriptionId"; public static final String KEY_RES_ID = "resourceId"; public static final String KEY_SUBSCRIPTION_ID = "subscriptionId"; public static final String EXTRA_SIM_ONLY = "extraSimOnly"; Loading Loading @@ -178,21 +174,17 @@ public class ImportDialogFragment extends DialogFragment new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { boolean dismissDialog; final int resId = adapter.getItem(which).mChoiceResourceId; if (resId == R.string.import_from_sim) { dismissDialog = handleSimImportRequest(adapter.getItem(which).mSim); handleSimImportRequest(adapter.getItem(which).mSim); } else if (resId == R.string.import_from_vcf_file) { dismissDialog = handleImportRequest(resId, SimCard.NO_SUBSCRIPTION_ID); handleImportRequest(resId, SimCard.NO_SUBSCRIPTION_ID); } else { dismissDialog = true; Log.e(TAG, "Unexpected resource: " + getActivity().getResources().getResourceEntryName(resId)); } if (dismissDialog) { dialog.dismiss(); } } }; final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), getTheme()) Loading Loading @@ -238,18 +230,15 @@ public class ImportDialogFragment extends DialogFragment } } private boolean handleSimImportRequest(SimCard sim) { private void handleSimImportRequest(SimCard sim) { SimImportFragment.newInstance(sim.getSubscriptionId()).show(getFragmentManager(), "SimImport"); return true; } /** * Handle "import from SD". * * @return {@code true} if the dialog show be closed. {@code false} otherwise. */ private boolean handleImportRequest(int resId, int subscriptionId) { private void handleImportRequest(int resId, int subscriptionId) { // There are three possibilities: // - more than one accounts -> ask the user // - just one account -> use the account without asking the user Loading @@ -263,39 +252,13 @@ public class ImportDialogFragment extends DialogFragment args.putInt(KEY_RES_ID, resId); args.putInt(KEY_SUBSCRIPTION_ID, subscriptionId); SelectAccountDialogFragment.show( getFragmentManager(), this, R.string.dialog_new_contact_account, getFragmentManager(), R.string.dialog_new_contact_account, AccountListFilter.ACCOUNTS_CONTACT_WRITABLE, args); // In this case, because this DialogFragment is used as a target fragment to // SelectAccountDialogFragment, we can't close it yet. We close the dialog when // we get a callback from it. return false; } } else { AccountSelectionUtil.doImport(getActivity(), resId, (size == 1 ? accountList.get(0) : null), (CompatUtils.isMSIMCompatible() ? subscriptionId : -1)); return true; // Close the dialog. } /** * Called when an account is selected on {@link SelectAccountDialogFragment}. */ @Override public void onAccountChosen(AccountWithDataSet account, Bundle extraArgs) { AccountSelectionUtil.doImport(getActivity(), extraArgs.getInt(KEY_RES_ID), account, extraArgs.getInt(KEY_SUBSCRIPTION_ID)); // At this point the dialog is still showing (which is why we can use getActivity() above) // So close it. dismiss(); } @Override public void onAccountSelectorCancelled() { // See onAccountChosen() -- at this point the dialog is still showing. Close it. dismiss(); } private CharSequence getSimDescription(SimCard sim, int index) { Loading src/com/android/contacts/common/preference/ContactsPreferenceActivity.java +16 −2 Original line number Diff line number Diff line Loading @@ -34,15 +34,19 @@ import android.view.View; import android.view.ViewGroup; import com.android.contacts.common.R; import com.android.contacts.common.interactions.ImportDialogFragment; import com.android.contacts.common.list.ProviderStatusWatcher; import com.android.contacts.common.model.account.AccountWithDataSet; import com.android.contacts.common.preference.DisplayOptionsPreferenceFragment.ProfileListener; import com.android.contacts.common.preference.DisplayOptionsPreferenceFragment.ProfileQuery; import com.android.contacts.common.util.AccountSelectionUtil; import com.android.contacts.editor.SelectAccountDialogFragment; /** * Contacts settings. */ public final class ContactsPreferenceActivity extends PreferenceActivity implements ProfileListener { public final class ContactsPreferenceActivity extends PreferenceActivity implements ProfileListener, SelectAccountDialogFragment.Listener { private static final String TAG_ABOUT = "about_contacts"; private static final String TAG_DISPLAY_OPTIONS = "display_options"; Loading Loading @@ -210,4 +214,14 @@ public final class ContactsPreferenceActivity extends PreferenceActivity impleme getFragmentManager().findFragmentByTag(TAG_DISPLAY_OPTIONS); fragment.updateMyInfoPreference(hasProfile, displayName, contactId); } @Override public void onAccountChosen(AccountWithDataSet account, Bundle extraArgs) { AccountSelectionUtil.doImport(this, extraArgs.getInt(ImportDialogFragment .KEY_RES_ID), account, extraArgs.getInt(ImportDialogFragment.KEY_SUBSCRIPTION_ID)); } @Override public void onAccountSelectorCancelled() { } } src/com/android/contacts/editor/SelectAccountDialogFragment.java +7 −26 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.app.Fragment; import android.app.FragmentManager; import android.content.DialogInterface; import android.os.Bundle; Loading Loading @@ -48,22 +47,18 @@ public final class SelectAccountDialogFragment extends DialogFragment { * Show the dialog. * * @param fragmentManager {@link FragmentManager}. * @param targetFragment {@link Fragment} that implements {@link Listener}. * @param titleResourceId resource ID to use as the title. * @param accountListFilter account filter. * @param extraArgs Extra arguments, which will later be passed to * {@link Listener#onAccountChosen}. {@code null} will be converted to * {@link Bundle#EMPTY}. */ public static <F extends Fragment & Listener> void show(FragmentManager fragmentManager, F targetFragment, int titleResourceId, public static void show(FragmentManager fragmentManager, int titleResourceId, AccountListFilter accountListFilter, Bundle extraArgs) { show(fragmentManager, targetFragment, titleResourceId, accountListFilter, extraArgs, /* tag */ null); show(fragmentManager, titleResourceId, accountListFilter, extraArgs, /* tag */ null); } public static <F extends Fragment & Listener> void show(FragmentManager fragmentManager, F targetFragment, int titleResourceId, public static void show(FragmentManager fragmentManager, int titleResourceId, AccountListFilter accountListFilter, Bundle extraArgs, String tag) { final Bundle args = new Bundle(); args.putInt(KEY_TITLE_RES_ID, titleResourceId); Loading @@ -72,9 +67,6 @@ public final class SelectAccountDialogFragment extends DialogFragment { final SelectAccountDialogFragment instance = new SelectAccountDialogFragment(); instance.setArguments(args); if (targetFragment != null) { instance.setTargetFragment(targetFragment, 0); } instance.show(fragmentManager, tag); } Loading Loading @@ -115,14 +107,8 @@ public final class SelectAccountDialogFragment extends DialogFragment { } } @Override public void onSaveInstanceState(Bundle b) { setTargetFragment(null, -1); super.onSaveInstanceState(b); } /** * Calls {@link Listener#onAccountChosen} of {@code targetFragment}. * Calls {@link Listener#onAccountChosen}. */ private void onAccountSelected(AccountWithDataSet account) { final Listener listener = getListener(); Loading @@ -133,15 +119,10 @@ public final class SelectAccountDialogFragment extends DialogFragment { private Listener getListener() { Listener listener = null; final Fragment targetFragment = getTargetFragment(); if (targetFragment == null) { final Activity activity = getActivity(); if (activity != null && activity instanceof Listener) { listener = (Listener) activity; } } else if (targetFragment instanceof Listener) { listener = (Listener) targetFragment; } return listener; } Loading Loading
src/com/android/contacts/ContactsDrawerActivity.java +3 −3 Original line number Diff line number Diff line Loading @@ -703,9 +703,9 @@ public abstract class ContactsDrawerActivity extends AppCompatContactsActivity i onAccountChosen(accounts.get(0), /* extraArgs */ null); return; } SelectAccountDialogFragment.show(getFragmentManager(), null, R.string.dialog_new_group_account, AccountListFilter.ACCOUNTS_GROUP_WRITABLE, /* extraArgs */ null, TAG_SELECT_ACCOUNT_DIALOG); SelectAccountDialogFragment.show(getFragmentManager(), R.string.dialog_new_group_account, AccountListFilter.ACCOUNTS_GROUP_WRITABLE, /* extraArgs */ null, TAG_SELECT_ACCOUNT_DIALOG); } @Override Loading
src/com/android/contacts/common/interactions/ImportDialogFragment.java +13 −50 Original line number Diff line number Diff line Loading @@ -25,9 +25,6 @@ import android.content.Context; import android.content.DialogInterface; import android.content.res.Resources; import android.os.Bundle; import android.support.v4.text.TextUtilsCompat; import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; Loading @@ -54,12 +51,11 @@ import java.util.List; /** * An dialog invoked to import/export contacts. */ public class ImportDialogFragment extends DialogFragment implements SelectAccountDialogFragment.Listener { public class ImportDialogFragment extends DialogFragment { public static final String TAG = "ImportDialogFragment"; private static final String KEY_RES_ID = "resourceId"; private static final String KEY_SUBSCRIPTION_ID = "subscriptionId"; public static final String KEY_RES_ID = "resourceId"; public static final String KEY_SUBSCRIPTION_ID = "subscriptionId"; public static final String EXTRA_SIM_ONLY = "extraSimOnly"; Loading Loading @@ -178,21 +174,17 @@ public class ImportDialogFragment extends DialogFragment new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { boolean dismissDialog; final int resId = adapter.getItem(which).mChoiceResourceId; if (resId == R.string.import_from_sim) { dismissDialog = handleSimImportRequest(adapter.getItem(which).mSim); handleSimImportRequest(adapter.getItem(which).mSim); } else if (resId == R.string.import_from_vcf_file) { dismissDialog = handleImportRequest(resId, SimCard.NO_SUBSCRIPTION_ID); handleImportRequest(resId, SimCard.NO_SUBSCRIPTION_ID); } else { dismissDialog = true; Log.e(TAG, "Unexpected resource: " + getActivity().getResources().getResourceEntryName(resId)); } if (dismissDialog) { dialog.dismiss(); } } }; final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), getTheme()) Loading Loading @@ -238,18 +230,15 @@ public class ImportDialogFragment extends DialogFragment } } private boolean handleSimImportRequest(SimCard sim) { private void handleSimImportRequest(SimCard sim) { SimImportFragment.newInstance(sim.getSubscriptionId()).show(getFragmentManager(), "SimImport"); return true; } /** * Handle "import from SD". * * @return {@code true} if the dialog show be closed. {@code false} otherwise. */ private boolean handleImportRequest(int resId, int subscriptionId) { private void handleImportRequest(int resId, int subscriptionId) { // There are three possibilities: // - more than one accounts -> ask the user // - just one account -> use the account without asking the user Loading @@ -263,39 +252,13 @@ public class ImportDialogFragment extends DialogFragment args.putInt(KEY_RES_ID, resId); args.putInt(KEY_SUBSCRIPTION_ID, subscriptionId); SelectAccountDialogFragment.show( getFragmentManager(), this, R.string.dialog_new_contact_account, getFragmentManager(), R.string.dialog_new_contact_account, AccountListFilter.ACCOUNTS_CONTACT_WRITABLE, args); // In this case, because this DialogFragment is used as a target fragment to // SelectAccountDialogFragment, we can't close it yet. We close the dialog when // we get a callback from it. return false; } } else { AccountSelectionUtil.doImport(getActivity(), resId, (size == 1 ? accountList.get(0) : null), (CompatUtils.isMSIMCompatible() ? subscriptionId : -1)); return true; // Close the dialog. } /** * Called when an account is selected on {@link SelectAccountDialogFragment}. */ @Override public void onAccountChosen(AccountWithDataSet account, Bundle extraArgs) { AccountSelectionUtil.doImport(getActivity(), extraArgs.getInt(KEY_RES_ID), account, extraArgs.getInt(KEY_SUBSCRIPTION_ID)); // At this point the dialog is still showing (which is why we can use getActivity() above) // So close it. dismiss(); } @Override public void onAccountSelectorCancelled() { // See onAccountChosen() -- at this point the dialog is still showing. Close it. dismiss(); } private CharSequence getSimDescription(SimCard sim, int index) { Loading
src/com/android/contacts/common/preference/ContactsPreferenceActivity.java +16 −2 Original line number Diff line number Diff line Loading @@ -34,15 +34,19 @@ import android.view.View; import android.view.ViewGroup; import com.android.contacts.common.R; import com.android.contacts.common.interactions.ImportDialogFragment; import com.android.contacts.common.list.ProviderStatusWatcher; import com.android.contacts.common.model.account.AccountWithDataSet; import com.android.contacts.common.preference.DisplayOptionsPreferenceFragment.ProfileListener; import com.android.contacts.common.preference.DisplayOptionsPreferenceFragment.ProfileQuery; import com.android.contacts.common.util.AccountSelectionUtil; import com.android.contacts.editor.SelectAccountDialogFragment; /** * Contacts settings. */ public final class ContactsPreferenceActivity extends PreferenceActivity implements ProfileListener { public final class ContactsPreferenceActivity extends PreferenceActivity implements ProfileListener, SelectAccountDialogFragment.Listener { private static final String TAG_ABOUT = "about_contacts"; private static final String TAG_DISPLAY_OPTIONS = "display_options"; Loading Loading @@ -210,4 +214,14 @@ public final class ContactsPreferenceActivity extends PreferenceActivity impleme getFragmentManager().findFragmentByTag(TAG_DISPLAY_OPTIONS); fragment.updateMyInfoPreference(hasProfile, displayName, contactId); } @Override public void onAccountChosen(AccountWithDataSet account, Bundle extraArgs) { AccountSelectionUtil.doImport(this, extraArgs.getInt(ImportDialogFragment .KEY_RES_ID), account, extraArgs.getInt(ImportDialogFragment.KEY_SUBSCRIPTION_ID)); } @Override public void onAccountSelectorCancelled() { } }
src/com/android/contacts/editor/SelectAccountDialogFragment.java +7 −26 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.app.Fragment; import android.app.FragmentManager; import android.content.DialogInterface; import android.os.Bundle; Loading Loading @@ -48,22 +47,18 @@ public final class SelectAccountDialogFragment extends DialogFragment { * Show the dialog. * * @param fragmentManager {@link FragmentManager}. * @param targetFragment {@link Fragment} that implements {@link Listener}. * @param titleResourceId resource ID to use as the title. * @param accountListFilter account filter. * @param extraArgs Extra arguments, which will later be passed to * {@link Listener#onAccountChosen}. {@code null} will be converted to * {@link Bundle#EMPTY}. */ public static <F extends Fragment & Listener> void show(FragmentManager fragmentManager, F targetFragment, int titleResourceId, public static void show(FragmentManager fragmentManager, int titleResourceId, AccountListFilter accountListFilter, Bundle extraArgs) { show(fragmentManager, targetFragment, titleResourceId, accountListFilter, extraArgs, /* tag */ null); show(fragmentManager, titleResourceId, accountListFilter, extraArgs, /* tag */ null); } public static <F extends Fragment & Listener> void show(FragmentManager fragmentManager, F targetFragment, int titleResourceId, public static void show(FragmentManager fragmentManager, int titleResourceId, AccountListFilter accountListFilter, Bundle extraArgs, String tag) { final Bundle args = new Bundle(); args.putInt(KEY_TITLE_RES_ID, titleResourceId); Loading @@ -72,9 +67,6 @@ public final class SelectAccountDialogFragment extends DialogFragment { final SelectAccountDialogFragment instance = new SelectAccountDialogFragment(); instance.setArguments(args); if (targetFragment != null) { instance.setTargetFragment(targetFragment, 0); } instance.show(fragmentManager, tag); } Loading Loading @@ -115,14 +107,8 @@ public final class SelectAccountDialogFragment extends DialogFragment { } } @Override public void onSaveInstanceState(Bundle b) { setTargetFragment(null, -1); super.onSaveInstanceState(b); } /** * Calls {@link Listener#onAccountChosen} of {@code targetFragment}. * Calls {@link Listener#onAccountChosen}. */ private void onAccountSelected(AccountWithDataSet account) { final Listener listener = getListener(); Loading @@ -133,15 +119,10 @@ public final class SelectAccountDialogFragment extends DialogFragment { private Listener getListener() { Listener listener = null; final Fragment targetFragment = getTargetFragment(); if (targetFragment == null) { final Activity activity = getActivity(); if (activity != null && activity instanceof Listener) { listener = (Listener) activity; } } else if (targetFragment instanceof Listener) { listener = (Listener) targetFragment; } return listener; } Loading