package org.example.proyecto;

import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.support.v7.app.AlertDialog;

/**
 * Created by Víctor on 23/10/2015.
 */
public class PreferenciasFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener,
        Preference.OnPreferenceClickListener{

    CheckBoxPreference alarmas, correr, tenis;
    public boolean aux_correr=false,aux_tenis=false,actualizado=false;

    AdaptadorCiudades adaptador = MainActivity.adaptador;

    SharedPreferences pref = MainActivity.pref;

    Context context;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferencias);

        Preference button = (Preference) findPreference("borrar_ciudades");
        button.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
            @Override
            public boolean onPreferenceClick(Preference preference) {

                AlertDialog.Builder builder_borrar = new AlertDialog.Builder(context);
                builder_borrar.setMessage("¿Estás seguro?");

                // Add the buttons
                builder_borrar.setPositiveButton("Aceptar", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        // User clicked OK button
                        adaptador.borrarVectorCiudades(getActivity(), context);
                    }
                });

                builder_borrar.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        // User cancelled the dialog
                        dialog.dismiss();
                    }
                });

                // Create the AlertDialog
                builder_borrar.create().show();

                return true;
            }
        });

        alarmas = (CheckBoxPreference) findPreference("desactivar_alarmas");
        correr = (CheckBoxPreference) findPreference("activar_correr");
        tenis = (CheckBoxPreference) findPreference("activar_tenis");

        getPreferenceScreen().findPreference("desactivar_alarmas").setOnPreferenceClickListener(this);

        boolean desactivar_alarmas = pref.getBoolean("desactivar_alarmas", true);

        getPreferenceScreen().findPreference("activar_correr").setEnabled(!desactivar_alarmas);
        getPreferenceScreen().findPreference("activar_tenis").setEnabled(!desactivar_alarmas);


    }

    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {

        boolean desactivar_alarmas = sharedPreferences.getBoolean("desactivar_alarmas", true);

        getPreferenceScreen().findPreference("activar_correr").setEnabled(!desactivar_alarmas);
        getPreferenceScreen().findPreference("activar_tenis").setEnabled(!desactivar_alarmas);

    }

    @Override
    public void onResume() {
        super.onResume();
        getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    public void onPause() {
        getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
        super.onPause();
    }

    @Override
    public boolean onPreferenceClick(Preference preference) {

        if (alarmas.isChecked()) {

            aux_correr = pref.getBoolean("activar_correr", true);
            aux_tenis = pref.getBoolean("activar_tenis", true);

            correr.setChecked(!alarmas.isChecked());
            tenis.setChecked(!alarmas.isChecked());

            actualizado = false;
        }

        if (findPreference("activar_correr").isEnabled()
                && findPreference("activar_tenis").isEnabled() && !actualizado){
            correr.setChecked(aux_correr);
            tenis.setChecked(aux_tenis);
            actualizado = true;
        }

        return false;
    }
}


