package com.ichi2.anki.dialogs; import android.os.Bundle; import android.os.Message; import com.afollestad.materialdialogs.MaterialDialog; import com.ichi2.anki.CollectionHelper; import com.ichi2.anki.DeckPicker; import com.ichi2.anki.R; import java.io.File; public class DeckPickerExportCompleteDialog extends AsyncDialogFragment { public static DeckPickerExportCompleteDialog newInstance(String exportPath) { DeckPickerExportCompleteDialog f = new DeckPickerExportCompleteDialog(); Bundle args = new Bundle(); args.putString("exportPath", exportPath); f.setArguments(args); return f; } @Override public MaterialDialog onCreateDialog(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final String exportPath = getArguments().getString("exportPath"); return new MaterialDialog.Builder(getActivity()) .title(getNotificationTitle()) .content(getNotificationMessage()) .iconAttr(R.attr.dialogSendIcon) .positiveText(R.string.dialog_ok) .negativeText(R.string.dialog_cancel) .callback(new MaterialDialog.ButtonCallback() { @Override public void onPositive(MaterialDialog dialog) { ((DeckPicker) getActivity()).dismissAllDialogFragments(); ((DeckPicker) getActivity()).emailFile(exportPath); } @Override public void onNegative(MaterialDialog dialog) { ((DeckPicker) getActivity()).dismissAllDialogFragments(); } }) .show(); } public String getNotificationTitle() { return res().getString(R.string.export_successful_title); } public String getNotificationMessage() { if (CollectionHelper.getCurrentAnkiDroidDirectory(getContext()).equals(CollectionHelper.getDefaultAnkiDroidDirectory())) { // Show a relative path if the collection is stored in the default location File exportFile = new File("AnkiDroid/export/", new File(getArguments().getString("exportPath")).getName()); return res().getString(R.string.export_successful, exportFile.getPath()); } else { // Show the absolute path if the user has messed with the AnkiDroid directory return res().getString(R.string.export_successful, getArguments().getString("exportPath")); } } @Override public Message getDialogHandlerMessage() { Message msg = Message.obtain(); msg.what = DialogHandler.MSG_SHOW_EXPORT_COMPLETE_DIALOG; Bundle b = new Bundle(); b.putString("exportPath", getArguments().getString("exportPath")); msg.setData(b); return msg; } }