package com.wigwamlabs.veckify; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.widget.CheckBox; import com.wigwamlabs.veckify.db.AlarmEntry; public class TtsSettingsFragment extends DialogFragment { private static final String ARG_ALARM_ID = "alarmid"; private static final String ARG_ALARM_ENTRY = "alarmentry"; private CheckBox mTellTimeCheckbox; static TtsSettingsFragment create(long alarmId, AlarmEntry entry) { final TtsSettingsFragment fragment = new TtsSettingsFragment(); final Bundle bundle = new Bundle(); bundle.putLong(ARG_ALARM_ID, alarmId); bundle.putParcelable(ARG_ALARM_ENTRY, entry); fragment.setArguments(bundle); return fragment; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Activity activity = getActivity(); final View view = LayoutInflater.from(activity).inflate(R.layout.dialog_tts, null, false); mTellTimeCheckbox = (CheckBox) view.findViewById(R.id.tellTimeCheckbox); final Bundle bundle = getArguments(); final AlarmEntry entry = bundle.getParcelable(ARG_ALARM_ENTRY); mTellTimeCheckbox.setChecked(entry.getTellTime()); return new AlertDialog.Builder(activity) .setView(view) .create(); } @Override public void onDismiss(DialogInterface dialog) { super.onDismiss(dialog); final MainActivity activity = (MainActivity) getActivity(); if (activity == null) { // happens if fragment is destroyed, e.g. at screen rotation return; } final Bundle bundle = getArguments(); final long alarmId = bundle.getLong(ARG_ALARM_ID); final AlarmEntry entry = bundle.getParcelable(ARG_ALARM_ENTRY); entry.setTellTime(mTellTimeCheckbox.isChecked()); activity.onAlarmEntryChanged(alarmId, entry, true); } }