package com.example.android.recyclerplayground;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.widget.NumberPicker;


public class NumberPickerDialog extends AlertDialog implements DialogInterface.OnClickListener {

    public interface OnNumberSelectedListener {
        public void onNumberSelected(int value);
    }

    private NumberPicker mPicker;
    private OnNumberSelectedListener mNumberSelectedListener;

    public NumberPickerDialog(Context context) {
        super(context);
        mPicker = new NumberPicker(context);
    }

    protected NumberPickerDialog(Context context, int theme) {
        super(context, theme);
    }

    protected NumberPickerDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {
        super(context, cancelable, cancelListener);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setButton(BUTTON_NEGATIVE, getContext().getString(android.R.string.cancel), this);
        setButton(BUTTON_POSITIVE, getContext().getString(android.R.string.ok), this);
        setView(mPicker);

        //Install contents
        super.onCreate(savedInstanceState);
    }

    public void setOnNumberSelectedListener(OnNumberSelectedListener listener) {
        mNumberSelectedListener = listener;
    }

    public void setPickerRange(int minValue, int maxValue) {
        mPicker.setMinValue(minValue);
        mPicker.setMaxValue(maxValue);
    }

    @Override
    public void onClick(DialogInterface dialog, int which) {
        if (which == BUTTON_POSITIVE && mNumberSelectedListener != null) {
            mNumberSelectedListener.onNumberSelected(mPicker.getValue());
        }
    }
}