package com.kuxhausen.huemore.alarm;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import com.kuxhausen.huemore.R;
import com.kuxhausen.huemore.persistence.Definitions.InternalArguments;
public class RepeatDialogFragment extends DialogFragment implements
DialogInterface.OnMultiChoiceClickListener {
private boolean[] mCheckedItems = new boolean[7];
private OnRepeatSelectedListener mResultListener;
public interface OnRepeatSelectedListener {
public void onRepeatSelected(DaysOfWeek repeats);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Bundle args = this.getArguments();
if (args != null && args.containsKey(InternalArguments.DAYS_OF_WEEK_AS_BYTE)) {
DaysOfWeek prior = new DaysOfWeek(args.getByte(InternalArguments.DAYS_OF_WEEK_AS_BYTE));
for (int i = 0; i < 7; i++) {
mCheckedItems[i] = prior.isDaySet(i + 1);
}
}
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMultiChoiceItems(R.array.repeat_days, mCheckedItems, this);
builder.setPositiveButton(R.string.accept, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
DaysOfWeek days = new DaysOfWeek();
for (int i = 0; i < 7; i++) {
days.setDay(i + 1, mCheckedItems[i]);
}
mResultListener.onRepeatSelected(days);
}
}).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
// User cancelled the dialog
}
});
// Create the AlertDialog object and return it
return builder.create();
}
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
mCheckedItems[which] = isChecked;
}
public void setResultListener(OnRepeatSelectedListener listener) {
mResultListener = listener;
}
}