package com.way.weather.plugin.spider; import java.util.Locale; import org.json.JSONException; import org.json.JSONObject; import android.text.TextUtils; public class WeatherUtilities { private static String checkLanguageSuport(String language) { if (WeatherConstants.SURPORTTED_LANGUAGE_LIST.contains(language .toLowerCase())) return language.toLowerCase(); return Locale.US.toString().toLowerCase(); } public static String getAQISource(String paramString) { String str = checkLanguageSuport(paramString); return ((String) WeatherConstants.AQI_SOURCE_LANGUAGE_MAP.get(str)); } public static int getAnimationType(String weatherStr) { Integer type = -1; String[] strs = weatherStr.split("转"); if (strs.length > 1) { String[] arrayOfString3 = strs[0].split("到"); if (arrayOfString3.length > 1) type = WeatherConstants.WEATHER_ANIMATION_MAP .get(arrayOfString3[1]); else { type = WeatherConstants.WEATHER_ANIMATION_MAP .get(strs[0]); } } else { String[] arrayOfString2 = weatherStr.split("到"); if (arrayOfString2.length > 1) type = WeatherConstants.WEATHER_ANIMATION_MAP .get(arrayOfString2[1]); else type = WeatherConstants.WEATHER_ANIMATION_MAP .get(weatherStr); } return type; } public static int getAqi(String aqiStr) { int aqi = WeatherConstants.NO_VALUE_FLAG; try { aqi = Integer.parseInt(aqiStr); } catch (NumberFormatException e) { } return aqi; } public static String getAqiDesc(int aqiLevel, String language) { String languageKey = checkLanguageSuport(language); if (aqiLevel == 0) return WeatherConstants.AQI_DESC_LANGUAGE_MAP.get(languageKey).get( Integer.valueOf(0)); else if ((aqiLevel > 0) && (aqiLevel <= 50)) return WeatherConstants.AQI_DESC_LANGUAGE_MAP.get(languageKey).get( Integer.valueOf(50)); else if ((aqiLevel > 50) && (aqiLevel <= 100)) return WeatherConstants.AQI_DESC_LANGUAGE_MAP.get(languageKey).get( Integer.valueOf(100)); else if ((aqiLevel > 100) && (aqiLevel <= 150)) return WeatherConstants.AQI_DESC_LANGUAGE_MAP.get(languageKey).get( Integer.valueOf(150)); else if ((aqiLevel > 150) && (aqiLevel <= 200)) return WeatherConstants.AQI_DESC_LANGUAGE_MAP.get(languageKey).get( Integer.valueOf(200)); else if ((aqiLevel > 200) && (aqiLevel <= 300)) return WeatherConstants.AQI_DESC_LANGUAGE_MAP.get(languageKey).get( Integer.valueOf(300)); else if ((aqiLevel > 300) && (aqiLevel < 500)) return WeatherConstants.AQI_DESC_LANGUAGE_MAP.get(languageKey).get( Integer.valueOf(500)); return WeatherConstants.AQI_DESC_LANGUAGE_MAP.get(languageKey).get( Integer.valueOf(500)); } public static String getAqiLevel(int aqiLevel, String language) { String languageKey = checkLanguageSuport(language); if (aqiLevel == 0) return WeatherConstants.AQI_LEVEL_LANGUAGE_MAP.get(languageKey) .get(Integer.valueOf(0)); else if ((aqiLevel > 0) && (aqiLevel <= 50)) return WeatherConstants.AQI_LEVEL_LANGUAGE_MAP.get(languageKey) .get(Integer.valueOf(50)); else if ((aqiLevel > 50) && (aqiLevel <= 100)) return WeatherConstants.AQI_LEVEL_LANGUAGE_MAP.get(languageKey) .get(Integer.valueOf(100)); else if ((aqiLevel > 100) && (aqiLevel <= 150)) return WeatherConstants.AQI_LEVEL_LANGUAGE_MAP.get(languageKey) .get(Integer.valueOf(150)); else if ((aqiLevel > 150) && (aqiLevel <= 200)) return WeatherConstants.AQI_LEVEL_LANGUAGE_MAP.get(languageKey) .get(Integer.valueOf(200)); else if ((aqiLevel > 200) && (aqiLevel <= 300)) return WeatherConstants.AQI_LEVEL_LANGUAGE_MAP.get(languageKey) .get(Integer.valueOf(300)); else if ((aqiLevel > 300) && (aqiLevel < 500)) return WeatherConstants.AQI_LEVEL_LANGUAGE_MAP.get(languageKey) .get(Integer.valueOf(500)); return WeatherConstants.AQI_LEVEL_LANGUAGE_MAP.get(languageKey).get( Integer.valueOf(500)); } public static String getChina(String paramString) { String str = checkLanguageSuport(paramString); return ((String) WeatherConstants.CHINA_LANGUAGE_MAP.get(str)); } public static int getHumidity(String humidity) { return Integer.parseInt(humidity.split("%")[0]); } public static String getIndexDesc(String indexTitle, String indexType, String language) { String languageKey = checkLanguageSuport(language); return WeatherConstants.INDEX_DESC_LANGUAGE_MAP.get(languageKey) .get(indexTitle).get(indexType); } public static String getIndexDetail(String paramString1, String paramString2, String language) { String languageKey = checkLanguageSuport(language); return WeatherConstants.INDEX_DETAIL_LANGUAGE_MAP.get(languageKey) .get(paramString1).get(paramString2); } public static String getIndexTitle(String indexTitleKey, String language) { String languageKey = checkLanguageSuport(language); return WeatherConstants.INDEX_LANGUAGE_MAP.get(languageKey).get( indexTitleKey); } public static Integer getIndexType(String indexTypeKey) { return WeatherConstants.INDEX_TYPE.get(indexTypeKey); } public static int getIntFromJSON(JSONObject jsonObject, String paramString) { int result = WeatherConstants.NO_VALUE_FLAG; try { result = jsonObject.getInt(paramString); } catch (JSONException e) { } return result; } public static String getWeather(String weatherStr) { String[] arrayOfString = weatherStr.split("转"); if (arrayOfString.length > 1) { String str1 = (String) WeatherConstants.CN_WEATHER_TYPE_MAP .get(arrayOfString[0]); String str2 = (String) WeatherConstants.CN_WEATHER_TYPE_MAP .get(arrayOfString[1]); return str1 + "-" + str2; } return ((String) WeatherConstants.CN_WEATHER_TYPE_MAP.get(weatherStr)); } public static WeatherName getWeatherName(String weatherStr, String language) { WeatherName weatherName = new WeatherName(); String languageKey = checkLanguageSuport(language); String[] strs = weatherStr.split("转"); if (strs.length > 1) { String str4 = WeatherConstants.CN_WEATHER_TYPE_MAP.get(strs[0]); String str5 = WeatherConstants.CN_WEATHER_TYPE_MAP.get(strs[1]); String str6 = WeatherConstants.WEATHER_TYPE_LANGUAGE_MAP.get( languageKey).get(str4); String str7 = WeatherConstants.WEATHER_TYPE_LANGUAGE_MAP.get( languageKey).get(str5); String str8 = WeatherConstants.TRANSFER_LANGUAGE_MAP .get(languageKey); weatherName.setName(str6 + str8 + str7); weatherName.setFrom(str6); weatherName.setTo(str7); return weatherName; } String key = WeatherConstants.CN_WEATHER_TYPE_MAP.get(weatherStr); String name = WeatherConstants.WEATHER_TYPE_LANGUAGE_MAP.get( languageKey).get(key); weatherName.setName(name); weatherName.setFrom(name); weatherName.setTo(name); return weatherName; } public static String getWind(String windStr, String language) { String resultStr = ""; String[] winds = windStr.split("转"); String languageKey = checkLanguageSuport(language); if (winds.length > 1) { String windReal = WeatherConstants.CN_WIND_TYPE_MAP.get(winds[0]); resultStr = WeatherConstants.WIND_TYPE_LANGUAGE_MAP .get(languageKey).get(windReal); if (resultStr == null) resultStr = (String) WeatherConstants.CN_WIND_TYPE_MAP .get(winds[1]); } else { resultStr = WeatherConstants.WIND_TYPE_LANGUAGE_MAP .get(languageKey).get(windStr); if (resultStr == null) resultStr = (String) WeatherConstants.CN_WIND_TYPE_MAP .get(resultStr); } return resultStr; } public static String getWind(String fx, String fl, String language) { String resultStr = ""; String fxValue = WeatherConstants.CN_WIND_TYPE_MAP.get(fx); if (fxValue == null) fxValue = "0"; String languageKey = checkLanguageSuport(language); String[] winds = fl.split("转"); if (winds.length > 1) { String windBefore = (String) (WeatherConstants.WIND_LEVEL_LANGUAGE_MAP .get(languageKey)).get(winds[0]); String windAfter = (String) (WeatherConstants.WIND_LEVEL_LANGUAGE_MAP .get(languageKey)).get(winds[1]); String transferStr = (String) WeatherConstants.TRANSFER_LANGUAGE_MAP .get(languageKey); resultStr = WeatherConstants.WIND_TYPE_LANGUAGE_MAP .get(languageKey).get(fxValue) + WeatherConstants.WIND_TYPE_CONNECTTOR_LANGUAGE_MAP .get(languageKey) + windBefore + transferStr + windAfter; } else { resultStr = (WeatherConstants.WIND_TYPE_LANGUAGE_MAP .get(languageKey)).get(fxValue) + WeatherConstants.WIND_TYPE_CONNECTTOR_LANGUAGE_MAP .get(languageKey) + WeatherConstants.WIND_LEVEL_LANGUAGE_MAP.get(languageKey) .get(fl); } if ((!(TextUtils.isEmpty(language))) && (language.toLowerCase().contains("en"))) resultStr = "Wind: " + resultStr; return resultStr; } public static String getWindIndexDetail(String windIndex, String language) { String languageKey = checkLanguageSuport(language); String[] strs = windIndex.split("转"); if (strs.length > 1) return WeatherConstants.WIND_LEVEL_DETAIL_LANGUAGE_MAP.get(languageKey) .get(strs[1]); return WeatherConstants.WIND_LEVEL_DETAIL_LANGUAGE_MAP.get(languageKey).get( windIndex); } public static class WeatherName { String from; String name; String to; public String getFrom() { return this.from; } public String getName() { return this.name; } public String getTo() { return this.to; } public void setFrom(String paramString) { this.from = paramString; } public void setName(String paramString) { this.name = paramString; } public void setTo(String paramString) { this.to = paramString; } } }