Correct weather info for weatherbit.io, weather.gov and yr.no.
This commit is contained in:
parent
d3b623cf13
commit
ef2e89b6ff
@ -322,78 +322,78 @@ object WeatherHelper {
|
||||
}
|
||||
}
|
||||
|
||||
fun getWeatherGovIcon(iconString: String, isDaytime: Boolean): String = when {
|
||||
iconString.contains("skc") -> "01"
|
||||
iconString.contains("few") -> "02"
|
||||
iconString.contains("sct") -> "03"
|
||||
iconString.contains("bkn") -> "04"
|
||||
iconString.contains("ovc") -> "04"
|
||||
iconString.contains("wind_skc") -> "01"
|
||||
iconString.contains("wind_few") -> "02"
|
||||
iconString.contains("wind_sct") -> "03"
|
||||
iconString.contains("wind_bkn") -> "04"
|
||||
iconString.contains("wind_ovc") -> "04"
|
||||
iconString.contains("snow") -> "13"
|
||||
iconString.contains("rain_snow") -> "81"
|
||||
iconString.contains("rain_sleet") -> "81"
|
||||
iconString.contains("snow_sleet") -> "81"
|
||||
iconString.contains("fzra") -> "81"
|
||||
iconString.contains("rain_fzra") -> "81"
|
||||
iconString.contains("snow_fzra") -> "81"
|
||||
iconString.contains("sleet") -> "81"
|
||||
iconString.contains("rain") -> "10"
|
||||
iconString.contains("rain_showers") -> "10"
|
||||
iconString.contains("rain_showers_hi") -> "10"
|
||||
iconString.contains("tsra") -> "82"
|
||||
iconString.contains("tsra_sct") -> "82"
|
||||
iconString.contains("tsra_hi") -> "82"
|
||||
iconString.contains("tornado") -> "80"
|
||||
iconString.contains("hurricane") -> "80"
|
||||
iconString.contains("tropical_storm") -> "09"
|
||||
iconString.contains("dust") -> "Dust"
|
||||
iconString.contains("smoke") -> "Smoke"
|
||||
iconString.contains("haze") -> "50"
|
||||
iconString.contains("hot") -> "01"
|
||||
iconString.contains("cold") -> "13"
|
||||
iconString.contains("blizzard") -> "80"
|
||||
iconString.contains("fog") -> "82"
|
||||
fun getWeatherGovIcon(iconString: String, isDaytime: Boolean): String = when (iconString.substringBefore('?').substringAfterLast('/')) {
|
||||
"skc" -> "01"
|
||||
"few" -> "02"
|
||||
"sct" -> "03"
|
||||
"bkn" -> "04"
|
||||
"ovc" -> "04"
|
||||
"wind_skc" -> "01"
|
||||
"wind_few" -> "02"
|
||||
"wind_sct" -> "03"
|
||||
"wind_bkn" -> "04"
|
||||
"wind_ovc" -> "04"
|
||||
"snow" -> "13"
|
||||
"rain_snow" -> "81"
|
||||
"rain_sleet" -> "81"
|
||||
"snow_sleet" -> "81"
|
||||
"fzra" -> "81"
|
||||
"rain_fzra" -> "81"
|
||||
"snow_fzra" -> "81"
|
||||
"sleet" -> "81"
|
||||
"rain" -> "10"
|
||||
"rain_showers" -> "10"
|
||||
"rain_showers_hi" -> "10"
|
||||
"tsra" -> "82"
|
||||
"tsra_sct" -> "82"
|
||||
"tsra_hi" -> "82"
|
||||
"tornado" -> "80"
|
||||
"hurricane" -> "80"
|
||||
"tropical_storm" -> "09"
|
||||
"dust" -> "Dust"
|
||||
"smoke" -> "Smoke"
|
||||
"haze" -> "50"
|
||||
"hot" -> "01"
|
||||
"cold" -> "13"
|
||||
"blizzard" -> "80"
|
||||
"fog" -> "82"
|
||||
else -> ""
|
||||
} + if (isDaytime) "d" else "n"
|
||||
|
||||
fun getWeatherBitIcon(iconString: String): String = when {
|
||||
iconString.contains("t01") -> "11"
|
||||
iconString.contains("t02") -> "09"
|
||||
iconString.contains("t03") -> "09"
|
||||
iconString.contains("t04") -> "09"
|
||||
iconString.contains("t05") -> "09"
|
||||
iconString.contains("d01") -> "10"
|
||||
iconString.contains("d02") -> "10"
|
||||
iconString.contains("d03") -> "10"
|
||||
iconString.contains("r01") -> "10"
|
||||
iconString.contains("r02") -> "10"
|
||||
iconString.contains("r03") -> "10"
|
||||
iconString.contains("f01") -> "10"
|
||||
iconString.contains("r04") -> "10"
|
||||
iconString.contains("r05") -> "10"
|
||||
iconString.contains("r06") -> "10"
|
||||
iconString.contains("s01") -> "13"
|
||||
iconString.contains("s02") -> "13"
|
||||
iconString.contains("s03") -> "13"
|
||||
iconString.contains("s04") -> "81"
|
||||
iconString.contains("s05") -> "90"
|
||||
iconString.contains("s06") -> "13"
|
||||
iconString.contains("a01") -> "82"
|
||||
iconString.contains("a02") -> "82"
|
||||
iconString.contains("a03") -> "82"
|
||||
iconString.contains("a04") -> "82"
|
||||
iconString.contains("a05") -> "82"
|
||||
iconString.contains("a06") -> "82"
|
||||
iconString.contains("c01") -> "01"
|
||||
iconString.contains("c02") -> "02"
|
||||
iconString.contains("c03") -> "04"
|
||||
iconString.contains("c04") -> "04"
|
||||
fun getWeatherBitIcon(iconString: String): String = when (iconString.substring(0, 3)) {
|
||||
"t01" -> "11"
|
||||
"t02" -> "09"
|
||||
"t03" -> "09"
|
||||
"t04" -> "09"
|
||||
"t05" -> "09"
|
||||
"d01" -> "10"
|
||||
"d02" -> "10"
|
||||
"d03" -> "10"
|
||||
"r01" -> "10"
|
||||
"r02" -> "10"
|
||||
"r03" -> "10"
|
||||
"f01" -> "10"
|
||||
"r04" -> "10"
|
||||
"r05" -> "10"
|
||||
"r06" -> "10"
|
||||
"s01" -> "13"
|
||||
"s02" -> "13"
|
||||
"s03" -> "13"
|
||||
"s04" -> "81"
|
||||
"s05" -> "90"
|
||||
"s06" -> "13"
|
||||
"a01" -> "82"
|
||||
"a02" -> "82"
|
||||
"a03" -> "82"
|
||||
"a04" -> "82"
|
||||
"a05" -> "82"
|
||||
"a06" -> "82"
|
||||
"c01" -> "01"
|
||||
"c02" -> "02"
|
||||
"c03" -> "04"
|
||||
"c04" -> "04"
|
||||
else -> ""
|
||||
} + if (iconString.contains("d")) "d" else "n"
|
||||
} + iconString.substring(3)
|
||||
|
||||
fun getWeatherApiIcon(icon: Int, isDaytime: Boolean): String = when(icon) {
|
||||
1000 -> "01"
|
||||
@ -447,49 +447,49 @@ object WeatherHelper {
|
||||
else -> ""
|
||||
} + if (isDaytime) "d" else "n"
|
||||
|
||||
fun getYRIcon(iconCode: String, isDaytime: Boolean): String = when {
|
||||
iconCode.contains("clearsky") -> "01"
|
||||
iconCode.contains("cloudy") -> "04"
|
||||
iconCode.contains("fair") -> "02"
|
||||
iconCode.contains("fog") -> "82"
|
||||
iconCode.contains("heavyrain") -> "10"
|
||||
iconCode.contains("heavyrainandthunder") -> "11"
|
||||
iconCode.contains("heavyrainshowers") -> "10"
|
||||
iconCode.contains("heavyrainshowersandthunder") -> "11"
|
||||
iconCode.contains("heavysleet") -> "10"
|
||||
iconCode.contains("heavysleetandthunder") -> "11"
|
||||
iconCode.contains("heavysleetshowers") -> "10"
|
||||
iconCode.contains("heavysleetshowersandthunder") -> "11"
|
||||
iconCode.contains("heavysnow") -> "13"
|
||||
iconCode.contains("heavysnowandthunder") -> "13"
|
||||
iconCode.contains("heavysnowshowers") -> "13"
|
||||
iconCode.contains("heavysnowshowersandthunder") -> "13"
|
||||
iconCode.contains("lightrain") -> "10"
|
||||
iconCode.contains("lightrainandthunder") -> "11"
|
||||
iconCode.contains("lightrainshowers") -> "10"
|
||||
iconCode.contains("lightrainshowersandthunder") -> "11"
|
||||
iconCode.contains("lightsleet") -> "10"
|
||||
iconCode.contains("lightsleetandthunder") -> "11"
|
||||
iconCode.contains("lightsleetshowers") -> "10"
|
||||
iconCode.contains("lightsnow") -> "13"
|
||||
iconCode.contains("lightsnowandthunder") -> "13"
|
||||
iconCode.contains("lightsnowshowers") -> "13"
|
||||
iconCode.contains("lightssleetshowersandthunder") -> "81"
|
||||
iconCode.contains("lightssnowshowersandthunder") -> "81"
|
||||
iconCode.contains("partlycloudy") -> "03"
|
||||
iconCode.contains("rain") -> "10"
|
||||
iconCode.contains("rainandthunder") -> "11"
|
||||
iconCode.contains("rainshowers") -> "10"
|
||||
iconCode.contains("rainshowersandthunder") -> "11"
|
||||
iconCode.contains("sleet") -> "10"
|
||||
iconCode.contains("sleetandthunder") -> "11"
|
||||
iconCode.contains("sleetshowers") -> "10"
|
||||
iconCode.contains("sleetshowersandthunder") -> "11"
|
||||
iconCode.contains("snow") -> "13"
|
||||
iconCode.contains("snowandthunder") -> "13"
|
||||
iconCode.contains("snowshowers") -> "13"
|
||||
iconCode.contains("snowshowersandthunder") -> "13"
|
||||
fun getYRIcon(iconCode: String): String = when (iconCode.substringBefore('_')) {
|
||||
"clearsky" -> "01"
|
||||
"cloudy" -> "04"
|
||||
"fair" -> "02"
|
||||
"fog" -> "82"
|
||||
"heavyrain" -> "10"
|
||||
"heavyrainandthunder" -> "11"
|
||||
"heavyrainshowers" -> "10"
|
||||
"heavyrainshowersandthunder" -> "11"
|
||||
"heavysleet" -> "10"
|
||||
"heavysleetandthunder" -> "11"
|
||||
"heavysleetshowers" -> "10"
|
||||
"heavysleetshowersandthunder" -> "11"
|
||||
"heavysnow" -> "13"
|
||||
"heavysnowandthunder" -> "13"
|
||||
"heavysnowshowers" -> "13"
|
||||
"heavysnowshowersandthunder" -> "13"
|
||||
"lightrain" -> "10"
|
||||
"lightrainandthunder" -> "11"
|
||||
"lightrainshowers" -> "10"
|
||||
"lightrainshowersandthunder" -> "11"
|
||||
"lightsleet" -> "10"
|
||||
"lightsleetandthunder" -> "11"
|
||||
"lightsleetshowers" -> "10"
|
||||
"lightsnow" -> "13"
|
||||
"lightsnowandthunder" -> "13"
|
||||
"lightsnowshowers" -> "13"
|
||||
"lightssleetshowersandthunder" -> "81"
|
||||
"lightssnowshowersandthunder" -> "81"
|
||||
"partlycloudy" -> "03"
|
||||
"rain" -> "10"
|
||||
"rainandthunder" -> "11"
|
||||
"rainshowers" -> "10"
|
||||
"rainshowersandthunder" -> "11"
|
||||
"sleet" -> "10"
|
||||
"sleetandthunder" -> "11"
|
||||
"sleetshowers" -> "10"
|
||||
"sleetshowersandthunder" -> "11"
|
||||
"snow" -> "13"
|
||||
"snowandthunder" -> "13"
|
||||
"snowshowers" -> "13"
|
||||
"snowshowersandthunder" -> "13"
|
||||
else -> ""
|
||||
} + if (isDaytime) "d" else "n"
|
||||
} + if (iconCode.substringAfter('_', "day") == "day") "d" else "n"
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -395,7 +395,7 @@ class WeatherNetworkApi(val context: Context) {
|
||||
val pp = response.body["properties"] as LinkedTreeMap<*, *>
|
||||
val data = pp["timeseries"] as List<LinkedTreeMap<String, Any>>?
|
||||
data?.let {
|
||||
val format = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
|
||||
val format = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").apply { timeZone = TimeZone.getTimeZone("UTC") }
|
||||
for (item in data) {
|
||||
val time = Calendar.getInstance().apply { time = format.parse(item["time"] as String)!! }
|
||||
val now = Calendar.getInstance()
|
||||
@ -411,7 +411,7 @@ class WeatherNetworkApi(val context: Context) {
|
||||
val iconCode = summary["symbol_code"] as String
|
||||
|
||||
Preferences.weatherTemp = temp.toFloat()
|
||||
Preferences.weatherIcon = WeatherHelper.getYRIcon(iconCode, now.get(Calendar.HOUR_OF_DAY) >= 22 || now.get(Calendar.HOUR_OF_DAY) <= 8)
|
||||
Preferences.weatherIcon = WeatherHelper.getYRIcon(iconCode)
|
||||
Preferences.weatherTempUnit = "C"
|
||||
Preferences.weatherRealTempUnit = Preferences.weatherTempUnit
|
||||
MainWidget.updateWidget(context)
|
||||
|
Loading…
x
Reference in New Issue
Block a user