package com.gh4a.loader;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import android.content.Context;
import com.gh4a.feeds.FeedHandler;
import com.gh4a.holder.Feed;
public class FeedLoader extends BaseLoader<List<Feed>> {
private final String mUrl;
public FeedLoader(Context context, String url) {
super(context);
mUrl = url;
}
@Override
public List<Feed> doLoadInBackground() throws Exception {
BufferedInputStream bis = null;
try {
URL url = new URL(mUrl);
URLConnection request = url.openConnection();
bis = new BufferedInputStream(request.getInputStream());
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
FeedHandler handler = new FeedHandler();
parser.parse(bis, handler);
return handler.getFeeds();
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
// ignored
}
}
}
}
}