package openeclairupdaterapp.featuredThemes; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import android.content.Context; import android.os.Message; import openeclairupdaterapp.misc.Log; import openeclairupdaterapp.ui.ThemeListActivity; import openeclairupdaterapp.utils.Preferences; public class FeaturedThemes implements Runnable { private static final String TAG = "FeaturedThemes"; private Preferences p; public FeaturedThemes(Context ctx) { p = new Preferences(ctx); } public void run() { URL url; InputSource i; Message m = ThemeListActivity.FeaturedThemesProgressHandler.obtainMessage(); try { url = new URL(p.getFeaturedThemesURL()); i = new InputSource(url.openStream()); SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); FeaturedThemesHandler fth = new FeaturedThemesHandler(); xr.setContentHandler(fth); xr.parse(i); m.obj = fth.getParsedData(); } catch (MalformedURLException e) { m.obj = e.toString(); Log.e(TAG, "Malformed URL!", e); } catch (IOException e) { m.obj = e.toString(); Log.e(TAG, "Exception on opening Input Stream", e); } catch (ParserConfigurationException e) { m.obj = e.toString(); Log.e(TAG, "Exception on parsing XML File", e); } catch (SAXException e) { m.obj = e.toString(); Log.e(TAG, "Exception while creating SAXParser", e); } ThemeListActivity.FeaturedThemesProgressHandler.sendMessage(m); } }