package de.devland.masterpassword.ui.drawer; import android.annotation.SuppressLint; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AlertDialog; import android.view.View; import android.widget.RadioButton; import butterknife.ButterKnife; import de.devland.masterpassword.R; import de.devland.masterpassword.base.ui.BaseActivity; import de.devland.masterpassword.export.ExportType; import de.devland.masterpassword.export.Exporter; import lombok.RequiredArgsConstructor; /** * Created by David Kunzler on 06.10.2014. */ @RequiredArgsConstructor(suppressConstructorProperties = true) public class ExportDrawerItem extends SettingsDrawerItem { private final BaseActivity activity; private final DrawerLayout drawerLayout; @Override public int getImageRes() { return R.drawable.ic_drawer_export; } @Override public int getHeaderRes() { return R.string.caption_export; } @Override public void onClick(Context context) { if (drawerLayout != null) { drawerLayout.closeDrawers(); } FileFormatDialog dialog = new FileFormatDialog(); dialog.show(activity.getSupportFragmentManager(), null); } @SuppressLint("ValidFragment") public static class FileFormatDialog extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); View dialogView = View.inflate(getActivity(), R.layout.dialog_fileformat, null); final RadioButton jsonRadio = ButterKnife.findById(dialogView, R.id.radioButton_json); final RadioButton mpsitesRadio = ButterKnife .findById(dialogView, R.id.radioButton_mpsites); jsonRadio.setChecked(true); builder.setView(dialogView); builder.setTitle(R.string.title_exportFormat); builder.setNegativeButton(android.R.string.cancel, null); int okButtonTextResource = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT ? android.R.string.ok : R.string.caption_selectFolder; builder.setPositiveButton(okButtonTextResource, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Exporter exporter = new Exporter(); ExportType exportType = ExportType.JSON; if (mpsitesRadio.isChecked()) { exportType = ExportType.MPSITES; } exporter.startExportIntent(getActivity(), exportType); dismiss(); } }); return builder.create(); } } }