public boolean processUrl(String city) { Uri u = Uri.parse(WEATHER_FEED); Uri.Builder builder = u.buildUpon(); builder.appendQueryParameter("hl", "us"); builder.appendQueryParameter("weather", city); String url = builder.build().toString(); Log.v("", "run url " + url); handler.processFeed(url); currWeather = handler.getCurrentWeather(); Log.i("", "current weather " + currWeather); weathers = handler.getForecastWeathers(); return (currWeather != null && weathers != null); }
/** * Create a new WeatherParser and immediately parse the data * * @param input The input String containing the XML data * @param out The Processor that will receive the data */ public XMLParser(String input, Processor out) { SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); try { SAXParser saxParser = saxParserFactory.newSAXParser(); WeatherHandler handler = new WeatherHandler(); saxParser.parse(new InputSource(new StringReader(input)), handler); List<Measurement> measurements = handler.getList(); out.processMeasurements(measurements); } catch (ParserConfigurationException | SAXException | IOException e) { e.printStackTrace(); } catch (ProcessorException e) { logger.error("Processor error:"); e.printStackTrace(); } }
private void updateWeather() { mHandler.removeCallbacks(mWeatherUpdater); if (WeatherHandler.instance().updateMinutes() > 0) { WeatherHandler.instance().update(mUserAgent); boolean redraw = false; for (int i = 0; i < mInfoList.size(); ++i) { if (mInfoList.get(i).isType(InfoItem.TYPE_WEATHER)) { redraw = true; mInfoList.get(i).update(InfoItem.TYPE_WEATHER, null); } } if (redraw) { updateWallpaper(); } mHandler.postDelayed(mWeatherUpdater, WeatherHandler.instance().updateMinutes() * 60000); } }
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { String sVal = ""; int iVal1 = 0; int iVal2 = 0; mHide = prefs.getBoolean(HIDE_WHEN_LOCKED, false); // BACKGROUND sVal = prefs.getString(BACKGROUND_IMAGE, ""); if (sVal.length() > 0) loadImage(sVal); else mBackground.clearImage(); iVal1 = prefs.getInt(BACKGROUND_SINGLE_COLOR, 0x00ffffff); iVal2 = prefs.getInt(BACKGROUND_TWO_COLORS, iVal1); mBackground.setColor(iVal1, iVal2); mInfoOnAllScreens = true; // ITEMS iVal1 = prefs.getInt(INFO_COUNT, 0); if (iVal1 == 0) { createDefault(); } else { mInfoList.clear(); InfoItem item = null; for (int i = 0; i < iVal1; ++i) { item = InfoItem.loadFromSharedPreference(LiveInfoWallpaper.this, prefs, getAssets(), i); if (item != null) { if (item.mScreen >= 0) { mInfoOnAllScreens = false; } mInfoList.add(item); } } } sVal = prefs.getString(WEATHER_KEY_LOCATION, ""); WeatherHandler.instance().setLocation(sVal); iVal1 = prefs.getInt(WEATHER_KEY_UPDATE, 0); WeatherHandler.instance().updateMinutes(iVal1); iVal1 = prefs.getInt(WEATHER_KEY_ICONS_SIZE, 100); WeatherHandler.instance().setIconSize(100); sVal = prefs.getString(WEATHER_KEY_ICONS, ""); WeatherHandler.instance().setIconSet(sVal); boolean bVal = prefs.getBoolean(WEATHER_KEY_FAHRENHEIT, false); WeatherHandler.instance().useFahrenheit(bVal); if (WeatherHandler.instance().updateMinutes() > 0) { mHandler.post(mWeatherUpdater); } updateBatteryItems(registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED))); updatePhoneInfo(); updateDateTimeItems(); }