package academic.th;

import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

public class MensajesActivity extends AppCompatActivity implements View.OnClickListener{


    Spinner spineraniov;
    Spinner spinermesv;

    Button consultarMensajes;
    TextView resultadoMensajes;
    String codigo_alu = "";
    String aniov="";
    String mesv="";
    String basedatos="";

    ///Urls
    String ip = "http://lasalle.fin.ec/zacciones";
    String consultar_mensaje_id = ip + "/obtener_mensajes_por_id.php";
    String respuesta;
    ObtenerWebService3 hiloconexion;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mensajes);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

        //////  Spinner Año  ////
        spineraniov=(Spinner)findViewById(R.id.spinneranio);
        List lista= new ArrayList();
        lista.add("2016");
        lista.add("2017");

        ArrayAdapter arreglo=new ArrayAdapter(this,android.R.layout.simple_dropdown_item_1line,lista);
        arreglo.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spineraniov.setAdapter(arreglo);

        //////  Spinner Mes  ////
        spinermesv=(Spinner)findViewById(R.id.spinnermes);
        List listam= new ArrayList();
        listam.add("Enero");
        listam.add("Febrero");
        listam.add("Marzo");
        listam.add("Abril");
        listam.add("Mayo");
        listam.add("Junio");
        listam.add("Julio");
        listam.add("Agosto");
        listam.add("Septiembre");
        listam.add("Octubre");
        listam.add("Noviembre");
        listam.add("Diciembre");

        ArrayAdapter arreglom=new ArrayAdapter(this,android.R.layout.simple_dropdown_item_1line,listam);
        arreglom.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinermesv.setAdapter(arreglom);

        //////////  para consulta mensajes  ///////

        consultarMensajes = (Button) findViewById(R.id.BtnConsultarMensajes);
        //idalumno=(EditText)findViewById(R.id.editcalumnobd);
        resultadoMensajes = (TextView) findViewById(R.id.resultadoMensajes);
        consultarMensajes.setOnClickListener(this);

        ////////////// CONSULTA PARAMETROS SQLITE codigo del alumno

        AdminSQLite admin = new AdminSQLite(this, "administracion4", null, 1);
        SQLiteDatabase bd = admin.getWritableDatabase();
        //String sclaumno1=calumno1.getText().toString();

        Cursor fila = bd.rawQuery("select calumno_alu,cpadre_alu,colegio_alu from alumno", null);

        if (fila.moveToFirst()) {

            codigo_alu = fila.getString(0);
            basedatos = fila.getString(2);


        } else {

            Toast.makeText(this, "El Alumno No esta ingresado", Toast.LENGTH_SHORT).show();
            bd.close();
        }





    }

    @Override
    public void onClick(View v) {

        switch (v.getId()) {

            case R.id.BtnConsultarMensajes:
                hiloconexion = new ObtenerWebService3();

                //////////  Consulta Año y Mes  escojido spinner  /////////
                aniov=spineraniov.getSelectedItem().toString();
                mesv=spinermesv.getSelectedItem().toString();

                String cadenaauxiliar = consultar_mensaje_id + "?codigo_alu="+codigo_alu.toString()+"&anio="+aniov.toString()+"&mes="+mesv.toString()+"&basedatos="+basedatos.toString();
                Toast.makeText(this, cadenaauxiliar, Toast.LENGTH_SHORT).show();
                hiloconexion.execute(cadenaauxiliar, "2");


            default:
                break;
        }

    }

    /////   ****** obtener webservice  ******* //////////

    public class ObtenerWebService3 extends AsyncTask<String, Void, String> {

        @Override
        protected void onPreExecute() {
            resultadoMensajes.setText("");
            super.onPreExecute();
        }

        @Override
        protected void onPostExecute(String s) {
            resultadoMensajes.setText(s);
            //super.onPostExecute(s);
        }

        @Override
        protected void onProgressUpdate(Void... values) {
            super.onProgressUpdate(values);
        }

        @Override
        protected void onCancelled(String s) {
            super.onCancelled(s);
        }

        @Override
        protected String doInBackground(String... params) {
            String cadena = params[0];
            URL url = null;
            String devuelve = "";

//devuelve="entro";
            if (params[1] == "2") {

                try {

                    url = new URL(cadena);
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //Abrir la conexión
                    connection.setRequestProperty("User-Agent", "Mozilla/5.0" +
                            " (Linux; Android 19; es-ES) Ejemplo HTTP");
                    //connection.setHeader("content-type", "application/json");

                    int respuesta = connection.getResponseCode();
                    StringBuilder result = new StringBuilder();

                    if (respuesta == HttpURLConnection.HTTP_OK) {
                        InputStream in = new BufferedInputStream(connection.getInputStream());  // preparo la cadena de entrada
                        BufferedReader reader = new BufferedReader(new InputStreamReader(in));  // la introduzco en un BufferedReader
                        // El siguiente proceso lo hago porque el JSONOBject necesita un String y tengo
                        // que tranformar el BufferedReader a String. Esto lo hago a traves de un
                        // StringBuilder.
                        String line;
                        while ((line = reader.readLine()) != null) {
                            result.append(line);        // Paso toda la entrada al StringBuilder
                        }

                        //Creamos un objeto JSONObject para poder acceder a los atributos (campos) del objeto.
                        JSONObject respuestaJSON = new JSONObject(result.toString());   //Creo un JSONObject a partir del StringBuilder pasado a cadena
                        //Accedemos al vector de resultados

                        String resultJSON = respuestaJSON.getString("estado");  // estado es el nombre del campo en el JSON

                        //devuelve="entro:";

                        if (resultJSON.equals("1")) {      // hay un alumno que mostrar

                            JSONArray alumnosJSON = respuestaJSON.getJSONArray("alumno");   // estado es el nombre del campo en el JSON
                            //devuelve=alumnosJSON.getJSONObject(0).getString("anio_agd");
                            for (int i = 0; i <= alumnosJSON.length(); i++) {

                                //devuelve=devuelve+String.valueOf(alumnosJSON.length());
                                devuelve = devuelve + alumnosJSON.getJSONObject(i).getString("anio_agd") + "-" +
                                        alumnosJSON.getJSONObject(i).getString("mes_agd") + "-" +
                                        alumnosJSON.getJSONObject(i).getString("dia_agd") + "  :  " +
                                        alumnosJSON.getJSONObject(i).getString("actividad_agd") + "\n";

                            }


                            /*devuelve = devuelve + respuestaJSON.getJSONObject("alumno").getString("serial_alu") + " " +
                                    respuestaJSON.getJSONObject("alumno").getString("nombre_alu") + " " +
                                    respuestaJSON.getJSONObject("alumno").getString("apellido_alu") + "\n";  */

                        } else if (resultJSON.equals("2")) {
                            devuelve = result.toString();
                        }

                    }

                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (JSONException e) {
                    e.printStackTrace();
                }

                return devuelve;


            }


            return null;
        }
    }

    public void irmenuprincipal2(View v){

        Intent i = new Intent(this,InicioActivity.class);
        startActivity(i);
    }


}
