package com.battlelancer.seriesguide.ui.dialogs;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatDialogFragment;
/**
* A dialog displaying a list of options to choose from, saving the selected option to the given
* preference upon selection by the user.
*/
public class SingleChoiceDialogFragment extends AppCompatDialogFragment {
public static SingleChoiceDialogFragment newInstance(int itemArrayResource,
int itemDataArrayResource, int selectedItemIndex, String preferenceKey,
int dialogTitleResource) {
SingleChoiceDialogFragment f = new SingleChoiceDialogFragment();
Bundle args = new Bundle();
args.putInt("itemarray", itemArrayResource);
args.putInt("itemdata", itemDataArrayResource);
args.putInt("selected", selectedItemIndex);
args.putString("prefkey", preferenceKey);
args.putInt("dialogtitle", dialogTitleResource);
f.setArguments(args);
return f;
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final CharSequence[] items = getResources().getStringArray(
getArguments().getInt("itemarray"));
return new AlertDialog.Builder(getActivity())
.setTitle(getString(getArguments().getInt("dialogtitle")))
.setSingleChoiceItems(items, getArguments().getInt("selected"),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
final SharedPreferences.Editor editor = PreferenceManager
.getDefaultSharedPreferences(getActivity()).edit();
editor.putString(
getArguments().getString("prefkey"),
(getResources().getStringArray(getArguments().getInt(
"itemdata")))[item]);
editor.apply();
dismiss();
}
}).create();
}
}