package com.blablahlabs.excelsior; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectOutput; import java.io.ObjectOutputStream; import java.util.ArrayList; import org.androidtitlan.ac.sharemenu.ShareMenu; import android.app.ListActivity; import android.content.Intent; import android.content.res.Configuration; import android.graphics.Typeface; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.webkit.WebView; import android.widget.ImageView; import android.widget.ListView; import android.widget.RadioButton; import android.widget.TextView; import android.widget.Toast; import com.blablahlabs.excelsior.asynctasks.AsyncNotes; import com.blablahlabs.excelsior.beans.ExcelsiorBean; import com.blablahlabs.excelsior.beans.notas.NotaOpinion; import com.blablahlabs.excelsior.beans.notas.NotaSeccion; import com.blablahlabs.excelsior.recursos.IU; import com.blablahlabs.excelsior.recursos.Recursos; import com.blablahlabs.excelsior.recursos.Recursos.Seccion; import com.commonsware.cwac.merge.MergeAdapter; import com.blablahlabs.excelsior.ImageLoader; public class Home extends ListActivity { @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); } @Override protected void onDestroy() { ImageLoader mImageLoader = new ImageLoader(this); mImageLoader.clearCache(); super.onDestroy(); } private MergeAdapter mMergeAdapter=null; private Seccion seccion = Seccion.ULTIMA_HORA; public static ExcelsiorBean excelsiorBean; private MergeAdapter lastNewsAdapter; private NotaAdapterOpinion nAdapterOpinion; private MergeAdapter mNationalMergeAdapter; private MergeAdapter mGlobalMergeAdapter; private MergeAdapter mMoneyAdapter; private MergeAdapter mCommunityAdapter; private MergeAdapter mAdrenalineAdapter; private MergeAdapter mFunctionAdapter; private MergeAdapter mOpinionAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); IU.setCustomTitle(this); setContentView(R.layout.main); setupViews(); updateNews(); } private void setupViews() { final RadioButton rLastNews = (RadioButton)findViewById(R.id.last_hour); final RadioButton rNational = (RadioButton)findViewById(R.id.national); final RadioButton rGlobal = (RadioButton)findViewById(R.id.global); final RadioButton rMoney = (RadioButton)findViewById(R.id.money); final RadioButton rCommunity = (RadioButton)findViewById(R.id.community); final RadioButton rAdrenaline = (RadioButton)findViewById(R.id.adrenaline); final RadioButton rFunction = (RadioButton)findViewById(R.id.show); final RadioButton rOpinion = (RadioButton)findViewById(R.id.opinion); rLastNews.setChecked(true); rLastNews.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (((RadioButton) v).isChecked()) { showMainList(); } } }); rNational.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (((RadioButton) v).isChecked()) { showNational(); } } }); rGlobal.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (((RadioButton) v).isChecked()) { showGlobal(); } } }); rMoney.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (((RadioButton) v).isChecked()) { showMoney(); } } }); rCommunity.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (((RadioButton) v).isChecked()) { showCommunity(); } } }); rAdrenaline.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (((RadioButton) v).isChecked()) { showAdrenaline(); } } }); rFunction.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (((RadioButton) v).isChecked()) { showFunction(); } } }); rOpinion.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (((RadioButton) v).isChecked()) { showOpinion(); } } }); } /* * Creating Headers and Adapters for each List */ public void showMainList() { seccion = Seccion.ULTIMA_HORA; lastNewsAdapter=new MergeAdapter(); //Ultima Hora // NotaAdapter nAdapter; ArrayList<NotaSeccion> itemsSeccionNacional= new ArrayList<NotaSeccion>(); ArrayList<NotaSeccion> itemsSeccionGlobal = new ArrayList<NotaSeccion>(); ArrayList<NotaSeccion> itemsSeccionDinero = new ArrayList<NotaSeccion>(); ArrayList<NotaSeccion> itemsSeccionComunidad = new ArrayList<NotaSeccion>(); ArrayList<NotaSeccion> itemsSeccionAdrenalina = new ArrayList<NotaSeccion>(); ArrayList<NotaSeccion> itemsSeccionFuncion = new ArrayList<NotaSeccion>(); ArrayList<NotaOpinion> itemsSeccionOpinion = new ArrayList<NotaOpinion>(); NotaAdapterSeccion nAdapterSeccion; //Ads lastNewsAdapter.addView(setAd("file:///android_asset/ad.html"), true); //Nacional lastNewsAdapter.addView(buildHeader("Nacional", R.drawable.gradient_national_header)); itemsSeccionNacional.add(excelsiorBean.getSeccionNacional().get(0)); itemsSeccionNacional.add(excelsiorBean.getSeccionNacional().get(1)); nAdapterSeccion = new NotaAdapterSeccion(Home.this, R.layout.row, itemsSeccionNacional); lastNewsAdapter.addAdapter(nAdapterSeccion); //Global lastNewsAdapter.addView(buildHeader("Global", R.drawable.gradient_global_header)); itemsSeccionGlobal.add(excelsiorBean.getSeccionGlobal().get(0)); itemsSeccionGlobal.add(excelsiorBean.getSeccionGlobal().get(1)); nAdapterSeccion = new NotaAdapterSeccion(Home.this, R.layout.row, itemsSeccionGlobal); lastNewsAdapter.addAdapter(nAdapterSeccion); //Dinero lastNewsAdapter.addView(buildHeader("Dinero", R.drawable.gradient_money_header)); itemsSeccionDinero.add(excelsiorBean.getSeccionDinero().get(0)); itemsSeccionDinero.add(excelsiorBean.getSeccionDinero().get(1)); nAdapterSeccion = new NotaAdapterSeccion(Home.this, R.layout.row, itemsSeccionDinero); lastNewsAdapter.addAdapter(nAdapterSeccion); //Ads lastNewsAdapter.addView(setAd("file:///android_asset/ad.html"), true); //Comunidad lastNewsAdapter.addView(buildHeader("Comunidad", R.drawable.gradient_community_header)); itemsSeccionComunidad.add(excelsiorBean.getSeccionComunidad().get(0)); itemsSeccionComunidad.add(excelsiorBean.getSeccionComunidad().get(1)); nAdapterSeccion = new NotaAdapterSeccion(Home.this, R.layout.row, itemsSeccionComunidad); lastNewsAdapter.addAdapter(nAdapterSeccion); //Adrenalina lastNewsAdapter.addView(buildHeader("Adrenalina", R.drawable.gradient_adrenaline_header)); itemsSeccionAdrenalina.add(excelsiorBean.getSeccionAdrenalina().get(0)); itemsSeccionAdrenalina.add(excelsiorBean.getSeccionAdrenalina().get(1)); nAdapterSeccion = new NotaAdapterSeccion(Home.this, R.layout.row, itemsSeccionAdrenalina); lastNewsAdapter.addAdapter(nAdapterSeccion); //Funcion lastNewsAdapter.addView(buildHeader("Funci�n", R.drawable.gradient_function_header)); itemsSeccionFuncion.add(excelsiorBean.getSeccionFuncion().get(0)); itemsSeccionFuncion.add(excelsiorBean.getSeccionFuncion().get(1)); nAdapterSeccion = new NotaAdapterSeccion(Home.this, R.layout.row, itemsSeccionFuncion); lastNewsAdapter.addAdapter(nAdapterSeccion); //Opinion lastNewsAdapter.addView(buildHeader("Opini�n", R.drawable.gradient_opinion_header)); itemsSeccionOpinion.add(excelsiorBean.getOpinion().get(0)); itemsSeccionOpinion.add(excelsiorBean.getOpinion().get(1)); nAdapterOpinion = new NotaAdapterOpinion(Home.this, R.layout.row, itemsSeccionOpinion); lastNewsAdapter.addAdapter(nAdapterOpinion); //Ads lastNewsAdapter.addView(setAd("file:///android_asset/ad.html"), true); //commit para actualizar la vista setListAdapter(lastNewsAdapter); } /* * Building National Adapter */ private void showNational() { seccion = Seccion.NACIONAL; mNationalMergeAdapter=new MergeAdapter(); mNationalMergeAdapter.addView(setAd("file:///android_asset/ad.html"), true); mNationalMergeAdapter.addAdapter(new NotaAdapterSeccion(Home.this, R.layout.row, (ArrayList<NotaSeccion>) excelsiorBean.getSeccionNacional())); mNationalMergeAdapter.addView(setAd("file:///android_asset/ad.html"), true); setListAdapter(mNationalMergeAdapter); } /* * Building Global Adapter */ private void showGlobal() { seccion = Seccion.GLOBAL; mGlobalMergeAdapter = new MergeAdapter(); mGlobalMergeAdapter.addView(setAd("file:///android_asset/ad.html"), true); mGlobalMergeAdapter.addAdapter(new NotaAdapterSeccion(Home.this, R.layout.row, (ArrayList<NotaSeccion>) excelsiorBean.getSeccionGlobal())); mGlobalMergeAdapter.addView(setAd("file:///android_asset/ad.html"), true); setListAdapter(mGlobalMergeAdapter); } /* * Building Money Adapter */ protected void showMoney() { seccion = Seccion.DINERO; mMoneyAdapter = new MergeAdapter(); mMoneyAdapter.addView(setAd("file:///android_asset/ad.html"), true); mMoneyAdapter.addAdapter(new NotaAdapterSeccion(Home.this, R.layout.row, (ArrayList<NotaSeccion>) excelsiorBean.getSeccionDinero())); mMoneyAdapter.addView(setAd("file:///android_asset/ad.html"), true); setListAdapter(mMoneyAdapter); } /* * Building Community Adapter */ private void showCommunity() { seccion = Seccion.COMUNIDAD; mCommunityAdapter = new MergeAdapter(); mCommunityAdapter.addView(setAd("file:///android_asset/ad.html"), true); mCommunityAdapter.addAdapter(new NotaAdapterSeccion(Home.this, R.layout.row, (ArrayList<NotaSeccion>) excelsiorBean.getSeccionComunidad())); mCommunityAdapter.addView(setAd("file:///android_asset/ad.html"), true); setListAdapter(mCommunityAdapter); } /* * Building Adrenaline Adapter */ private void showAdrenaline() { seccion = Seccion.ADRENALINA; mAdrenalineAdapter = new MergeAdapter(); mAdrenalineAdapter.addView(setAd("file:///android_asset/ad.html"), true); mAdrenalineAdapter.addAdapter(new NotaAdapterSeccion(Home.this, R.layout.row, (ArrayList<NotaSeccion>) excelsiorBean.getSeccionAdrenalina())); mAdrenalineAdapter.addView(setAd("file:///android_asset/ad.html"), true); setListAdapter(mAdrenalineAdapter); } /* * Building Function Adapter */ private void showFunction() { seccion = Seccion.FUNCION; mFunctionAdapter = new MergeAdapter(); mFunctionAdapter.addView(setAd("file:///android_asset/ad.html"), true); mFunctionAdapter.addAdapter(new NotaAdapterSeccion(Home.this, R.layout.row, (ArrayList<NotaSeccion>) excelsiorBean.getSeccionFuncion())); mFunctionAdapter.addView(setAd("file:///android_asset/ad.html"), true); setListAdapter(mFunctionAdapter); } private void showOpinion() { seccion = Seccion.OPINION; mOpinionAdapter=new MergeAdapter(); mOpinionAdapter.addView(setAd("file:///android_asset/ad.html"), true); mOpinionAdapter.addAdapter(new NotaAdapterOpinion(Home.this, R.layout.row, (ArrayList<NotaOpinion>) excelsiorBean.getOpinion())); mOpinionAdapter.addView(setAd("file:///android_asset/ad.html"), true); setListAdapter(mOpinionAdapter); } private View buildHeader(String title, int background){ TextView textview = new TextView(this); textview.setCursorVisible(false); textview.setFocusable(false); textview.setClickable(false); textview.setFocusableInTouchMode(false); textview.setText(title); textview.setTextSize(20); textview.setTypeface(Typeface.DEFAULT_BOLD); textview.setBackgroundResource(background); return(textview); } private WebView setAd(String file){ WebView ad = new WebView(this); ad.loadUrl(file); ad.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); // ad.setBackgroundColor(R.color.background_ad); return(ad); } /* * Inflating the option Menu */ @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.home_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.share_image: ShareMenu.buildShareMenu(getApplicationContext(), Recursos.TITULO_COMPARTIR, Recursos.COMPARTIR_HOME); break; case R.id.gallery_image: ByteArrayOutputStream byteAO = new ByteArrayOutputStream(); ObjectOutput output; try { output = new ObjectOutputStream(byteAO); output.writeObject(excelsiorBean.getFotoGaleria()); } catch (IOException e) { e.printStackTrace(); IU.showToast(Home.this , "Hubo un error al serializar: " + e.getLocalizedMessage()); } byte[] bytes = byteAO.toByteArray(); startActivity( new Intent(this, GalleryListActivity.class).putExtra("bean", bytes)); break; case R.id.movies_image: ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutput out; try { out = new ObjectOutputStream(bos); out.writeObject(excelsiorBean.getVideosPagina()); } catch (IOException e) { e.printStackTrace(); IU.showToast(Home.this , "Hubo un error al serializar: " + e.getLocalizedMessage()); } byte[] bytes1 = bos.toByteArray(); startActivity( new Intent(this, VideoListActivity.class).putExtra("bean", bytes1)); break; case R.id.refresh: updateNews(); break; } return true; } private void updateNews() { new AsyncNotes(this).execute(); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); Integer idNota = null; Integer idFoto = null; switch (seccion) { case ULTIMA_HORA: if (position >=2 && position <= 3){ idNota= excelsiorBean.getSeccionNacional().get(position-2).idNota; idFoto= excelsiorBean.getSeccionNacional().get(position-2).idFotoPortada; } else if (position >=5 && position <= 6){ idNota= excelsiorBean.getSeccionGlobal().get(position-5).idNota; idFoto= excelsiorBean.getSeccionGlobal().get(position-5).idFotoPortada; } else if (position >=8 && position <= 9){ idNota= excelsiorBean.getSeccionDinero().get(position-8).idNota; idFoto= excelsiorBean.getSeccionDinero().get(position-8).idFotoPortada; } else if (position >=12 && position <= 13){ idNota= excelsiorBean.getSeccionComunidad().get(position-12).idNota; idFoto= excelsiorBean.getSeccionComunidad().get(position-12).idFotoPortada; } else if (position >=15 && position <= 16){ idNota= excelsiorBean.getSeccionAdrenalina().get(position-15).idNota; idFoto= excelsiorBean.getSeccionAdrenalina().get(position-15).idFotoPortada; } else if (position >=18 && position <= 19){ idNota= excelsiorBean.getSeccionFuncion().get(position-18).idNota; idFoto= excelsiorBean.getSeccionFuncion().get(position-18).idFotoPortada; } else if (position >=21 && position <= 22){ idNota = excelsiorBean.getOpinion().get(position-21).idNota; idFoto = excelsiorBean.getOpinion().get(position-21).idFotoPortada; } break; case NACIONAL: idNota= excelsiorBean.getSeccionNacional().get(position-1).idNota; idFoto= excelsiorBean.getSeccionNacional().get(position-1).idFotoPortada; break; case GLOBAL: idNota= excelsiorBean.getSeccionGlobal().get(position-1).idNota; idFoto= excelsiorBean.getSeccionGlobal().get(position-1).idFotoPortada; break; case DINERO: idNota= excelsiorBean.getSeccionDinero().get(position-1).idNota; idFoto= excelsiorBean.getSeccionDinero().get(position-1).idFotoPortada; break; case COMUNIDAD: idNota= excelsiorBean.getSeccionComunidad().get(position-1).idNota; idFoto= excelsiorBean.getSeccionComunidad().get(position-1).idFotoPortada; break; case ADRENALINA: idNota= excelsiorBean.getSeccionAdrenalina().get(position-1).idNota; idFoto= excelsiorBean.getSeccionAdrenalina().get(position-1).idFotoPortada; break; case FUNCION: idNota= excelsiorBean.getSeccionFuncion().get(position-1).idNota; idFoto= excelsiorBean.getSeccionFuncion().get(position-1).idFotoPortada; break; case OPINION: idNota= excelsiorBean.getOpinion().get(position-1).idNota; idFoto= excelsiorBean.getOpinion().get(position-1).idFotoPortada; break; default: break; } if (idNota != null){ Intent i = new Intent(getApplication(), ViewNoteActivity.class); i.putExtra("id_nota", idNota); i.putExtra("id_foto", idFoto); startActivity(i); } } }