package com.varunmishra.dialogexample;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.InputType;
import android.util.Log;
import android.widget.DatePicker;
import android.widget.EditText;

import java.util.Calendar;

/**
 * Created by varun on 9/26/17.
 */

public class DialogSecond extends DialogFragment{
    public static final int DIALOG_ID_INPUT_DATE = 1;
    public static final int DIALOG_ID_INPUT_TEXT = 2;
    private static final String DIALOG_ID_KEY = "dialog_id";

    public static DialogSecond newInstance(int dialog_id) {
        DialogSecond frag = new DialogSecond();
        Bundle args = new Bundle();
        args.putInt(DIALOG_ID_KEY, dialog_id);
        frag.setArguments(args);
        return frag;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        int dialog_id = getArguments().getInt(DIALOG_ID_KEY);

        final Activity parent = getActivity();

        final Calendar now;
        int year, month, day;

        final EditText textEntryView;
        switch (dialog_id) {

            case DIALOG_ID_INPUT_DATE:

                now = Calendar.getInstance();
                year = now.get(Calendar.YEAR);
                month = now.get(Calendar.MONTH);
                day = now.get(Calendar.DAY_OF_MONTH);

                return new DatePickerDialog(parent,
                        new DatePickerDialog.OnDateSetListener() {
                            public void onDateSet(DatePicker view, int year,
                                                  int monthOfYear, int dayOfMonth) {
                                ((MainActivity) parent).onDateSet(
						           year, monthOfYear, dayOfMonth);
                            }
                        }, year, month, day);

            case DIALOG_ID_INPUT_TEXT:

                textEntryView = new EditText(parent);
                textEntryView.setInputType(InputType.TYPE_CLASS_TEXT);
                textEntryView.setHint(R.string.ui_text_input_hint);
                textEntryView.setLines(4);
                return new AlertDialog.Builder(parent)
                        .setTitle(R.string.ui_text_dialog_alert_title)
                        .setView(textEntryView)
                        .setPositiveButton("OK",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog,
                                                        int whichButton) {
                                        ((MainActivity) parent).onCommentSet(textEntryView.getText()
                                                .toString());

                                    }
                                })
                        .setNegativeButton("Cancel",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog,
                                                        int whichButton) {
                                        textEntryView.setText("");
                                    }
                                }).create();

            default:
                return null;
        }
    }
}
