package edu.whs.spin2018.baoapp.views.spiel;

import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

import org.jetbrains.annotations.NotNull;

import edu.whs.spin2018.baoapp.R;
import edu.whs.spin2018.baoapp.utilities.ViewUtils;

public class SpielVerlassenDialog extends DialogFragment {

    private SpielVerlassenListener spielVerlassenListener;

    /**
     * Repräsentiert einen SpielVerlassenDialog.
     */
    public SpielVerlassenDialog() {
        // Benötigter leerer default Konstruktor
    }

    /**
     * Erstellt einen Dialog der aufgerufen wird, falls das Spiel verlassen werden soll.
     * @return einen SpielVerlassenDialog
     */
    public static SpielVerlassenDialog newInstance() {
        return new SpielVerlassenDialog();
    }

    /**
     * Setzt einen SpielVerlassenListener.
     * @param spielVerlassenListener der zu setzende SpielVerlassenListener.
     */
    public void setzeSpielVerlassenListener(SpielVerlassenListener spielVerlassenListener) {
        this.spielVerlassenListener = spielVerlassenListener;
    }

    /**
     * Gibt den gesetzten SpielVerlassenListener.
     * @return den gesetzten SpielVerlassenListener
     */
    public SpielVerlassenListener gibSpielVerlassenListener() {
        return spielVerlassenListener;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle saveInstaceState) {
        setStyle(DialogFragment.STYLE_NO_TITLE, R.style.DialogAbgerundeteEckenBrown);
        return inflater.inflate(R.layout.dialog_spiel_verlassen, container);
    }

    @Override
    public void onCancel(DialogInterface dialog) {
        super.onCancel(dialog);
        dismiss();
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setStyle(DialogFragment.STYLE_NO_TITLE, R.style.DialogAbgerundeteEckenBrown);
        setCancelable(false);
    }

    @Override
    public void onViewCreated(@NotNull View view, @Nullable Bundle saveInstanceState) {
        super.onViewCreated(view, saveInstanceState);

        Button btnJa = view.findViewById(R.id.spieleinstellungen_btn_ja);
        Button btnNein = view.findViewById(R.id.spieleinstellungen_btn_nein);

        ViewUtils.setzeSchatten(btnJa);
        ViewUtils.setzeSchatten(btnNein);

        btnJa.setOnClickListener(view1 -> spielVerlassenListener.onSpielVerlassen());
        btnNein.setOnClickListener(view12 -> dismiss());
    }

    @FunctionalInterface
    public interface SpielVerlassenListener {
        void onSpielVerlassen();
    }
}
