/* * Copyright (C) 2016 The CyanogenMod Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package cyanogenmod.providers; import android.net.Uri; /** * The contract between the weather provider and applications. */ public class WeatherContract { /** * The authority of the weather content provider */ public static final String AUTHORITY = "com.cyanogenmod.weather"; /** * A content:// style uri to the authority for the weather provider */ public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY); public static class WeatherColumns { public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "weather"); public static final Uri CURRENT_AND_FORECAST_WEATHER_URI = Uri.withAppendedPath(CONTENT_URI, "current_and_forecast"); public static final Uri CURRENT_WEATHER_URI = Uri.withAppendedPath(CONTENT_URI, "current"); public static final Uri FORECAST_WEATHER_URI = Uri.withAppendedPath(CONTENT_URI, "forecast"); /** * A unique ID for the city. NOTE: this value fully depends on the implementation of the * weather provider service and can potentially change when you switch providers. *

Type: TEXT

*/ public static final String CURRENT_CITY_ID = "city_id"; /** * The city name *

Type: TEXT

*/ public static final String CURRENT_CITY = "city"; /** * A Valid {@link WeatherCode} *

Type: INTEGER

*/ public static final String CURRENT_CONDITION_CODE = "condition_code"; /** * A localized string mapped to the current weather condition code. Note that, if no * locale is found, the string will be in english *

Type: TEXT

*/ public static final String CURRENT_CONDITION = "condition"; /** * The current weather temperature *

Type: FLOAT

*/ public static final String CURRENT_TEMPERATURE = "temperature"; /** * The unit in which current temperature is reported *

Type: INTEGER

* Can be one of the following: * */ public static final String CURRENT_TEMPERATURE_UNIT = "temperature_unit"; /** * The current weather humidity *

Type: FLOAT

*/ public static final String CURRENT_HUMIDITY = "humidity"; /** * The current wind direction (in degrees) *

Type: FLOAT

*/ public static final String CURRENT_WIND_DIRECTION = "wind_direction"; /** * The current wind speed *

Type: FLOAT

*/ public static final String CURRENT_WIND_SPEED = "wind_speed"; /** * The unit in which the wind speed is reported *

Type: INTEGER

* Can be one of the following: * */ public static final String CURRENT_WIND_SPEED_UNIT = "wind_speed_unit"; /** * The timestamp when this weather was reported *

Type: LONG

*/ public static final String CURRENT_TIMESTAMP = "timestamp"; /** * The forecasted low temperature *

Type: FLOAT

*/ public static final String FORECAST_LOW = "forecast_low"; /** * The forecasted high temperature *

Type: FLOAT

*/ public static final String FORECAST_HIGH = "forecast_high"; /** * A localized string mapped to the forecasted weather condition code. Note that, if no * locale is found, the string will be in english *

Type: TEXT

*/ public static final String FORECAST_CONDITION = "forecast_condition"; /** * The code identifying the forecasted weather condition. * @see #CURRENT_CONDITION_CODE */ public static final String FORECAST_CONDITION_CODE = "forecast_condition_code"; /** * Temperature units */ public static final class TempUnit { private TempUnit() {} public final static int CELSIUS = 1; public final static int FAHRENHEIT = 2; } /** * Wind speed units */ public static final class WindSpeedUnit { private WindSpeedUnit() {} /** * Kilometers per hour */ public final static int KPH = 1; /** * Miles per hour */ public final static int MPH = 2; } /** * Weather condition codes */ public static final class WeatherCode { private WeatherCode() {} /** * @hide */ public final static int WEATHER_CODE_MIN = 0; public final static int TORNADO = 0; public final static int TROPICAL_STORM = 1; public final static int HURRICANE = 2; public final static int SEVERE_THUNDERSTORMS = 3; public final static int THUNDERSTORMS = 4; public final static int MIXED_RAIN_AND_SNOW = 5; public final static int MIXED_RAIN_AND_SLEET = 6; public final static int MIXED_SNOW_AND_SLEET = 7; public final static int FREEZING_DRIZZLE = 8; public final static int DRIZZLE = 9; public final static int FREEZING_RAIN = 10; public final static int SHOWERS = 11; public final static int SNOW_FLURRIES = 12; public final static int LIGHT_SNOW_SHOWERS = 13; public final static int BLOWING_SNOW = 14; public final static int SNOW = 15; public final static int HAIL = 16; public final static int SLEET = 17; public final static int DUST = 18; public final static int FOGGY = 19; public final static int HAZE = 20; public final static int SMOKY = 21; public final static int BLUSTERY = 22; public final static int WINDY = 23; public final static int COLD = 24; public final static int CLOUDY = 25; public final static int MOSTLY_CLOUDY_NIGHT = 26; public final static int MOSTLY_CLOUDY_DAY = 27; public final static int PARTLY_CLOUDY_NIGHT = 28; public final static int PARTLY_CLOUDY_DAY = 29; public final static int CLEAR_NIGHT = 30; public final static int SUNNY = 31; public final static int FAIR_NIGHT = 32; public final static int FAIR_DAY = 33; public final static int MIXED_RAIN_AND_HAIL = 34; public final static int HOT = 35; public final static int ISOLATED_THUNDERSTORMS = 36; public final static int SCATTERED_THUNDERSTORMS = 37; public final static int SCATTERED_SHOWERS = 38; public final static int HEAVY_SNOW = 39; public final static int SCATTERED_SNOW_SHOWERS = 40; public final static int PARTLY_CLOUDY = 41; public final static int THUNDERSHOWER = 42; public final static int SNOW_SHOWERS = 43; public final static int ISOLATED_THUNDERSHOWERS = 44; /** * @hide */ public final static int WEATHER_CODE_MAX = 44; public final static int NOT_AVAILABLE = 3200; } } }