summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuis Vidal <lvidal@cyngn.com>2016-04-06 22:34:54 -0700
committerLuis Vidal <lvidal@cyngn.com>2016-04-08 11:10:29 -0700
commit7b881391eb2c7a944511ded61b0dd40644dde89e (patch)
treee7ff57f68c1a5e6a29b694fa49e063b9e4b9d8fc
parent64fda03f5db6977c018bdc718d6aa52974b2a676 (diff)
downloadandroid_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
-rw-r--r--src/org/cyanogenmod/weather/provider/WeatherContentProvider.java38
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();
}