diff options
author | Luis Vidal <lvidal@cyngn.com> | 2016-04-06 22:34:54 -0700 |
---|---|---|
committer | Luis Vidal <lvidal@cyngn.com> | 2016-04-08 11:10:29 -0700 |
commit | 7b881391eb2c7a944511ded61b0dd40644dde89e (patch) | |
tree | e7ff57f68c1a5e6a29b694fa49e063b9e4b9d8fc /src/org/cyanogenmod/weather | |
parent | 64fda03f5db6977c018bdc718d6aa52974b2a676 (diff) | |
download | android_packages_providers_WeatherProvider-7b881391eb2c7a944511ded61b0dd40644dde89e.tar.gz android_packages_providers_WeatherProvider-7b881391eb2c7a944511ded61b0dd40644dde89e.tar.bz2 android_packages_providers_WeatherProvider-7b881391eb2c7a944511ded61b0dd40644dde89e.zip |
Update provider to accommodate changes in weather contract
The weather contract was amended to remove city id and
introduced 2 new columns to include current day low and
high temperatures. WeatherInfo class was also refactored
See http://review.cyanogenmod.org/#/c/139904/ for details
This patch brings the provider up to date to support those
changes
Change-Id: I76eef1464a900f99c178f924824492652b3f95a7
TICKET: CYNGNOS-2365
Diffstat (limited to 'src/org/cyanogenmod/weather')
-rw-r--r-- | src/org/cyanogenmod/weather/provider/WeatherContentProvider.java | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/src/org/cyanogenmod/weather/provider/WeatherContentProvider.java b/src/org/cyanogenmod/weather/provider/WeatherContentProvider.java index b836658..a23a57c 100644 --- a/src/org/cyanogenmod/weather/provider/WeatherContentProvider.java +++ b/src/org/cyanogenmod/weather/provider/WeatherContentProvider.java @@ -31,7 +31,6 @@ import cyanogenmod.weather.WeatherInfo.DayForecast; import java.util.ArrayList; import static cyanogenmod.providers.WeatherContract.WeatherColumns.CURRENT_CITY; -import static cyanogenmod.providers.WeatherContract.WeatherColumns.CURRENT_CITY_ID; import static cyanogenmod.providers.WeatherContract.WeatherColumns.CURRENT_CONDITION; import static cyanogenmod.providers.WeatherContract.WeatherColumns.CURRENT_CONDITION_CODE; import static cyanogenmod.providers.WeatherContract.WeatherColumns.CURRENT_HUMIDITY; @@ -45,6 +44,8 @@ import static cyanogenmod.providers.WeatherContract.WeatherColumns.FORECAST_COND import static cyanogenmod.providers.WeatherContract.WeatherColumns.FORECAST_CONDITION_CODE; import static cyanogenmod.providers.WeatherContract.WeatherColumns.FORECAST_HIGH; import static cyanogenmod.providers.WeatherContract.WeatherColumns.FORECAST_LOW; +import static cyanogenmod.providers.WeatherContract.WeatherColumns.TODAYS_HIGH_TEMPERATURE; +import static cyanogenmod.providers.WeatherContract.WeatherColumns.TODAYS_LOW_TEMPERATURE; public class WeatherContentProvider extends ContentProvider { @@ -53,7 +54,6 @@ public class WeatherContentProvider extends ContentProvider { private static final int URI_TYPE_FORECAST = 3; private static final String[] PROJECTION_CURRENT = new String[] { - CURRENT_CITY_ID, CURRENT_CITY, CURRENT_CONDITION, CURRENT_CONDITION_CODE, @@ -63,6 +63,8 @@ public class WeatherContentProvider extends ContentProvider { CURRENT_WIND_SPEED_UNIT, CURRENT_TEMPERATURE, CURRENT_TEMPERATURE_UNIT, + TODAYS_HIGH_TEMPERATURE, + TODAYS_LOW_TEMPERATURE, CURRENT_TIMESTAMP }; @@ -73,7 +75,6 @@ public class WeatherContentProvider extends ContentProvider { }; private static final String[] PROJECTION_CURRENT_AND_FORECAST = new String[] { - CURRENT_CITY_ID, CURRENT_CITY, CURRENT_CONDITION, CURRENT_CONDITION_CODE, @@ -83,6 +84,8 @@ public class WeatherContentProvider extends ContentProvider { CURRENT_WIND_SPEED_UNIT, CURRENT_TEMPERATURE, CURRENT_TEMPERATURE_UNIT, + TODAYS_HIGH_TEMPERATURE, + TODAYS_LOW_TEMPERATURE, CURRENT_TIMESTAMP, FORECAST_LOW, FORECAST_HIGH, @@ -123,7 +126,6 @@ public class WeatherContentProvider extends ContentProvider { if (projectionType!=URI_TYPE_FORECAST) { // current result.newRow() - .add(CURRENT_CITY_ID, mCachedWeatherInfo.getCityId()) .add(CURRENT_CITY, mCachedWeatherInfo.getCity()) .add(CURRENT_CONDITION, mapWeatherCodeToString(mCachedWeatherInfo .getConditionCode())) @@ -134,6 +136,8 @@ public class WeatherContentProvider extends ContentProvider { .add(CURRENT_WIND_SPEED_UNIT, mCachedWeatherInfo.getWindSpeedUnit()) .add(CURRENT_TEMPERATURE, mCachedWeatherInfo.getTemperature()) .add(CURRENT_TEMPERATURE_UNIT, mCachedWeatherInfo.getTemperatureUnit()) + .add(TODAYS_HIGH_TEMPERATURE, mCachedWeatherInfo.getTodaysHigh()) + .add(TODAYS_LOW_TEMPERATURE, mCachedWeatherInfo.getTodaysLow()) .add(CURRENT_TIMESTAMP, mCachedWeatherInfo.getTimestamp()); } @@ -188,27 +192,27 @@ public class WeatherContentProvider extends ContentProvider { ArrayList<DayForecast> dayForecasts = new ArrayList<>(contentValuesCount - 1); for (int indx = 1; indx < contentValuesCount; indx++) { - dayForecasts.add(new DayForecast.Builder() - .setLow(contentValues[indx].getAsFloat(FORECAST_LOW)) - .setHigh(contentValues[indx].getAsFloat(FORECAST_HIGH)) - .setWeatherCondition( - contentValues[indx].getAsInteger(FORECAST_CONDITION_CODE)) + dayForecasts.add(new DayForecast.Builder( + contentValues[indx].getAsInteger(FORECAST_CONDITION_CODE)) + .setLow(contentValues[indx].getAsDouble(FORECAST_LOW)) + .setHigh(contentValues[indx].getAsDouble(FORECAST_HIGH)) .build()); } //First row is ALWAYS current weather mCachedWeatherInfo = new WeatherInfo.Builder( - contentValues[0].getAsLong(CURRENT_TIMESTAMP)) - .setCity(contentValues[0].getAsString(CURRENT_CITY_ID), - contentValues[0].getAsString(CURRENT_CITY)) + contentValues[0].getAsString(CURRENT_CITY), + contentValues[0].getAsDouble(CURRENT_TEMPERATURE), + contentValues[0].getAsInteger(CURRENT_TEMPERATURE_UNIT)) .setWeatherCondition(contentValues[0].getAsInteger(CURRENT_CONDITION_CODE)) .setForecast(dayForecasts) - .setHumidity(contentValues[0].getAsFloat(CURRENT_HUMIDITY)) - .setTemperature(contentValues[0].getAsFloat(CURRENT_TEMPERATURE), - contentValues[0].getAsInteger(CURRENT_TEMPERATURE_UNIT)) - .setWind(contentValues[0].getAsFloat(CURRENT_WIND_SPEED), - contentValues[0].getAsFloat(CURRENT_WIND_DIRECTION), + .setHumidity(contentValues[0].getAsDouble(CURRENT_HUMIDITY)) + .setWind(contentValues[0].getAsDouble(CURRENT_WIND_SPEED), + contentValues[0].getAsDouble(CURRENT_WIND_DIRECTION), contentValues[0].getAsInteger(CURRENT_WIND_SPEED_UNIT)) + .setTimestamp(contentValues[0].getAsLong(CURRENT_TIMESTAMP)) + .setTodaysHigh(contentValues[0].getAsDouble(TODAYS_HIGH_TEMPERATURE)) + .setTodaysLow(contentValues[0].getAsDouble(TODAYS_LOW_TEMPERATURE)) .build(); } |