package cateina.android.es;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.util.Iterator;
import java.util.List;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.util.Log;
public class FeinaUpdate extends AsyncTask<Context, Integer, Context>
{
@Override
protected Context doInBackground(Context... context)
{
SharedPreferences settings = context[0].getSharedPreferences(FeinaWidget.WIDGET_PREFERENCES, 0);
String url = "http://www20.gencat.cat/portal/site/governacio/menuitem.ad52b53df945da4f8e629e30b0c0e1a0/?vgnextoid=58f84b22b04de110VgnVCM1000008d0c1e0aRCRD&vgnextchannel=58f84b22b04de110VgnVCM1000008d0c1e0aRCRD&vgnextfmt=rss";
try
{
TransParser transparser = new TransParser(url);
List<Incidencia> items = transparser.parse();
if (items != null)
{
Iterator<Incidencia> iterator = items.iterator();
Log.e("catfeina", items.size() + " items");
Data data = new Data(context[0]);
data.empty();
int counter = 0;
while (iterator.hasNext())
{
Incidencia incidencia = iterator.next();
data.add(counter, incidencia.getTitle(), incidencia.getDescripcio(), incidencia.getLink());
counter++;
}
SharedPreferences.Editor editor = settings.edit();
editor.putInt("WIDGET_PREFERENCES_CURRENT_ROW", 0);
editor.putInt("WIDGET_PREFERENCES_ROW_COUNT", counter);
editor.commit();
for (int c = 0; c < counter; c++)
{
Log.e("catfeina", "Call number " + c);
Log.e("catfeina", "title " + data.readTitle(c));
Log.e("catfeina", "link " + data.readUrl(c));
Log.e("catfeina", "description " + data.readDescription(c));
}
data.close();
}
else
{
Log.e("catfeina", "parser returned null");
}
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
return null;
}
public String convertStreamToString(InputStream is) throws IOException
{
/*
* To convert the InputStream to String we use the
* BufferedReader.readLine() method. We iterate until the BufferedReader
* return null which means there's no more data to read. Each line will
* appended to a StringBuilder and returned as String.
*/
if (is != null)
{
StringBuilder sb = new StringBuilder();
String line;
try
{
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
while ((line = reader.readLine()) != null)
{
sb.append(line).append("\n");
}
}
finally
{
is.close();
}
return sb.toString();
}
else
{
return "";
}
}
}
|