package com.example.TreballFiGrau;

import java.util.ArrayList;

import com.squareup.picasso.Picasso;

import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

/** Adaptador de ListView universal, para www.jarroba.com
 * @author Ramon Invarato Menéndez
 */
public class Llista_AdapterNoticies extends BaseAdapter {

    public static ArrayList<Noticia> entradas;
    private int R_layout_IdView; 
    public Context contexto;
    public static int nombreNoticies;
    public static String seguentNoticia;
    public static boolean categoria=false;

    public Llista_AdapterNoticies(Context contexto, int R_layout_IdView) {
        super(); 
        this.contexto = contexto;
        this.R_layout_IdView = R_layout_IdView;
        
        iniciarNoticiesMain();
        Log.d("aki", "Adapterssssss");
        
        
        
    }
    
    public void llegirNoticiesServer(){
    	Log.d("aki", "ultimaNoticia"+seguentNoticia);
    	new CargarNoticiesWeb().execute(seguentNoticia);
    	
    	//nombreNoticies = entradas.size()-1;
    	Log.d("aki", "nombreNoticies"+nombreNoticies);
	}
  

    public static void iniciarNoticiesMain(){
    	entradas = new ArrayList<Noticia>();
    	nombreNoticies=0;
        seguentNoticia="1";
        new CargarNoticiesWebInici().execute(seguentNoticia);
    }
    
    public static void reiniciarLlista(){
    	entradas = new ArrayList<Noticia>(); 
    }
    
    @Override
    public View getView(int posicion, View view, ViewGroup pariente) {
    	nombreNoticies = entradas.size();
    	Log.d("aki", "nombre notici: "+nombreNoticies);
    	Log.d("aki", "posi: "+posicion);
    	Log.d("aki", "cate: "+categoria);
    	if((posicion == nombreNoticies-1) && (categoria!=true)){
    		Log.d("aki", "dintre if get item"+posicion);
    		llegirNoticiesServer();
    	}
        if (view == null) {
        	LayoutInflater vi = (LayoutInflater) contexto.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
            view = vi.inflate(R_layout_IdView, null); 
        }
        onEntrada (entradas.get(posicion), view);
        return view; 
    }

    @Override
    public int getCount() {
        return entradas.size();
    }

    @Override
    public Noticia getItem(int posicion) {
    	Log.d("aki", "get itemm");
    	Log.d("aki", "posi"+posicion);
        return entradas.get(posicion);
    }

    @Override
    public long getItemId(int posicion) {
        return posicion;
    }

    /** Devuelve cada una de las entradas con cada una de las vistas a la que debe de ser asociada
     * @param entrada La entrada que será la asociada a la view. La entrada es del tipo del paquete/handler
     * @param view View particular que contendrá los datos del paquete/handler
     */
    public void onEntrada (Object entrada, View view){
    	Log.d("aki", "Adapters3");
    	Noticia n = (Noticia)entrada;
    	if (entrada != null) {
    		
            TextView titol = (TextView) view.findViewById(R.id.textViewTitol); 
            if (titol != null) 
            	titol.setText(((Noticia) entrada).titol); 

            TextView contingut = (TextView) view.findViewById(R.id.textViewContingut); 
            if (contingut != null)
            	contingut.setText(((Noticia) entrada).contingut); 
            
            
            TextView user = (TextView) view.findViewById(R.id.textViewUser); 
            if (user != null) 
            	user.setText(((Noticia) entrada).autor); 
      
            ImageView imagen_entrada = (ImageView) view.findViewById(R.id.imageViewNoticia); 
            if (imagen_entrada != null)
            	Log.d("aki", "contingut: "+n.fotos);
            	if(!n.fotos.get(0).equals("missingFoto")){
            		
            		//Picasso.with(contexto).load(n.fotos.get(0)).into(imagen_entrada);
            		String url = "http://tfg-sharenews.rhcloud.com/media/";
            		Picasso.with(contexto).load(url+n.fotos.get(0)).into(imagen_entrada);
            	}
            	else{
            		Log.d("aki", "entra al else "+n.fotos);
            		imagen_entrada.setImageResource(((Noticia) entrada).idImatge);
            	}
            	//Picasso.with(contexto).load(n.fotos.get(0)).into(imagen_entrada);
            	
        }
    }
    

}
