package mondaini.android.bagulhodoido.activities; import java.util.List; import mondaini.android.bagulhodoido.adapters.NoticiaAdapter; import mondaini.android.bagulhodoido.model.Noticia; import mondaini.android.bagulhodoido.util.RSSReader; import mondaini.android.bagulhodoido.util.Validations; import mondaini.android.dojorio.R; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.widget.Toast; public class ListaNoticiasActivity extends Activity{ private ListView lvNoticias; private List<Noticia> noticias; private NoticiaAdapter noticiaAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.noticia_list); this.lvNoticias = (ListView)this.findViewById(R.id.listNoticias); if (Validations.isOnline(this)){ new DownloadRSSFeedTask().execute(); } else{ Toast.makeText(this, "Não foi possível carregar notícias.\nSem acesso à internet.", Toast.LENGTH_SHORT).show(); } } class DownloadRSSFeedTask extends AsyncTask<Void, Void, Boolean>{ @Override protected void onPreExecute() { Toast.makeText(ListaNoticiasActivity.this, "Aguarde, as últimas notícias do blog estão sendo carregadas...", Toast.LENGTH_SHORT).show(); } @Override protected void onPostExecute(Boolean result) { if (result == true){ Toast.makeText(ListaNoticiasActivity.this, "Lista de notícias atualizada com sucesso!", Toast.LENGTH_LONG).show(); noticiaAdapter = new NoticiaAdapter(ListaNoticiasActivity.this, noticias); lvNoticias.setOnItemClickListener(new OnClickListaNoticias(ListaNoticiasActivity.this, noticias)); lvNoticias.setAdapter(noticiaAdapter); }else{ Toast.makeText(ListaNoticiasActivity.this, "Me desculpe, não foi possível baixar o feed RSS\n:-(", Toast.LENGTH_LONG).show(); } } @Override protected Boolean doInBackground(Void... params) { noticias = new RSSReader().getNoticias(); if (noticias.size() != 0){ return true; } else{ return false; } } } class OnClickListaNoticias implements OnItemClickListener{ private Context context; private List<Noticia> noticias; public OnClickListaNoticias(Context context, List<Noticia> noticias){ this.context = context; this.noticias = noticias; } @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { Noticia noticia = noticias.get(position); callBrowserIntent(noticia.link); } public void callBrowserIntent(String link){ Uri uri = Uri.parse(link); Intent it = new Intent(Intent.ACTION_VIEW, uri); context.startActivity(it); } } }