summaryrefslogtreecommitdiffstats
path: root/app/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/org/cyanogenmod/yahooweatherprovider/ConverterUtils.java24
-rw-r--r--app/src/main/java/org/cyanogenmod/yahooweatherprovider/YahooWeatherProviderService.java6
2 files changed, 26 insertions, 4 deletions
diff --git a/app/src/main/java/org/cyanogenmod/yahooweatherprovider/ConverterUtils.java b/app/src/main/java/org/cyanogenmod/yahooweatherprovider/ConverterUtils.java
index 6a81b4e..53b2158 100644
--- a/app/src/main/java/org/cyanogenmod/yahooweatherprovider/ConverterUtils.java
+++ b/app/src/main/java/org/cyanogenmod/yahooweatherprovider/ConverterUtils.java
@@ -27,16 +27,22 @@ import org.cyanogenmod.yahooweatherprovider.yahoo.response.Postal;
import java.util.ArrayList;
import java.util.List;
+import cyanogenmod.providers.WeatherContract;
import cyanogenmod.weather.WeatherInfo;
import cyanogenmod.weather.WeatherLocation;
+import static cyanogenmod.providers.WeatherContract.WeatherColumns.WeatherCode.ISOLATED_THUNDERSHOWERS;
+import static cyanogenmod.providers.WeatherContract.WeatherColumns.WeatherCode.NOT_AVAILABLE;
+import static cyanogenmod.providers.WeatherContract.WeatherColumns.WeatherCode.SCATTERED_SNOW_SHOWERS;
+import static cyanogenmod.providers.WeatherContract.WeatherColumns.WeatherCode.SCATTERED_THUNDERSTORMS;
+
public class ConverterUtils {
public static ArrayList<WeatherInfo.DayForecast> convertForecastsToDayForecasts(List<Forecast> forecasts) {
ArrayList<WeatherInfo.DayForecast> ret = new ArrayList<>();
for (Forecast forecast : forecasts) {
- WeatherInfo.DayForecast dayForecast = new WeatherInfo.DayForecast.Builder(
- Integer.parseInt(forecast.getCode()))
+ WeatherInfo.DayForecast dayForecast = new WeatherInfo.DayForecast.Builder(offset(
+ Integer.parseInt(forecast.getCode())))
.setHigh(Double.parseDouble(forecast.getHigh()))
.setLow(Double.parseDouble(forecast.getLow()))
.build();
@@ -96,4 +102,18 @@ public class ConverterUtils {
}
return ret;
}
+
+ public static int offset(int conditionCode) {
+ if (conditionCode <= WeatherContract.WeatherColumns.WeatherCode.SHOWERS) {
+ return conditionCode;
+ } else if (conditionCode <= SCATTERED_THUNDERSTORMS) {
+ return conditionCode - 1;
+ } else if (conditionCode <= SCATTERED_SNOW_SHOWERS) {
+ return conditionCode - 2;
+ } else if (conditionCode <= ISOLATED_THUNDERSHOWERS) {
+ return conditionCode - 3;
+ } else {
+ return NOT_AVAILABLE;
+ }
+ }
}
diff --git a/app/src/main/java/org/cyanogenmod/yahooweatherprovider/YahooWeatherProviderService.java b/app/src/main/java/org/cyanogenmod/yahooweatherprovider/YahooWeatherProviderService.java
index 7fcfbf0..dd6d327 100644
--- a/app/src/main/java/org/cyanogenmod/yahooweatherprovider/YahooWeatherProviderService.java
+++ b/app/src/main/java/org/cyanogenmod/yahooweatherprovider/YahooWeatherProviderService.java
@@ -248,7 +248,8 @@ public class YahooWeatherProviderService extends WeatherProviderService
WeatherContract.WeatherColumns.TempUnit.FAHRENHEIT);
// Set current weather condition code
- weatherInfoBuilder.setWeatherCondition(Integer.parseInt(condition.getCode()));
+ weatherInfoBuilder.setWeatherCondition(
+ ConverterUtils.offset(Integer.parseInt(condition.getCode())));
// Set humidity
weatherInfoBuilder.setHumidity(Double.parseDouble(atmosphere.getHumidity()));
@@ -262,7 +263,8 @@ public class YahooWeatherProviderService extends WeatherProviderService
weatherInfoBuilder.setTodaysHigh(Double.parseDouble(forecasts[0].getHigh()));
weatherInfoBuilder.setTodaysLow(Double.parseDouble(forecasts[0].getHigh()));
- ArrayList<WeatherInfo.DayForecast> forecastList = ConverterUtils.convertForecastsToDayForecasts(
+ ArrayList<WeatherInfo.DayForecast> forecastList =
+ ConverterUtils.convertForecastsToDayForecasts(
Arrays.asList(forecasts));
// Remove today
forecastList.remove(0);