package com.example.reproductordelistasmultimedia;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    // Preferencias
    SharedPreferences prefs;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Activar las Preferencias
        prefs = PreferenceManager.getDefaultSharedPreferences(this);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            Preferencias(null);
            return true;
        }
        if (id == R.id.acercaDe) {
            lanzarAcercaDe(null);
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    public void ListaVideos(View view) {

        if (compruebaConexion(this)==false)
            if (prefs.getBoolean("videos", true)) {
            Toast.makeText(this, "No hay acceso a internet", Toast.LENGTH_SHORT).show();
            }
            else {
                Toast.makeText(this, "Acceso local a la lista", Toast.LENGTH_SHORT).show();
                Intent i = new Intent(this, ListaVideosLocal.class);
                startActivity(i);
            }
        else {
            if (prefs.getBoolean("videos", true)) {

                Toast.makeText(this, "Acceso online a la lista", Toast.LENGTH_SHORT).show();
                Intent i = new Intent(this, ListaVideosOnline.class);
                startActivity(i);
            }
            else {
                Toast.makeText(this, "Acceso local a la lista", Toast.LENGTH_SHORT).show();
                Intent i = new Intent(this, ListaVideosLocal.class);
                startActivity(i);
            }
        }
    }

    public void lanzarAcercaDe(View view) {
        Intent i = new Intent(this, AcercaDe.class);
        startActivity(i);
    }

    public void Preferencias(View view) {
        Intent i = new Intent(this, Preferencias.class);
        startActivity(i);
    }

    public void lanzarStreaming(View view) {
        if (compruebaConexion(this)==false)
            {
                Toast.makeText(this, "No hay acceso a internet", Toast.LENGTH_SHORT).show();
            }
        else
            {
                Intent i = new Intent(this, ListaCanalesTv.class);
                startActivity(i);
            }
    }

    public void salir(View view) {
        finish();
    }

    // Función para comprobar la conexión
    public static boolean compruebaConexion(Context context) {
        boolean connected = false;
        ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        // Recupera todas las redes (tanto móviles como wifi)
        NetworkInfo[] redes = connec.getAllNetworkInfo();
        for (int i = 0; i < redes.length; i++) {
            // Si alguna red tiene conexión, se devuelve true
            if (redes[i].getState() == NetworkInfo.State.CONNECTED) {
                connected = true;
            }
        }
        return connected;
    }

}