diff options
author | Danny Baumann <dannybaumann@web.de> | 2014-01-05 14:13:16 +0100 |
---|---|---|
committer | Danny Baumann <dannybaumann@web.de> | 2014-01-07 12:06:59 +0100 |
commit | f1487b06a4671ddc79f713aaac4f9a425a3937e1 (patch) | |
tree | 9445aadafaccf7a6f5ec9593238b8c6f323197ec | |
parent | c547e3dce2216eb2879a03f07266d3845da11c01 (diff) | |
download | android_packages_apps_LockClock-f1487b06a4671ddc79f713aaac4f9a425a3937e1.tar.gz android_packages_apps_LockClock-f1487b06a4671ddc79f713aaac4f9a425a3937e1.tar.bz2 android_packages_apps_LockClock-f1487b06a4671ddc79f713aaac4f9a425a3937e1.zip |
Port over improvements from Chronus
- new weather source: OpenWeatherMap
- weather icon pack support
- weather forecast activity and popup
- updated weather and in-app icons
- some new translations (AR, TR, SL)
Change-Id: I2bcc2042bf83d0e0bb4a00200de1310042303e9c
808 files changed, 2657 insertions, 242 deletions
@@ -19,7 +19,7 @@ include $(CLEAR_VARS) LOCAL_SRC_FILES := $(call all-subdir-java-files) -LOCAL_SDK_VERSION := 17 +LOCAL_SDK_VERSION := 19 LOCAL_PACKAGE_NAME := LockClock LOCAL_PROGUARD_FLAG_FILES := proguard.flags LOCAL_AAPT_INCLUDE_ALL_RESOURCES := true diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 6dedeb0..10bf8a2 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -16,18 +16,23 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.cyanogenmod.lockclock" - android:versionCode="15" - android:versionName="3.1.0" > + android:versionCode="20" + android:versionName="3.4.0" > <uses-sdk android:minSdkVersion="16" - android:targetSdkVersion="17" /> + android:targetSdkVersion="19" /> + <!-- Weather --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET" /> + + <!-- Calendar --> <uses-permission android:name="android.permission.READ_CALENDAR" /> + + <!-- General --> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> @@ -51,6 +56,15 @@ <activity android:name=".preference.CalendarPreferences" /> <activity android:name=".preference.WeatherPreferences" /> + <!-- The weather forecast activity --> + <activity android:name=".weather.ForecastActivity" + android:hardwareAccelerated="true" + android:noHistory="true" + android:theme="@style/transparent" + android:launchMode="singleInstance" + android:taskAffinity="" + android:excludeFromRecents="true" /> + <!-- The Widget receiver --> <receiver android:name=".ClockWidgetProvider" > <meta-data android:name="android.appwidget.provider" android:resource="@xml/lock_clock" /> @@ -64,6 +78,7 @@ <action android:name="android.intent.action.BOOT_COMPLETED"/> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> <action android:name="com.android.deskclock.NEXT_ALARM_TIME_SET"/> + <action android:name="com.cyanogenmod.lockclock.action.SHOW_FORECAST" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.PROVIDER_CHANGED"/> @@ -74,7 +89,7 @@ <service android:name=".ClockWidgetService"></service> <service android:name=".weather.WeatherUpdateService"></service> - <service android:name=".calendar.CalendarWidgetService" + <service android:name=".calendar.CalendarViewsService" android:permission="android.permission.BIND_REMOTEVIEWS"> </service> diff --git a/res/drawable-hdpi/calendar_preferences.png b/res/drawable-hdpi/calendar_preferences.png Binary files differindex c0a4dfd..7568ebc 100644 --- a/res/drawable-hdpi/calendar_preferences.png +++ b/res/drawable-hdpi/calendar_preferences.png diff --git a/res/drawable-hdpi/dialog_full_holo_dark.9.png b/res/drawable-hdpi/dialog_full_holo_dark.9.png Binary files differnew file mode 100644 index 0000000..911f3fe --- /dev/null +++ b/res/drawable-hdpi/dialog_full_holo_dark.9.png diff --git a/res/drawable-hdpi/ic_menu_done_holo_light.png b/res/drawable-hdpi/ic_menu_done_holo_light.png Binary files differindex 923589e..d8662e3 100644 --- a/res/drawable-hdpi/ic_menu_done_holo_light.png +++ b/res/drawable-hdpi/ic_menu_done_holo_light.png diff --git a/res/drawable-hdpi/ic_menu_refresh_holo_dark.png b/res/drawable-hdpi/ic_menu_refresh_holo_dark.png Binary files differnew file mode 100644 index 0000000..69ac31b --- /dev/null +++ b/res/drawable-hdpi/ic_menu_refresh_holo_dark.png diff --git a/res/drawable-hdpi/weather2_0.png b/res/drawable-hdpi/weather2_0.png Binary files differdeleted file mode 100644 index 93acd59..0000000 --- a/res/drawable-hdpi/weather2_0.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_1.png b/res/drawable-hdpi/weather2_1.png Binary files differdeleted file mode 100644 index 7bb9f7f..0000000 --- a/res/drawable-hdpi/weather2_1.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_10.png b/res/drawable-hdpi/weather2_10.png Binary files differdeleted file mode 100644 index 7bb9f7f..0000000 --- a/res/drawable-hdpi/weather2_10.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_11.png b/res/drawable-hdpi/weather2_11.png Binary files differdeleted file mode 100644 index 7bb9f7f..0000000 --- a/res/drawable-hdpi/weather2_11.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_12.png b/res/drawable-hdpi/weather2_12.png Binary files differdeleted file mode 100644 index 7bb9f7f..0000000 --- a/res/drawable-hdpi/weather2_12.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_13.png b/res/drawable-hdpi/weather2_13.png Binary files differdeleted file mode 100644 index 30d3b2f..0000000 --- a/res/drawable-hdpi/weather2_13.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_14.png b/res/drawable-hdpi/weather2_14.png Binary files differdeleted file mode 100644 index 30d3b2f..0000000 --- a/res/drawable-hdpi/weather2_14.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_15.png b/res/drawable-hdpi/weather2_15.png Binary files differdeleted file mode 100644 index 30d3b2f..0000000 --- a/res/drawable-hdpi/weather2_15.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_16.png b/res/drawable-hdpi/weather2_16.png Binary files differdeleted file mode 100644 index 30d3b2f..0000000 --- a/res/drawable-hdpi/weather2_16.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_17.png b/res/drawable-hdpi/weather2_17.png Binary files differdeleted file mode 100644 index 93acd59..0000000 --- a/res/drawable-hdpi/weather2_17.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_18.png b/res/drawable-hdpi/weather2_18.png Binary files differdeleted file mode 100644 index 30d3b2f..0000000 --- a/res/drawable-hdpi/weather2_18.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_19.png b/res/drawable-hdpi/weather2_19.png Binary files differdeleted file mode 100644 index 89adec3..0000000 --- a/res/drawable-hdpi/weather2_19.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_2.png b/res/drawable-hdpi/weather2_2.png Binary files differdeleted file mode 100644 index 7bb9f7f..0000000 --- a/res/drawable-hdpi/weather2_2.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_20.png b/res/drawable-hdpi/weather2_20.png Binary files differdeleted file mode 100644 index 130146b..0000000 --- a/res/drawable-hdpi/weather2_20.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_21.png b/res/drawable-hdpi/weather2_21.png Binary files differdeleted file mode 100644 index e8ae4eb..0000000 --- a/res/drawable-hdpi/weather2_21.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_22.png b/res/drawable-hdpi/weather2_22.png Binary files differdeleted file mode 100644 index e8ae4eb..0000000 --- a/res/drawable-hdpi/weather2_22.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_23.png b/res/drawable-hdpi/weather2_23.png Binary files differdeleted file mode 100644 index e683f51..0000000 --- a/res/drawable-hdpi/weather2_23.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_24.png b/res/drawable-hdpi/weather2_24.png Binary files differdeleted file mode 100644 index e683f51..0000000 --- a/res/drawable-hdpi/weather2_24.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_25.png b/res/drawable-hdpi/weather2_25.png Binary files differdeleted file mode 100644 index 91e017b..0000000 --- a/res/drawable-hdpi/weather2_25.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_26.png b/res/drawable-hdpi/weather2_26.png Binary files differdeleted file mode 100644 index 91e017b..0000000 --- a/res/drawable-hdpi/weather2_26.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_27.png b/res/drawable-hdpi/weather2_27.png Binary files differdeleted file mode 100644 index c4a7769..0000000 --- a/res/drawable-hdpi/weather2_27.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_28.png b/res/drawable-hdpi/weather2_28.png Binary files differdeleted file mode 100644 index e683f51..0000000 --- a/res/drawable-hdpi/weather2_28.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_29.png b/res/drawable-hdpi/weather2_29.png Binary files differdeleted file mode 100644 index b268282..0000000 --- a/res/drawable-hdpi/weather2_29.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_3.png b/res/drawable-hdpi/weather2_3.png Binary files differdeleted file mode 100644 index 93acd59..0000000 --- a/res/drawable-hdpi/weather2_3.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_30.png b/res/drawable-hdpi/weather2_30.png Binary files differdeleted file mode 100644 index e683f51..0000000 --- a/res/drawable-hdpi/weather2_30.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_31.png b/res/drawable-hdpi/weather2_31.png Binary files differdeleted file mode 100644 index 6b8717a..0000000 --- a/res/drawable-hdpi/weather2_31.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_32.png b/res/drawable-hdpi/weather2_32.png Binary files differdeleted file mode 100644 index 076d20d..0000000 --- a/res/drawable-hdpi/weather2_32.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_33.png b/res/drawable-hdpi/weather2_33.png Binary files differdeleted file mode 100644 index 3a4404a..0000000 --- a/res/drawable-hdpi/weather2_33.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_34.png b/res/drawable-hdpi/weather2_34.png Binary files differdeleted file mode 100644 index 21f2d64..0000000 --- a/res/drawable-hdpi/weather2_34.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_35.png b/res/drawable-hdpi/weather2_35.png Binary files differdeleted file mode 100644 index 93acd59..0000000 --- a/res/drawable-hdpi/weather2_35.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_36.png b/res/drawable-hdpi/weather2_36.png Binary files differdeleted file mode 100644 index 076d20d..0000000 --- a/res/drawable-hdpi/weather2_36.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_37.png b/res/drawable-hdpi/weather2_37.png Binary files differdeleted file mode 100644 index 3e37538..0000000 --- a/res/drawable-hdpi/weather2_37.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_38.png b/res/drawable-hdpi/weather2_38.png Binary files differdeleted file mode 100644 index 93acd59..0000000 --- a/res/drawable-hdpi/weather2_38.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_39.png b/res/drawable-hdpi/weather2_39.png Binary files differdeleted file mode 100644 index 0df118e..0000000 --- a/res/drawable-hdpi/weather2_39.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_4.png b/res/drawable-hdpi/weather2_4.png Binary files differdeleted file mode 100644 index 93acd59..0000000 --- a/res/drawable-hdpi/weather2_4.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_40.png b/res/drawable-hdpi/weather2_40.png Binary files differdeleted file mode 100644 index 7bb9f7f..0000000 --- a/res/drawable-hdpi/weather2_40.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_41.png b/res/drawable-hdpi/weather2_41.png Binary files differdeleted file mode 100644 index 30d3b2f..0000000 --- a/res/drawable-hdpi/weather2_41.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_42.png b/res/drawable-hdpi/weather2_42.png Binary files differdeleted file mode 100644 index 30d3b2f..0000000 --- a/res/drawable-hdpi/weather2_42.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_43.png b/res/drawable-hdpi/weather2_43.png Binary files differdeleted file mode 100644 index 3b31634..0000000 --- a/res/drawable-hdpi/weather2_43.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_44.png b/res/drawable-hdpi/weather2_44.png Binary files differdeleted file mode 100644 index e9a0029..0000000 --- a/res/drawable-hdpi/weather2_44.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_45.png b/res/drawable-hdpi/weather2_45.png Binary files differdeleted file mode 100644 index dda8edb..0000000 --- a/res/drawable-hdpi/weather2_45.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_46.png b/res/drawable-hdpi/weather2_46.png Binary files differdeleted file mode 100644 index 4ea6a2d..0000000 --- a/res/drawable-hdpi/weather2_46.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_47.png b/res/drawable-hdpi/weather2_47.png Binary files differdeleted file mode 100644 index 1f82f89..0000000 --- a/res/drawable-hdpi/weather2_47.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_5.png b/res/drawable-hdpi/weather2_5.png Binary files differdeleted file mode 100644 index c2bf7f3..0000000 --- a/res/drawable-hdpi/weather2_5.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_6.png b/res/drawable-hdpi/weather2_6.png Binary files differdeleted file mode 100644 index c2bf7f3..0000000 --- a/res/drawable-hdpi/weather2_6.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_7.png b/res/drawable-hdpi/weather2_7.png Binary files differdeleted file mode 100644 index 30d3b2f..0000000 --- a/res/drawable-hdpi/weather2_7.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_8.png b/res/drawable-hdpi/weather2_8.png Binary files differdeleted file mode 100644 index 91e017b..0000000 --- a/res/drawable-hdpi/weather2_8.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_9.png b/res/drawable-hdpi/weather2_9.png Binary files differdeleted file mode 100644 index 7bb9f7f..0000000 --- a/res/drawable-hdpi/weather2_9.png +++ /dev/null diff --git a/res/drawable-hdpi/weather2_na.png b/res/drawable-hdpi/weather2_na.png Binary files differdeleted file mode 100644 index ea0bfff..0000000 --- a/res/drawable-hdpi/weather2_na.png +++ /dev/null diff --git a/res/drawable-hdpi/weather_0.png b/res/drawable-hdpi/weather_0.png Binary files differindex 9e539b6..6da5673 100644 --- a/res/drawable-hdpi/weather_0.png +++ b/res/drawable-hdpi/weather_0.png diff --git a/res/drawable-hdpi/weather_1.png b/res/drawable-hdpi/weather_1.png Binary files differindex 9e539b6..6da5673 100644 --- a/res/drawable-hdpi/weather_1.png +++ b/res/drawable-hdpi/weather_1.png diff --git a/res/drawable-hdpi/weather_10.png b/res/drawable-hdpi/weather_10.png Binary files differindex daf991e..608d12e 100644 --- a/res/drawable-hdpi/weather_10.png +++ b/res/drawable-hdpi/weather_10.png diff --git a/res/drawable-hdpi/weather_11.png b/res/drawable-hdpi/weather_11.png Binary files differindex 91a74a5..c423c2f 100644 --- a/res/drawable-hdpi/weather_11.png +++ b/res/drawable-hdpi/weather_11.png diff --git a/res/drawable-hdpi/weather_12.png b/res/drawable-hdpi/weather_12.png Binary files differindex 91a74a5..c423c2f 100644 --- a/res/drawable-hdpi/weather_12.png +++ b/res/drawable-hdpi/weather_12.png diff --git a/res/drawable-hdpi/weather_13.png b/res/drawable-hdpi/weather_13.png Binary files differindex b2f41a5..57845d9 100644 --- a/res/drawable-hdpi/weather_13.png +++ b/res/drawable-hdpi/weather_13.png diff --git a/res/drawable-hdpi/weather_14.png b/res/drawable-hdpi/weather_14.png Binary files differindex b2f41a5..57845d9 100644 --- a/res/drawable-hdpi/weather_14.png +++ b/res/drawable-hdpi/weather_14.png diff --git a/res/drawable-hdpi/weather_15.png b/res/drawable-hdpi/weather_15.png Binary files differindex 2e92b35..0bd5ced 100644 --- a/res/drawable-hdpi/weather_15.png +++ b/res/drawable-hdpi/weather_15.png diff --git a/res/drawable-hdpi/weather_16.png b/res/drawable-hdpi/weather_16.png Binary files differindex bf4564c..5efb417 100644 --- a/res/drawable-hdpi/weather_16.png +++ b/res/drawable-hdpi/weather_16.png diff --git a/res/drawable-hdpi/weather_17.png b/res/drawable-hdpi/weather_17.png Binary files differindex f7948c1..7960cae 100644 --- a/res/drawable-hdpi/weather_17.png +++ b/res/drawable-hdpi/weather_17.png diff --git a/res/drawable-hdpi/weather_18.png b/res/drawable-hdpi/weather_18.png Binary files differindex 802a80f..8e6dd43 100644 --- a/res/drawable-hdpi/weather_18.png +++ b/res/drawable-hdpi/weather_18.png diff --git a/res/drawable-hdpi/weather_19.png b/res/drawable-hdpi/weather_19.png Binary files differindex b67ba5e..f90075e 100644 --- a/res/drawable-hdpi/weather_19.png +++ b/res/drawable-hdpi/weather_19.png diff --git a/res/drawable-hdpi/weather_2.png b/res/drawable-hdpi/weather_2.png Binary files differindex 9e539b6..6da5673 100644 --- a/res/drawable-hdpi/weather_2.png +++ b/res/drawable-hdpi/weather_2.png diff --git a/res/drawable-hdpi/weather_20.png b/res/drawable-hdpi/weather_20.png Binary files differindex fd40f33..22ffd2d 100644 --- a/res/drawable-hdpi/weather_20.png +++ b/res/drawable-hdpi/weather_20.png diff --git a/res/drawable-hdpi/weather_21.png b/res/drawable-hdpi/weather_21.png Binary files differindex 8349b21..9b9e309 100644 --- a/res/drawable-hdpi/weather_21.png +++ b/res/drawable-hdpi/weather_21.png diff --git a/res/drawable-hdpi/weather_22.png b/res/drawable-hdpi/weather_22.png Binary files differindex b67ba5e..f90075e 100644 --- a/res/drawable-hdpi/weather_22.png +++ b/res/drawable-hdpi/weather_22.png diff --git a/res/drawable-hdpi/weather_23.png b/res/drawable-hdpi/weather_23.png Binary files differindex ca015be..86b968d 100644 --- a/res/drawable-hdpi/weather_23.png +++ b/res/drawable-hdpi/weather_23.png diff --git a/res/drawable-hdpi/weather_24.png b/res/drawable-hdpi/weather_24.png Binary files differindex ca015be..86b968d 100644 --- a/res/drawable-hdpi/weather_24.png +++ b/res/drawable-hdpi/weather_24.png diff --git a/res/drawable-hdpi/weather_25.png b/res/drawable-hdpi/weather_25.png Binary files differindex 32cb0d8..225047f 100644 --- a/res/drawable-hdpi/weather_25.png +++ b/res/drawable-hdpi/weather_25.png diff --git a/res/drawable-hdpi/weather_26.png b/res/drawable-hdpi/weather_26.png Binary files differindex ce9761a..c918c4c 100644 --- a/res/drawable-hdpi/weather_26.png +++ b/res/drawable-hdpi/weather_26.png diff --git a/res/drawable-hdpi/weather_27.png b/res/drawable-hdpi/weather_27.png Binary files differindex 67433a7..3db96b7 100644 --- a/res/drawable-hdpi/weather_27.png +++ b/res/drawable-hdpi/weather_27.png diff --git a/res/drawable-hdpi/weather_28.png b/res/drawable-hdpi/weather_28.png Binary files differindex 43f3df8..a49a089 100644 --- a/res/drawable-hdpi/weather_28.png +++ b/res/drawable-hdpi/weather_28.png diff --git a/res/drawable-hdpi/weather_29.png b/res/drawable-hdpi/weather_29.png Binary files differindex 67433a7..3db96b7 100644 --- a/res/drawable-hdpi/weather_29.png +++ b/res/drawable-hdpi/weather_29.png diff --git a/res/drawable-hdpi/weather_3.png b/res/drawable-hdpi/weather_3.png Binary files differindex 708a2e6..dd25ea4 100644 --- a/res/drawable-hdpi/weather_3.png +++ b/res/drawable-hdpi/weather_3.png diff --git a/res/drawable-hdpi/weather_30.png b/res/drawable-hdpi/weather_30.png Binary files differindex 43f3df8..a49a089 100644 --- a/res/drawable-hdpi/weather_30.png +++ b/res/drawable-hdpi/weather_30.png diff --git a/res/drawable-hdpi/weather_31.png b/res/drawable-hdpi/weather_31.png Binary files differindex d545d77..831f19d 100644 --- a/res/drawable-hdpi/weather_31.png +++ b/res/drawable-hdpi/weather_31.png diff --git a/res/drawable-hdpi/weather_32.png b/res/drawable-hdpi/weather_32.png Binary files differindex c55e4b3..c9fecb0 100644 --- a/res/drawable-hdpi/weather_32.png +++ b/res/drawable-hdpi/weather_32.png diff --git a/res/drawable-hdpi/weather_33.png b/res/drawable-hdpi/weather_33.png Binary files differindex d545d77..831f19d 100644 --- a/res/drawable-hdpi/weather_33.png +++ b/res/drawable-hdpi/weather_33.png diff --git a/res/drawable-hdpi/weather_34.png b/res/drawable-hdpi/weather_34.png Binary files differindex c55e4b3..c9fecb0 100644 --- a/res/drawable-hdpi/weather_34.png +++ b/res/drawable-hdpi/weather_34.png diff --git a/res/drawable-hdpi/weather_35.png b/res/drawable-hdpi/weather_35.png Binary files differindex 3cd1b81..f92be1c 100644 --- a/res/drawable-hdpi/weather_35.png +++ b/res/drawable-hdpi/weather_35.png diff --git a/res/drawable-hdpi/weather_36.png b/res/drawable-hdpi/weather_36.png Binary files differindex 06cb774..97e9b0f 100644 --- a/res/drawable-hdpi/weather_36.png +++ b/res/drawable-hdpi/weather_36.png diff --git a/res/drawable-hdpi/weather_37.png b/res/drawable-hdpi/weather_37.png Binary files differindex 8b2c4d1..b87873c 100644 --- a/res/drawable-hdpi/weather_37.png +++ b/res/drawable-hdpi/weather_37.png diff --git a/res/drawable-hdpi/weather_38.png b/res/drawable-hdpi/weather_38.png Binary files differindex f0509ef..1fb1c34 100644 --- a/res/drawable-hdpi/weather_38.png +++ b/res/drawable-hdpi/weather_38.png diff --git a/res/drawable-hdpi/weather_39.png b/res/drawable-hdpi/weather_39.png Binary files differindex 8b2c4d1..b87873c 100644 --- a/res/drawable-hdpi/weather_39.png +++ b/res/drawable-hdpi/weather_39.png diff --git a/res/drawable-hdpi/weather_4.png b/res/drawable-hdpi/weather_4.png Binary files differindex 708a2e6..dd25ea4 100644 --- a/res/drawable-hdpi/weather_4.png +++ b/res/drawable-hdpi/weather_4.png diff --git a/res/drawable-hdpi/weather_40.png b/res/drawable-hdpi/weather_40.png Binary files differindex fb3c06d..93e4756 100644 --- a/res/drawable-hdpi/weather_40.png +++ b/res/drawable-hdpi/weather_40.png diff --git a/res/drawable-hdpi/weather_41.png b/res/drawable-hdpi/weather_41.png Binary files differindex bf4564c..5efb417 100644 --- a/res/drawable-hdpi/weather_41.png +++ b/res/drawable-hdpi/weather_41.png diff --git a/res/drawable-hdpi/weather_42.png b/res/drawable-hdpi/weather_42.png Binary files differindex 7b81366..06e76de 100644 --- a/res/drawable-hdpi/weather_42.png +++ b/res/drawable-hdpi/weather_42.png diff --git a/res/drawable-hdpi/weather_43.png b/res/drawable-hdpi/weather_43.png Binary files differindex bf4564c..5efb417 100644 --- a/res/drawable-hdpi/weather_43.png +++ b/res/drawable-hdpi/weather_43.png diff --git a/res/drawable-hdpi/weather_44.png b/res/drawable-hdpi/weather_44.png Binary files differindex 67433a7..3db96b7 100644 --- a/res/drawable-hdpi/weather_44.png +++ b/res/drawable-hdpi/weather_44.png diff --git a/res/drawable-hdpi/weather_45.png b/res/drawable-hdpi/weather_45.png Binary files differindex 708a2e6..dd25ea4 100644 --- a/res/drawable-hdpi/weather_45.png +++ b/res/drawable-hdpi/weather_45.png diff --git a/res/drawable-hdpi/weather_46.png b/res/drawable-hdpi/weather_46.png Binary files differindex b2f41a5..57845d9 100644 --- a/res/drawable-hdpi/weather_46.png +++ b/res/drawable-hdpi/weather_46.png diff --git a/res/drawable-hdpi/weather_47.png b/res/drawable-hdpi/weather_47.png Binary files differindex f0509ef..1fb1c34 100644 --- a/res/drawable-hdpi/weather_47.png +++ b/res/drawable-hdpi/weather_47.png diff --git a/res/drawable-hdpi/weather_5.png b/res/drawable-hdpi/weather_5.png Binary files differindex 802a80f..8e6dd43 100644 --- a/res/drawable-hdpi/weather_5.png +++ b/res/drawable-hdpi/weather_5.png diff --git a/res/drawable-hdpi/weather_6.png b/res/drawable-hdpi/weather_6.png Binary files differindex 802a80f..8e6dd43 100644 --- a/res/drawable-hdpi/weather_6.png +++ b/res/drawable-hdpi/weather_6.png diff --git a/res/drawable-hdpi/weather_7.png b/res/drawable-hdpi/weather_7.png Binary files differindex 802a80f..8e6dd43 100644 --- a/res/drawable-hdpi/weather_7.png +++ b/res/drawable-hdpi/weather_7.png diff --git a/res/drawable-hdpi/weather_8.png b/res/drawable-hdpi/weather_8.png Binary files differindex e36a680..ec5c008 100644 --- a/res/drawable-hdpi/weather_8.png +++ b/res/drawable-hdpi/weather_8.png diff --git a/res/drawable-hdpi/weather_9.png b/res/drawable-hdpi/weather_9.png Binary files differindex 7651b3e..f1c54b7 100644 --- a/res/drawable-hdpi/weather_9.png +++ b/res/drawable-hdpi/weather_9.png diff --git a/res/drawable-hdpi/weather_color_0.png b/res/drawable-hdpi/weather_color_0.png Binary files differnew file mode 100644 index 0000000..817a1ef --- /dev/null +++ b/res/drawable-hdpi/weather_color_0.png diff --git a/res/drawable-hdpi/weather_color_1.png b/res/drawable-hdpi/weather_color_1.png Binary files differnew file mode 100644 index 0000000..ccd81c6 --- /dev/null +++ b/res/drawable-hdpi/weather_color_1.png diff --git a/res/drawable-hdpi/weather_color_10.png b/res/drawable-hdpi/weather_color_10.png Binary files differnew file mode 100644 index 0000000..e8e05ec --- /dev/null +++ b/res/drawable-hdpi/weather_color_10.png diff --git a/res/drawable-hdpi/weather_color_11.png b/res/drawable-hdpi/weather_color_11.png Binary files differnew file mode 100644 index 0000000..86cb275 --- /dev/null +++ b/res/drawable-hdpi/weather_color_11.png diff --git a/res/drawable-hdpi/weather_color_12.png b/res/drawable-hdpi/weather_color_12.png Binary files differnew file mode 100644 index 0000000..86cb275 --- /dev/null +++ b/res/drawable-hdpi/weather_color_12.png diff --git a/res/drawable-hdpi/weather_color_13.png b/res/drawable-hdpi/weather_color_13.png Binary files differnew file mode 100644 index 0000000..0b453f5 --- /dev/null +++ b/res/drawable-hdpi/weather_color_13.png diff --git a/res/drawable-hdpi/weather_color_14.png b/res/drawable-hdpi/weather_color_14.png Binary files differnew file mode 100644 index 0000000..0b453f5 --- /dev/null +++ b/res/drawable-hdpi/weather_color_14.png diff --git a/res/drawable-hdpi/weather_color_15.png b/res/drawable-hdpi/weather_color_15.png Binary files differnew file mode 100644 index 0000000..0b453f5 --- /dev/null +++ b/res/drawable-hdpi/weather_color_15.png diff --git a/res/drawable-hdpi/weather_color_16.png b/res/drawable-hdpi/weather_color_16.png Binary files differnew file mode 100644 index 0000000..0b453f5 --- /dev/null +++ b/res/drawable-hdpi/weather_color_16.png diff --git a/res/drawable-hdpi/weather_color_17.png b/res/drawable-hdpi/weather_color_17.png Binary files differnew file mode 100644 index 0000000..b0d0d2f --- /dev/null +++ b/res/drawable-hdpi/weather_color_17.png diff --git a/res/drawable-hdpi/weather_color_18.png b/res/drawable-hdpi/weather_color_18.png Binary files differnew file mode 100644 index 0000000..70b3ff3 --- /dev/null +++ b/res/drawable-hdpi/weather_color_18.png diff --git a/res/drawable-hdpi/weather_color_19.png b/res/drawable-hdpi/weather_color_19.png Binary files differnew file mode 100644 index 0000000..70cd4f8 --- /dev/null +++ b/res/drawable-hdpi/weather_color_19.png diff --git a/res/drawable-hdpi/weather_color_2.png b/res/drawable-hdpi/weather_color_2.png Binary files differnew file mode 100644 index 0000000..ccd81c6 --- /dev/null +++ b/res/drawable-hdpi/weather_color_2.png diff --git a/res/drawable-hdpi/weather_color_20.png b/res/drawable-hdpi/weather_color_20.png Binary files differnew file mode 100644 index 0000000..55e3b0a --- /dev/null +++ b/res/drawable-hdpi/weather_color_20.png diff --git a/res/drawable-hdpi/weather_color_21.png b/res/drawable-hdpi/weather_color_21.png Binary files differnew file mode 100644 index 0000000..bc115ab --- /dev/null +++ b/res/drawable-hdpi/weather_color_21.png diff --git a/res/drawable-hdpi/weather_color_22.png b/res/drawable-hdpi/weather_color_22.png Binary files differnew file mode 100644 index 0000000..2e937f7 --- /dev/null +++ b/res/drawable-hdpi/weather_color_22.png diff --git a/res/drawable-hdpi/weather_color_23.png b/res/drawable-hdpi/weather_color_23.png Binary files differnew file mode 100644 index 0000000..a3da963 --- /dev/null +++ b/res/drawable-hdpi/weather_color_23.png diff --git a/res/drawable-hdpi/weather_color_24.png b/res/drawable-hdpi/weather_color_24.png Binary files differnew file mode 100644 index 0000000..a3da963 --- /dev/null +++ b/res/drawable-hdpi/weather_color_24.png diff --git a/res/drawable-hdpi/weather_color_25.png b/res/drawable-hdpi/weather_color_25.png Binary files differnew file mode 100644 index 0000000..a2a7341 --- /dev/null +++ b/res/drawable-hdpi/weather_color_25.png diff --git a/res/drawable-hdpi/weather_color_26.png b/res/drawable-hdpi/weather_color_26.png Binary files differnew file mode 100644 index 0000000..e42cb6c --- /dev/null +++ b/res/drawable-hdpi/weather_color_26.png diff --git a/res/drawable-hdpi/weather_color_27.png b/res/drawable-hdpi/weather_color_27.png Binary files differnew file mode 100644 index 0000000..27cce80 --- /dev/null +++ b/res/drawable-hdpi/weather_color_27.png diff --git a/res/drawable-hdpi/weather_color_28.png b/res/drawable-hdpi/weather_color_28.png Binary files differnew file mode 100644 index 0000000..1d957ab --- /dev/null +++ b/res/drawable-hdpi/weather_color_28.png diff --git a/res/drawable-hdpi/weather_color_29.png b/res/drawable-hdpi/weather_color_29.png Binary files differnew file mode 100644 index 0000000..659129e --- /dev/null +++ b/res/drawable-hdpi/weather_color_29.png diff --git a/res/drawable-hdpi/weather_color_3.png b/res/drawable-hdpi/weather_color_3.png Binary files differnew file mode 100644 index 0000000..817a1ef --- /dev/null +++ b/res/drawable-hdpi/weather_color_3.png diff --git a/res/drawable-hdpi/weather_color_30.png b/res/drawable-hdpi/weather_color_30.png Binary files differnew file mode 100644 index 0000000..0672cc2 --- /dev/null +++ b/res/drawable-hdpi/weather_color_30.png diff --git a/res/drawable-hdpi/weather_color_31.png b/res/drawable-hdpi/weather_color_31.png Binary files differnew file mode 100644 index 0000000..4f6786b --- /dev/null +++ b/res/drawable-hdpi/weather_color_31.png diff --git a/res/drawable-hdpi/weather_color_32.png b/res/drawable-hdpi/weather_color_32.png Binary files differnew file mode 100644 index 0000000..5c3e46c --- /dev/null +++ b/res/drawable-hdpi/weather_color_32.png diff --git a/res/drawable-hdpi/weather_color_33.png b/res/drawable-hdpi/weather_color_33.png Binary files differnew file mode 100644 index 0000000..e5e993d --- /dev/null +++ b/res/drawable-hdpi/weather_color_33.png diff --git a/res/drawable-hdpi/weather_color_34.png b/res/drawable-hdpi/weather_color_34.png Binary files differnew file mode 100644 index 0000000..b0b9c5a --- /dev/null +++ b/res/drawable-hdpi/weather_color_34.png diff --git a/res/drawable-hdpi/weather_color_35.png b/res/drawable-hdpi/weather_color_35.png Binary files differnew file mode 100644 index 0000000..6ebd07c --- /dev/null +++ b/res/drawable-hdpi/weather_color_35.png diff --git a/res/drawable-hdpi/weather_color_36.png b/res/drawable-hdpi/weather_color_36.png Binary files differnew file mode 100644 index 0000000..2e8308d --- /dev/null +++ b/res/drawable-hdpi/weather_color_36.png diff --git a/res/drawable-hdpi/weather_color_37.png b/res/drawable-hdpi/weather_color_37.png Binary files differnew file mode 100644 index 0000000..36b11c2 --- /dev/null +++ b/res/drawable-hdpi/weather_color_37.png diff --git a/res/drawable-hdpi/weather_color_38.png b/res/drawable-hdpi/weather_color_38.png Binary files differnew file mode 100644 index 0000000..36b11c2 --- /dev/null +++ b/res/drawable-hdpi/weather_color_38.png diff --git a/res/drawable-hdpi/weather_color_39.png b/res/drawable-hdpi/weather_color_39.png Binary files differnew file mode 100644 index 0000000..36b11c2 --- /dev/null +++ b/res/drawable-hdpi/weather_color_39.png diff --git a/res/drawable-hdpi/weather_color_4.png b/res/drawable-hdpi/weather_color_4.png Binary files differnew file mode 100644 index 0000000..817a1ef --- /dev/null +++ b/res/drawable-hdpi/weather_color_4.png diff --git a/res/drawable-hdpi/weather_color_40.png b/res/drawable-hdpi/weather_color_40.png Binary files differnew file mode 100644 index 0000000..01e8f64 --- /dev/null +++ b/res/drawable-hdpi/weather_color_40.png diff --git a/res/drawable-hdpi/weather_color_41.png b/res/drawable-hdpi/weather_color_41.png Binary files differnew file mode 100644 index 0000000..20d4181 --- /dev/null +++ b/res/drawable-hdpi/weather_color_41.png diff --git a/res/drawable-hdpi/weather_color_42.png b/res/drawable-hdpi/weather_color_42.png Binary files differnew file mode 100644 index 0000000..0b453f5 --- /dev/null +++ b/res/drawable-hdpi/weather_color_42.png diff --git a/res/drawable-hdpi/weather_color_43.png b/res/drawable-hdpi/weather_color_43.png Binary files differnew file mode 100644 index 0000000..0208659 --- /dev/null +++ b/res/drawable-hdpi/weather_color_43.png diff --git a/res/drawable-hdpi/weather_color_44.png b/res/drawable-hdpi/weather_color_44.png Binary files differnew file mode 100644 index 0000000..e5e993d --- /dev/null +++ b/res/drawable-hdpi/weather_color_44.png diff --git a/res/drawable-hdpi/weather_color_45.png b/res/drawable-hdpi/weather_color_45.png Binary files differnew file mode 100644 index 0000000..5caec1e --- /dev/null +++ b/res/drawable-hdpi/weather_color_45.png diff --git a/res/drawable-hdpi/weather_color_46.png b/res/drawable-hdpi/weather_color_46.png Binary files differnew file mode 100644 index 0000000..79c5495 --- /dev/null +++ b/res/drawable-hdpi/weather_color_46.png diff --git a/res/drawable-hdpi/weather_color_47.png b/res/drawable-hdpi/weather_color_47.png Binary files differnew file mode 100644 index 0000000..fd769e6 --- /dev/null +++ b/res/drawable-hdpi/weather_color_47.png diff --git a/res/drawable-hdpi/weather_color_5.png b/res/drawable-hdpi/weather_color_5.png Binary files differnew file mode 100644 index 0000000..70b3ff3 --- /dev/null +++ b/res/drawable-hdpi/weather_color_5.png diff --git a/res/drawable-hdpi/weather_color_6.png b/res/drawable-hdpi/weather_color_6.png Binary files differnew file mode 100644 index 0000000..70b3ff3 --- /dev/null +++ b/res/drawable-hdpi/weather_color_6.png diff --git a/res/drawable-hdpi/weather_color_7.png b/res/drawable-hdpi/weather_color_7.png Binary files differnew file mode 100644 index 0000000..0b453f5 --- /dev/null +++ b/res/drawable-hdpi/weather_color_7.png diff --git a/res/drawable-hdpi/weather_color_8.png b/res/drawable-hdpi/weather_color_8.png Binary files differnew file mode 100644 index 0000000..7de8be0 --- /dev/null +++ b/res/drawable-hdpi/weather_color_8.png diff --git a/res/drawable-hdpi/weather_color_9.png b/res/drawable-hdpi/weather_color_9.png Binary files differnew file mode 100644 index 0000000..dd3b0da --- /dev/null +++ b/res/drawable-hdpi/weather_color_9.png diff --git a/res/drawable-hdpi/weather_color_na.png b/res/drawable-hdpi/weather_color_na.png Binary files differnew file mode 100644 index 0000000..9a0ad6e --- /dev/null +++ b/res/drawable-hdpi/weather_color_na.png diff --git a/res/drawable-hdpi/weather_na.png b/res/drawable-hdpi/weather_na.png Binary files differindex 4a43283..7dd3505 100644 --- a/res/drawable-hdpi/weather_na.png +++ b/res/drawable-hdpi/weather_na.png diff --git a/res/drawable-hdpi/weather_preferences.png b/res/drawable-hdpi/weather_preferences.png Binary files differindex d6b096a..2ef8730 100644 --- a/res/drawable-hdpi/weather_preferences.png +++ b/res/drawable-hdpi/weather_preferences.png diff --git a/res/drawable-hdpi/weather_vclouds_0.png b/res/drawable-hdpi/weather_vclouds_0.png Binary files differnew file mode 100644 index 0000000..a5b6324 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_0.png diff --git a/res/drawable-hdpi/weather_vclouds_1.png b/res/drawable-hdpi/weather_vclouds_1.png Binary files differnew file mode 100644 index 0000000..a5b6324 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_1.png diff --git a/res/drawable-hdpi/weather_vclouds_10.png b/res/drawable-hdpi/weather_vclouds_10.png Binary files differnew file mode 100644 index 0000000..4ddf752 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_10.png diff --git a/res/drawable-hdpi/weather_vclouds_11.png b/res/drawable-hdpi/weather_vclouds_11.png Binary files differnew file mode 100644 index 0000000..71854e8 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_11.png diff --git a/res/drawable-hdpi/weather_vclouds_12.png b/res/drawable-hdpi/weather_vclouds_12.png Binary files differnew file mode 100644 index 0000000..4985905 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_12.png diff --git a/res/drawable-hdpi/weather_vclouds_13.png b/res/drawable-hdpi/weather_vclouds_13.png Binary files differnew file mode 100644 index 0000000..c1db7bb --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_13.png diff --git a/res/drawable-hdpi/weather_vclouds_14.png b/res/drawable-hdpi/weather_vclouds_14.png Binary files differnew file mode 100644 index 0000000..8b4d8fa --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_14.png diff --git a/res/drawable-hdpi/weather_vclouds_15.png b/res/drawable-hdpi/weather_vclouds_15.png Binary files differnew file mode 100644 index 0000000..84f39c8 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_15.png diff --git a/res/drawable-hdpi/weather_vclouds_16.png b/res/drawable-hdpi/weather_vclouds_16.png Binary files differnew file mode 100644 index 0000000..9ffeee4 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_16.png diff --git a/res/drawable-hdpi/weather_vclouds_17.png b/res/drawable-hdpi/weather_vclouds_17.png Binary files differnew file mode 100644 index 0000000..a5b6324 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_17.png diff --git a/res/drawable-hdpi/weather_vclouds_18.png b/res/drawable-hdpi/weather_vclouds_18.png Binary files differnew file mode 100644 index 0000000..0046e64 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_18.png diff --git a/res/drawable-hdpi/weather_vclouds_19.png b/res/drawable-hdpi/weather_vclouds_19.png Binary files differnew file mode 100644 index 0000000..4ff647d --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_19.png diff --git a/res/drawable-hdpi/weather_vclouds_2.png b/res/drawable-hdpi/weather_vclouds_2.png Binary files differnew file mode 100644 index 0000000..a5b6324 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_2.png diff --git a/res/drawable-hdpi/weather_vclouds_20.png b/res/drawable-hdpi/weather_vclouds_20.png Binary files differnew file mode 100644 index 0000000..de08bfc --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_20.png diff --git a/res/drawable-hdpi/weather_vclouds_21.png b/res/drawable-hdpi/weather_vclouds_21.png Binary files differnew file mode 100644 index 0000000..6595679 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_21.png diff --git a/res/drawable-hdpi/weather_vclouds_22.png b/res/drawable-hdpi/weather_vclouds_22.png Binary files differnew file mode 100644 index 0000000..68b5fb4 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_22.png diff --git a/res/drawable-hdpi/weather_vclouds_23.png b/res/drawable-hdpi/weather_vclouds_23.png Binary files differnew file mode 100644 index 0000000..e1663c3 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_23.png diff --git a/res/drawable-hdpi/weather_vclouds_24.png b/res/drawable-hdpi/weather_vclouds_24.png Binary files differnew file mode 100644 index 0000000..e1663c3 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_24.png diff --git a/res/drawable-hdpi/weather_vclouds_25.png b/res/drawable-hdpi/weather_vclouds_25.png Binary files differnew file mode 100644 index 0000000..09827eb --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_25.png diff --git a/res/drawable-hdpi/weather_vclouds_26.png b/res/drawable-hdpi/weather_vclouds_26.png Binary files differnew file mode 100644 index 0000000..3e87fc1 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_26.png diff --git a/res/drawable-hdpi/weather_vclouds_27.png b/res/drawable-hdpi/weather_vclouds_27.png Binary files differnew file mode 100644 index 0000000..13f43bb --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_27.png diff --git a/res/drawable-hdpi/weather_vclouds_28.png b/res/drawable-hdpi/weather_vclouds_28.png Binary files differnew file mode 100644 index 0000000..b727fdd --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_28.png diff --git a/res/drawable-hdpi/weather_vclouds_29.png b/res/drawable-hdpi/weather_vclouds_29.png Binary files differnew file mode 100644 index 0000000..200d78d --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_29.png diff --git a/res/drawable-hdpi/weather_vclouds_3.png b/res/drawable-hdpi/weather_vclouds_3.png Binary files differnew file mode 100644 index 0000000..a5b6324 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_3.png diff --git a/res/drawable-hdpi/weather_vclouds_30.png b/res/drawable-hdpi/weather_vclouds_30.png Binary files differnew file mode 100644 index 0000000..c031705 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_30.png diff --git a/res/drawable-hdpi/weather_vclouds_31.png b/res/drawable-hdpi/weather_vclouds_31.png Binary files differnew file mode 100644 index 0000000..abc4593 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_31.png diff --git a/res/drawable-hdpi/weather_vclouds_32.png b/res/drawable-hdpi/weather_vclouds_32.png Binary files differnew file mode 100644 index 0000000..37d8474 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_32.png diff --git a/res/drawable-hdpi/weather_vclouds_33.png b/res/drawable-hdpi/weather_vclouds_33.png Binary files differnew file mode 100644 index 0000000..29319c7 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_33.png diff --git a/res/drawable-hdpi/weather_vclouds_34.png b/res/drawable-hdpi/weather_vclouds_34.png Binary files differnew file mode 100644 index 0000000..a47bf8a --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_34.png diff --git a/res/drawable-hdpi/weather_vclouds_35.png b/res/drawable-hdpi/weather_vclouds_35.png Binary files differnew file mode 100644 index 0000000..a5b6324 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_35.png diff --git a/res/drawable-hdpi/weather_vclouds_36.png b/res/drawable-hdpi/weather_vclouds_36.png Binary files differnew file mode 100644 index 0000000..1f87615 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_36.png diff --git a/res/drawable-hdpi/weather_vclouds_37.png b/res/drawable-hdpi/weather_vclouds_37.png Binary files differnew file mode 100644 index 0000000..36588ea --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_37.png diff --git a/res/drawable-hdpi/weather_vclouds_38.png b/res/drawable-hdpi/weather_vclouds_38.png Binary files differnew file mode 100644 index 0000000..36588ea --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_38.png diff --git a/res/drawable-hdpi/weather_vclouds_39.png b/res/drawable-hdpi/weather_vclouds_39.png Binary files differnew file mode 100644 index 0000000..f5a8048 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_39.png diff --git a/res/drawable-hdpi/weather_vclouds_4.png b/res/drawable-hdpi/weather_vclouds_4.png Binary files differnew file mode 100644 index 0000000..a5b6324 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_4.png diff --git a/res/drawable-hdpi/weather_vclouds_40.png b/res/drawable-hdpi/weather_vclouds_40.png Binary files differnew file mode 100644 index 0000000..4985905 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_40.png diff --git a/res/drawable-hdpi/weather_vclouds_41.png b/res/drawable-hdpi/weather_vclouds_41.png Binary files differnew file mode 100644 index 0000000..f48caee --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_41.png diff --git a/res/drawable-hdpi/weather_vclouds_42.png b/res/drawable-hdpi/weather_vclouds_42.png Binary files differnew file mode 100644 index 0000000..9ffeee4 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_42.png diff --git a/res/drawable-hdpi/weather_vclouds_43.png b/res/drawable-hdpi/weather_vclouds_43.png Binary files differnew file mode 100644 index 0000000..84f39c8 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_43.png diff --git a/res/drawable-hdpi/weather_vclouds_44.png b/res/drawable-hdpi/weather_vclouds_44.png Binary files differnew file mode 100644 index 0000000..ff85cb0 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_44.png diff --git a/res/drawable-hdpi/weather_vclouds_45.png b/res/drawable-hdpi/weather_vclouds_45.png Binary files differnew file mode 100644 index 0000000..5e2fbf5 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_45.png diff --git a/res/drawable-hdpi/weather_vclouds_46.png b/res/drawable-hdpi/weather_vclouds_46.png Binary files differnew file mode 100644 index 0000000..c3abc30 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_46.png diff --git a/res/drawable-hdpi/weather_vclouds_47.png b/res/drawable-hdpi/weather_vclouds_47.png Binary files differnew file mode 100644 index 0000000..4ad5bf7 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_47.png diff --git a/res/drawable-hdpi/weather_vclouds_5.png b/res/drawable-hdpi/weather_vclouds_5.png Binary files differnew file mode 100644 index 0000000..719185f --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_5.png diff --git a/res/drawable-hdpi/weather_vclouds_6.png b/res/drawable-hdpi/weather_vclouds_6.png Binary files differnew file mode 100644 index 0000000..bb66e9e --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_6.png diff --git a/res/drawable-hdpi/weather_vclouds_7.png b/res/drawable-hdpi/weather_vclouds_7.png Binary files differnew file mode 100644 index 0000000..5a0d268 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_7.png diff --git a/res/drawable-hdpi/weather_vclouds_8.png b/res/drawable-hdpi/weather_vclouds_8.png Binary files differnew file mode 100644 index 0000000..681f2a4 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_8.png diff --git a/res/drawable-hdpi/weather_vclouds_9.png b/res/drawable-hdpi/weather_vclouds_9.png Binary files differnew file mode 100644 index 0000000..86bcda0 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_9.png diff --git a/res/drawable-hdpi/weather_vclouds_na.png b/res/drawable-hdpi/weather_vclouds_na.png Binary files differnew file mode 100644 index 0000000..ff85cb0 --- /dev/null +++ b/res/drawable-hdpi/weather_vclouds_na.png diff --git a/res/drawable-mdpi/calendar_preferences.png b/res/drawable-mdpi/calendar_preferences.png Binary files differindex c808d87..205fc00 100644 --- a/res/drawable-mdpi/calendar_preferences.png +++ b/res/drawable-mdpi/calendar_preferences.png diff --git a/res/drawable-mdpi/dialog_full_holo_dark.9.png b/res/drawable-mdpi/dialog_full_holo_dark.9.png Binary files differnew file mode 100644 index 0000000..dc37316 --- /dev/null +++ b/res/drawable-mdpi/dialog_full_holo_dark.9.png diff --git a/res/drawable-mdpi/ic_menu_done_holo_light.png b/res/drawable-mdpi/ic_menu_done_holo_light.png Binary files differindex d831414..a17b6a7 100644 --- a/res/drawable-mdpi/ic_menu_done_holo_light.png +++ b/res/drawable-mdpi/ic_menu_done_holo_light.png diff --git a/res/drawable-mdpi/ic_menu_refresh_holo_dark.png b/res/drawable-mdpi/ic_menu_refresh_holo_dark.png Binary files differnew file mode 100644 index 0000000..f68aacf --- /dev/null +++ b/res/drawable-mdpi/ic_menu_refresh_holo_dark.png diff --git a/res/drawable-mdpi/weather2_0.png b/res/drawable-mdpi/weather2_0.png Binary files differdeleted file mode 100644 index 76c902e..0000000 --- a/res/drawable-mdpi/weather2_0.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_1.png b/res/drawable-mdpi/weather2_1.png Binary files differdeleted file mode 100644 index 1b62b47..0000000 --- a/res/drawable-mdpi/weather2_1.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_10.png b/res/drawable-mdpi/weather2_10.png Binary files differdeleted file mode 100644 index 1b62b47..0000000 --- a/res/drawable-mdpi/weather2_10.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_11.png b/res/drawable-mdpi/weather2_11.png Binary files differdeleted file mode 100644 index 1b62b47..0000000 --- a/res/drawable-mdpi/weather2_11.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_12.png b/res/drawable-mdpi/weather2_12.png Binary files differdeleted file mode 100644 index 1b62b47..0000000 --- a/res/drawable-mdpi/weather2_12.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_13.png b/res/drawable-mdpi/weather2_13.png Binary files differdeleted file mode 100644 index a74b0f8..0000000 --- a/res/drawable-mdpi/weather2_13.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_14.png b/res/drawable-mdpi/weather2_14.png Binary files differdeleted file mode 100644 index a74b0f8..0000000 --- a/res/drawable-mdpi/weather2_14.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_15.png b/res/drawable-mdpi/weather2_15.png Binary files differdeleted file mode 100644 index a74b0f8..0000000 --- a/res/drawable-mdpi/weather2_15.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_16.png b/res/drawable-mdpi/weather2_16.png Binary files differdeleted file mode 100644 index a74b0f8..0000000 --- a/res/drawable-mdpi/weather2_16.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_17.png b/res/drawable-mdpi/weather2_17.png Binary files differdeleted file mode 100644 index 76c902e..0000000 --- a/res/drawable-mdpi/weather2_17.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_18.png b/res/drawable-mdpi/weather2_18.png Binary files differdeleted file mode 100644 index a74b0f8..0000000 --- a/res/drawable-mdpi/weather2_18.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_19.png b/res/drawable-mdpi/weather2_19.png Binary files differdeleted file mode 100644 index c3e1c06..0000000 --- a/res/drawable-mdpi/weather2_19.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_2.png b/res/drawable-mdpi/weather2_2.png Binary files differdeleted file mode 100644 index 1b62b47..0000000 --- a/res/drawable-mdpi/weather2_2.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_20.png b/res/drawable-mdpi/weather2_20.png Binary files differdeleted file mode 100644 index 2eb6221..0000000 --- a/res/drawable-mdpi/weather2_20.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_21.png b/res/drawable-mdpi/weather2_21.png Binary files differdeleted file mode 100644 index 85f33ce..0000000 --- a/res/drawable-mdpi/weather2_21.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_22.png b/res/drawable-mdpi/weather2_22.png Binary files differdeleted file mode 100644 index 85f33ce..0000000 --- a/res/drawable-mdpi/weather2_22.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_23.png b/res/drawable-mdpi/weather2_23.png Binary files differdeleted file mode 100644 index a8d0af0..0000000 --- a/res/drawable-mdpi/weather2_23.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_24.png b/res/drawable-mdpi/weather2_24.png Binary files differdeleted file mode 100644 index a8d0af0..0000000 --- a/res/drawable-mdpi/weather2_24.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_25.png b/res/drawable-mdpi/weather2_25.png Binary files differdeleted file mode 100644 index c8a5e02..0000000 --- a/res/drawable-mdpi/weather2_25.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_26.png b/res/drawable-mdpi/weather2_26.png Binary files differdeleted file mode 100644 index c8a5e02..0000000 --- a/res/drawable-mdpi/weather2_26.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_27.png b/res/drawable-mdpi/weather2_27.png Binary files differdeleted file mode 100644 index cf5ec57..0000000 --- a/res/drawable-mdpi/weather2_27.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_28.png b/res/drawable-mdpi/weather2_28.png Binary files differdeleted file mode 100644 index a8d0af0..0000000 --- a/res/drawable-mdpi/weather2_28.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_29.png b/res/drawable-mdpi/weather2_29.png Binary files differdeleted file mode 100644 index 46692ce..0000000 --- a/res/drawable-mdpi/weather2_29.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_3.png b/res/drawable-mdpi/weather2_3.png Binary files differdeleted file mode 100644 index 76c902e..0000000 --- a/res/drawable-mdpi/weather2_3.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_30.png b/res/drawable-mdpi/weather2_30.png Binary files differdeleted file mode 100644 index a8d0af0..0000000 --- a/res/drawable-mdpi/weather2_30.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_31.png b/res/drawable-mdpi/weather2_31.png Binary files differdeleted file mode 100644 index f8a1add..0000000 --- a/res/drawable-mdpi/weather2_31.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_32.png b/res/drawable-mdpi/weather2_32.png Binary files differdeleted file mode 100644 index 8a08d32..0000000 --- a/res/drawable-mdpi/weather2_32.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_33.png b/res/drawable-mdpi/weather2_33.png Binary files differdeleted file mode 100644 index 97b96af..0000000 --- a/res/drawable-mdpi/weather2_33.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_34.png b/res/drawable-mdpi/weather2_34.png Binary files differdeleted file mode 100644 index 2204467..0000000 --- a/res/drawable-mdpi/weather2_34.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_35.png b/res/drawable-mdpi/weather2_35.png Binary files differdeleted file mode 100644 index 76c902e..0000000 --- a/res/drawable-mdpi/weather2_35.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_36.png b/res/drawable-mdpi/weather2_36.png Binary files differdeleted file mode 100644 index 8a08d32..0000000 --- a/res/drawable-mdpi/weather2_36.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_37.png b/res/drawable-mdpi/weather2_37.png Binary files differdeleted file mode 100644 index 3e6d742..0000000 --- a/res/drawable-mdpi/weather2_37.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_38.png b/res/drawable-mdpi/weather2_38.png Binary files differdeleted file mode 100644 index 76c902e..0000000 --- a/res/drawable-mdpi/weather2_38.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_39.png b/res/drawable-mdpi/weather2_39.png Binary files differdeleted file mode 100644 index cede249..0000000 --- a/res/drawable-mdpi/weather2_39.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_4.png b/res/drawable-mdpi/weather2_4.png Binary files differdeleted file mode 100644 index 76c902e..0000000 --- a/res/drawable-mdpi/weather2_4.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_40.png b/res/drawable-mdpi/weather2_40.png Binary files differdeleted file mode 100644 index 1b62b47..0000000 --- a/res/drawable-mdpi/weather2_40.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_41.png b/res/drawable-mdpi/weather2_41.png Binary files differdeleted file mode 100644 index a74b0f8..0000000 --- a/res/drawable-mdpi/weather2_41.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_42.png b/res/drawable-mdpi/weather2_42.png Binary files differdeleted file mode 100644 index a74b0f8..0000000 --- a/res/drawable-mdpi/weather2_42.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_43.png b/res/drawable-mdpi/weather2_43.png Binary files differdeleted file mode 100644 index 43ba638..0000000 --- a/res/drawable-mdpi/weather2_43.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_44.png b/res/drawable-mdpi/weather2_44.png Binary files differdeleted file mode 100644 index 04a3d85..0000000 --- a/res/drawable-mdpi/weather2_44.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_45.png b/res/drawable-mdpi/weather2_45.png Binary files differdeleted file mode 100644 index c02f754..0000000 --- a/res/drawable-mdpi/weather2_45.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_46.png b/res/drawable-mdpi/weather2_46.png Binary files differdeleted file mode 100644 index f59544d..0000000 --- a/res/drawable-mdpi/weather2_46.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_47.png b/res/drawable-mdpi/weather2_47.png Binary files differdeleted file mode 100644 index 2ef2308..0000000 --- a/res/drawable-mdpi/weather2_47.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_5.png b/res/drawable-mdpi/weather2_5.png Binary files differdeleted file mode 100644 index 4761a6b..0000000 --- a/res/drawable-mdpi/weather2_5.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_6.png b/res/drawable-mdpi/weather2_6.png Binary files differdeleted file mode 100644 index 4761a6b..0000000 --- a/res/drawable-mdpi/weather2_6.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_7.png b/res/drawable-mdpi/weather2_7.png Binary files differdeleted file mode 100644 index a74b0f8..0000000 --- a/res/drawable-mdpi/weather2_7.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_8.png b/res/drawable-mdpi/weather2_8.png Binary files differdeleted file mode 100644 index c8a5e02..0000000 --- a/res/drawable-mdpi/weather2_8.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_9.png b/res/drawable-mdpi/weather2_9.png Binary files differdeleted file mode 100644 index 1b62b47..0000000 --- a/res/drawable-mdpi/weather2_9.png +++ /dev/null diff --git a/res/drawable-mdpi/weather2_na.png b/res/drawable-mdpi/weather2_na.png Binary files differdeleted file mode 100644 index 38ceee8..0000000 --- a/res/drawable-mdpi/weather2_na.png +++ /dev/null diff --git a/res/drawable-mdpi/weather_color_0.png b/res/drawable-mdpi/weather_color_0.png Binary files differnew file mode 100644 index 0000000..c1a14a6 --- /dev/null +++ b/res/drawable-mdpi/weather_color_0.png diff --git a/res/drawable-mdpi/weather_color_1.png b/res/drawable-mdpi/weather_color_1.png Binary files differnew file mode 100644 index 0000000..98a6d3f --- /dev/null +++ b/res/drawable-mdpi/weather_color_1.png diff --git a/res/drawable-mdpi/weather_color_10.png b/res/drawable-mdpi/weather_color_10.png Binary files differnew file mode 100644 index 0000000..6a0d60f --- /dev/null +++ b/res/drawable-mdpi/weather_color_10.png diff --git a/res/drawable-mdpi/weather_color_11.png b/res/drawable-mdpi/weather_color_11.png Binary files differnew file mode 100644 index 0000000..93a72e2 --- /dev/null +++ b/res/drawable-mdpi/weather_color_11.png diff --git a/res/drawable-mdpi/weather_color_12.png b/res/drawable-mdpi/weather_color_12.png Binary files differnew file mode 100644 index 0000000..93a72e2 --- /dev/null +++ b/res/drawable-mdpi/weather_color_12.png diff --git a/res/drawable-mdpi/weather_color_13.png b/res/drawable-mdpi/weather_color_13.png Binary files differnew file mode 100644 index 0000000..ea27e01 --- /dev/null +++ b/res/drawable-mdpi/weather_color_13.png diff --git a/res/drawable-mdpi/weather_color_14.png b/res/drawable-mdpi/weather_color_14.png Binary files differnew file mode 100644 index 0000000..ea27e01 --- /dev/null +++ b/res/drawable-mdpi/weather_color_14.png diff --git a/res/drawable-mdpi/weather_color_15.png b/res/drawable-mdpi/weather_color_15.png Binary files differnew file mode 100644 index 0000000..ea27e01 --- /dev/null +++ b/res/drawable-mdpi/weather_color_15.png diff --git a/res/drawable-mdpi/weather_color_16.png b/res/drawable-mdpi/weather_color_16.png Binary files differnew file mode 100644 index 0000000..ea27e01 --- /dev/null +++ b/res/drawable-mdpi/weather_color_16.png diff --git a/res/drawable-mdpi/weather_color_17.png b/res/drawable-mdpi/weather_color_17.png Binary files differnew file mode 100644 index 0000000..ba2254b --- /dev/null +++ b/res/drawable-mdpi/weather_color_17.png diff --git a/res/drawable-mdpi/weather_color_18.png b/res/drawable-mdpi/weather_color_18.png Binary files differnew file mode 100644 index 0000000..4bffe55 --- /dev/null +++ b/res/drawable-mdpi/weather_color_18.png diff --git a/res/drawable-mdpi/weather_color_19.png b/res/drawable-mdpi/weather_color_19.png Binary files differnew file mode 100644 index 0000000..423c696 --- /dev/null +++ b/res/drawable-mdpi/weather_color_19.png diff --git a/res/drawable-mdpi/weather_color_2.png b/res/drawable-mdpi/weather_color_2.png Binary files differnew file mode 100644 index 0000000..98a6d3f --- /dev/null +++ b/res/drawable-mdpi/weather_color_2.png diff --git a/res/drawable-mdpi/weather_color_20.png b/res/drawable-mdpi/weather_color_20.png Binary files differnew file mode 100644 index 0000000..49856ba --- /dev/null +++ b/res/drawable-mdpi/weather_color_20.png diff --git a/res/drawable-mdpi/weather_color_21.png b/res/drawable-mdpi/weather_color_21.png Binary files differnew file mode 100644 index 0000000..1045577 --- /dev/null +++ b/res/drawable-mdpi/weather_color_21.png diff --git a/res/drawable-mdpi/weather_color_22.png b/res/drawable-mdpi/weather_color_22.png Binary files differnew file mode 100644 index 0000000..4e575df --- /dev/null +++ b/res/drawable-mdpi/weather_color_22.png diff --git a/res/drawable-mdpi/weather_color_23.png b/res/drawable-mdpi/weather_color_23.png Binary files differnew file mode 100644 index 0000000..346f4cf --- /dev/null +++ b/res/drawable-mdpi/weather_color_23.png diff --git a/res/drawable-mdpi/weather_color_24.png b/res/drawable-mdpi/weather_color_24.png Binary files differnew file mode 100644 index 0000000..346f4cf --- /dev/null +++ b/res/drawable-mdpi/weather_color_24.png diff --git a/res/drawable-mdpi/weather_color_25.png b/res/drawable-mdpi/weather_color_25.png Binary files differnew file mode 100644 index 0000000..ded1dd7 --- /dev/null +++ b/res/drawable-mdpi/weather_color_25.png diff --git a/res/drawable-mdpi/weather_color_26.png b/res/drawable-mdpi/weather_color_26.png Binary files differnew file mode 100644 index 0000000..0a5140b --- /dev/null +++ b/res/drawable-mdpi/weather_color_26.png diff --git a/res/drawable-mdpi/weather_color_27.png b/res/drawable-mdpi/weather_color_27.png Binary files differnew file mode 100644 index 0000000..357d5ab --- /dev/null +++ b/res/drawable-mdpi/weather_color_27.png diff --git a/res/drawable-mdpi/weather_color_28.png b/res/drawable-mdpi/weather_color_28.png Binary files differnew file mode 100644 index 0000000..6e3a52b --- /dev/null +++ b/res/drawable-mdpi/weather_color_28.png diff --git a/res/drawable-mdpi/weather_color_29.png b/res/drawable-mdpi/weather_color_29.png Binary files differnew file mode 100644 index 0000000..7c052fb --- /dev/null +++ b/res/drawable-mdpi/weather_color_29.png diff --git a/res/drawable-mdpi/weather_color_3.png b/res/drawable-mdpi/weather_color_3.png Binary files differnew file mode 100644 index 0000000..c1a14a6 --- /dev/null +++ b/res/drawable-mdpi/weather_color_3.png diff --git a/res/drawable-mdpi/weather_color_30.png b/res/drawable-mdpi/weather_color_30.png Binary files differnew file mode 100644 index 0000000..7951aaf --- /dev/null +++ b/res/drawable-mdpi/weather_color_30.png diff --git a/res/drawable-mdpi/weather_color_31.png b/res/drawable-mdpi/weather_color_31.png Binary files differnew file mode 100644 index 0000000..cd05aa0 --- /dev/null +++ b/res/drawable-mdpi/weather_color_31.png diff --git a/res/drawable-mdpi/weather_color_32.png b/res/drawable-mdpi/weather_color_32.png Binary files differnew file mode 100644 index 0000000..74b0127 --- /dev/null +++ b/res/drawable-mdpi/weather_color_32.png diff --git a/res/drawable-mdpi/weather_color_33.png b/res/drawable-mdpi/weather_color_33.png Binary files differnew file mode 100644 index 0000000..21b8472 --- /dev/null +++ b/res/drawable-mdpi/weather_color_33.png diff --git a/res/drawable-mdpi/weather_color_34.png b/res/drawable-mdpi/weather_color_34.png Binary files differnew file mode 100644 index 0000000..bb0bcec --- /dev/null +++ b/res/drawable-mdpi/weather_color_34.png diff --git a/res/drawable-mdpi/weather_color_35.png b/res/drawable-mdpi/weather_color_35.png Binary files differnew file mode 100644 index 0000000..8bb4fc4 --- /dev/null +++ b/res/drawable-mdpi/weather_color_35.png diff --git a/res/drawable-mdpi/weather_color_36.png b/res/drawable-mdpi/weather_color_36.png Binary files differnew file mode 100644 index 0000000..20a14ec --- /dev/null +++ b/res/drawable-mdpi/weather_color_36.png diff --git a/res/drawable-mdpi/weather_color_37.png b/res/drawable-mdpi/weather_color_37.png Binary files differnew file mode 100644 index 0000000..ff99444 --- /dev/null +++ b/res/drawable-mdpi/weather_color_37.png diff --git a/res/drawable-mdpi/weather_color_38.png b/res/drawable-mdpi/weather_color_38.png Binary files differnew file mode 100644 index 0000000..ff99444 --- /dev/null +++ b/res/drawable-mdpi/weather_color_38.png diff --git a/res/drawable-mdpi/weather_color_39.png b/res/drawable-mdpi/weather_color_39.png Binary files differnew file mode 100644 index 0000000..ff99444 --- /dev/null +++ b/res/drawable-mdpi/weather_color_39.png diff --git a/res/drawable-mdpi/weather_color_4.png b/res/drawable-mdpi/weather_color_4.png Binary files differnew file mode 100644 index 0000000..c1a14a6 --- /dev/null +++ b/res/drawable-mdpi/weather_color_4.png diff --git a/res/drawable-mdpi/weather_color_40.png b/res/drawable-mdpi/weather_color_40.png Binary files differnew file mode 100644 index 0000000..714ec92 --- /dev/null +++ b/res/drawable-mdpi/weather_color_40.png diff --git a/res/drawable-mdpi/weather_color_41.png b/res/drawable-mdpi/weather_color_41.png Binary files differnew file mode 100644 index 0000000..4d459de --- /dev/null +++ b/res/drawable-mdpi/weather_color_41.png diff --git a/res/drawable-mdpi/weather_color_42.png b/res/drawable-mdpi/weather_color_42.png Binary files differnew file mode 100644 index 0000000..ea27e01 --- /dev/null +++ b/res/drawable-mdpi/weather_color_42.png diff --git a/res/drawable-mdpi/weather_color_43.png b/res/drawable-mdpi/weather_color_43.png Binary files differnew file mode 100644 index 0000000..dd10ede --- /dev/null +++ b/res/drawable-mdpi/weather_color_43.png diff --git a/res/drawable-mdpi/weather_color_44.png b/res/drawable-mdpi/weather_color_44.png Binary files differnew file mode 100644 index 0000000..21b8472 --- /dev/null +++ b/res/drawable-mdpi/weather_color_44.png diff --git a/res/drawable-mdpi/weather_color_45.png b/res/drawable-mdpi/weather_color_45.png Binary files differnew file mode 100644 index 0000000..d55f390 --- /dev/null +++ b/res/drawable-mdpi/weather_color_45.png diff --git a/res/drawable-mdpi/weather_color_46.png b/res/drawable-mdpi/weather_color_46.png Binary files differnew file mode 100644 index 0000000..635152a --- /dev/null +++ b/res/drawable-mdpi/weather_color_46.png diff --git a/res/drawable-mdpi/weather_color_47.png b/res/drawable-mdpi/weather_color_47.png Binary files differnew file mode 100644 index 0000000..4c58b97 --- /dev/null +++ b/res/drawable-mdpi/weather_color_47.png diff --git a/res/drawable-mdpi/weather_color_5.png b/res/drawable-mdpi/weather_color_5.png Binary files differnew file mode 100644 index 0000000..4bffe55 --- /dev/null +++ b/res/drawable-mdpi/weather_color_5.png diff --git a/res/drawable-mdpi/weather_color_6.png b/res/drawable-mdpi/weather_color_6.png Binary files differnew file mode 100644 index 0000000..4bffe55 --- /dev/null +++ b/res/drawable-mdpi/weather_color_6.png diff --git a/res/drawable-mdpi/weather_color_7.png b/res/drawable-mdpi/weather_color_7.png Binary files differnew file mode 100644 index 0000000..ea27e01 --- /dev/null +++ b/res/drawable-mdpi/weather_color_7.png diff --git a/res/drawable-mdpi/weather_color_8.png b/res/drawable-mdpi/weather_color_8.png Binary files differnew file mode 100644 index 0000000..70b51d6 --- /dev/null +++ b/res/drawable-mdpi/weather_color_8.png diff --git a/res/drawable-mdpi/weather_color_9.png b/res/drawable-mdpi/weather_color_9.png Binary files differnew file mode 100644 index 0000000..0560bd9 --- /dev/null +++ b/res/drawable-mdpi/weather_color_9.png diff --git a/res/drawable-mdpi/weather_color_na.png b/res/drawable-mdpi/weather_color_na.png Binary files differnew file mode 100644 index 0000000..7e8b4e8 --- /dev/null +++ b/res/drawable-mdpi/weather_color_na.png diff --git a/res/drawable-mdpi/weather_preferences.png b/res/drawable-mdpi/weather_preferences.png Binary files differindex 447b4ba..d7c1882 100644 --- a/res/drawable-mdpi/weather_preferences.png +++ b/res/drawable-mdpi/weather_preferences.png diff --git a/res/drawable-mdpi/weather_vclouds_0.png b/res/drawable-mdpi/weather_vclouds_0.png Binary files differnew file mode 100644 index 0000000..0eebdb2 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_0.png diff --git a/res/drawable-mdpi/weather_vclouds_1.png b/res/drawable-mdpi/weather_vclouds_1.png Binary files differnew file mode 100644 index 0000000..0eebdb2 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_1.png diff --git a/res/drawable-mdpi/weather_vclouds_10.png b/res/drawable-mdpi/weather_vclouds_10.png Binary files differnew file mode 100644 index 0000000..8583089 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_10.png diff --git a/res/drawable-mdpi/weather_vclouds_11.png b/res/drawable-mdpi/weather_vclouds_11.png Binary files differnew file mode 100644 index 0000000..1b08812 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_11.png diff --git a/res/drawable-mdpi/weather_vclouds_12.png b/res/drawable-mdpi/weather_vclouds_12.png Binary files differnew file mode 100644 index 0000000..023b1f6 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_12.png diff --git a/res/drawable-mdpi/weather_vclouds_13.png b/res/drawable-mdpi/weather_vclouds_13.png Binary files differnew file mode 100644 index 0000000..e797ba4 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_13.png diff --git a/res/drawable-mdpi/weather_vclouds_14.png b/res/drawable-mdpi/weather_vclouds_14.png Binary files differnew file mode 100644 index 0000000..2739182 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_14.png diff --git a/res/drawable-mdpi/weather_vclouds_15.png b/res/drawable-mdpi/weather_vclouds_15.png Binary files differnew file mode 100644 index 0000000..179636b --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_15.png diff --git a/res/drawable-mdpi/weather_vclouds_16.png b/res/drawable-mdpi/weather_vclouds_16.png Binary files differnew file mode 100644 index 0000000..adec978 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_16.png diff --git a/res/drawable-mdpi/weather_vclouds_17.png b/res/drawable-mdpi/weather_vclouds_17.png Binary files differnew file mode 100644 index 0000000..0eebdb2 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_17.png diff --git a/res/drawable-mdpi/weather_vclouds_18.png b/res/drawable-mdpi/weather_vclouds_18.png Binary files differnew file mode 100644 index 0000000..4c60cef --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_18.png diff --git a/res/drawable-mdpi/weather_vclouds_19.png b/res/drawable-mdpi/weather_vclouds_19.png Binary files differnew file mode 100644 index 0000000..2de4a62 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_19.png diff --git a/res/drawable-mdpi/weather_vclouds_2.png b/res/drawable-mdpi/weather_vclouds_2.png Binary files differnew file mode 100644 index 0000000..0eebdb2 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_2.png diff --git a/res/drawable-mdpi/weather_vclouds_20.png b/res/drawable-mdpi/weather_vclouds_20.png Binary files differnew file mode 100644 index 0000000..036534d --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_20.png diff --git a/res/drawable-mdpi/weather_vclouds_21.png b/res/drawable-mdpi/weather_vclouds_21.png Binary files differnew file mode 100644 index 0000000..a943630 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_21.png diff --git a/res/drawable-mdpi/weather_vclouds_22.png b/res/drawable-mdpi/weather_vclouds_22.png Binary files differnew file mode 100644 index 0000000..88edb28 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_22.png diff --git a/res/drawable-mdpi/weather_vclouds_23.png b/res/drawable-mdpi/weather_vclouds_23.png Binary files differnew file mode 100644 index 0000000..b844542 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_23.png diff --git a/res/drawable-mdpi/weather_vclouds_24.png b/res/drawable-mdpi/weather_vclouds_24.png Binary files differnew file mode 100644 index 0000000..b844542 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_24.png diff --git a/res/drawable-mdpi/weather_vclouds_25.png b/res/drawable-mdpi/weather_vclouds_25.png Binary files differnew file mode 100644 index 0000000..67899e3 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_25.png diff --git a/res/drawable-mdpi/weather_vclouds_26.png b/res/drawable-mdpi/weather_vclouds_26.png Binary files differnew file mode 100644 index 0000000..8886e2b --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_26.png diff --git a/res/drawable-mdpi/weather_vclouds_27.png b/res/drawable-mdpi/weather_vclouds_27.png Binary files differnew file mode 100644 index 0000000..2ce6249 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_27.png diff --git a/res/drawable-mdpi/weather_vclouds_28.png b/res/drawable-mdpi/weather_vclouds_28.png Binary files differnew file mode 100644 index 0000000..8bc2cba --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_28.png diff --git a/res/drawable-mdpi/weather_vclouds_29.png b/res/drawable-mdpi/weather_vclouds_29.png Binary files differnew file mode 100644 index 0000000..f2d9728 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_29.png diff --git a/res/drawable-mdpi/weather_vclouds_3.png b/res/drawable-mdpi/weather_vclouds_3.png Binary files differnew file mode 100644 index 0000000..0eebdb2 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_3.png diff --git a/res/drawable-mdpi/weather_vclouds_30.png b/res/drawable-mdpi/weather_vclouds_30.png Binary files differnew file mode 100644 index 0000000..e54c3c5 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_30.png diff --git a/res/drawable-mdpi/weather_vclouds_31.png b/res/drawable-mdpi/weather_vclouds_31.png Binary files differnew file mode 100644 index 0000000..57ac647 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_31.png diff --git a/res/drawable-mdpi/weather_vclouds_32.png b/res/drawable-mdpi/weather_vclouds_32.png Binary files differnew file mode 100644 index 0000000..963f07a --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_32.png diff --git a/res/drawable-mdpi/weather_vclouds_33.png b/res/drawable-mdpi/weather_vclouds_33.png Binary files differnew file mode 100644 index 0000000..0c6d902 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_33.png diff --git a/res/drawable-mdpi/weather_vclouds_34.png b/res/drawable-mdpi/weather_vclouds_34.png Binary files differnew file mode 100644 index 0000000..1107643 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_34.png diff --git a/res/drawable-mdpi/weather_vclouds_35.png b/res/drawable-mdpi/weather_vclouds_35.png Binary files differnew file mode 100644 index 0000000..0eebdb2 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_35.png diff --git a/res/drawable-mdpi/weather_vclouds_36.png b/res/drawable-mdpi/weather_vclouds_36.png Binary files differnew file mode 100644 index 0000000..e80c0f8 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_36.png diff --git a/res/drawable-mdpi/weather_vclouds_37.png b/res/drawable-mdpi/weather_vclouds_37.png Binary files differnew file mode 100644 index 0000000..126af36 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_37.png diff --git a/res/drawable-mdpi/weather_vclouds_38.png b/res/drawable-mdpi/weather_vclouds_38.png Binary files differnew file mode 100644 index 0000000..126af36 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_38.png diff --git a/res/drawable-mdpi/weather_vclouds_39.png b/res/drawable-mdpi/weather_vclouds_39.png Binary files differnew file mode 100644 index 0000000..677e324 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_39.png diff --git a/res/drawable-mdpi/weather_vclouds_4.png b/res/drawable-mdpi/weather_vclouds_4.png Binary files differnew file mode 100644 index 0000000..0eebdb2 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_4.png diff --git a/res/drawable-mdpi/weather_vclouds_40.png b/res/drawable-mdpi/weather_vclouds_40.png Binary files differnew file mode 100644 index 0000000..023b1f6 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_40.png diff --git a/res/drawable-mdpi/weather_vclouds_41.png b/res/drawable-mdpi/weather_vclouds_41.png Binary files differnew file mode 100644 index 0000000..68ee64c --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_41.png diff --git a/res/drawable-mdpi/weather_vclouds_42.png b/res/drawable-mdpi/weather_vclouds_42.png Binary files differnew file mode 100644 index 0000000..adec978 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_42.png diff --git a/res/drawable-mdpi/weather_vclouds_43.png b/res/drawable-mdpi/weather_vclouds_43.png Binary files differnew file mode 100644 index 0000000..179636b --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_43.png diff --git a/res/drawable-mdpi/weather_vclouds_44.png b/res/drawable-mdpi/weather_vclouds_44.png Binary files differnew file mode 100644 index 0000000..ac158b6 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_44.png diff --git a/res/drawable-mdpi/weather_vclouds_45.png b/res/drawable-mdpi/weather_vclouds_45.png Binary files differnew file mode 100644 index 0000000..03881b1 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_45.png diff --git a/res/drawable-mdpi/weather_vclouds_46.png b/res/drawable-mdpi/weather_vclouds_46.png Binary files differnew file mode 100644 index 0000000..33705b8 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_46.png diff --git a/res/drawable-mdpi/weather_vclouds_47.png b/res/drawable-mdpi/weather_vclouds_47.png Binary files differnew file mode 100644 index 0000000..8a378dc --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_47.png diff --git a/res/drawable-mdpi/weather_vclouds_5.png b/res/drawable-mdpi/weather_vclouds_5.png Binary files differnew file mode 100644 index 0000000..e263435 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_5.png diff --git a/res/drawable-mdpi/weather_vclouds_6.png b/res/drawable-mdpi/weather_vclouds_6.png Binary files differnew file mode 100644 index 0000000..f09720a --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_6.png diff --git a/res/drawable-mdpi/weather_vclouds_7.png b/res/drawable-mdpi/weather_vclouds_7.png Binary files differnew file mode 100644 index 0000000..efe9dcf --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_7.png diff --git a/res/drawable-mdpi/weather_vclouds_8.png b/res/drawable-mdpi/weather_vclouds_8.png Binary files differnew file mode 100644 index 0000000..56a8a5f --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_8.png diff --git a/res/drawable-mdpi/weather_vclouds_9.png b/res/drawable-mdpi/weather_vclouds_9.png Binary files differnew file mode 100644 index 0000000..7a51c5f --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_9.png diff --git a/res/drawable-mdpi/weather_vclouds_na.png b/res/drawable-mdpi/weather_vclouds_na.png Binary files differnew file mode 100644 index 0000000..ac158b6 --- /dev/null +++ b/res/drawable-mdpi/weather_vclouds_na.png diff --git a/res/drawable-xhdpi/calendar_preferences.png b/res/drawable-xhdpi/calendar_preferences.png Binary files differindex 3c7f2d3..41f962d 100644 --- a/res/drawable-xhdpi/calendar_preferences.png +++ b/res/drawable-xhdpi/calendar_preferences.png diff --git a/res/drawable-xhdpi/dialog_full_holo_dark.9.png b/res/drawable-xhdpi/dialog_full_holo_dark.9.png Binary files differnew file mode 100644 index 0000000..75d36be --- /dev/null +++ b/res/drawable-xhdpi/dialog_full_holo_dark.9.png diff --git a/res/drawable-xhdpi/ic_menu_done_holo_light.png b/res/drawable-xhdpi/ic_menu_done_holo_light.png Binary files differindex 7351f21..2e06dd0 100644 --- a/res/drawable-xhdpi/ic_menu_done_holo_light.png +++ b/res/drawable-xhdpi/ic_menu_done_holo_light.png diff --git a/res/drawable-xhdpi/ic_menu_refresh_holo_dark.png b/res/drawable-xhdpi/ic_menu_refresh_holo_dark.png Binary files differnew file mode 100644 index 0000000..3db90ee --- /dev/null +++ b/res/drawable-xhdpi/ic_menu_refresh_holo_dark.png diff --git a/res/drawable-xhdpi/weather2_1.png b/res/drawable-xhdpi/weather2_1.png Binary files differdeleted file mode 100644 index 67f992d..0000000 --- a/res/drawable-xhdpi/weather2_1.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_10.png b/res/drawable-xhdpi/weather2_10.png Binary files differdeleted file mode 100644 index 67f992d..0000000 --- a/res/drawable-xhdpi/weather2_10.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_11.png b/res/drawable-xhdpi/weather2_11.png Binary files differdeleted file mode 100644 index 67f992d..0000000 --- a/res/drawable-xhdpi/weather2_11.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_12.png b/res/drawable-xhdpi/weather2_12.png Binary files differdeleted file mode 100644 index 67f992d..0000000 --- a/res/drawable-xhdpi/weather2_12.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_13.png b/res/drawable-xhdpi/weather2_13.png Binary files differdeleted file mode 100644 index 3000a3c..0000000 --- a/res/drawable-xhdpi/weather2_13.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_14.png b/res/drawable-xhdpi/weather2_14.png Binary files differdeleted file mode 100644 index 3000a3c..0000000 --- a/res/drawable-xhdpi/weather2_14.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_15.png b/res/drawable-xhdpi/weather2_15.png Binary files differdeleted file mode 100644 index 3000a3c..0000000 --- a/res/drawable-xhdpi/weather2_15.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_16.png b/res/drawable-xhdpi/weather2_16.png Binary files differdeleted file mode 100644 index 3000a3c..0000000 --- a/res/drawable-xhdpi/weather2_16.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_18.png b/res/drawable-xhdpi/weather2_18.png Binary files differdeleted file mode 100644 index 3000a3c..0000000 --- a/res/drawable-xhdpi/weather2_18.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_19.png b/res/drawable-xhdpi/weather2_19.png Binary files differdeleted file mode 100644 index f056e80..0000000 --- a/res/drawable-xhdpi/weather2_19.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_2.png b/res/drawable-xhdpi/weather2_2.png Binary files differdeleted file mode 100644 index 67f992d..0000000 --- a/res/drawable-xhdpi/weather2_2.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_21.png b/res/drawable-xhdpi/weather2_21.png Binary files differdeleted file mode 100644 index 6c3ba81..0000000 --- a/res/drawable-xhdpi/weather2_21.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_22.png b/res/drawable-xhdpi/weather2_22.png Binary files differdeleted file mode 100644 index 6c3ba81..0000000 --- a/res/drawable-xhdpi/weather2_22.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_23.png b/res/drawable-xhdpi/weather2_23.png Binary files differdeleted file mode 100644 index d740b54..0000000 --- a/res/drawable-xhdpi/weather2_23.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_24.png b/res/drawable-xhdpi/weather2_24.png Binary files differdeleted file mode 100644 index d740b54..0000000 --- a/res/drawable-xhdpi/weather2_24.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_25.png b/res/drawable-xhdpi/weather2_25.png Binary files differdeleted file mode 100644 index 18c18ee..0000000 --- a/res/drawable-xhdpi/weather2_25.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_26.png b/res/drawable-xhdpi/weather2_26.png Binary files differdeleted file mode 100644 index 18c18ee..0000000 --- a/res/drawable-xhdpi/weather2_26.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_27.png b/res/drawable-xhdpi/weather2_27.png Binary files differdeleted file mode 100644 index 915ce2c..0000000 --- a/res/drawable-xhdpi/weather2_27.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_28.png b/res/drawable-xhdpi/weather2_28.png Binary files differdeleted file mode 100644 index d740b54..0000000 --- a/res/drawable-xhdpi/weather2_28.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_29.png b/res/drawable-xhdpi/weather2_29.png Binary files differdeleted file mode 100644 index a0632a6..0000000 --- a/res/drawable-xhdpi/weather2_29.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_31.png b/res/drawable-xhdpi/weather2_31.png Binary files differdeleted file mode 100644 index fcec655..0000000 --- a/res/drawable-xhdpi/weather2_31.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_32.png b/res/drawable-xhdpi/weather2_32.png Binary files differdeleted file mode 100644 index 7304f86..0000000 --- a/res/drawable-xhdpi/weather2_32.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_33.png b/res/drawable-xhdpi/weather2_33.png Binary files differdeleted file mode 100644 index d130aa6..0000000 --- a/res/drawable-xhdpi/weather2_33.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_35.png b/res/drawable-xhdpi/weather2_35.png Binary files differdeleted file mode 100644 index ebfe876..0000000 --- a/res/drawable-xhdpi/weather2_35.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_38.png b/res/drawable-xhdpi/weather2_38.png Binary files differdeleted file mode 100644 index ebfe876..0000000 --- a/res/drawable-xhdpi/weather2_38.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_4.png b/res/drawable-xhdpi/weather2_4.png Binary files differdeleted file mode 100644 index ebfe876..0000000 --- a/res/drawable-xhdpi/weather2_4.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_40.png b/res/drawable-xhdpi/weather2_40.png Binary files differdeleted file mode 100644 index 67f992d..0000000 --- a/res/drawable-xhdpi/weather2_40.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_41.png b/res/drawable-xhdpi/weather2_41.png Binary files differdeleted file mode 100644 index 3000a3c..0000000 --- a/res/drawable-xhdpi/weather2_41.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_42.png b/res/drawable-xhdpi/weather2_42.png Binary files differdeleted file mode 100644 index 3000a3c..0000000 --- a/res/drawable-xhdpi/weather2_42.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_45.png b/res/drawable-xhdpi/weather2_45.png Binary files differdeleted file mode 100644 index 9f841bb..0000000 --- a/res/drawable-xhdpi/weather2_45.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_46.png b/res/drawable-xhdpi/weather2_46.png Binary files differdeleted file mode 100644 index 159e7ec..0000000 --- a/res/drawable-xhdpi/weather2_46.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_47.png b/res/drawable-xhdpi/weather2_47.png Binary files differdeleted file mode 100644 index 41749e6..0000000 --- a/res/drawable-xhdpi/weather2_47.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_6.png b/res/drawable-xhdpi/weather2_6.png Binary files differdeleted file mode 100644 index 574fb4f..0000000 --- a/res/drawable-xhdpi/weather2_6.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_7.png b/res/drawable-xhdpi/weather2_7.png Binary files differdeleted file mode 100644 index 3000a3c..0000000 --- a/res/drawable-xhdpi/weather2_7.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_8.png b/res/drawable-xhdpi/weather2_8.png Binary files differdeleted file mode 100644 index 18c18ee..0000000 --- a/res/drawable-xhdpi/weather2_8.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_9.png b/res/drawable-xhdpi/weather2_9.png Binary files differdeleted file mode 100644 index 67f992d..0000000 --- a/res/drawable-xhdpi/weather2_9.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather2_na.png b/res/drawable-xhdpi/weather2_na.png Binary files differdeleted file mode 100644 index fca43b8..0000000 --- a/res/drawable-xhdpi/weather2_na.png +++ /dev/null diff --git a/res/drawable-xhdpi/weather_0.png b/res/drawable-xhdpi/weather_0.png Binary files differindex 335af4b..5887301 100644 --- a/res/drawable-xhdpi/weather_0.png +++ b/res/drawable-xhdpi/weather_0.png diff --git a/res/drawable-xhdpi/weather_1.png b/res/drawable-xhdpi/weather_1.png Binary files differindex 335af4b..5887301 100644 --- a/res/drawable-xhdpi/weather_1.png +++ b/res/drawable-xhdpi/weather_1.png diff --git a/res/drawable-xhdpi/weather_10.png b/res/drawable-xhdpi/weather_10.png Binary files differindex 9432a13..3d57554 100644 --- a/res/drawable-xhdpi/weather_10.png +++ b/res/drawable-xhdpi/weather_10.png diff --git a/res/drawable-xhdpi/weather_11.png b/res/drawable-xhdpi/weather_11.png Binary files differindex 3f7c5ad..7363236 100644 --- a/res/drawable-xhdpi/weather_11.png +++ b/res/drawable-xhdpi/weather_11.png diff --git a/res/drawable-xhdpi/weather_12.png b/res/drawable-xhdpi/weather_12.png Binary files differindex 3f7c5ad..7363236 100644 --- a/res/drawable-xhdpi/weather_12.png +++ b/res/drawable-xhdpi/weather_12.png diff --git a/res/drawable-xhdpi/weather_13.png b/res/drawable-xhdpi/weather_13.png Binary files differindex 3f9e500..a03b4fe 100644 --- a/res/drawable-xhdpi/weather_13.png +++ b/res/drawable-xhdpi/weather_13.png diff --git a/res/drawable-xhdpi/weather_14.png b/res/drawable-xhdpi/weather_14.png Binary files differindex 3f9e500..a03b4fe 100644 --- a/res/drawable-xhdpi/weather_14.png +++ b/res/drawable-xhdpi/weather_14.png diff --git a/res/drawable-xhdpi/weather_15.png b/res/drawable-xhdpi/weather_15.png Binary files differindex 2ad1e46..95e6e85 100644 --- a/res/drawable-xhdpi/weather_15.png +++ b/res/drawable-xhdpi/weather_15.png diff --git a/res/drawable-xhdpi/weather_16.png b/res/drawable-xhdpi/weather_16.png Binary files differindex 4bad358..44efd95 100644 --- a/res/drawable-xhdpi/weather_16.png +++ b/res/drawable-xhdpi/weather_16.png diff --git a/res/drawable-xhdpi/weather_17.png b/res/drawable-xhdpi/weather_17.png Binary files differindex 6fced6c..5ff1745 100644 --- a/res/drawable-xhdpi/weather_17.png +++ b/res/drawable-xhdpi/weather_17.png diff --git a/res/drawable-xhdpi/weather_18.png b/res/drawable-xhdpi/weather_18.png Binary files differindex aae6d11..f314bdb 100644 --- a/res/drawable-xhdpi/weather_18.png +++ b/res/drawable-xhdpi/weather_18.png diff --git a/res/drawable-xhdpi/weather_19.png b/res/drawable-xhdpi/weather_19.png Binary files differindex d8e5e82..befb869 100644 --- a/res/drawable-xhdpi/weather_19.png +++ b/res/drawable-xhdpi/weather_19.png diff --git a/res/drawable-xhdpi/weather_2.png b/res/drawable-xhdpi/weather_2.png Binary files differindex 335af4b..5887301 100644 --- a/res/drawable-xhdpi/weather_2.png +++ b/res/drawable-xhdpi/weather_2.png diff --git a/res/drawable-xhdpi/weather_20.png b/res/drawable-xhdpi/weather_20.png Binary files differindex 73cbc39..25fe1b0 100644 --- a/res/drawable-xhdpi/weather_20.png +++ b/res/drawable-xhdpi/weather_20.png diff --git a/res/drawable-xhdpi/weather_21.png b/res/drawable-xhdpi/weather_21.png Binary files differindex 800f484..0977fdc 100644 --- a/res/drawable-xhdpi/weather_21.png +++ b/res/drawable-xhdpi/weather_21.png diff --git a/res/drawable-xhdpi/weather_22.png b/res/drawable-xhdpi/weather_22.png Binary files differindex d8e5e82..befb869 100644 --- a/res/drawable-xhdpi/weather_22.png +++ b/res/drawable-xhdpi/weather_22.png diff --git a/res/drawable-xhdpi/weather_23.png b/res/drawable-xhdpi/weather_23.png Binary files differindex be446c2..3ed0927 100644 --- a/res/drawable-xhdpi/weather_23.png +++ b/res/drawable-xhdpi/weather_23.png diff --git a/res/drawable-xhdpi/weather_24.png b/res/drawable-xhdpi/weather_24.png Binary files differindex be446c2..3ed0927 100644 --- a/res/drawable-xhdpi/weather_24.png +++ b/res/drawable-xhdpi/weather_24.png diff --git a/res/drawable-xhdpi/weather_25.png b/res/drawable-xhdpi/weather_25.png Binary files differindex 63f019a..7a7499e 100644 --- a/res/drawable-xhdpi/weather_25.png +++ b/res/drawable-xhdpi/weather_25.png diff --git a/res/drawable-xhdpi/weather_26.png b/res/drawable-xhdpi/weather_26.png Binary files differindex 3eb5734..73b148e 100644 --- a/res/drawable-xhdpi/weather_26.png +++ b/res/drawable-xhdpi/weather_26.png diff --git a/res/drawable-xhdpi/weather_27.png b/res/drawable-xhdpi/weather_27.png Binary files differindex abf4096..77a535b 100644 --- a/res/drawable-xhdpi/weather_27.png +++ b/res/drawable-xhdpi/weather_27.png diff --git a/res/drawable-xhdpi/weather_28.png b/res/drawable-xhdpi/weather_28.png Binary files differindex 0cbae30..eb87a80 100644 --- a/res/drawable-xhdpi/weather_28.png +++ b/res/drawable-xhdpi/weather_28.png diff --git a/res/drawable-xhdpi/weather_29.png b/res/drawable-xhdpi/weather_29.png Binary files differindex abf4096..77a535b 100644 --- a/res/drawable-xhdpi/weather_29.png +++ b/res/drawable-xhdpi/weather_29.png diff --git a/res/drawable-xhdpi/weather_3.png b/res/drawable-xhdpi/weather_3.png Binary files differindex 7dda34c..a1e64e5 100644 --- a/res/drawable-xhdpi/weather_3.png +++ b/res/drawable-xhdpi/weather_3.png diff --git a/res/drawable-xhdpi/weather_30.png b/res/drawable-xhdpi/weather_30.png Binary files differindex 0cbae30..eb87a80 100644 --- a/res/drawable-xhdpi/weather_30.png +++ b/res/drawable-xhdpi/weather_30.png diff --git a/res/drawable-xhdpi/weather_31.png b/res/drawable-xhdpi/weather_31.png Binary files differindex 16f2d9f..bdf5aa2 100644 --- a/res/drawable-xhdpi/weather_31.png +++ b/res/drawable-xhdpi/weather_31.png diff --git a/res/drawable-xhdpi/weather_32.png b/res/drawable-xhdpi/weather_32.png Binary files differindex 409373d..ae2da2f 100644 --- a/res/drawable-xhdpi/weather_32.png +++ b/res/drawable-xhdpi/weather_32.png diff --git a/res/drawable-xhdpi/weather_33.png b/res/drawable-xhdpi/weather_33.png Binary files differindex 16f2d9f..bdf5aa2 100644 --- a/res/drawable-xhdpi/weather_33.png +++ b/res/drawable-xhdpi/weather_33.png diff --git a/res/drawable-xhdpi/weather_34.png b/res/drawable-xhdpi/weather_34.png Binary files differindex 409373d..ae2da2f 100644 --- a/res/drawable-xhdpi/weather_34.png +++ b/res/drawable-xhdpi/weather_34.png diff --git a/res/drawable-xhdpi/weather_35.png b/res/drawable-xhdpi/weather_35.png Binary files differindex 445b884..b743c0e 100644 --- a/res/drawable-xhdpi/weather_35.png +++ b/res/drawable-xhdpi/weather_35.png diff --git a/res/drawable-xhdpi/weather_36.png b/res/drawable-xhdpi/weather_36.png Binary files differindex a424ad6..d6d7344 100644 --- a/res/drawable-xhdpi/weather_36.png +++ b/res/drawable-xhdpi/weather_36.png diff --git a/res/drawable-xhdpi/weather_37.png b/res/drawable-xhdpi/weather_37.png Binary files differindex e98c8b8..2ffc605 100644 --- a/res/drawable-xhdpi/weather_37.png +++ b/res/drawable-xhdpi/weather_37.png diff --git a/res/drawable-xhdpi/weather_38.png b/res/drawable-xhdpi/weather_38.png Binary files differindex b47249c..3840663 100644 --- a/res/drawable-xhdpi/weather_38.png +++ b/res/drawable-xhdpi/weather_38.png diff --git a/res/drawable-xhdpi/weather_39.png b/res/drawable-xhdpi/weather_39.png Binary files differindex e98c8b8..2ffc605 100644 --- a/res/drawable-xhdpi/weather_39.png +++ b/res/drawable-xhdpi/weather_39.png diff --git a/res/drawable-xhdpi/weather_4.png b/res/drawable-xhdpi/weather_4.png Binary files differindex 7dda34c..a1e64e5 100644 --- a/res/drawable-xhdpi/weather_4.png +++ b/res/drawable-xhdpi/weather_4.png diff --git a/res/drawable-xhdpi/weather_40.png b/res/drawable-xhdpi/weather_40.png Binary files differindex 1505fea..d9525bc 100644 --- a/res/drawable-xhdpi/weather_40.png +++ b/res/drawable-xhdpi/weather_40.png diff --git a/res/drawable-xhdpi/weather_41.png b/res/drawable-xhdpi/weather_41.png Binary files differindex 4bad358..44efd95 100644 --- a/res/drawable-xhdpi/weather_41.png +++ b/res/drawable-xhdpi/weather_41.png diff --git a/res/drawable-xhdpi/weather_42.png b/res/drawable-xhdpi/weather_42.png Binary files differindex 196026d..e386625 100644 --- a/res/drawable-xhdpi/weather_42.png +++ b/res/drawable-xhdpi/weather_42.png diff --git a/res/drawable-xhdpi/weather_43.png b/res/drawable-xhdpi/weather_43.png Binary files differindex 4bad358..44efd95 100644 --- a/res/drawable-xhdpi/weather_43.png +++ b/res/drawable-xhdpi/weather_43.png diff --git a/res/drawable-xhdpi/weather_44.png b/res/drawable-xhdpi/weather_44.png Binary files differindex abf4096..77a535b 100644 --- a/res/drawable-xhdpi/weather_44.png +++ b/res/drawable-xhdpi/weather_44.png diff --git a/res/drawable-xhdpi/weather_45.png b/res/drawable-xhdpi/weather_45.png Binary files differindex 7dda34c..a1e64e5 100644 --- a/res/drawable-xhdpi/weather_45.png +++ b/res/drawable-xhdpi/weather_45.png diff --git a/res/drawable-xhdpi/weather_46.png b/res/drawable-xhdpi/weather_46.png Binary files differindex 3f9e500..a03b4fe 100644 --- a/res/drawable-xhdpi/weather_46.png +++ b/res/drawable-xhdpi/weather_46.png diff --git a/res/drawable-xhdpi/weather_47.png b/res/drawable-xhdpi/weather_47.png Binary files differindex b47249c..3840663 100644 --- a/res/drawable-xhdpi/weather_47.png +++ b/res/drawable-xhdpi/weather_47.png diff --git a/res/drawable-xhdpi/weather_5.png b/res/drawable-xhdpi/weather_5.png Binary files differindex aae6d11..f314bdb 100644 --- a/res/drawable-xhdpi/weather_5.png +++ b/res/drawable-xhdpi/weather_5.png diff --git a/res/drawable-xhdpi/weather_6.png b/res/drawable-xhdpi/weather_6.png Binary files differindex aae6d11..f314bdb 100644 --- a/res/drawable-xhdpi/weather_6.png +++ b/res/drawable-xhdpi/weather_6.png diff --git a/res/drawable-xhdpi/weather_7.png b/res/drawable-xhdpi/weather_7.png Binary files differindex aae6d11..f314bdb 100644 --- a/res/drawable-xhdpi/weather_7.png +++ b/res/drawable-xhdpi/weather_7.png diff --git a/res/drawable-xhdpi/weather_8.png b/res/drawable-xhdpi/weather_8.png Binary files differindex 1a7e699..4d5a64e 100644 --- a/res/drawable-xhdpi/weather_8.png +++ b/res/drawable-xhdpi/weather_8.png diff --git a/res/drawable-xhdpi/weather_9.png b/res/drawable-xhdpi/weather_9.png Binary files differindex 0da4419..7f2677a 100644 --- a/res/drawable-xhdpi/weather_9.png +++ b/res/drawable-xhdpi/weather_9.png diff --git a/res/drawable-xhdpi/weather2_0.png b/res/drawable-xhdpi/weather_color_0.png Binary files differindex ebfe876..ebfe876 100644 --- a/res/drawable-xhdpi/weather2_0.png +++ b/res/drawable-xhdpi/weather_color_0.png diff --git a/res/drawable-xhdpi/weather_color_1.png b/res/drawable-xhdpi/weather_color_1.png Binary files differnew file mode 100644 index 0000000..0f470ee --- /dev/null +++ b/res/drawable-xhdpi/weather_color_1.png diff --git a/res/drawable-xhdpi/weather_color_10.png b/res/drawable-xhdpi/weather_color_10.png Binary files differnew file mode 100644 index 0000000..225e1c4 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_10.png diff --git a/res/drawable-xhdpi/weather_color_11.png b/res/drawable-xhdpi/weather_color_11.png Binary files differnew file mode 100644 index 0000000..8387630 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_11.png diff --git a/res/drawable-xhdpi/weather_color_12.png b/res/drawable-xhdpi/weather_color_12.png Binary files differnew file mode 100644 index 0000000..8387630 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_12.png diff --git a/res/drawable-xhdpi/weather_color_13.png b/res/drawable-xhdpi/weather_color_13.png Binary files differnew file mode 100644 index 0000000..55127d2 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_13.png diff --git a/res/drawable-xhdpi/weather_color_14.png b/res/drawable-xhdpi/weather_color_14.png Binary files differnew file mode 100644 index 0000000..55127d2 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_14.png diff --git a/res/drawable-xhdpi/weather_color_15.png b/res/drawable-xhdpi/weather_color_15.png Binary files differnew file mode 100644 index 0000000..55127d2 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_15.png diff --git a/res/drawable-xhdpi/weather_color_16.png b/res/drawable-xhdpi/weather_color_16.png Binary files differnew file mode 100644 index 0000000..55127d2 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_16.png diff --git a/res/drawable-xhdpi/weather_color_17.png b/res/drawable-xhdpi/weather_color_17.png Binary files differnew file mode 100644 index 0000000..11a7067 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_17.png diff --git a/res/drawable-xhdpi/weather2_5.png b/res/drawable-xhdpi/weather_color_18.png Binary files differindex 574fb4f..574fb4f 100644 --- a/res/drawable-xhdpi/weather2_5.png +++ b/res/drawable-xhdpi/weather_color_18.png diff --git a/res/drawable-xhdpi/weather_color_19.png b/res/drawable-xhdpi/weather_color_19.png Binary files differnew file mode 100644 index 0000000..c771175 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_19.png diff --git a/res/drawable-xhdpi/weather_color_2.png b/res/drawable-xhdpi/weather_color_2.png Binary files differnew file mode 100644 index 0000000..0f470ee --- /dev/null +++ b/res/drawable-xhdpi/weather_color_2.png diff --git a/res/drawable-xhdpi/weather_color_20.png b/res/drawable-xhdpi/weather_color_20.png Binary files differnew file mode 100644 index 0000000..6b5f5ce --- /dev/null +++ b/res/drawable-xhdpi/weather_color_20.png diff --git a/res/drawable-xhdpi/weather2_20.png b/res/drawable-xhdpi/weather_color_21.png Binary files differindex f32095b..f32095b 100644 --- a/res/drawable-xhdpi/weather2_20.png +++ b/res/drawable-xhdpi/weather_color_21.png diff --git a/res/drawable-xhdpi/weather_color_22.png b/res/drawable-xhdpi/weather_color_22.png Binary files differnew file mode 100644 index 0000000..6679f4d --- /dev/null +++ b/res/drawable-xhdpi/weather_color_22.png diff --git a/res/drawable-xhdpi/weather_color_23.png b/res/drawable-xhdpi/weather_color_23.png Binary files differnew file mode 100644 index 0000000..5d0a003 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_23.png diff --git a/res/drawable-xhdpi/weather_color_24.png b/res/drawable-xhdpi/weather_color_24.png Binary files differnew file mode 100644 index 0000000..5d0a003 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_24.png diff --git a/res/drawable-xhdpi/weather_color_25.png b/res/drawable-xhdpi/weather_color_25.png Binary files differnew file mode 100644 index 0000000..b73f20b --- /dev/null +++ b/res/drawable-xhdpi/weather_color_25.png diff --git a/res/drawable-xhdpi/weather_color_26.png b/res/drawable-xhdpi/weather_color_26.png Binary files differnew file mode 100644 index 0000000..c392d24 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_26.png diff --git a/res/drawable-xhdpi/weather_color_27.png b/res/drawable-xhdpi/weather_color_27.png Binary files differnew file mode 100644 index 0000000..6ace407 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_27.png diff --git a/res/drawable-xhdpi/weather2_30.png b/res/drawable-xhdpi/weather_color_28.png Binary files differindex d740b54..aed63bd 100644 --- a/res/drawable-xhdpi/weather2_30.png +++ b/res/drawable-xhdpi/weather_color_28.png diff --git a/res/drawable-xhdpi/weather_color_29.png b/res/drawable-xhdpi/weather_color_29.png Binary files differnew file mode 100644 index 0000000..130c4e5 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_29.png diff --git a/res/drawable-xhdpi/weather2_17.png b/res/drawable-xhdpi/weather_color_3.png Binary files differindex ebfe876..ebfe876 100644 --- a/res/drawable-xhdpi/weather2_17.png +++ b/res/drawable-xhdpi/weather_color_3.png diff --git a/res/drawable-xhdpi/weather2_44.png b/res/drawable-xhdpi/weather_color_30.png Binary files differindex 737fb19..737fb19 100644 --- a/res/drawable-xhdpi/weather2_44.png +++ b/res/drawable-xhdpi/weather_color_30.png diff --git a/res/drawable-xhdpi/weather_color_31.png b/res/drawable-xhdpi/weather_color_31.png Binary files differnew file mode 100644 index 0000000..e6fd55a --- /dev/null +++ b/res/drawable-xhdpi/weather_color_31.png diff --git a/res/drawable-xhdpi/weather2_36.png b/res/drawable-xhdpi/weather_color_32.png Binary files differindex 7304f86..3583154 100644 --- a/res/drawable-xhdpi/weather2_36.png +++ b/res/drawable-xhdpi/weather_color_32.png diff --git a/res/drawable-xhdpi/weather_color_33.png b/res/drawable-xhdpi/weather_color_33.png Binary files differnew file mode 100644 index 0000000..cd70b6e --- /dev/null +++ b/res/drawable-xhdpi/weather_color_33.png diff --git a/res/drawable-xhdpi/weather2_34.png b/res/drawable-xhdpi/weather_color_34.png Binary files differindex b47ca2c..b87f491 100644 --- a/res/drawable-xhdpi/weather2_34.png +++ b/res/drawable-xhdpi/weather_color_34.png diff --git a/res/drawable-xhdpi/weather_color_35.png b/res/drawable-xhdpi/weather_color_35.png Binary files differnew file mode 100644 index 0000000..1e697eb --- /dev/null +++ b/res/drawable-xhdpi/weather_color_35.png diff --git a/res/drawable-xhdpi/weather_color_36.png b/res/drawable-xhdpi/weather_color_36.png Binary files differnew file mode 100644 index 0000000..a2b216e --- /dev/null +++ b/res/drawable-xhdpi/weather_color_36.png diff --git a/res/drawable-xhdpi/weather2_37.png b/res/drawable-xhdpi/weather_color_37.png Binary files differindex 407c894..b27da8b 100644 --- a/res/drawable-xhdpi/weather2_37.png +++ b/res/drawable-xhdpi/weather_color_37.png diff --git a/res/drawable-xhdpi/weather_color_38.png b/res/drawable-xhdpi/weather_color_38.png Binary files differnew file mode 100644 index 0000000..b27da8b --- /dev/null +++ b/res/drawable-xhdpi/weather_color_38.png diff --git a/res/drawable-xhdpi/weather_color_39.png b/res/drawable-xhdpi/weather_color_39.png Binary files differnew file mode 100644 index 0000000..b27da8b --- /dev/null +++ b/res/drawable-xhdpi/weather_color_39.png diff --git a/res/drawable-xhdpi/weather2_3.png b/res/drawable-xhdpi/weather_color_4.png Binary files differindex ebfe876..ebfe876 100644 --- a/res/drawable-xhdpi/weather2_3.png +++ b/res/drawable-xhdpi/weather_color_4.png diff --git a/res/drawable-xhdpi/weather2_39.png b/res/drawable-xhdpi/weather_color_40.png Binary files differindex b7c5761..ec8297c 100644 --- a/res/drawable-xhdpi/weather2_39.png +++ b/res/drawable-xhdpi/weather_color_40.png diff --git a/res/drawable-xhdpi/weather2_43.png b/res/drawable-xhdpi/weather_color_41.png Binary files differindex 0f5b793..0f5b793 100644 --- a/res/drawable-xhdpi/weather2_43.png +++ b/res/drawable-xhdpi/weather_color_41.png diff --git a/res/drawable-xhdpi/weather_color_42.png b/res/drawable-xhdpi/weather_color_42.png Binary files differnew file mode 100644 index 0000000..55127d2 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_42.png diff --git a/res/drawable-xhdpi/weather_color_43.png b/res/drawable-xhdpi/weather_color_43.png Binary files differnew file mode 100644 index 0000000..491b9c4 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_43.png diff --git a/res/drawable-xhdpi/weather_color_44.png b/res/drawable-xhdpi/weather_color_44.png Binary files differnew file mode 100644 index 0000000..cd70b6e --- /dev/null +++ b/res/drawable-xhdpi/weather_color_44.png diff --git a/res/drawable-xhdpi/weather_color_45.png b/res/drawable-xhdpi/weather_color_45.png Binary files differnew file mode 100644 index 0000000..fabfa36 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_45.png diff --git a/res/drawable-xhdpi/weather_color_46.png b/res/drawable-xhdpi/weather_color_46.png Binary files differnew file mode 100644 index 0000000..aa74463 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_46.png diff --git a/res/drawable-xhdpi/weather_color_47.png b/res/drawable-xhdpi/weather_color_47.png Binary files differnew file mode 100644 index 0000000..0184485 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_47.png diff --git a/res/drawable-xhdpi/weather_color_5.png b/res/drawable-xhdpi/weather_color_5.png Binary files differnew file mode 100644 index 0000000..dcf205f --- /dev/null +++ b/res/drawable-xhdpi/weather_color_5.png diff --git a/res/drawable-xhdpi/weather_color_6.png b/res/drawable-xhdpi/weather_color_6.png Binary files differnew file mode 100644 index 0000000..dcf205f --- /dev/null +++ b/res/drawable-xhdpi/weather_color_6.png diff --git a/res/drawable-xhdpi/weather_color_7.png b/res/drawable-xhdpi/weather_color_7.png Binary files differnew file mode 100644 index 0000000..55127d2 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_7.png diff --git a/res/drawable-xhdpi/weather_color_8.png b/res/drawable-xhdpi/weather_color_8.png Binary files differnew file mode 100644 index 0000000..c7090a3 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_8.png diff --git a/res/drawable-xhdpi/weather_color_9.png b/res/drawable-xhdpi/weather_color_9.png Binary files differnew file mode 100644 index 0000000..20612f5 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_9.png diff --git a/res/drawable-xhdpi/weather_color_na.png b/res/drawable-xhdpi/weather_color_na.png Binary files differnew file mode 100644 index 0000000..aeb3891 --- /dev/null +++ b/res/drawable-xhdpi/weather_color_na.png diff --git a/res/drawable-xhdpi/weather_na.png b/res/drawable-xhdpi/weather_na.png Binary files differindex 8125ce2..6ae00f5 100644 --- a/res/drawable-xhdpi/weather_na.png +++ b/res/drawable-xhdpi/weather_na.png diff --git a/res/drawable-xhdpi/weather_preferences.png b/res/drawable-xhdpi/weather_preferences.png Binary files differindex 82897fc..ca3d369 100644 --- a/res/drawable-xhdpi/weather_preferences.png +++ b/res/drawable-xhdpi/weather_preferences.png diff --git a/res/drawable-xhdpi/weather_vclouds_0.png b/res/drawable-xhdpi/weather_vclouds_0.png Binary files differnew file mode 100644 index 0000000..b5b93b4 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_0.png diff --git a/res/drawable-xhdpi/weather_vclouds_1.png b/res/drawable-xhdpi/weather_vclouds_1.png Binary files differnew file mode 100644 index 0000000..b5b93b4 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_1.png diff --git a/res/drawable-xhdpi/weather_vclouds_10.png b/res/drawable-xhdpi/weather_vclouds_10.png Binary files differnew file mode 100644 index 0000000..23d06b6 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_10.png diff --git a/res/drawable-xhdpi/weather_vclouds_11.png b/res/drawable-xhdpi/weather_vclouds_11.png Binary files differnew file mode 100644 index 0000000..5493cee --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_11.png diff --git a/res/drawable-xhdpi/weather_vclouds_12.png b/res/drawable-xhdpi/weather_vclouds_12.png Binary files differnew file mode 100644 index 0000000..d94a8e0 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_12.png diff --git a/res/drawable-xhdpi/weather_vclouds_13.png b/res/drawable-xhdpi/weather_vclouds_13.png Binary files differnew file mode 100644 index 0000000..9621f9a --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_13.png diff --git a/res/drawable-xhdpi/weather_vclouds_14.png b/res/drawable-xhdpi/weather_vclouds_14.png Binary files differnew file mode 100644 index 0000000..f83f5fb --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_14.png diff --git a/res/drawable-xhdpi/weather_vclouds_15.png b/res/drawable-xhdpi/weather_vclouds_15.png Binary files differnew file mode 100644 index 0000000..d627573 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_15.png diff --git a/res/drawable-xhdpi/weather_vclouds_16.png b/res/drawable-xhdpi/weather_vclouds_16.png Binary files differnew file mode 100644 index 0000000..63bb6b8 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_16.png diff --git a/res/drawable-xhdpi/weather_vclouds_17.png b/res/drawable-xhdpi/weather_vclouds_17.png Binary files differnew file mode 100644 index 0000000..b5b93b4 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_17.png diff --git a/res/drawable-xhdpi/weather_vclouds_18.png b/res/drawable-xhdpi/weather_vclouds_18.png Binary files differnew file mode 100644 index 0000000..f28d8db --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_18.png diff --git a/res/drawable-xhdpi/weather_vclouds_19.png b/res/drawable-xhdpi/weather_vclouds_19.png Binary files differnew file mode 100644 index 0000000..3f45e6e --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_19.png diff --git a/res/drawable-xhdpi/weather_vclouds_2.png b/res/drawable-xhdpi/weather_vclouds_2.png Binary files differnew file mode 100644 index 0000000..b5b93b4 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_2.png diff --git a/res/drawable-xhdpi/weather_vclouds_20.png b/res/drawable-xhdpi/weather_vclouds_20.png Binary files differnew file mode 100644 index 0000000..93d339d --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_20.png diff --git a/res/drawable-xhdpi/weather_vclouds_21.png b/res/drawable-xhdpi/weather_vclouds_21.png Binary files differnew file mode 100644 index 0000000..123adfa --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_21.png diff --git a/res/drawable-xhdpi/weather_vclouds_22.png b/res/drawable-xhdpi/weather_vclouds_22.png Binary files differnew file mode 100644 index 0000000..7d43c65 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_22.png diff --git a/res/drawable-xhdpi/weather_vclouds_23.png b/res/drawable-xhdpi/weather_vclouds_23.png Binary files differnew file mode 100644 index 0000000..0f76b52 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_23.png diff --git a/res/drawable-xhdpi/weather_vclouds_24.png b/res/drawable-xhdpi/weather_vclouds_24.png Binary files differnew file mode 100644 index 0000000..0f76b52 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_24.png diff --git a/res/drawable-xhdpi/weather_vclouds_25.png b/res/drawable-xhdpi/weather_vclouds_25.png Binary files differnew file mode 100644 index 0000000..7e27da8 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_25.png diff --git a/res/drawable-xhdpi/weather_vclouds_26.png b/res/drawable-xhdpi/weather_vclouds_26.png Binary files differnew file mode 100644 index 0000000..6c290a1 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_26.png diff --git a/res/drawable-xhdpi/weather_vclouds_27.png b/res/drawable-xhdpi/weather_vclouds_27.png Binary files differnew file mode 100644 index 0000000..31a830c --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_27.png diff --git a/res/drawable-xhdpi/weather_vclouds_28.png b/res/drawable-xhdpi/weather_vclouds_28.png Binary files differnew file mode 100644 index 0000000..053ee79 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_28.png diff --git a/res/drawable-xhdpi/weather_vclouds_29.png b/res/drawable-xhdpi/weather_vclouds_29.png Binary files differnew file mode 100644 index 0000000..74935a0 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_29.png diff --git a/res/drawable-xhdpi/weather_vclouds_3.png b/res/drawable-xhdpi/weather_vclouds_3.png Binary files differnew file mode 100644 index 0000000..b5b93b4 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_3.png diff --git a/res/drawable-xhdpi/weather_vclouds_30.png b/res/drawable-xhdpi/weather_vclouds_30.png Binary files differnew file mode 100644 index 0000000..ada95ba --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_30.png diff --git a/res/drawable-xhdpi/weather_vclouds_31.png b/res/drawable-xhdpi/weather_vclouds_31.png Binary files differnew file mode 100644 index 0000000..ed0e538 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_31.png diff --git a/res/drawable-xhdpi/weather_vclouds_32.png b/res/drawable-xhdpi/weather_vclouds_32.png Binary files differnew file mode 100644 index 0000000..9ba909d --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_32.png diff --git a/res/drawable-xhdpi/weather_vclouds_33.png b/res/drawable-xhdpi/weather_vclouds_33.png Binary files differnew file mode 100644 index 0000000..18a1210 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_33.png diff --git a/res/drawable-xhdpi/weather_vclouds_34.png b/res/drawable-xhdpi/weather_vclouds_34.png Binary files differnew file mode 100644 index 0000000..29afd36 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_34.png diff --git a/res/drawable-xhdpi/weather_vclouds_35.png b/res/drawable-xhdpi/weather_vclouds_35.png Binary files differnew file mode 100644 index 0000000..b5b93b4 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_35.png diff --git a/res/drawable-xhdpi/weather_vclouds_36.png b/res/drawable-xhdpi/weather_vclouds_36.png Binary files differnew file mode 100644 index 0000000..3b4ffa4 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_36.png diff --git a/res/drawable-xhdpi/weather_vclouds_37.png b/res/drawable-xhdpi/weather_vclouds_37.png Binary files differnew file mode 100644 index 0000000..117dcdb --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_37.png diff --git a/res/drawable-xhdpi/weather_vclouds_38.png b/res/drawable-xhdpi/weather_vclouds_38.png Binary files differnew file mode 100644 index 0000000..117dcdb --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_38.png diff --git a/res/drawable-xhdpi/weather_vclouds_39.png b/res/drawable-xhdpi/weather_vclouds_39.png Binary files differnew file mode 100644 index 0000000..4e081d2 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_39.png diff --git a/res/drawable-xhdpi/weather_vclouds_4.png b/res/drawable-xhdpi/weather_vclouds_4.png Binary files differnew file mode 100644 index 0000000..b5b93b4 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_4.png diff --git a/res/drawable-xhdpi/weather_vclouds_40.png b/res/drawable-xhdpi/weather_vclouds_40.png Binary files differnew file mode 100644 index 0000000..d94a8e0 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_40.png diff --git a/res/drawable-xhdpi/weather_vclouds_41.png b/res/drawable-xhdpi/weather_vclouds_41.png Binary files differnew file mode 100644 index 0000000..bf46769 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_41.png diff --git a/res/drawable-xhdpi/weather_vclouds_42.png b/res/drawable-xhdpi/weather_vclouds_42.png Binary files differnew file mode 100644 index 0000000..63bb6b8 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_42.png diff --git a/res/drawable-xhdpi/weather_vclouds_43.png b/res/drawable-xhdpi/weather_vclouds_43.png Binary files differnew file mode 100644 index 0000000..d627573 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_43.png diff --git a/res/drawable-xhdpi/weather_vclouds_44.png b/res/drawable-xhdpi/weather_vclouds_44.png Binary files differnew file mode 100644 index 0000000..37592ac --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_44.png diff --git a/res/drawable-xhdpi/weather_vclouds_45.png b/res/drawable-xhdpi/weather_vclouds_45.png Binary files differnew file mode 100644 index 0000000..861eb7d --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_45.png diff --git a/res/drawable-xhdpi/weather_vclouds_46.png b/res/drawable-xhdpi/weather_vclouds_46.png Binary files differnew file mode 100644 index 0000000..af32b21 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_46.png diff --git a/res/drawable-xhdpi/weather_vclouds_47.png b/res/drawable-xhdpi/weather_vclouds_47.png Binary files differnew file mode 100644 index 0000000..23ee5d9 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_47.png diff --git a/res/drawable-xhdpi/weather_vclouds_5.png b/res/drawable-xhdpi/weather_vclouds_5.png Binary files differnew file mode 100644 index 0000000..4704482 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_5.png diff --git a/res/drawable-xhdpi/weather_vclouds_6.png b/res/drawable-xhdpi/weather_vclouds_6.png Binary files differnew file mode 100644 index 0000000..534c0c5 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_6.png diff --git a/res/drawable-xhdpi/weather_vclouds_7.png b/res/drawable-xhdpi/weather_vclouds_7.png Binary files differnew file mode 100644 index 0000000..d9dc191 --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_7.png diff --git a/res/drawable-xhdpi/weather_vclouds_8.png b/res/drawable-xhdpi/weather_vclouds_8.png Binary files differnew file mode 100644 index 0000000..b859afc --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_8.png diff --git a/res/drawable-xhdpi/weather_vclouds_9.png b/res/drawable-xhdpi/weather_vclouds_9.png Binary files differnew file mode 100644 index 0000000..741335d --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_9.png diff --git a/res/drawable-xhdpi/weather_vclouds_na.png b/res/drawable-xhdpi/weather_vclouds_na.png Binary files differnew file mode 100644 index 0000000..37592ac --- /dev/null +++ b/res/drawable-xhdpi/weather_vclouds_na.png diff --git a/res/drawable-xxhdpi/calendar_preferences.png b/res/drawable-xxhdpi/calendar_preferences.png Binary files differnew file mode 100644 index 0000000..06f9c33 --- /dev/null +++ b/res/drawable-xxhdpi/calendar_preferences.png diff --git a/res/drawable-xxhdpi/clock_preferences.png b/res/drawable-xxhdpi/clock_preferences.png Binary files differnew file mode 100644 index 0000000..ecf135b --- /dev/null +++ b/res/drawable-xxhdpi/clock_preferences.png diff --git a/res/drawable-xxhdpi/ic_menu_done_holo_light.png b/res/drawable-xxhdpi/ic_menu_done_holo_light.png Binary files differnew file mode 100644 index 0000000..fdecbe1 --- /dev/null +++ b/res/drawable-xxhdpi/ic_menu_done_holo_light.png diff --git a/res/drawable-xxhdpi/ic_menu_refresh_holo_dark.png b/res/drawable-xxhdpi/ic_menu_refresh_holo_dark.png Binary files differnew file mode 100644 index 0000000..088d76b --- /dev/null +++ b/res/drawable-xxhdpi/ic_menu_refresh_holo_dark.png diff --git a/res/drawable-xxhdpi/weather_0.png b/res/drawable-xxhdpi/weather_0.png Binary files differindex 3d423da..2137660 100644 --- a/res/drawable-xxhdpi/weather_0.png +++ b/res/drawable-xxhdpi/weather_0.png diff --git a/res/drawable-xxhdpi/weather_1.png b/res/drawable-xxhdpi/weather_1.png Binary files differindex 3d423da..2137660 100644 --- a/res/drawable-xxhdpi/weather_1.png +++ b/res/drawable-xxhdpi/weather_1.png diff --git a/res/drawable-xxhdpi/weather_10.png b/res/drawable-xxhdpi/weather_10.png Binary files differindex f3d1841..570aaaa 100644 --- a/res/drawable-xxhdpi/weather_10.png +++ b/res/drawable-xxhdpi/weather_10.png diff --git a/res/drawable-xxhdpi/weather_11.png b/res/drawable-xxhdpi/weather_11.png Binary files differindex d999377..557d403 100644 --- a/res/drawable-xxhdpi/weather_11.png +++ b/res/drawable-xxhdpi/weather_11.png diff --git a/res/drawable-xxhdpi/weather_12.png b/res/drawable-xxhdpi/weather_12.png Binary files differindex d999377..557d403 100644 --- a/res/drawable-xxhdpi/weather_12.png +++ b/res/drawable-xxhdpi/weather_12.png diff --git a/res/drawable-xxhdpi/weather_13.png b/res/drawable-xxhdpi/weather_13.png Binary files differindex 8fe3497..d05804c 100644 --- a/res/drawable-xxhdpi/weather_13.png +++ b/res/drawable-xxhdpi/weather_13.png diff --git a/res/drawable-xxhdpi/weather_14.png b/res/drawable-xxhdpi/weather_14.png Binary files differindex 8fe3497..d05804c 100644 --- a/res/drawable-xxhdpi/weather_14.png +++ b/res/drawable-xxhdpi/weather_14.png diff --git a/res/drawable-xxhdpi/weather_15.png b/res/drawable-xxhdpi/weather_15.png Binary files differindex ac53d40..65aab78 100644 --- a/res/drawable-xxhdpi/weather_15.png +++ b/res/drawable-xxhdpi/weather_15.png diff --git a/res/drawable-xxhdpi/weather_16.png b/res/drawable-xxhdpi/weather_16.png Binary files differindex f440617..6dde5f4 100644 --- a/res/drawable-xxhdpi/weather_16.png +++ b/res/drawable-xxhdpi/weather_16.png diff --git a/res/drawable-xxhdpi/weather_17.png b/res/drawable-xxhdpi/weather_17.png Binary files differindex b99fcd8..b8fc3a0 100644 --- a/res/drawable-xxhdpi/weather_17.png +++ b/res/drawable-xxhdpi/weather_17.png diff --git a/res/drawable-xxhdpi/weather_18.png b/res/drawable-xxhdpi/weather_18.png Binary files differindex 27b859d..3097b92 100644 --- a/res/drawable-xxhdpi/weather_18.png +++ b/res/drawable-xxhdpi/weather_18.png diff --git a/res/drawable-xxhdpi/weather_19.png b/res/drawable-xxhdpi/weather_19.png Binary files differindex ff699ae..e6dc8dc 100644 --- a/res/drawable-xxhdpi/weather_19.png +++ b/res/drawable-xxhdpi/weather_19.png diff --git a/res/drawable-xxhdpi/weather_2.png b/res/drawable-xxhdpi/weather_2.png Binary files differindex 3d423da..2137660 100644 --- a/res/drawable-xxhdpi/weather_2.png +++ b/res/drawable-xxhdpi/weather_2.png diff --git a/res/drawable-xxhdpi/weather_20.png b/res/drawable-xxhdpi/weather_20.png Binary files differindex 2032a81..21af577 100644 --- a/res/drawable-xxhdpi/weather_20.png +++ b/res/drawable-xxhdpi/weather_20.png diff --git a/res/drawable-xxhdpi/weather_21.png b/res/drawable-xxhdpi/weather_21.png Binary files differindex 892ec74..a7ae727 100644 --- a/res/drawable-xxhdpi/weather_21.png +++ b/res/drawable-xxhdpi/weather_21.png diff --git a/res/drawable-xxhdpi/weather_22.png b/res/drawable-xxhdpi/weather_22.png Binary files differindex ff699ae..e6dc8dc 100644 --- a/res/drawable-xxhdpi/weather_22.png +++ b/res/drawable-xxhdpi/weather_22.png diff --git a/res/drawable-xxhdpi/weather_23.png b/res/drawable-xxhdpi/weather_23.png Binary files differindex 66ac768..a0488d6 100644 --- a/res/drawable-xxhdpi/weather_23.png +++ b/res/drawable-xxhdpi/weather_23.png diff --git a/res/drawable-xxhdpi/weather_24.png b/res/drawable-xxhdpi/weather_24.png Binary files differindex 66ac768..a0488d6 100644 --- a/res/drawable-xxhdpi/weather_24.png +++ b/res/drawable-xxhdpi/weather_24.png diff --git a/res/drawable-xxhdpi/weather_25.png b/res/drawable-xxhdpi/weather_25.png Binary files differindex c0ac072..56250e2 100644 --- a/res/drawable-xxhdpi/weather_25.png +++ b/res/drawable-xxhdpi/weather_25.png diff --git a/res/drawable-xxhdpi/weather_26.png b/res/drawable-xxhdpi/weather_26.png Binary files differindex 7cdcee5..73ceca3 100644 --- a/res/drawable-xxhdpi/weather_26.png +++ b/res/drawable-xxhdpi/weather_26.png diff --git a/res/drawable-xxhdpi/weather_27.png b/res/drawable-xxhdpi/weather_27.png Binary files differindex 7e9e040..4a04f34 100644 --- a/res/drawable-xxhdpi/weather_27.png +++ b/res/drawable-xxhdpi/weather_27.png diff --git a/res/drawable-xxhdpi/weather_28.png b/res/drawable-xxhdpi/weather_28.png Binary files differindex ebe64e9..31033a5 100644 --- a/res/drawable-xxhdpi/weather_28.png +++ b/res/drawable-xxhdpi/weather_28.png diff --git a/res/drawable-xxhdpi/weather_29.png b/res/drawable-xxhdpi/weather_29.png Binary files differindex 7e9e040..4a04f34 100644 --- a/res/drawable-xxhdpi/weather_29.png +++ b/res/drawable-xxhdpi/weather_29.png diff --git a/res/drawable-xxhdpi/weather_3.png b/res/drawable-xxhdpi/weather_3.png Binary files differindex 905e088..68579fd 100644 --- a/res/drawable-xxhdpi/weather_3.png +++ b/res/drawable-xxhdpi/weather_3.png diff --git a/res/drawable-xxhdpi/weather_30.png b/res/drawable-xxhdpi/weather_30.png Binary files differindex ebe64e9..31033a5 100644 --- a/res/drawable-xxhdpi/weather_30.png +++ b/res/drawable-xxhdpi/weather_30.png diff --git a/res/drawable-xxhdpi/weather_31.png b/res/drawable-xxhdpi/weather_31.png Binary files differindex 7c7804a..6f3ecfd 100644 --- a/res/drawable-xxhdpi/weather_31.png +++ b/res/drawable-xxhdpi/weather_31.png diff --git a/res/drawable-xxhdpi/weather_32.png b/res/drawable-xxhdpi/weather_32.png Binary files differindex 106aed4..d4be584 100644 --- a/res/drawable-xxhdpi/weather_32.png +++ b/res/drawable-xxhdpi/weather_32.png diff --git a/res/drawable-xxhdpi/weather_33.png b/res/drawable-xxhdpi/weather_33.png Binary files differindex 7c7804a..6f3ecfd 100644 --- a/res/drawable-xxhdpi/weather_33.png +++ b/res/drawable-xxhdpi/weather_33.png diff --git a/res/drawable-xxhdpi/weather_34.png b/res/drawable-xxhdpi/weather_34.png Binary files differindex 106aed4..d4be584 100644 --- a/res/drawable-xxhdpi/weather_34.png +++ b/res/drawable-xxhdpi/weather_34.png diff --git a/res/drawable-xxhdpi/weather_35.png b/res/drawable-xxhdpi/weather_35.png Binary files differindex ce6dda8..fc06e37 100644 --- a/res/drawable-xxhdpi/weather_35.png +++ b/res/drawable-xxhdpi/weather_35.png diff --git a/res/drawable-xxhdpi/weather_36.png b/res/drawable-xxhdpi/weather_36.png Binary files differindex 2ceac01..421d9a1 100644 --- a/res/drawable-xxhdpi/weather_36.png +++ b/res/drawable-xxhdpi/weather_36.png diff --git a/res/drawable-xxhdpi/weather_37.png b/res/drawable-xxhdpi/weather_37.png Binary files differindex 054d19b..893cf1d 100644 --- a/res/drawable-xxhdpi/weather_37.png +++ b/res/drawable-xxhdpi/weather_37.png diff --git a/res/drawable-xxhdpi/weather_38.png b/res/drawable-xxhdpi/weather_38.png Binary files differindex c7aafcb..e8600fa 100644 --- a/res/drawable-xxhdpi/weather_38.png +++ b/res/drawable-xxhdpi/weather_38.png diff --git a/res/drawable-xxhdpi/weather_39.png b/res/drawable-xxhdpi/weather_39.png Binary files differindex 054d19b..893cf1d 100644 --- a/res/drawable-xxhdpi/weather_39.png +++ b/res/drawable-xxhdpi/weather_39.png diff --git a/res/drawable-xxhdpi/weather_4.png b/res/drawable-xxhdpi/weather_4.png Binary files differindex 905e088..68579fd 100644 --- a/res/drawable-xxhdpi/weather_4.png +++ b/res/drawable-xxhdpi/weather_4.png diff --git a/res/drawable-xxhdpi/weather_40.png b/res/drawable-xxhdpi/weather_40.png Binary files differindex 7715f8e..965d731 100644 --- a/res/drawable-xxhdpi/weather_40.png +++ b/res/drawable-xxhdpi/weather_40.png diff --git a/res/drawable-xxhdpi/weather_41.png b/res/drawable-xxhdpi/weather_41.png Binary files differindex f440617..6dde5f4 100644 --- a/res/drawable-xxhdpi/weather_41.png +++ b/res/drawable-xxhdpi/weather_41.png diff --git a/res/drawable-xxhdpi/weather_42.png b/res/drawable-xxhdpi/weather_42.png Binary files differindex e9f8625..c6f5848 100644 --- a/res/drawable-xxhdpi/weather_42.png +++ b/res/drawable-xxhdpi/weather_42.png diff --git a/res/drawable-xxhdpi/weather_43.png b/res/drawable-xxhdpi/weather_43.png Binary files differindex 5f4591b..c422d44 100644 --- a/res/drawable-xxhdpi/weather_43.png +++ b/res/drawable-xxhdpi/weather_43.png diff --git a/res/drawable-xxhdpi/weather_44.png b/res/drawable-xxhdpi/weather_44.png Binary files differindex 7e9e040..4a04f34 100644 --- a/res/drawable-xxhdpi/weather_44.png +++ b/res/drawable-xxhdpi/weather_44.png diff --git a/res/drawable-xxhdpi/weather_45.png b/res/drawable-xxhdpi/weather_45.png Binary files differindex 905e088..68579fd 100644 --- a/res/drawable-xxhdpi/weather_45.png +++ b/res/drawable-xxhdpi/weather_45.png diff --git a/res/drawable-xxhdpi/weather_46.png b/res/drawable-xxhdpi/weather_46.png Binary files differindex 8fe3497..d05804c 100644 --- a/res/drawable-xxhdpi/weather_46.png +++ b/res/drawable-xxhdpi/weather_46.png diff --git a/res/drawable-xxhdpi/weather_47.png b/res/drawable-xxhdpi/weather_47.png Binary files differindex c7aafcb..e8600fa 100644 --- a/res/drawable-xxhdpi/weather_47.png +++ b/res/drawable-xxhdpi/weather_47.png diff --git a/res/drawable-xxhdpi/weather_5.png b/res/drawable-xxhdpi/weather_5.png Binary files differindex 27b859d..3097b92 100644 --- a/res/drawable-xxhdpi/weather_5.png +++ b/res/drawable-xxhdpi/weather_5.png diff --git a/res/drawable-xxhdpi/weather_6.png b/res/drawable-xxhdpi/weather_6.png Binary files differindex 27b859d..3097b92 100644 --- a/res/drawable-xxhdpi/weather_6.png +++ b/res/drawable-xxhdpi/weather_6.png diff --git a/res/drawable-xxhdpi/weather_7.png b/res/drawable-xxhdpi/weather_7.png Binary files differindex 27b859d..3097b92 100644 --- a/res/drawable-xxhdpi/weather_7.png +++ b/res/drawable-xxhdpi/weather_7.png diff --git a/res/drawable-xxhdpi/weather_8.png b/res/drawable-xxhdpi/weather_8.png Binary files differindex 22d6c2d..2bf7566 100644 --- a/res/drawable-xxhdpi/weather_8.png +++ b/res/drawable-xxhdpi/weather_8.png diff --git a/res/drawable-xxhdpi/weather_9.png b/res/drawable-xxhdpi/weather_9.png Binary files differindex cbfd5c9..5f2c826 100644 --- a/res/drawable-xxhdpi/weather_9.png +++ b/res/drawable-xxhdpi/weather_9.png diff --git a/res/drawable-xxhdpi/weather_color_0.png b/res/drawable-xxhdpi/weather_color_0.png Binary files differnew file mode 100644 index 0000000..9c3a2ba --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_0.png diff --git a/res/drawable-xxhdpi/weather_color_1.png b/res/drawable-xxhdpi/weather_color_1.png Binary files differnew file mode 100644 index 0000000..6ada21d --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_1.png diff --git a/res/drawable-xxhdpi/weather_color_10.png b/res/drawable-xxhdpi/weather_color_10.png Binary files differnew file mode 100644 index 0000000..309bdbe --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_10.png diff --git a/res/drawable-xxhdpi/weather_color_11.png b/res/drawable-xxhdpi/weather_color_11.png Binary files differnew file mode 100644 index 0000000..2240d96 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_11.png diff --git a/res/drawable-xxhdpi/weather_color_12.png b/res/drawable-xxhdpi/weather_color_12.png Binary files differnew file mode 100644 index 0000000..2240d96 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_12.png diff --git a/res/drawable-xxhdpi/weather_color_13.png b/res/drawable-xxhdpi/weather_color_13.png Binary files differnew file mode 100644 index 0000000..a32a073 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_13.png diff --git a/res/drawable-xxhdpi/weather_color_14.png b/res/drawable-xxhdpi/weather_color_14.png Binary files differnew file mode 100644 index 0000000..a32a073 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_14.png diff --git a/res/drawable-xxhdpi/weather_color_15.png b/res/drawable-xxhdpi/weather_color_15.png Binary files differnew file mode 100644 index 0000000..a32a073 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_15.png diff --git a/res/drawable-xxhdpi/weather_color_16.png b/res/drawable-xxhdpi/weather_color_16.png Binary files differnew file mode 100644 index 0000000..a32a073 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_16.png diff --git a/res/drawable-xxhdpi/weather_color_17.png b/res/drawable-xxhdpi/weather_color_17.png Binary files differnew file mode 100644 index 0000000..e8c1045 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_17.png diff --git a/res/drawable-xxhdpi/weather_color_18.png b/res/drawable-xxhdpi/weather_color_18.png Binary files differnew file mode 100644 index 0000000..a33c8ab --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_18.png diff --git a/res/drawable-xxhdpi/weather_color_19.png b/res/drawable-xxhdpi/weather_color_19.png Binary files differnew file mode 100644 index 0000000..1d7ec89 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_19.png diff --git a/res/drawable-xxhdpi/weather_color_2.png b/res/drawable-xxhdpi/weather_color_2.png Binary files differnew file mode 100644 index 0000000..6ada21d --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_2.png diff --git a/res/drawable-xxhdpi/weather_color_20.png b/res/drawable-xxhdpi/weather_color_20.png Binary files differnew file mode 100644 index 0000000..623137d --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_20.png diff --git a/res/drawable-xxhdpi/weather_color_21.png b/res/drawable-xxhdpi/weather_color_21.png Binary files differnew file mode 100644 index 0000000..94aaa28 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_21.png diff --git a/res/drawable-xxhdpi/weather_color_22.png b/res/drawable-xxhdpi/weather_color_22.png Binary files differnew file mode 100644 index 0000000..dce0c4f --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_22.png diff --git a/res/drawable-xxhdpi/weather_color_23.png b/res/drawable-xxhdpi/weather_color_23.png Binary files differnew file mode 100644 index 0000000..6dd21e2 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_23.png diff --git a/res/drawable-xxhdpi/weather_color_24.png b/res/drawable-xxhdpi/weather_color_24.png Binary files differnew file mode 100644 index 0000000..6dd21e2 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_24.png diff --git a/res/drawable-xxhdpi/weather_color_25.png b/res/drawable-xxhdpi/weather_color_25.png Binary files differnew file mode 100644 index 0000000..b492cbb --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_25.png diff --git a/res/drawable-xxhdpi/weather_color_26.png b/res/drawable-xxhdpi/weather_color_26.png Binary files differnew file mode 100644 index 0000000..f8439c1 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_26.png diff --git a/res/drawable-xxhdpi/weather_color_27.png b/res/drawable-xxhdpi/weather_color_27.png Binary files differnew file mode 100644 index 0000000..fb4dfe5 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_27.png diff --git a/res/drawable-xxhdpi/weather_color_28.png b/res/drawable-xxhdpi/weather_color_28.png Binary files differnew file mode 100644 index 0000000..bad9233 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_28.png diff --git a/res/drawable-xxhdpi/weather_color_29.png b/res/drawable-xxhdpi/weather_color_29.png Binary files differnew file mode 100644 index 0000000..d1f0f52 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_29.png diff --git a/res/drawable-xxhdpi/weather_color_3.png b/res/drawable-xxhdpi/weather_color_3.png Binary files differnew file mode 100644 index 0000000..9c3a2ba --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_3.png diff --git a/res/drawable-xxhdpi/weather_color_30.png b/res/drawable-xxhdpi/weather_color_30.png Binary files differnew file mode 100644 index 0000000..2713632 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_30.png diff --git a/res/drawable-xxhdpi/weather_color_31.png b/res/drawable-xxhdpi/weather_color_31.png Binary files differnew file mode 100644 index 0000000..e4f59b1 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_31.png diff --git a/res/drawable-xxhdpi/weather_color_32.png b/res/drawable-xxhdpi/weather_color_32.png Binary files differnew file mode 100644 index 0000000..9415c20 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_32.png diff --git a/res/drawable-xxhdpi/weather_color_33.png b/res/drawable-xxhdpi/weather_color_33.png Binary files differnew file mode 100644 index 0000000..a45bfc9 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_33.png diff --git a/res/drawable-xxhdpi/weather_color_34.png b/res/drawable-xxhdpi/weather_color_34.png Binary files differnew file mode 100644 index 0000000..70230ce --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_34.png diff --git a/res/drawable-xxhdpi/weather_color_35.png b/res/drawable-xxhdpi/weather_color_35.png Binary files differnew file mode 100644 index 0000000..a34c5e6 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_35.png diff --git a/res/drawable-xxhdpi/weather_color_36.png b/res/drawable-xxhdpi/weather_color_36.png Binary files differnew file mode 100644 index 0000000..b218127 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_36.png diff --git a/res/drawable-xxhdpi/weather_color_37.png b/res/drawable-xxhdpi/weather_color_37.png Binary files differnew file mode 100644 index 0000000..16c5c7a --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_37.png diff --git a/res/drawable-xxhdpi/weather_color_38.png b/res/drawable-xxhdpi/weather_color_38.png Binary files differnew file mode 100644 index 0000000..16c5c7a --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_38.png diff --git a/res/drawable-xxhdpi/weather_color_39.png b/res/drawable-xxhdpi/weather_color_39.png Binary files differnew file mode 100644 index 0000000..16c5c7a --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_39.png diff --git a/res/drawable-xxhdpi/weather_color_4.png b/res/drawable-xxhdpi/weather_color_4.png Binary files differnew file mode 100644 index 0000000..9c3a2ba --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_4.png diff --git a/res/drawable-xxhdpi/weather_color_40.png b/res/drawable-xxhdpi/weather_color_40.png Binary files differnew file mode 100644 index 0000000..cae45e0 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_40.png diff --git a/res/drawable-xxhdpi/weather_color_41.png b/res/drawable-xxhdpi/weather_color_41.png Binary files differnew file mode 100644 index 0000000..3e651e1 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_41.png diff --git a/res/drawable-xxhdpi/weather_color_42.png b/res/drawable-xxhdpi/weather_color_42.png Binary files differnew file mode 100644 index 0000000..a32a073 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_42.png diff --git a/res/drawable-xxhdpi/weather_color_43.png b/res/drawable-xxhdpi/weather_color_43.png Binary files differnew file mode 100644 index 0000000..3e651e1 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_43.png diff --git a/res/drawable-xxhdpi/weather_color_44.png b/res/drawable-xxhdpi/weather_color_44.png Binary files differnew file mode 100644 index 0000000..a45bfc9 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_44.png diff --git a/res/drawable-xxhdpi/weather_color_45.png b/res/drawable-xxhdpi/weather_color_45.png Binary files differnew file mode 100644 index 0000000..bac18d2 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_45.png diff --git a/res/drawable-xxhdpi/weather_color_46.png b/res/drawable-xxhdpi/weather_color_46.png Binary files differnew file mode 100644 index 0000000..1f4d143 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_46.png diff --git a/res/drawable-xxhdpi/weather_color_47.png b/res/drawable-xxhdpi/weather_color_47.png Binary files differnew file mode 100644 index 0000000..14f28f4 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_47.png diff --git a/res/drawable-xxhdpi/weather_color_5.png b/res/drawable-xxhdpi/weather_color_5.png Binary files differnew file mode 100644 index 0000000..a33c8ab --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_5.png diff --git a/res/drawable-xxhdpi/weather_color_6.png b/res/drawable-xxhdpi/weather_color_6.png Binary files differnew file mode 100644 index 0000000..a33c8ab --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_6.png diff --git a/res/drawable-xxhdpi/weather_color_7.png b/res/drawable-xxhdpi/weather_color_7.png Binary files differnew file mode 100644 index 0000000..a32a073 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_7.png diff --git a/res/drawable-xxhdpi/weather_color_8.png b/res/drawable-xxhdpi/weather_color_8.png Binary files differnew file mode 100644 index 0000000..76ff239 --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_8.png diff --git a/res/drawable-xxhdpi/weather_color_9.png b/res/drawable-xxhdpi/weather_color_9.png Binary files differnew file mode 100644 index 0000000..889745d --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_9.png diff --git a/res/drawable-xxhdpi/weather_color_na.png b/res/drawable-xxhdpi/weather_color_na.png Binary files differnew file mode 100644 index 0000000..990763b --- /dev/null +++ b/res/drawable-xxhdpi/weather_color_na.png diff --git a/res/drawable-xxhdpi/weather_na.png b/res/drawable-xxhdpi/weather_na.png Binary files differindex 32d189c..10e49f1 100644 --- a/res/drawable-xxhdpi/weather_na.png +++ b/res/drawable-xxhdpi/weather_na.png diff --git a/res/drawable-xxhdpi/weather_preferences.png b/res/drawable-xxhdpi/weather_preferences.png Binary files differnew file mode 100644 index 0000000..39d741f --- /dev/null +++ b/res/drawable-xxhdpi/weather_preferences.png diff --git a/res/drawable-xxhdpi/weather_refresh.png b/res/drawable-xxhdpi/weather_refresh.png Binary files differindex 0a2faae..63c546b 100644 --- a/res/drawable-xxhdpi/weather_refresh.png +++ b/res/drawable-xxhdpi/weather_refresh.png diff --git a/res/drawable-xxhdpi/weather_vclouds_0.png b/res/drawable-xxhdpi/weather_vclouds_0.png Binary files differnew file mode 100644 index 0000000..3a680e4 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_0.png diff --git a/res/drawable-xxhdpi/weather_vclouds_1.png b/res/drawable-xxhdpi/weather_vclouds_1.png Binary files differnew file mode 100644 index 0000000..3a680e4 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_1.png diff --git a/res/drawable-xxhdpi/weather_vclouds_10.png b/res/drawable-xxhdpi/weather_vclouds_10.png Binary files differnew file mode 100644 index 0000000..89fad0f --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_10.png diff --git a/res/drawable-xxhdpi/weather_vclouds_11.png b/res/drawable-xxhdpi/weather_vclouds_11.png Binary files differnew file mode 100644 index 0000000..b9978ee --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_11.png diff --git a/res/drawable-xxhdpi/weather_vclouds_12.png b/res/drawable-xxhdpi/weather_vclouds_12.png Binary files differnew file mode 100644 index 0000000..a2d4f54 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_12.png diff --git a/res/drawable-xxhdpi/weather_vclouds_13.png b/res/drawable-xxhdpi/weather_vclouds_13.png Binary files differnew file mode 100644 index 0000000..99e32c0 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_13.png diff --git a/res/drawable-xxhdpi/weather_vclouds_14.png b/res/drawable-xxhdpi/weather_vclouds_14.png Binary files differnew file mode 100644 index 0000000..ddea4c1 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_14.png diff --git a/res/drawable-xxhdpi/weather_vclouds_15.png b/res/drawable-xxhdpi/weather_vclouds_15.png Binary files differnew file mode 100644 index 0000000..a9db3e6 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_15.png diff --git a/res/drawable-xxhdpi/weather_vclouds_16.png b/res/drawable-xxhdpi/weather_vclouds_16.png Binary files differnew file mode 100644 index 0000000..6f74d47 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_16.png diff --git a/res/drawable-xxhdpi/weather_vclouds_17.png b/res/drawable-xxhdpi/weather_vclouds_17.png Binary files differnew file mode 100644 index 0000000..3a680e4 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_17.png diff --git a/res/drawable-xxhdpi/weather_vclouds_18.png b/res/drawable-xxhdpi/weather_vclouds_18.png Binary files differnew file mode 100644 index 0000000..8c2cadc --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_18.png diff --git a/res/drawable-xxhdpi/weather_vclouds_19.png b/res/drawable-xxhdpi/weather_vclouds_19.png Binary files differnew file mode 100644 index 0000000..cf5cd50 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_19.png diff --git a/res/drawable-xxhdpi/weather_vclouds_2.png b/res/drawable-xxhdpi/weather_vclouds_2.png Binary files differnew file mode 100644 index 0000000..3a680e4 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_2.png diff --git a/res/drawable-xxhdpi/weather_vclouds_20.png b/res/drawable-xxhdpi/weather_vclouds_20.png Binary files differnew file mode 100644 index 0000000..d975cb3 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_20.png diff --git a/res/drawable-xxhdpi/weather_vclouds_21.png b/res/drawable-xxhdpi/weather_vclouds_21.png Binary files differnew file mode 100644 index 0000000..40f966d --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_21.png diff --git a/res/drawable-xxhdpi/weather_vclouds_22.png b/res/drawable-xxhdpi/weather_vclouds_22.png Binary files differnew file mode 100644 index 0000000..59a1454 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_22.png diff --git a/res/drawable-xxhdpi/weather_vclouds_23.png b/res/drawable-xxhdpi/weather_vclouds_23.png Binary files differnew file mode 100644 index 0000000..8fd52f9 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_23.png diff --git a/res/drawable-xxhdpi/weather_vclouds_24.png b/res/drawable-xxhdpi/weather_vclouds_24.png Binary files differnew file mode 100644 index 0000000..8fd52f9 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_24.png diff --git a/res/drawable-xxhdpi/weather_vclouds_25.png b/res/drawable-xxhdpi/weather_vclouds_25.png Binary files differnew file mode 100644 index 0000000..7f95159 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_25.png diff --git a/res/drawable-xxhdpi/weather_vclouds_26.png b/res/drawable-xxhdpi/weather_vclouds_26.png Binary files differnew file mode 100644 index 0000000..5c00e15 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_26.png diff --git a/res/drawable-xxhdpi/weather_vclouds_27.png b/res/drawable-xxhdpi/weather_vclouds_27.png Binary files differnew file mode 100644 index 0000000..689340d --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_27.png diff --git a/res/drawable-xxhdpi/weather_vclouds_28.png b/res/drawable-xxhdpi/weather_vclouds_28.png Binary files differnew file mode 100644 index 0000000..2dd52f8 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_28.png diff --git a/res/drawable-xxhdpi/weather_vclouds_29.png b/res/drawable-xxhdpi/weather_vclouds_29.png Binary files differnew file mode 100644 index 0000000..6a6b534 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_29.png diff --git a/res/drawable-xxhdpi/weather_vclouds_3.png b/res/drawable-xxhdpi/weather_vclouds_3.png Binary files differnew file mode 100644 index 0000000..3a680e4 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_3.png diff --git a/res/drawable-xxhdpi/weather_vclouds_30.png b/res/drawable-xxhdpi/weather_vclouds_30.png Binary files differnew file mode 100644 index 0000000..7c6cd81 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_30.png diff --git a/res/drawable-xxhdpi/weather_vclouds_31.png b/res/drawable-xxhdpi/weather_vclouds_31.png Binary files differnew file mode 100644 index 0000000..665f2c8 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_31.png diff --git a/res/drawable-xxhdpi/weather_vclouds_32.png b/res/drawable-xxhdpi/weather_vclouds_32.png Binary files differnew file mode 100644 index 0000000..9e281a4 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_32.png diff --git a/res/drawable-xxhdpi/weather_vclouds_33.png b/res/drawable-xxhdpi/weather_vclouds_33.png Binary files differnew file mode 100644 index 0000000..1625e5f --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_33.png diff --git a/res/drawable-xxhdpi/weather_vclouds_34.png b/res/drawable-xxhdpi/weather_vclouds_34.png Binary files differnew file mode 100644 index 0000000..8d21581 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_34.png diff --git a/res/drawable-xxhdpi/weather_vclouds_35.png b/res/drawable-xxhdpi/weather_vclouds_35.png Binary files differnew file mode 100644 index 0000000..3a680e4 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_35.png diff --git a/res/drawable-xxhdpi/weather_vclouds_36.png b/res/drawable-xxhdpi/weather_vclouds_36.png Binary files differnew file mode 100644 index 0000000..982cf7e --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_36.png diff --git a/res/drawable-xxhdpi/weather_vclouds_37.png b/res/drawable-xxhdpi/weather_vclouds_37.png Binary files differnew file mode 100644 index 0000000..2e9f11e --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_37.png diff --git a/res/drawable-xxhdpi/weather_vclouds_38.png b/res/drawable-xxhdpi/weather_vclouds_38.png Binary files differnew file mode 100644 index 0000000..2e9f11e --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_38.png diff --git a/res/drawable-xxhdpi/weather_vclouds_39.png b/res/drawable-xxhdpi/weather_vclouds_39.png Binary files differnew file mode 100644 index 0000000..925f6a6 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_39.png diff --git a/res/drawable-xxhdpi/weather_vclouds_4.png b/res/drawable-xxhdpi/weather_vclouds_4.png Binary files differnew file mode 100644 index 0000000..3a680e4 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_4.png diff --git a/res/drawable-xxhdpi/weather_vclouds_40.png b/res/drawable-xxhdpi/weather_vclouds_40.png Binary files differnew file mode 100644 index 0000000..a2d4f54 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_40.png diff --git a/res/drawable-xxhdpi/weather_vclouds_41.png b/res/drawable-xxhdpi/weather_vclouds_41.png Binary files differnew file mode 100644 index 0000000..59e71fd --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_41.png diff --git a/res/drawable-xxhdpi/weather_vclouds_42.png b/res/drawable-xxhdpi/weather_vclouds_42.png Binary files differnew file mode 100644 index 0000000..6f74d47 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_42.png diff --git a/res/drawable-xxhdpi/weather_vclouds_43.png b/res/drawable-xxhdpi/weather_vclouds_43.png Binary files differnew file mode 100644 index 0000000..a9db3e6 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_43.png diff --git a/res/drawable-xxhdpi/weather_vclouds_44.png b/res/drawable-xxhdpi/weather_vclouds_44.png Binary files differnew file mode 100644 index 0000000..a841f2d --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_44.png diff --git a/res/drawable-xxhdpi/weather_vclouds_45.png b/res/drawable-xxhdpi/weather_vclouds_45.png Binary files differnew file mode 100644 index 0000000..320a4f2 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_45.png diff --git a/res/drawable-xxhdpi/weather_vclouds_46.png b/res/drawable-xxhdpi/weather_vclouds_46.png Binary files differnew file mode 100644 index 0000000..b42744a --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_46.png diff --git a/res/drawable-xxhdpi/weather_vclouds_47.png b/res/drawable-xxhdpi/weather_vclouds_47.png Binary files differnew file mode 100644 index 0000000..08a3d34 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_47.png diff --git a/res/drawable-xxhdpi/weather_vclouds_5.png b/res/drawable-xxhdpi/weather_vclouds_5.png Binary files differnew file mode 100644 index 0000000..4a18a1e --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_5.png diff --git a/res/drawable-xxhdpi/weather_vclouds_6.png b/res/drawable-xxhdpi/weather_vclouds_6.png Binary files differnew file mode 100644 index 0000000..1df6ab6 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_6.png diff --git a/res/drawable-xxhdpi/weather_vclouds_7.png b/res/drawable-xxhdpi/weather_vclouds_7.png Binary files differnew file mode 100644 index 0000000..2c8d68d --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_7.png diff --git a/res/drawable-xxhdpi/weather_vclouds_8.png b/res/drawable-xxhdpi/weather_vclouds_8.png Binary files differnew file mode 100644 index 0000000..456cd09 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_8.png diff --git a/res/drawable-xxhdpi/weather_vclouds_9.png b/res/drawable-xxhdpi/weather_vclouds_9.png Binary files differnew file mode 100644 index 0000000..cede663 --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_9.png diff --git a/res/drawable-xxhdpi/weather_vclouds_na.png b/res/drawable-xxhdpi/weather_vclouds_na.png Binary files differnew file mode 100644 index 0000000..a841f2d --- /dev/null +++ b/res/drawable-xxhdpi/weather_vclouds_na.png diff --git a/res/drawable-xxxhdpi/weather_color_0.png b/res/drawable-xxxhdpi/weather_color_0.png Binary files differnew file mode 100644 index 0000000..32e7db4 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_0.png diff --git a/res/drawable-xxxhdpi/weather_color_1.png b/res/drawable-xxxhdpi/weather_color_1.png Binary files differnew file mode 100644 index 0000000..d628655 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_1.png diff --git a/res/drawable-xxxhdpi/weather_color_10.png b/res/drawable-xxxhdpi/weather_color_10.png Binary files differnew file mode 100644 index 0000000..75fbdd3 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_10.png diff --git a/res/drawable-xxxhdpi/weather_color_11.png b/res/drawable-xxxhdpi/weather_color_11.png Binary files differnew file mode 100644 index 0000000..e8d5f90 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_11.png diff --git a/res/drawable-xxxhdpi/weather_color_12.png b/res/drawable-xxxhdpi/weather_color_12.png Binary files differnew file mode 100644 index 0000000..e8d5f90 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_12.png diff --git a/res/drawable-xxxhdpi/weather_color_13.png b/res/drawable-xxxhdpi/weather_color_13.png Binary files differnew file mode 100644 index 0000000..930e516 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_13.png diff --git a/res/drawable-xxxhdpi/weather_color_14.png b/res/drawable-xxxhdpi/weather_color_14.png Binary files differnew file mode 100644 index 0000000..930e516 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_14.png diff --git a/res/drawable-xxxhdpi/weather_color_15.png b/res/drawable-xxxhdpi/weather_color_15.png Binary files differnew file mode 100644 index 0000000..930e516 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_15.png diff --git a/res/drawable-xxxhdpi/weather_color_16.png b/res/drawable-xxxhdpi/weather_color_16.png Binary files differnew file mode 100644 index 0000000..930e516 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_16.png diff --git a/res/drawable-xxxhdpi/weather_color_17.png b/res/drawable-xxxhdpi/weather_color_17.png Binary files differnew file mode 100644 index 0000000..a470a5d --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_17.png diff --git a/res/drawable-xxxhdpi/weather_color_18.png b/res/drawable-xxxhdpi/weather_color_18.png Binary files differnew file mode 100644 index 0000000..a6831b4 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_18.png diff --git a/res/drawable-xxxhdpi/weather_color_19.png b/res/drawable-xxxhdpi/weather_color_19.png Binary files differnew file mode 100644 index 0000000..5a9f463 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_19.png diff --git a/res/drawable-xxxhdpi/weather_color_2.png b/res/drawable-xxxhdpi/weather_color_2.png Binary files differnew file mode 100644 index 0000000..d628655 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_2.png diff --git a/res/drawable-xxxhdpi/weather_color_20.png b/res/drawable-xxxhdpi/weather_color_20.png Binary files differnew file mode 100644 index 0000000..e9841ba --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_20.png diff --git a/res/drawable-xxxhdpi/weather_color_21.png b/res/drawable-xxxhdpi/weather_color_21.png Binary files differnew file mode 100644 index 0000000..f8ec435 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_21.png diff --git a/res/drawable-xxxhdpi/weather_color_22.png b/res/drawable-xxxhdpi/weather_color_22.png Binary files differnew file mode 100644 index 0000000..3eb09c4 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_22.png diff --git a/res/drawable-xxxhdpi/weather_color_23.png b/res/drawable-xxxhdpi/weather_color_23.png Binary files differnew file mode 100644 index 0000000..432148a --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_23.png diff --git a/res/drawable-xxxhdpi/weather_color_24.png b/res/drawable-xxxhdpi/weather_color_24.png Binary files differnew file mode 100644 index 0000000..432148a --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_24.png diff --git a/res/drawable-xxxhdpi/weather_color_25.png b/res/drawable-xxxhdpi/weather_color_25.png Binary files differnew file mode 100644 index 0000000..10554e6 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_25.png diff --git a/res/drawable-xxxhdpi/weather_color_26.png b/res/drawable-xxxhdpi/weather_color_26.png Binary files differnew file mode 100644 index 0000000..6407b06 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_26.png diff --git a/res/drawable-xxxhdpi/weather_color_27.png b/res/drawable-xxxhdpi/weather_color_27.png Binary files differnew file mode 100644 index 0000000..5191353 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_27.png diff --git a/res/drawable-xxxhdpi/weather_color_28.png b/res/drawable-xxxhdpi/weather_color_28.png Binary files differnew file mode 100644 index 0000000..1f8ac72 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_28.png diff --git a/res/drawable-xxxhdpi/weather_color_29.png b/res/drawable-xxxhdpi/weather_color_29.png Binary files differnew file mode 100644 index 0000000..be06324 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_29.png diff --git a/res/drawable-xxxhdpi/weather_color_3.png b/res/drawable-xxxhdpi/weather_color_3.png Binary files differnew file mode 100644 index 0000000..32e7db4 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_3.png diff --git a/res/drawable-xxxhdpi/weather_color_30.png b/res/drawable-xxxhdpi/weather_color_30.png Binary files differnew file mode 100644 index 0000000..b27851d --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_30.png diff --git a/res/drawable-xxxhdpi/weather_color_31.png b/res/drawable-xxxhdpi/weather_color_31.png Binary files differnew file mode 100644 index 0000000..c3d714e --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_31.png diff --git a/res/drawable-xxxhdpi/weather_color_32.png b/res/drawable-xxxhdpi/weather_color_32.png Binary files differnew file mode 100644 index 0000000..52fecc2 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_32.png diff --git a/res/drawable-xxxhdpi/weather_color_33.png b/res/drawable-xxxhdpi/weather_color_33.png Binary files differnew file mode 100644 index 0000000..6e9f6de --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_33.png diff --git a/res/drawable-xxxhdpi/weather_color_34.png b/res/drawable-xxxhdpi/weather_color_34.png Binary files differnew file mode 100644 index 0000000..4846934 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_34.png diff --git a/res/drawable-xxxhdpi/weather_color_35.png b/res/drawable-xxxhdpi/weather_color_35.png Binary files differnew file mode 100644 index 0000000..544444f --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_35.png diff --git a/res/drawable-xxxhdpi/weather_color_36.png b/res/drawable-xxxhdpi/weather_color_36.png Binary files differnew file mode 100644 index 0000000..9b79c19 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_36.png diff --git a/res/drawable-xxxhdpi/weather_color_37.png b/res/drawable-xxxhdpi/weather_color_37.png Binary files differnew file mode 100644 index 0000000..0dea971 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_37.png diff --git a/res/drawable-xxxhdpi/weather_color_38.png b/res/drawable-xxxhdpi/weather_color_38.png Binary files differnew file mode 100644 index 0000000..0dea971 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_38.png diff --git a/res/drawable-xxxhdpi/weather_color_39.png b/res/drawable-xxxhdpi/weather_color_39.png Binary files differnew file mode 100644 index 0000000..0dea971 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_39.png diff --git a/res/drawable-xxxhdpi/weather_color_4.png b/res/drawable-xxxhdpi/weather_color_4.png Binary files differnew file mode 100644 index 0000000..32e7db4 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_4.png diff --git a/res/drawable-xxxhdpi/weather_color_40.png b/res/drawable-xxxhdpi/weather_color_40.png Binary files differnew file mode 100644 index 0000000..64b9a0d --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_40.png diff --git a/res/drawable-xxxhdpi/weather_color_41.png b/res/drawable-xxxhdpi/weather_color_41.png Binary files differnew file mode 100644 index 0000000..721c1d9 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_41.png diff --git a/res/drawable-xxxhdpi/weather_color_42.png b/res/drawable-xxxhdpi/weather_color_42.png Binary files differnew file mode 100644 index 0000000..930e516 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_42.png diff --git a/res/drawable-xxxhdpi/weather_color_43.png b/res/drawable-xxxhdpi/weather_color_43.png Binary files differnew file mode 100644 index 0000000..721c1d9 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_43.png diff --git a/res/drawable-xxxhdpi/weather_color_44.png b/res/drawable-xxxhdpi/weather_color_44.png Binary files differnew file mode 100644 index 0000000..6e9f6de --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_44.png diff --git a/res/drawable-xxxhdpi/weather_color_45.png b/res/drawable-xxxhdpi/weather_color_45.png Binary files differnew file mode 100644 index 0000000..2e35944 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_45.png diff --git a/res/drawable-xxxhdpi/weather_color_46.png b/res/drawable-xxxhdpi/weather_color_46.png Binary files differnew file mode 100644 index 0000000..7d4a8e6 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_46.png diff --git a/res/drawable-xxxhdpi/weather_color_47.png b/res/drawable-xxxhdpi/weather_color_47.png Binary files differnew file mode 100644 index 0000000..ac3094d --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_47.png diff --git a/res/drawable-xxxhdpi/weather_color_5.png b/res/drawable-xxxhdpi/weather_color_5.png Binary files differnew file mode 100644 index 0000000..a6831b4 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_5.png diff --git a/res/drawable-xxxhdpi/weather_color_6.png b/res/drawable-xxxhdpi/weather_color_6.png Binary files differnew file mode 100644 index 0000000..a6831b4 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_6.png diff --git a/res/drawable-xxxhdpi/weather_color_7.png b/res/drawable-xxxhdpi/weather_color_7.png Binary files differnew file mode 100644 index 0000000..930e516 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_7.png diff --git a/res/drawable-xxxhdpi/weather_color_8.png b/res/drawable-xxxhdpi/weather_color_8.png Binary files differnew file mode 100644 index 0000000..4b769e5 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_8.png diff --git a/res/drawable-xxxhdpi/weather_color_9.png b/res/drawable-xxxhdpi/weather_color_9.png Binary files differnew file mode 100644 index 0000000..225ca3e --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_9.png diff --git a/res/drawable-xxxhdpi/weather_color_na.png b/res/drawable-xxxhdpi/weather_color_na.png Binary files differnew file mode 100644 index 0000000..dc48b06 --- /dev/null +++ b/res/drawable-xxxhdpi/weather_color_na.png diff --git a/res/drawable/icon_set_selector.xml b/res/drawable/icon_set_selector.xml new file mode 100644 index 0000000..264de1c --- /dev/null +++ b/res/drawable/icon_set_selector.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_window_focused="false" android:drawable="@android:color/transparent" /> + <item android:state_focused="true" android:drawable="@color/list_selector_focused" /> + <item android:state_activated="true" android:drawable="@color/list_selector_activated" /> + <item android:drawable="@android:color/transparent" /> +</selector> diff --git a/res/layout/forecast_activity.xml b/res/layout/forecast_activity.xml new file mode 100644 index 0000000..77840f5 --- /dev/null +++ b/res/layout/forecast_activity.xml @@ -0,0 +1,212 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2013 David van Tonder + + 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. +--> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:gravity="center" + android:orientation="vertical" + android:fitsSystemWindows="true" > + + <!-- This linearlayout is used to display a 'fake' dialog box over the + full screen background. This is neccesary to be able to show over + the lock screen --> + <LinearLayout + android:layout_width="@dimen/forecast_dialog_width" + android:layout_height="wrap_content" + android:background="@drawable/dialog_full_holo_dark" + android:gravity="center_vertical" + android:orientation="vertical" > + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="48dp" + android:gravity="center_horizontal"> + + <TextView + android:id="@+id/weather_source" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:gravity="center|center_horizontal" + android:singleLine="true" + android:textAppearance="?android:attr/textAppearanceMedium" /> + + <ImageView + android:id="@+id/weather_refresh" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_alignParentRight="true" + android:layout_centerVertical="true" + android:padding="8dp" + android:src="@drawable/ic_menu_refresh_holo_dark" + android:background="?android:attr/selectableItemBackground" /> + </RelativeLayout> + + <ImageView + android:layout_width="match_parent" + android:layout_height="1dip" + android:paddingTop="4dip" + android:background="@android:drawable/divider_horizontal_dark" /> + + <RelativeLayout + android:id="@+id/current_view" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingTop="4dip" > + + <ImageView + android:id="@+id/weather_image" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerHorizontal="true" + android:padding="4dip" + android:gravity="center" + android:src="@android:drawable/ic_dialog_alert" /> + + <RelativeLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerVertical="true" + android:layout_toLeftOf="@id/weather_image" + android:orientation="horizontal" + android:padding="4dip" > + + <TextView + android:id="@+id/weather_city" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_centerHorizontal="true" + android:ellipsize="marquee" + android:gravity="center_horizontal" + android:maxLines="2" + android:textColor="?android:attr/textColorPrimary" + android:textSize="14sp" + android:textStyle="bold" /> + + <TextView + android:id="@+id/update_time" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_below="@id/weather_city" + android:layout_centerHorizontal="true" + android:gravity="center_horizontal" + android:textColor="?android:attr/textColorSecondary" + android:textSize="10sp" /> + </RelativeLayout> + + <RelativeLayout + android:id="@+id/weather_temps_panel" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_centerVertical="true" + android:layout_toRightOf="@id/weather_image" + android:orientation="horizontal" > + + <TextView + android:id="@+id/weather_temp" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerHorizontal="true" + android:textAppearance="?android:attr/textAppearanceLarge" /> + + <ImageView + android:id="@+id/weather_divider" + android:layout_below="@id/weather_temp" + android:layout_width="44dip" + android:layout_height="1dip" + android:layout_centerHorizontal="true" + android:background="@android:drawable/divider_horizontal_dark" /> + + <TextView + android:id="@+id/weather_low_high" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@id/weather_divider" + android:layout_centerHorizontal="true" + android:paddingTop="2dip" + android:textSize="12sp" + android:textColor="?android:attr/textColorPrimary" /> + </RelativeLayout> + + <TextView + android:id="@+id/weather_condition" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@id/weather_image" + android:layout_centerHorizontal="true" + android:ellipsize="marquee" + android:singleLine="true" + android:textAppearance="?android:attr/textAppearanceMedium" + android:paddingBottom="8dp" /> + </RelativeLayout> + + <LinearLayout + android:id="@+id/forecast_view" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="12dip" + android:layout_marginRight="12dip" + android:paddingBottom="16dp" + android:gravity="center_horizontal" + android:orientation="horizontal" /> + + <ProgressBar + android:id="@+id/progress_indicator" + android:layout_width="match_parent" + android:layout_height="48dp" + android:gravity="center" /> + + <TextView + android:id="@+id/no_network" + android:layout_width="match_parent" + android:layout_height="48dp" + android:gravity="center" + android:textAppearance="?android:attr/textAppearanceSmall" + android:padding="8dp" + android:visibility="gone" /> + + <LinearLayout android:id="@+id/buttonPanel" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:minHeight="48dp" + android:orientation="vertical" + android:divider="?android:attr/dividerHorizontal" + android:showDividers="beginning" + android:dividerPadding="0dip"> + + <LinearLayout + style="?android:attr/buttonBarStyle" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:layoutDirection="locale" + android:measureWithLargestChild="true"> + + <Button android:id="@+id/button" + android:layout_width="0dip" + android:layout_gravity="center_horizontal" + android:layout_weight="1" + android:maxLines="2" + android:text="@string/menu_done" + style="?android:attr/buttonBarButtonStyle" + android:textSize="14sp" + android:minHeight="48dp" + android:layout_height="wrap_content" /> + </LinearLayout> + </LinearLayout> + </LinearLayout> +</LinearLayout> diff --git a/res/layout/forecast_item.xml b/res/layout/forecast_item.xml new file mode 100644 index 0000000..e030889 --- /dev/null +++ b/res/layout/forecast_item.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2013 David van Tonder + + 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. +--> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:orientation="vertical" > + + <TextView + android:id="@+id/forecast_day" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:drawableBottom="@android:drawable/divider_horizontal_dark" + android:gravity="center_horizontal|fill_horizontal" + android:textAppearance="?android:attr/textAppearanceSmall" + android:textColor="?android:attr/textColorPrimary" + style="@style/label_shadow"/> + + <ImageView + android:id="@+id/weather_image" + android:maxWidth="@dimen/forecast_icon_size" + android:layout_width="wrap_content" + android:layout_height="0dp" + android:layout_weight="1" + android:layout_gravity="center_horizontal" + android:paddingTop="2dp" + android:paddingBottom="2dp" + android:scaleType="centerInside" + android:adjustViewBounds="true" + android:src="@android:drawable/ic_dialog_alert"/> + + <TextView + android:id="@+id/weather_temps" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:textAppearance="?android:attr/textAppearanceSmall" + android:textColor="?android:attr/textColorPrimary" + style="@style/label_shadow"/> + +</LinearLayout> diff --git a/res/layout/icon_item.xml b/res/layout/icon_item.xml new file mode 100644 index 0000000..bc07353 --- /dev/null +++ b/res/layout/icon_item.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> + +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@drawable/icon_set_selector" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:padding="12dp" + android:orientation="vertical" > + + <ImageView + android:id="@+id/preview" + android:layout_width="match_parent" + android:layout_height="64dp" + android:gravity="center_horizontal" /> + + <TextView + android:id="@+id/name" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_horizontal" /> + + </LinearLayout> + +</FrameLayout> diff --git a/res/layout/icon_style_selection.xml b/res/layout/icon_style_selection.xml new file mode 100644 index 0000000..68b9471 --- /dev/null +++ b/res/layout/icon_style_selection.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> + +<GridView xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/icon_list" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:columnWidth="0dp" + android:gravity="center" + android:horizontalSpacing="4dp" + android:verticalSpacing="4dp" + android:padding="4dp" + android:numColumns="2" + android:choiceMode="singleChoice" + android:stretchMode="columnWidth" > + +</GridView> diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml index 1dc713d..80a7d25 100644 --- a/res/values-af/strings.xml +++ b/res/values-af/strings.xml @@ -102,7 +102,7 @@ <string name="clock_am_pm_title">Wys VM/NM indikator</string> <string name="weather_enabled">Geaktiveer</string> <string name="weather_enable">Weerpaneel sigbaar</string> - <string name="weather_source">Yahoo! weer</string> + <string name="weather_source_yahoo">Yahoo! weer</string> <string name="weather_use_custom_location">Gebruik persoonlike ligging</string> <string name="weather_geolocated">Geoligging bepaal deur die netwerk</string> <string name="weather_custom_location_dialog_title">Voer ligging in</string> diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml new file mode 100644 index 0000000..3bd04f9 --- /dev/null +++ b/res/values-ar/strings.xml @@ -0,0 +1,204 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2012 The CyanogenMod Project (DvTonder) + Chronus additions (c) 2013 David van Tonder + + 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. +--> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + + <string name="unknown">غير معروف</string> + <string name="cancel">الغاء</string> + <string name="loading_indicator">جاري تحميل الودجت</string> + <string name="menu_done">تم</string> + <!--الطقس - اسماء الطقس--> + <string name="weather_0">اعصار</string> + <string name="weather_1">العاصفة الاستوائية</string> + <string name="weather_2">الإعصار</string> + <string name="weather_3">العواصف الرعدية الشديدة</string> + <string name="weather_4">العواصف الرعدية</string> + <string name="weather_5">المطر والثلج</string> + <string name="weather_6">المطر والثلج</string> + <string name="weather_7">الثلوج والصقيع</string> + <string name="weather_8">قطرات متجمده</string> + <string name="weather_9">قطرات</string> + <string name="weather_10">مطر متجمد</string> + <string name="weather_11">المطر</string> + <string name="weather_12">المطر</string> + <string name="weather_13">تُثلج</string> + <string name="weather_14">غائم</string> + <string name="weather_15">تساقط الثلج</string> + <string name="weather_16">ثلج</string> + <string name="weather_17">حائل</string> + <string name="weather_18">تجمد</string> + <string name="weather_19">غبار</string> + <string name="weather_20">ضباب</string> + <string name="weather_21">الضباب</string> + <string name="weather_22">الدخان</string> + <string name="weather_23">متهيج</string> + <string name="weather_24">عاصف</string> + <string name="weather_25">بارد</string> + <string name="weather_26">غائم</string> + <string name="weather_27">غائم جزئيا</string> <!-- مساء --> + <string name="weather_28">غائم جزئيا</string> <!-- صباحا --> + <string name="weather_29">غائم جزئيا</string> <!-- مساء --> + <string name="weather_30">غائم جزئيا</string> <!-- صباحا --> + <string name="weather_31">صاف</string> <!-- مساء --> + <string name="weather_32">مشمس</string> + <string name="weather_33">معتدل</string> <!-- مساء --> + <string name="weather_34">معتدل</string> <!-- مساء --> + <string name="weather_35">المطر والبرد</string> + <string name="weather_36">حار</string> + <string name="weather_37">عواصف رعدية متفرقة</string> + <string name="weather_38">عواصف رعدية متفرقة</string> + <string name="weather_39">عواصف رعدية متفرقة</string> + <string name="weather_40">أمطار متفرقة</string> + <string name="weather_41">ثلوج كثيفة</string> + <string name="weather_42">سقوط ثلوج متفرقة</string> + <string name="weather_43">الثلوج الكثيفة</string> + <string name="weather_44">غائم جزئيا</string> + <string name="weather_45">زخات مطر رعدية</string> + <string name="weather_46">زخات الثلج</string> + <string name="weather_47">زخات مطر رعدية معزولة</string> + <string name="weather_3200"></string> <!-- توقعات غير متوفرة --> + + <!-- الطقس - وحدات السرعه --> + <string name="weather_kph">kph</string> + <string name="weather_mph">mph</string> + + <!-- الطقس - اتجاه الرياح --> + <string name="weather_N">شمال</string> + <string name="weather_NE">ش.ش</string> + <string name="weather_E">شرق</string> + <string name="weather_SE">ج.ش</string> + <string name="weather_S">جنوب</string> + <string name="weather_SW">ج.غ</string> + <string name="weather_W">غرب</string> + <string name="weather_NW">ش.غ</string> + + <!-- رسائل الاعلام بالاخطاء --> + <string name="weather_no_data">لا توجد بيانات</string> + <string name="weather_tap_to_refresh">اضغط للتحديث</string> + <string name="weather_refreshing">تحديث</string> + <string name="weather_last_sync_just_now">الآن</string> + <string name="weather_cannot_reach_provider">لا يمكن أن تصل إلى٪ %s في لحظة</string> + + <!-- الطقس - تحديث الطقس --> + <string name="weather_refresh_manual">دليل</string> + <string name="weather_refresh_30min">30دقيقه</string> + <string name="weather_refresh_60min">60دقيقه</string> + <string name="weather_refresh_2hrs">ساعتين</string> + <string name="weather_refresh_4hrs">4ساعات</string> + <string name="weather_refresh_6hrs">6ساعات</string> + <string name="weather_refresh_8hrs">8ساعات</string> + + <!-- اعدادات - الفئات --> + <string name="clock_category">الساعه والمنبه</string> + <string name="weather_category">طقس الهاتف</string> + <string name="calendar_category">التاريخ والتقويم</string> + <string name="general_category">عام</string> + <string name="display_category">عرض</string> + + <!-- اعدادات - انواع قائمه الاختيارات --> <!-- اعدادات - الساعه --> + <string name="clock_font_title">ساعات عريضة</string> + <string name="clock_font_minutes_title">دقائق عريضه</string> + <string name="clock_font_date_title">التاريخ والتنبيه عريض</string> + <string name="show_alarm_title">التنبيهات المقبله</string> + <string name="clock_am_pm_title">اظهار صباحاًومساءً</string> + + <!-- اعدادات - الطقس --> + <string name="weather_enabled">سماح</string> + <string name="weather_enable">عرض حالة الطقس</string> + <string name="weather_source_title">مصدر الطقس</string> + <string name="weather_source_yahoo">طقس yahoo</string> + <string name="weather_use_custom_location">استخدام موقع مخصص</string> + <string name="weather_geolocated">بإستخدام الشبكه</string> + <string name="weather_custom_location_dialog_title">اختيار الدوله</string> + <string name="weather_custom_location_hint">المدينه,الدوله,البلد</string> + <string name="weather_custom_location_title">الموقع</string> + <string name="weather_show_location_title">عرض الموقع</string> + <string name="weather_show_timestamp_title">عرض الطابع الزمني</string> + <string name="weather_refresh_interval">الفاصل الزمني للتحديث</string> + <string name="weather_use_metric">استخدام متري</string> + <string name="weather_retrieve_location_dialog_title">لا يمكن استرداد الموقع!</string> + <string name="weather_retrieve_location_dialog_message">تحديد الموقع الجغرافي من الشبكه</string> + <string name="weather_retrieve_location_dialog_enable_button">تمكين</string> + <string name="weather_invert_lowhigh">عكس انخفاض/ارتفاع درجات الحرارة</string> + <string name="weather_progress_title">التحقق من الموقع</string> + <string name="weather_alternate_icons_title">اختر لون الايقونه</string> + <string name="weather_alternate_icons_summary">حدد هذا الخيار للتبديل بين الافتراضي (اللون) والرموز (أبيض) بديلة</string> + <string name="weather_show_when_minimized_title">تظهر عند التصغير</string> + <string name="weather_show_when_minimized_summary">عرض معلومات الطقس موجزة عندما يتم تصغير البرنامج</string> + <string name="weather_select_location">حدد موقع</string> + + <!-- اعدادات - التقويم --> + <string name="calendar_title">عرض الأحداث القادمة</string> + <string name="calendars_title">التقويمات الحدث</string> + <string name="calendars_summary">العثور على الأحداث من هذه التقويمات</string> + <string name="calendar_reminders_only_title">تذكير فقط</string> + <string name="calendar_reminders_only_summary">تظهر الأحداث فقط مع التذكير</string> + <string name="calendar_hide_allday_title">إخفاء أحداث اليوم كله</string> + <string name="calendar_icon_title">رمز التقويمرمز التقويم</string> + <string name="calendar_lookahead_title">فكر في المستقبل</string> + <string name="calendar_show_location_title">موقع الحدث</string> + <string name="calendar_show_description_title">وصف الحدث</string> + <string name="calendar_upcoming_events_category">الأحداث القادمة</string> + <string name="calendar_highlight_upcoming_events_title">تسليط الضوء على الأحداث</string> + <string name="calendar_highlight_upcoming_events_summary">تسليط الضوء على أحداث اليوم الحالي، وبعد 8:00، وأيضا الأحداث في اليوم التالي \' ق</string> + <string name="calendar_highlight_upcoming_events_bold">خط عريض</string> + <string name="calendar_add_event_title">إضافة رمز الحدث</string> + + <!-- الطقس - الوان الخطوط --> + <string name="font_color">لون الخط</string> + <string name="font_color_alarm">الوان الخط</string> + <string name="font_color_timestamp">لون الخط الزمني</string> + <string name="font_color_calendar_details">لون الخط مع التفاصيل</string> + + <!-- التقويم - الامام --> + <string name="calendar_lookahead_3hrs">3ساعات</string> + <string name="calendar_lookahead_6hrs">6ساعات</string> + <string name="calendar_lookahead_12hrs">12ساعه</string> + <string name="calendar_lookahead_today">اليوم</string> + <string name="calendar_lookahead_1day">اول يوم</string> + <string name="calendar_lookahead_3days">ثالث يوم</string> + <string name="calendar_lookahead_1wk">اول اسبوع</string> + <string name="calendar_lookahead_2wks">ثاني اسبوع</string> + <string name="calendar_lookahead_4wks">رابع اسبوع</string> + + <!-- التقويم - بيانات الاحداث --> + <string name="calendar_metadata_none">لاتظهر</string> + <string name="calendar_metadata_first_line">إظهار السطر الأول</string> + <string name="calendar_metadata_all">اظهار الكل</string> + + <!-- الوان الخطوط --> + <string name="white">ابيض</string> + <string name="grey">رمادي</string> + <string name="black">اسود</string> + <string name="holo_blue_light">ازرق فاتح</string> + <string name="holo_green_light">اخضر فاتح</string> + <string name="holo_red_light">احمر فاتح</string> + <string name="holo_blue_dark">ازرق غامق</string> + <string name="holo_green_dark">اخضر غامق</string> + <string name="holo_red_dark">احمر غامق</string> + <string name="holo_purple">بنفسجي</string> + <string name="holo_orange_light">برتقالي فاتح</string> + <string name="holo_orange_dark">برتقالي غامق</string> + <string name="holo_blue_bright">سماوي</string> + + <!-- اول - التشغيل --> + <string name="weather_icon_set_title">رمز المجموعه</string> + <string name="weather_icons_standard">اللون (مستوى)</string> + <string name="weather_icons_monochrome">لون واحد</string> + <string name="weather_icons_vclouds">VClouds</string> + <string name="icon_set_selection_get_more">الحصول على مزيد من \u2026</string> +</resources> diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 3058914..ca7342d 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -102,7 +102,7 @@ <string name="clock_am_pm_title">Mostra l\'indicador AM/PM</string> <string name="weather_enabled">Activat</string> <string name="weather_enable">Mostra el temps</string> - <string name="weather_source">Temps de Yahoo!</string> + <string name="weather_source_yahoo">Temps de Yahoo!</string> <string name="weather_use_custom_location">Utilitza una ubic. personalitzada</string> <string name="weather_geolocated">Geolocalitzat utilitzant la xarxa</string> <string name="weather_custom_location_dialog_title">Introdueix ubicació</string> diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 1a94460..4dd954d 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -107,7 +107,7 @@ <string name="weather_enabled">Použít</string> <string name="weather_enable">Zobrazit počasí</string> - <string name="weather_source">Yahoo! Počasí</string> + <string name="weather_source_yahoo">Yahoo! Počasí</string> <string name="weather_use_custom_location">Použít vlastní polohu</string> <string name="weather_geolocated">Zjistit polohu ze sítě</string> <string name="weather_custom_location_dialog_title">Zadat polohu</string> diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index 5c2024f..cdc5020 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -101,7 +101,7 @@ <string name="clock_am_pm_title">AM/PM-indikator</string> <string name="weather_enabled">Aktiveret</string> <string name="weather_enable">Vis vejr</string> - <string name="weather_source">Yahoo! Vejret</string> + <string name="weather_source_yahoo">Yahoo! Vejret</string> <string name="weather_use_custom_location">Brug alternativ lokation</string> <string name="weather_geolocated">Geolokation med netværk</string> <string name="weather_custom_location_dialog_title">Indtast lokation</string> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index b24b257..850b6e5 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -103,7 +103,7 @@ <string name="clock_am_pm_title">Vorm./Nachm. anzeigen</string> <string name="weather_enabled">Aktiviert</string> <string name="weather_enable">Wetter anzeigen</string> - <string name="weather_source">Yahoo! Wetter</string> + <string name="weather_source_yahoo">Yahoo! Wetter</string> <string name="weather_use_custom_location">Benutzerdefinierter Standort</string> <string name="weather_geolocated">Über Standortdienste bestimmt</string> <string name="weather_custom_location_dialog_title">Standort eingeben</string> diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 13ac771..258a63c 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -101,7 +101,7 @@ <string name="clock_am_pm_title">Εμφάνιση ένδειξης ΠΜ/ΜΜ</string> <string name="weather_enabled">Ενεργό</string> <string name="weather_enable">Εμφάνιση καιρού</string> - <string name="weather_source">Καιρός Yahoo!</string> + <string name="weather_source_yahoo">Καιρός Yahoo!</string> <string name="weather_use_custom_location">Χρήση προσαρμοσμένης τοποθεσίας</string> <string name="weather_geolocated">Εντοπισμός τοποθεσίας μέσω δικτύου</string> <string name="weather_custom_location_dialog_title">Εισάγετε τοποθεσία</string> diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml new file mode 100644 index 0000000..87c0af7 --- /dev/null +++ b/res/values-en-rCA/strings.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2012 The CyanogenMod Project (DvTonder) + Chronus additions (c) 2013 David van Tonder + + 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. +--> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + + <!-- Weather - Speed units --> + <string name="weather_kph">km/h</string> + + <!-- Preferences - Weather --> + <string name="weather_custom_location_hint">City, Province/Country</string> + <string name="weather_show_when_minimized_title">Show when minimised</string> + <string name="weather_show_when_minimized_summary">Display summary weather information when the widget is minimised</string> + + <!-- Preferences - Font colors --> + <string name="font_color">Font colour</string> + <string name="font_color_alarm">Alarm font colour</string> + <string name="font_color_timestamp">Timestamp font colour</string> + <string name="font_color_calendar_details">Details font colour</string> + +</resources> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index a265016..b3ab810 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -102,7 +102,7 @@ <string name="clock_am_pm_title">Mostrar indicador AM/PM</string> <string name="weather_enabled">Activado</string> <string name="weather_enable">Mostrar clima</string> - <string name="weather_source">Yahoo! El Tiempo</string> + <string name="weather_source_yahoo">Yahoo! El Tiempo</string> <string name="weather_use_custom_location">Usar ubicación personalizada</string> <string name="weather_geolocated">Geolocalización por red</string> <string name="weather_custom_location_dialog_title">Introducir ubicación</string> diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index fd46137..d7a5a41 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -116,7 +116,7 @@ <!-- Preferences - Weather --> <string name="weather_enabled">Käytössä</string> <string name="weather_enable">Näytä sää</string> - <string name="weather_source">Yahoo! Sää</string> + <string name="weather_source_yahoo">Yahoo! Sää</string> <string name="weather_use_custom_location">Käytä itse valittua sijaintia</string> <string name="weather_geolocated">Paikannettu verkon avulla</string> <string name="weather_custom_location_dialog_title">Syötä sijainti</string> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 19f08a9..4ed6ee8 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -102,7 +102,7 @@ <string name="clock_am_pm_title">Afficher l\'indicateur AM/PM</string> <string name="weather_enabled">Activer</string> <string name="weather_enable">Afficher la météo</string> - <string name="weather_source">Yahoo! Météo</string> + <string name="weather_source_yahoo">Yahoo! Météo</string> <string name="weather_use_custom_location">Définir un lieu</string> <string name="weather_geolocated">Utiliser la géolocalisation</string> <string name="weather_custom_location_dialog_title">Définir un lieu</string> diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index 248a38b..24511b5 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -121,7 +121,7 @@ <!-- Preferences - Weather --> <string name="weather_enabled">Engedélyezve</string> <string name="weather_enable">Időjárás megjelenítése</string> - <string name="weather_source">Yahoo! időjárás</string> + <string name="weather_source_yahoo">Yahoo! időjárás</string> <string name="weather_use_custom_location">Egyéni hely használata</string> <string name="weather_geolocated">Helyzetmeghatározás</string> <string name="weather_custom_location_dialog_title">Hely megadása</string> diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 2c4bb4a..d0d265c 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -102,7 +102,7 @@ <string name="clock_am_pm_title">Mostra l\'indicatore AM/PM</string> <string name="weather_enabled">Attivo</string> <string name="weather_enable">Visualizza meteo</string> - <string name="weather_source">Yahoo! Meteo</string> + <string name="weather_source_yahoo">Yahoo! Meteo</string> <string name="weather_use_custom_location">Posizione personalizzata</string> <string name="weather_geolocated">Localizzazione tramite la rete</string> <string name="weather_custom_location_dialog_title">Inserisci la posizione</string> diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 3a86df1..9767bf8 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -119,7 +119,7 @@ <!-- Preferences - Weather --> <string name="weather_enabled">有効</string> <string name="weather_enable">天気を表示する</string> - <string name="weather_source">Yahoo! Weather</string> + <string name="weather_source_yahoo">Yahoo! Weather</string> <string name="weather_use_custom_location">カスタムの場所</string> <string name="weather_geolocated">ネットーワークを使った位置情報</string> <string name="weather_custom_location_dialog_title">場所を入力</string> diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index 18bca18..7ade094 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -101,7 +101,7 @@ <string name="clock_am_pm_title">Rodyti AM/PM indikatorių</string> <string name="weather_enabled">Įjungta</string> <string name="weather_enable">Rodyti orus</string> - <string name="weather_source">Yahoo! Weather</string> + <string name="weather_source_yahoo">Yahoo! Weather</string> <string name="weather_use_custom_location">Naudoti savitą vietovę</string> <string name="weather_geolocated">Nustatyta naudojant tinklą</string> <string name="weather_custom_location_dialog_title">Įveskite vietovę</string> diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index 220d341..8898575 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -100,7 +100,7 @@ <string name="show_alarm_title">Vis neste alarm</string> <string name="weather_enabled">Aktivert</string> <string name="weather_enable">Vis vær</string> - <string name="weather_source">Yahoo! Været</string> + <string name="weather_source_yahoo">Yahoo! Været</string> <string name="weather_use_custom_location">Bruk egen posisjon</string> <string name="weather_geolocated">Geolokalisert via nettverk</string> <string name="weather_custom_location_dialog_title">Oppgi posisjon</string> diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index c19905d..7113285 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -102,7 +102,7 @@ <string name="clock_am_pm_title">AM/PM weergeven</string> <string name="weather_enabled">Ingeschakeld</string> <string name="weather_enable">Weer tonen</string> - <string name="weather_source">Yahoo! Weer</string> + <string name="weather_source_yahoo">Yahoo! Weer</string> <string name="weather_use_custom_location">Aangepaste locatie</string> <string name="weather_geolocated">Locatie bepalen door netwerk</string> <string name="weather_custom_location_dialog_title">Locatie invoeren</string> diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 757bb50..d95be12 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -100,7 +100,7 @@ <string name="show_alarm_title">Wyświetl następny alarm</string> <string name="weather_enabled">Włączone</string> <string name="weather_enable">Wyświetl pogodę</string> - <string name="weather_source">Pogoda Yahoo!</string> + <string name="weather_source_yahoo">Pogoda Yahoo!</string> <string name="weather_use_custom_location">Użyj własnej lokalizacji</string> <string name="weather_geolocated">Użyj sieci do lokalizacji</string> <string name="weather_custom_location_dialog_title">Podaj lokalizację</string> diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml index 288abc2..f2865b0 100644 --- a/res/values-pt-rBR/strings.xml +++ b/res/values-pt-rBR/strings.xml @@ -86,7 +86,7 @@ <string name="weather_refresh_6hrs">6 horas</string> <string name="weather_refresh_8hrs">8 horas</string> <string name="weather_enable">Exibir tempo</string> - <string name="weather_source">Yahoo! Tempo</string> + <string name="weather_source_yahoo">Yahoo! Tempo</string> <string name="weather_use_custom_location">Usar local personalizado</string> <string name="weather_geolocated">Geolocalização usando a rede</string> <string name="weather_custom_location_dialog_title">Inserir localização</string> @@ -165,4 +165,4 @@ <string name="clock_am_pm_title">Exibir indicador AM/PM</string> <string name="weather_select_location">Selecionar localização</string> <string name="weather_cannot_reach_provider">Não foi possível alcançar %s</string> -</resources>
\ No newline at end of file +</resources> diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 7385177..4762ef6 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -101,7 +101,7 @@ <string name="clock_am_pm_title">Mostrar indicador AM/PM</string> <string name="weather_enabled">Ativo</string> <string name="weather_enable">Mostrar Meteorologia</string> - <string name="weather_source">Yahoo! Tempo</string> + <string name="weather_source_yahoo">Yahoo! Tempo</string> <string name="weather_use_custom_location">Usar localização personalizada</string> <string name="weather_geolocated">Geolocalização usando a rede</string> <string name="weather_custom_location_dialog_title">Insira localização</string> diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index ce88c28..a51e1a4 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -98,7 +98,7 @@ <string name="weather_enabled">"Activat"</string> <string name="weather_enable">"Afişare inf. meteo"</string> - <string name="weather_source">"Yahoo! Meteo"</string> + <string name="weather_source_yahoo">"Yahoo! Meteo"</string> <string name="weather_use_custom_location">"Utilizaţi locaţia personalizată"</string> <string name="weather_geolocated">"Localizată utilizând reţeaua"</string> <string name="weather_custom_location_dialog_title">"Introduceţi locaţia"</string> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 08f5bc6..cec2c58 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -108,7 +108,7 @@ <string name="weather_enabled">Включено</string> <string name="weather_enable">Погода отображается</string> - <string name="weather_source">Yahoo! Погода</string> + <string name="weather_source_yahoo">Yahoo! Погода</string> <string name="weather_use_custom_location">Не определять автоматически</string> <string name="weather_geolocated">Местоположение по сети</string> <string name="weather_custom_location_dialog_title">Введите местоположение</string> diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 5bc4c97..5ba65c2 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -100,7 +100,7 @@ <string name="clock_am_pm_title">Zobraziť indikátor AM/PM</string> <string name="weather_enabled">Povolené</string> <string name="weather_enable">Zobraziť počasie</string> - <string name="weather_source">Počasie Yahoo!</string> + <string name="weather_source_yahoo">Počasie Yahoo!</string> <string name="weather_use_custom_location">Použiť vlastné umiestnenie</string> <string name="weather_geolocated">Lokalizované pomocou siete</string> <string name="weather_custom_location_dialog_title">Zadajte umiestnenie</string> diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml new file mode 100644 index 0000000..67c206f --- /dev/null +++ b/res/values-sl/strings.xml @@ -0,0 +1,207 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2012 The CyanogenMod Project (DvTonder) + Chronus additions (c) 2013 David van Tonder + + 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. +--> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- General strings --> + <string name="unknown">Neznano</string> + <string name="cancel">Prekliči</string> + <string name="loading_indicator">Nalagam pripomoček\u2026</string> + <string name="menu_done">Končano</string> + + <!-- Weather - Weather codes --> + <string name="weather_0">Vrtinčast vihar</string> + <string name="weather_1">Tropska nevihta</string> + <string name="weather_2">Orkan</string> + <string name="weather_3">Močna nevihta</string> + <string name="weather_4">Nevihta</string> + <string name="weather_5">Dež in sneg</string> + <string name="weather_6">Dež in žled</string> + <string name="weather_7">Sneg in žled</string> + <string name="weather_8">Leden pršec</string> + <string name="weather_9">Pršec</string> + <string name="weather_10">Leden dež</string> + <string name="weather_11">Rahla ploha</string> + <string name="weather_12">Ploha</string> + <string name="weather_13">Snežni metež</string> + <string name="weather_14">Rahlo sneženje</string> + <string name="weather_15">Snežni vihar</string> + <string name="weather_16">Sneg</string> + <string name="weather_17">Toča</string> + <string name="weather_18">Žled</string> + <string name="weather_19">Zaprašeno ozračje</string> + <string name="weather_20">Megleno</string> + <string name="weather_21">Slabša vidljivost</string> + <string name="weather_22">Zadimljeno ozračje</string> + <string name="weather_23">Rahel veter</string> + <string name="weather_24">Vetrovno</string> + <string name="weather_25">Hladno</string> + <string name="weather_26">Oblačno</string> + <string name="weather_27">Pretežno oblačno</string> <!-- Night --> + <string name="weather_28">Pretežno oblačno</string> <!-- Day --> + <string name="weather_29">Delno oblačno</string> <!-- Night --> + <string name="weather_30">Delno oblačno</string> <!-- Day --> + <string name="weather_31">Jasno</string> <!-- Night --> + <string name="weather_32">Sončno</string> + <string name="weather_33">Lepo in jasno vreme</string> <!-- Night --> + <string name="weather_34">Lepo in jasno vreme</string> <!-- Day --> + <string name="weather_35">Dež s točo</string> + <string name="weather_36">Vroče</string> + <string name="weather_37">Lokalne nevihte</string> + <string name="weather_38">Razpršene nevihte</string> + <string name="weather_39">Razpršene nevihte</string> + <string name="weather_40">Razpršene plohe</string> + <string name="weather_41">Močno sneženje</string> + <string name="weather_42">Razpršene snežne plohe +</string> + <string name="weather_43">Močno sneženje</string> + <string name="weather_44">Delno oblačno</string> + <string name="weather_45">Nevihta z grmenjem</string> + <string name="weather_46">Rahlo sneženje</string> + <string name="weather_47">Lokalna nevihta z grmenjem</string> + <string name="weather_3200"></string> <!-- Forecast unavailable --> + + <!-- Weather - Speed units --> + <string name="weather_kph">km/h</string> + <string name="weather_mph">m/h</string> + + <!-- Weather - Wind directions --> + <string name="weather_N">S</string> + <string name="weather_NE">SV</string> + <string name="weather_E">V</string> + <string name="weather_SE">JV</string> + <string name="weather_S">J</string> + <string name="weather_SW">JZ</string> + <string name="weather_W">Z</string> + <string name="weather_NW">SZ</string> + + <!-- Weather - Error messages --> + <string name="weather_no_data">Ni podatkov</string> + <string name="weather_tap_to_refresh">Pritisni za osvežitev</string> + <string name="weather_refreshing">Osveževanje podatkov</string> + <string name="weather_last_sync_just_now">Pravkar</string> + <string name="weather_cannot_reach_provider">Nedosegljivo ta trenutek</string> + + <!-- Weather - Update frequency --> + <string name="weather_refresh_manual">Ročna nastavitev</string> + <string name="weather_refresh_30min">30 minut</string> + <string name="weather_refresh_60min">60 minut</string> + <string name="weather_refresh_2hrs">2 uri</string> + <string name="weather_refresh_4hrs">4 ure</string> + <string name="weather_refresh_6hrs">6 ur</string> + <string name="weather_refresh_8hrs">8 ur</string> + + <!-- Preferences - Categories --> + <string name="clock_category">Ura in budilka</string> + <string name="weather_category">Nastavitev vremena</string> + <string name="calendar_category">Koledar</string> + <string name="general_category">Splošno</string> + <string name="display_category">Zaslon</string> + + <!-- Preferences - Clock --> + <string name="clock_font_title">Poudarjena ura</string> + <string name="clock_font_minutes_title">Poudarjene minute</string> + <string name="clock_font_date_title">Poudarjena datum in budilka</string> + <string name="show_alarm_title">Prikaži naslednjo budilko</string> + <string name="clock_am_pm_title">Prikaži AM/PM indikator</string> + + <!-- Preferences - Weather --> + <string name="weather_enabled">Omogočeno</string> + <string name="weather_enable">Prikaži vreme</string> + <string name="weather_source_title">Vremenski vir</string> + <string name="weather_source_yahoo">Yahoo! Vreme</string> + <string name="weather_use_custom_location">Uporabite lokacijo po meri</string> + <string name="weather_geolocated">Geolokacijska uporaba omrežja</string> + <string name="weather_custom_location_dialog_title">Vnesi lokacijo</string> + <string name="weather_custom_location_hint">Mesto, Država</string> + <string name="weather_custom_location_title">Lokacija</string> + <string name="weather_show_location_title">Prikaži lokacijo</string> + <string name="weather_show_timestamp_title">Prikaži čas osvežitve</string> + <string name="weather_refresh_interval">Posodobitev intervala</string> + <string name="weather_use_metric">Uporabi metrične enote</string> + <string name="weather_retrieve_location_dialog_title">Ne morem določiti lokacije</string> + <string name="weather_retrieve_location_dialog_message">Geolokacija omrežja je onemogočena.\n\nIzberite lokacijo po meri ali omogočite geolokacijo.</string> + <string name="weather_retrieve_location_dialog_enable_button">Omogočeno</string> + <string name="weather_invert_lowhigh">Zamenjaj nizko/visoko temperaturo</string> + <string name="weather_progress_title">Potrdi lokacijo</string> + <string name="weather_alternate_icons_title">Uporabi obarvane ikone</string> + <string name="weather_alternate_icons_summary">Izberi med privzeto barvo ali nadomestno belo ikono.</string> + <string name="weather_show_when_minimized_title">Pokaži ko je minimizirano</string> + <string name="weather_show_when_minimized_summary">Prikaži povzetek o vremenu, ko je pripomoček minimiziran.</string> + <string name="weather_select_location">Izberi lokacijo</string> + + <!-- Preferences - Calendar --> + <string name="calendar_title">Prikaži naslednji dogodek</string> + <string name="calendars_title">Koledar dogodkov</string> + <string name="calendars_summary">Poišči dogodke iz koledarjev</string> + <string name="calendar_reminders_only_title">Samo opomniki</string> + <string name="calendar_reminders_only_summary">Prikaži samo dogodke z opomniki</string> + <string name="calendar_hide_allday_title">Skrij celodnevne dogodke</string> + <string name="calendar_icon_title">Ikona koledarja</string> + <string name="calendar_lookahead_title">Vpogled dogodka</string> + <string name="calendar_show_location_title">Lokacija dogodka</string> + <string name="calendar_show_description_title">Opis dogodka</string> + <string name="calendar_upcoming_events_category">Naslednji dogodki</string> + <string name="calendar_highlight_upcoming_events_title">Izpostavi dogodke</string> + <string name="calendar_highlight_upcoming_events_summary">Izpostavi današnji dan\'s dogodke in, po 20 uri, tudi naslednji dan\'s dogodki</string> + <string name="calendar_highlight_upcoming_events_bold">Poudarjena pisava</string> + <string name="calendar_add_event_title">Dodaj ikono dogodka</string> + + <!-- Preferences - Font colors --> + <string name="font_color">Barva pisave</string> + <string name="font_color_alarm">Barva pisave za budilko</string> + <string name="font_color_timestamp">Barva pisave za čas osvežitve</string> + <string name="font_color_calendar_details">Barva pisave za podrobnosti</string> + + <!-- Calendar - Lookahead --> + <string name="calendar_lookahead_3hrs">3 ure</string> + <string name="calendar_lookahead_6hrs">6 ur</string> + <string name="calendar_lookahead_12hrs">12 ur</string> + <string name="calendar_lookahead_today">Danes</string> + <string name="calendar_lookahead_1day">1 dan</string> + <string name="calendar_lookahead_3days">3 dni</string> + <string name="calendar_lookahead_1wk">1 teden</string> + <string name="calendar_lookahead_2wks">2 tedna</string> + <string name="calendar_lookahead_4wks">4 tedne</string> + + <!-- Calendar - Event metadata --> + <string name="calendar_metadata_none">Ne prikaži</string> + <string name="calendar_metadata_first_line">Prikaži prvo vrstico</string> + <string name="calendar_metadata_all">Prikaži vse</string> + + <!-- Font colors --> + <string name="white">Bela</string> + <string name="grey">Siva</string> + <string name="black">Črna</string> + <string name="holo_blue_light">Svetlo modra</string> + <string name="holo_green_light">Svetlo zelena</string> + <string name="holo_red_light">Svetlo rdeča</string> + <string name="holo_blue_dark">Temno modra</string> + <string name="holo_green_dark">Temno zelena</string> + <string name="holo_red_dark">Temno rdeča</string> + <string name="holo_purple">Vijolična</string> + <string name="holo_orange_light">Svetlo oranžna</string> + <string name="holo_orange_dark">Temno oranžna</string> + <string name="holo_blue_bright">Bleščeče modra</string> + + <!-- Weather icon sets --> + <string name="weather_icon_set_title">Paket ikon</string> + <string name="weather_icons_standard">Obarvano</string> + <string name="weather_icons_monochrome">Monochrome</string> + <string name="weather_icons_vclouds">VClouds</string> + <string name="icon_set_selection_get_more">Več\u2026</string> + +</resources> diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index fb749a0..decaf70 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -98,7 +98,7 @@ <string name="show_alarm_title">Visa nästa alarm</string> <string name="weather_enabled">Aktiverad</string> <string name="weather_enable">Visa väder</string> - <string name="weather_source">Yahoo! Väder</string> + <string name="weather_source_yahoo">Yahoo! Väder</string> <string name="weather_use_custom_location">Använd anpassad plats</string> <string name="weather_geolocated">Geopositionerad använd nätverk</string> <string name="weather_custom_location_dialog_title">Ange plats</string> diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml index 1c5ae41..87684be 100644 --- a/res/values-th/strings.xml +++ b/res/values-th/strings.xml @@ -95,7 +95,7 @@ <string name="clock_am_pm_title">แสดง AM/PM</string> <string name="weather_enabled">เปิด</string> <string name="weather_enable">แสดงสภาพอากาศ</string> - <string name="weather_source">พยากรณ์อากาศของ Yahoo!</string> + <string name="weather_source_yahoo">พยากรณ์อากาศของ Yahoo!</string> <string name="weather_use_custom_location">เลือกตำแหน่งเอง</string> <string name="weather_geolocated">หาตำแห่งโดยใช้เครือข่าย</string> <string name="weather_custom_location_dialog_title">ใส่ตำแหน่ง</string> diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml new file mode 100644 index 0000000..77c04d5 --- /dev/null +++ b/res/values-tr/strings.xml @@ -0,0 +1,205 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2012 The CyanogenMod Project (DvTonder) + Chronus additions (c) 2013 David van Tonder + + 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. +--> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- General strings --> + <string name="unknown">Bilinmeyen</string> + <string name="cancel">İptal</string> + <string name="loading_indicator">Widget yükleniyor\u2026</string> + <string name="menu_done">Tamam</string> + + <!-- Weather - Weather codes --> + <string name="weather_0">Hortum</string> + <string name="weather_1">Tropik Fırtına</string> + <string name="weather_2">Kasırga</string> + <string name="weather_3">Şiddetli Gökgürültüsü</string> + <string name="weather_4">Gökgürültülü</string> + <string name="weather_5">Karla Karışık Yağmur</string> + <string name="weather_6">Yağmurlu Sulusepken</string> + <string name="weather_7">Karlı Sulusepken</string> + <string name="weather_8">Soğuk Çiseli</string> + <string name="weather_9">Çiseleyen Yağmur</string> + <string name="weather_10">Soğuk Yağmur</string> + <string name="weather_11">Yağışlı</string> + <string name="weather_12">Yağışlı</string> + <string name="weather_13">Kar Fırtınası</string> + <string name="weather_14">Hafif Kar Yağışı</string> + <string name="weather_15">Tipi</string> + <string name="weather_16">Kar</string> + <string name="weather_17">Dolu</string> + <string name="weather_18">Sulusepken</string> + <string name="weather_19">Tozlu</string> + <string name="weather_20">Sis</string> + <string name="weather_21">Pus</string> + <string name="weather_22">Duman</string> + <string name="weather_23">Şiddetli Rüzgar</string> + <string name="weather_24">Rüzgarlı</string> + <string name="weather_25">Soğuk</string> + <string name="weather_26">Bulutlu</string> + <string name="weather_27">Çoğunlukla Bulutlu</string> <!-- Night --> + <string name="weather_28">Çoğunlukla Bulutlu</string> <!-- Day --> + <string name="weather_29">Çoğunlukla Bulutlu</string> <!-- Night --> + <string name="weather_30">Çoğunlukla Bulutlu</string> <!-- Day --> + <string name="weather_31">Açık</string> <!-- Night --> + <string name="weather_32">Güneşli</string> + <string name="weather_33">Güzel Hava</string> <!-- Night --> + <string name="weather_34">Güzel Hava</string> <!-- Day --> + <string name="weather_35">Yağmur ve Dolu</string> + <string name="weather_36">Sıcak</string> + <string name="weather_37">Bölgesel Gökgürültülü</string> + <string name="weather_38">Yaygın Gökgürültülü</string> + <string name="weather_39">Yer Yer Gökgürültülü</string> + <string name="weather_40">Yer Yer Yağışlı</string> + <string name="weather_41">Şiddetli Kar</string> + <string name="weather_42">Yer Yer Kar Yağışlı</string> + <string name="weather_43">Şiddetli Kar</string> + <string name="weather_44">Parçalı Bulutlu</string> + <string name="weather_45">Gökgürültülü</string> + <string name="weather_46">Kar Yağışlı</string> + <string name="weather_47">Bölgesel Gökgürültülü</string> + <string name="weather_3200"></string> <!-- Forecast unavailable --> + + <!-- Weather - Speed units --> + <string name="weather_kph">kmh</string> + <string name="weather_mph">mh</string> + + <!-- Weather - Wind directions --> + <string name="weather_N">K</string> + <string name="weather_NE">KD</string> + <string name="weather_E">D</string> + <string name="weather_SE">GD</string> + <string name="weather_S">G</string> + <string name="weather_SW">GB</string> + <string name="weather_W">B</string> + <string name="weather_NW">KB</string> + + <!-- Weather - Error messages --> + <string name="weather_no_data">Veri yok</string> + <string name="weather_tap_to_refresh">Yenilemek için tıklayın</string> + <string name="weather_refreshing">Yeniliyor</string> + <string name="weather_last_sync_just_now">Şimdi</string> + <string name="weather_cannot_reach_provider">%s ulaşılamaz</string> + + <!-- Weather - Update frequency --> + <string name="weather_refresh_manual">El ile</string> + <string name="weather_refresh_30min">30 dakika</string> + <string name="weather_refresh_60min">60 dakika</string> + <string name="weather_refresh_2hrs">2 saat</string> + <string name="weather_refresh_4hrs">4 saat</string> + <string name="weather_refresh_6hrs">6 saat</string> + <string name="weather_refresh_8hrs">8 saat</string> + + <!-- Preferences - Categories --> + <string name="clock_category">Saat ve alarm</string> + <string name="weather_category">Hava durumu</string> + <string name="calendar_category">Takvim etkinlikleri</string> + <string name="general_category">Genel</string> + <string name="display_category">Görünüm</string> + + <!-- Preferences - Clock --> + <string name="clock_font_title">Saat kalın</string> + <string name="clock_font_minutes_title">Dakika kalın</string> + <string name="clock_font_date_title">Tarih ve alarm kalın</string> + <string name="show_alarm_title">Gelecek alarmı göster</string> + <string name="clock_am_pm_title">AM/PM belirteci</string> + + <!-- Preferences - Weather --> + <string name="weather_enabled">Etkin</string> + <string name="weather_enable">Hava durumunu göster</string> + <string name="weather_source_title">Hava durumu kaynağı</string> + <string name="weather_source_yahoo">Yahoo! Weather</string> + <string name="weather_use_custom_location">Özel bir konum kullan</string> + <string name="weather_geolocated">Ağ jeolokasyonu ile konum</string> + <string name="weather_custom_location_dialog_title">Konum girişi</string> + <string name="weather_custom_location_hint">Şehir, Bölge/Ülke</string> + <string name="weather_custom_location_title">Konum</string> + <string name="weather_show_location_title">Konumu göster</string> + <string name="weather_show_timestamp_title">Güncelleme anı göster</string> + <string name="weather_refresh_interval">Güncelleme aralığı</string> + <string name="weather_use_metric">Metrik biçim</string> + <string name="weather_retrieve_location_dialog_title">Konum saptanamıyor!</string> + <string name="weather_retrieve_location_dialog_message">Ağ jeolokasyonu aktif değil.\n\nBir konum girin ya da ağ konumunu etkinleştirin</string> + <string name="weather_retrieve_location_dialog_enable_button">Etkin</string> + <string name="weather_invert_lowhigh">Yüksek/alçak sıcaklığı ters çevir</string> + <string name="weather_progress_title">Konum doğrulanıyor</string> + <string name="weather_alternate_icons_title">Renkli simge kullan</string> + <string name="weather_alternate_icons_summary">Varsayılan rengi ya da alternatif rengi (beyaz) kullanmak için seçin</string> + <string name="weather_show_when_minimized_title">Minimize iken göster</string> + <string name="weather_show_when_minimized_summary">Widget minimize haldeyken hava durumu bilgisini göster</string> + <string name="weather_select_location">Konum seçin</string> + + <!-- Preferences - Calendar --> + <string name="calendar_title">Sonraki etkinliği göster</string> + <string name="calendars_title">Takvim etkinlikleri</string> + <string name="calendars_summary">Takvimden etkinlik bul</string> + <string name="calendar_reminders_only_title">Sadece hatırlatmalar</string> + <string name="calendar_reminders_only_summary">Sadece hatırlatılacak etkinlikleri göster</string> + <string name="calendar_hide_allday_title">Gün boyu etkinliklerini gizle</string> + <string name="calendar_icon_title">Takvim simgesi</string> + <string name="calendar_lookahead_title">Etkinlik izlenimi</string> + <string name="calendar_show_location_title">Etkinlik yeri</string> + <string name="calendar_show_description_title">Etkinlik tanımı</string> + <string name="calendar_upcoming_events_category">Yaklaşan etkinlikler</string> + <string name="calendar_highlight_upcoming_events_title">Etkinlikleri vurgula</string> + <string name="calendar_highlight_upcoming_events_summary">Günlük etkinlikleri ve saat 8\'den itibaren yarınki etkinlikleri vurgula</string> + <string name="calendar_highlight_upcoming_events_bold">Kalın yazı</string> + <string name="calendar_add_event_title">Etkinlik simgesi ekle</string> + + <!-- Preferences - Font colors --> + <string name="font_color">Yazı rengi</string> + <string name="font_color_alarm">Alarm yazı rengi</string> + <string name="font_color_timestamp">Güncelleme saati rengi</string> + <string name="font_color_calendar_details">Detaylar yazı rengi</string> + + <!-- Calendar - Lookahead --> + <string name="calendar_lookahead_3hrs">3 saat</string> + <string name="calendar_lookahead_6hrs">6 saat</string> + <string name="calendar_lookahead_12hrs">12 saat</string> + <string name="calendar_lookahead_today">Bugün</string> + <string name="calendar_lookahead_1day">1 gün</string> + <string name="calendar_lookahead_3days">3 gün</string> + <string name="calendar_lookahead_1wk">1 hafta</string> + <string name="calendar_lookahead_2wks">2 hafta</string> + <string name="calendar_lookahead_4wks">4 hafta</string> + + <!-- Calendar - Event metadata --> + <string name="calendar_metadata_none">Gösterme</string> + <string name="calendar_metadata_first_line">İlk satırı göster</string> + <string name="calendar_metadata_all">Hepsini göster</string> + + <!-- Font colors --> + <string name="white">Beyaz</string> + <string name="grey">Gri</string> + <string name="black">Siyah</string> + <string name="holo_blue_light">Açık mavi</string> + <string name="holo_green_light">Açık yeşil</string> + <string name="holo_red_light">Açık kırmızı</string> + <string name="holo_blue_dark">Koyu mavi</string> + <string name="holo_green_dark">Koyu yeşil</string> + <string name="holo_red_dark">Koyu kırmızı</string> + <string name="holo_purple">Mor</string> + <string name="holo_orange_light">Açık turuncu</string> + <string name="holo_orange_dark">Koyu turuncu</string> + <string name="holo_blue_bright">Parlak mavi</string> + + <!-- Weather icon sets --> + <string name="weather_icon_set_title">Simge seti</string> + <string name="weather_icons_standard">Renkli</string> + <string name="weather_icons_monochrome">Monokrom</string> + <string name="weather_icons_vclouds">VClouds</string> + <string name="icon_set_selection_get_more">Daha fazla\u2026</string> +</resources> diff --git a/res/values-ug/strings.xml b/res/values-ug/strings.xml index c90b173..508ff9b 100644 --- a/res/values-ug/strings.xml +++ b/res/values-ug/strings.xml @@ -100,7 +100,7 @@ <string name="clock_am_pm_title">چ ب/چ ك كۆرسەتكۈچنى كۆرسەت</string> <string name="weather_enabled"> قوزغىتىلغان</string> <string name="weather_enable">ھاۋارايى كۆرسەت</string> - <string name="weather_source">Yahoo! ھاۋارايى</string> + <string name="weather_source_yahoo">Yahoo! ھاۋارايى</string> <string name="weather_use_custom_location">ئىختىيارىي ئورۇن ئىشلەت</string> <string name="weather_geolocated">جۇغراپىيەلىك ئورۇنغا تورنى ئىشلىتىدۇ</string> <string name="weather_custom_location_dialog_title">ئورۇننى كىرگۈزۈڭ</string> diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 788691c..fb1db88 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -118,7 +118,7 @@ <!-- Preferences - Weather --> <string name="weather_enabled">Увімкнено</string> <string name="weather_enable">Погода показується</string> - <string name="weather_source">Yahoo! Погода</string> + <string name="weather_source_yahoo">Yahoo! Погода</string> <string name="weather_use_custom_location">Не визначати автоматично</string> <string name="weather_geolocated">Місцезнаходження по мережі</string> <string name="weather_custom_location_dialog_title">Введіть місцезнаходження</string> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index cc7453d..1a23bef 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -102,7 +102,7 @@ <string name="show_alarm_title">显示下一个闹钟</string> <string name="weather_enabled">已启用</string> <string name="weather_enable">显示天气</string> - <string name="weather_source">雅虎天气</string> + <string name="weather_source_yahoo">雅虎天气</string> <string name="weather_use_custom_location">使用自定义的位置</string> <string name="weather_geolocated">使用网络定位</string> <string name="weather_custom_location_dialog_title">输入位置</string> diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 2200b85..2238d88 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -101,7 +101,7 @@ <string name="clock_am_pm_title">顯示 AM/PM 指示器</string> <string name="weather_enabled">啓用</string> <string name="weather_enable">顯示天氣</string> - <string name="weather_source">Yahoo! 氣象</string> + <string name="weather_source_yahoo">Yahoo! 氣象</string> <string name="weather_use_custom_location">使用自訂位置</string> <string name="weather_geolocated">使用網路定位</string> <string name="weather_custom_location_dialog_title">輸入位置</string> diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 517b8a7..76c83c7 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -15,6 +15,7 @@ --> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="empty_array" translatable="false"/> <string-array name="weather_interval_entries" translatable="false"> <item>@string/weather_refresh_manual</item> @@ -104,4 +105,14 @@ <item>#ffaa66cc</item> </string-array> + <string-array name="weather_source_entries" translatable="false"> + <item>@string/weather_source_yahoo</item> + <item>@string/weather_source_openweathermap</item> + </string-array> + + <string-array name="weather_source_values" translatable="false"> + <item>yahoo</item> + <item>openweathermap</item> + </string-array> + </resources> diff --git a/res/values/colors.xml b/res/values/colors.xml index 60738bf..8e701e8 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -20,5 +20,7 @@ <color name="clock_gray">#80ffffff</color> <color name="text_shadow">#dd000000</color> <color name="text_shadow_opaque">#3f000000</color> + <color name="list_selector_focused">#cc33b5e5</color> + <color name="list_selector_activated">#4d33b5e5</color> </resources> diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 732ad76..fab4cea 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -47,4 +47,7 @@ <dimen name="am_pm_padding">30dp</dimen> <dimen name="am_pm_padding_small">20dp</dimen> + + <dimen name="forecast_dialog_width">340dp</dimen> + <dimen name="forecast_icon_size">36dp</dimen> </resources> diff --git a/res/values/strings.xml b/res/values/strings.xml index 000be8e..3de7225 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -84,8 +84,11 @@ <string name="weather_45">Thundershowers</string> <string name="weather_46">Snow Showers</string> <string name="weather_47">Isolated Thundershowers</string> - <!-- Forecast unavailable --> - <string name="weather_3200"></string> + <string name="weather_3200"></string> <!-- Forecast unavailable --> + + <!-- Weather - Speed units --> + <string name="weather_kph">kph</string> + <string name="weather_mph">mph</string> <!-- Weather - Wind directions --> <string name="weather_N">N</string> @@ -134,7 +137,9 @@ <!-- Preferences - Weather --> <string name="weather_enabled">Enabled</string> <string name="weather_enable">Display weather</string> - <string name="weather_source">Yahoo! Weather</string> + <string name="weather_source_title">Weather source</string> + <string name="weather_source_yahoo">Yahoo! Weather</string> + <string name="weather_source_openweathermap">OpenWeatherMap</string> <string name="weather_use_custom_location">Use custom location</string> <string name="weather_geolocated">Geolocated using network</string> <string name="weather_custom_location_dialog_title">Enter location</string> @@ -170,6 +175,10 @@ <string name="calendar_highlight_upcoming_events_title">Highlight events</string> <string name="calendar_highlight_upcoming_events_summary">Highlight the current day\'s events and, after 8pm, also the next day\'s events</string> <string name="calendar_highlight_upcoming_events_bold">Bold font</string> + <string name="calendar_add_event_title">Add Event icon</string> + <string name="calendar_no_events">No events in lookahead window</string> + <string name="calendar_no_events_summary">Tap + to add</string> + <string name="calendar_no_events_indicator_title">Show \'No events\' text</string> <!-- Preferences - Font colors --> <string name="font_color">Font color</string> @@ -208,4 +217,11 @@ <string name="holo_orange_dark">Dark orange</string> <string name="holo_blue_bright">Bright blue</string> + <!-- Weather icon sets --> + <string name="weather_icon_set_title">Icon set</string> + <string name="weather_icons_standard">Colored</string> + <string name="weather_icons_monochrome">Monochrome</string> + <string name="weather_icons_vclouds">VClouds</string> + <string name="icon_set_selection_get_more">Get more\u2026</string> + <string name="icon_set_store_filter" translatable="false">Chronus Weather Icons</string> </resources> diff --git a/res/values/styles.xml b/res/values/styles.xml index 593f64e..32a9788 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -17,7 +17,7 @@ <resources> <style name="label_shadow"> - <item name="android:shadowColor">@color/text_shadow</item> + <item name="android:shadowColor">@color/text_shadow_opaque</item> <item name="android:shadowRadius">2.0</item> </style> @@ -79,4 +79,12 @@ <item name="android:fontFamily">sans-serif-light</item> </style> + <style name="transparent"> + <item name="android:windowIsTranslucent">true</item> + <item name="android:windowBackground">@android:color/transparent</item> + <item name="android:windowNoTitle">true</item> + <item name="android:colorForeground">#fff</item> + <item name="android:windowAnimationStyle">@null</item> + </style> + </resources> diff --git a/res/xml/preferences_calendar.xml b/res/xml/preferences_calendar.xml index 819da69..c3310cb 100755 --- a/res/xml/preferences_calendar.xml +++ b/res/xml/preferences_calendar.xml @@ -31,7 +31,8 @@ android:dependency="show_calendar" android:dialogTitle="@string/calendars_title" android:title="@string/calendars_title" - android:summary="@string/calendars_summary" /> + android:summary="@string/calendars_summary" + android:defaultValue="@array/empty_array" /> <ListPreference android:key="calendar_lookahead" @@ -66,6 +67,18 @@ android:title="@string/calendar_icon_title" android:defaultValue="true" /> + <CheckBoxPreference + android:key="calendar_add_event_icon" + android:dependency="show_calendar" + android:title="@string/calendar_add_event_title" + android:defaultValue="true" /> + + <CheckBoxPreference + android:key="calendar_no_events_text" + android:dependency="show_calendar" + android:title="@string/calendar_no_events_indicator_title" + android:defaultValue="true" /> + <ListPreference android:key="calendar_show_location" android:dependency="show_calendar" diff --git a/res/xml/preferences_weather.xml b/res/xml/preferences_weather.xml index e2e73cc..88897bc 100644 --- a/res/xml/preferences_weather.xml +++ b/res/xml/preferences_weather.xml @@ -24,10 +24,17 @@ <CheckBoxPreference android:key="show_weather" android:title="@string/weather_enable" - android:summary="@string/weather_source" android:defaultValue="true" /> <ListPreference + android:key="weather_source" + android:defaultValue="yahoo" + android:summary="%s" + android:entries="@array/weather_source_entries" + android:entryValues="@array/weather_source_values" + android:title="@string/weather_source_title" /> + + <ListPreference android:key="weather_refresh_interval" android:dependency="show_weather" android:defaultValue="60" @@ -53,6 +60,12 @@ <PreferenceCategory android:title="@string/display_category" > + <com.cyanogenmod.lockclock.preference.IconSelectionPreference + android:key="weather_icons" + android:title="@string/weather_icon_set_title" + android:dialogTitle="@string/weather_icon_set_title" + android:defaultValue="color" /> + <CheckBoxPreference android:key="weather_show_when_minimized" android:dependency="show_weather" @@ -61,13 +74,6 @@ android:defaultValue="true" /> <CheckBoxPreference - android:key="weather_use_alternate_icons" - android:dependency="show_weather" - android:title="@string/weather_alternate_icons_title" - android:summary="@string/weather_alternate_icons_summary" - android:defaultValue="true" /> - - <CheckBoxPreference android:key="weather_use_metric" android:dependency="show_weather" android:title="@string/weather_use_metric" diff --git a/src/com/cyanogenmod/lockclock/ClockWidgetProvider.java b/src/com/cyanogenmod/lockclock/ClockWidgetProvider.java index d2265cb..0441e00 100644 --- a/src/com/cyanogenmod/lockclock/ClockWidgetProvider.java +++ b/src/com/cyanogenmod/lockclock/ClockWidgetProvider.java @@ -25,6 +25,7 @@ import android.util.Log; import com.cyanogenmod.lockclock.misc.Constants; import com.cyanogenmod.lockclock.misc.WidgetUtils; +import com.cyanogenmod.lockclock.weather.ForecastActivity; import com.cyanogenmod.lockclock.weather.WeatherUpdateService; import com.cyanogenmod.lockclock.ClockWidgetService; import com.cyanogenmod.lockclock.WidgetApplication; @@ -65,7 +66,7 @@ public class ClockWidgetProvider extends AppWidgetProvider { } else if (Intent.ACTION_BOOT_COMPLETED.equals(action)) { // On first boot lastUpdate will be 0 thus no need to force an update // Subsequent boots will use cached data - WeatherUpdateService.scheduleNextUpdate(context); + WeatherUpdateService.scheduleNextUpdate(context, false); // A widget has been deleted, prevent our handling and ask the super class handle it } else if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action) @@ -86,6 +87,12 @@ public class ClockWidgetProvider extends AppWidgetProvider { } else if (ClockWidgetService.ACTION_HIDE_CALENDAR.equals(action)) { updateWidgets(context, false, true); + // The intent is to launch the modal pop-up forecast dialog + } else if (Constants.ACTION_SHOW_FORECAST.equals(action)) { + Intent i = new Intent(context, ForecastActivity.class); + i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(i); + // Something we did not handle, let the super class deal with it. // This includes the REFRESH_CLOCK intent from Clock settings } else { @@ -117,7 +124,7 @@ public class ClockWidgetProvider extends AppWidgetProvider { @Override public void onEnabled(Context context) { if (D) Log.d(TAG, "Scheduling next weather update"); - WeatherUpdateService.scheduleNextUpdate(context); + WeatherUpdateService.scheduleNextUpdate(context, true); // Start the broadcast receiver (API 16 devices) // This will schedule a repeating alarm every minute to handle the clock refresh diff --git a/src/com/cyanogenmod/lockclock/ClockWidgetService.java b/src/com/cyanogenmod/lockclock/ClockWidgetService.java index 1698122..ea5da49 100755 --- a/src/com/cyanogenmod/lockclock/ClockWidgetService.java +++ b/src/com/cyanogenmod/lockclock/ClockWidgetService.java @@ -35,8 +35,9 @@ import android.util.TypedValue; import android.view.View; import android.widget.RemoteViews; -import com.cyanogenmod.lockclock.calendar.CalendarWidgetService; +import com.cyanogenmod.lockclock.calendar.CalendarViewsService; import com.cyanogenmod.lockclock.misc.Constants; +import com.cyanogenmod.lockclock.misc.IconUtils; import com.cyanogenmod.lockclock.misc.Preferences; import com.cyanogenmod.lockclock.misc.WidgetUtils; import com.cyanogenmod.lockclock.weather.WeatherInfo; @@ -328,10 +329,11 @@ public class ClockWidgetService extends IntentService { if (!TextUtils.isEmpty(nextAlarm)) { // An alarm is set, deal with displaying it int color = Preferences.clockAlarmFontColor(this); + final Resources res = getResources(); // Overlay the selected color on the alarm icon and set the imageview alarmViews.setImageViewBitmap(R.id.alarm_icon, - WidgetUtils.getOverlaidBitmap(this, R.drawable.ic_alarm_small, color)); + IconUtils.getOverlaidBitmap(res, R.drawable.ic_alarm_small, color)); alarmViews.setViewVisibility(R.id.alarm_icon, View.VISIBLE); if (!smallWidget) { @@ -389,19 +391,18 @@ public class ClockWidgetService extends IntentService { private void setWeatherData(RemoteViews weatherViews, boolean smallWidget, WeatherInfo w) { int color = Preferences.weatherFontColor(this); int timestampColor = Preferences.weatherTimestampFontColor(this); - boolean colorIcons = Preferences.useAlternateWeatherIcons(this); + String iconsSet = Preferences.getWeatherIconSet(this); // Reset no weather visibility weatherViews.setViewVisibility(R.id.weather_no_data, View.GONE); weatherViews.setViewVisibility(R.id.weather_refresh, View.GONE); // Weather Image - if (colorIcons) { - // No additional color overlays needed - weatherViews.setImageViewResource(R.id.weather_image, w.getConditionResource()); + int resId = w.getConditionResource(iconsSet); + if (resId != 0) { + weatherViews.setImageViewResource(R.id.weather_image, w.getConditionResource(iconsSet)); } else { - // Overlay the condition image with the appropriate color - weatherViews.setImageViewBitmap(R.id.weather_image, w.getConditionBitmap(color)); + weatherViews.setImageViewBitmap(R.id.weather_image, w.getConditionBitmap(iconsSet, color)); } // Weather Condition @@ -448,7 +449,7 @@ public class ClockWidgetService extends IntentService { } // Register an onClickListener on Weather - setWeatherClickListener(weatherViews); + setWeatherClickListener(weatherViews, false); } /** @@ -459,7 +460,8 @@ public class ClockWidgetService extends IntentService { boolean firstRun = Preferences.isFirstWeatherUpdate(this); // Hide the normal weather stuff - String noData = getString(R.string.weather_cannot_reach_provider, getString(R.string.weather_source)); + int providerNameResource = Preferences.weatherProvider(this).getNameResourceId(); + String noData = getString(R.string.weather_cannot_reach_provider, getString(providerNameResource)); weatherViews.setViewVisibility(R.id.weather_image, View.INVISIBLE); if (!smallWidget) { weatherViews.setViewVisibility(R.id.weather_city, View.GONE); @@ -485,32 +487,44 @@ public class ClockWidgetService extends IntentService { // Register an onClickListener on Weather with the default (Refresh) action if (!firstRun) { - setWeatherClickListener(weatherViews); + setWeatherClickListener(weatherViews, true); } } - private void setWeatherClickListener(RemoteViews weatherViews) { - weatherViews.setOnClickPendingIntent(R.id.weather_panel, - WeatherUpdateService.getUpdateIntent(this, true)); + private void setWeatherClickListener(RemoteViews weatherViews, boolean forceRefresh) { + // Register an onClickListener on the Weather panel, default action is show forecast + PendingIntent pi = null; + if (forceRefresh) { + pi = WeatherUpdateService.getUpdateIntent(this, true); + } + + if (pi == null) { + Intent i = new Intent(this, ClockWidgetProvider.class); + i.setAction(Constants.ACTION_SHOW_FORECAST); + pi = PendingIntent.getBroadcast(this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT); + } + weatherViews.setOnClickPendingIntent(R.id.weather_panel, pi); } + //=============================================================================================== // Calendar related functionality //=============================================================================================== private void refreshCalendar(RemoteViews calendarViews, int widgetId) { + final Resources res = getResources(); // Calendar icon: Overlay the selected color and set the imageview int color = Preferences.calendarFontColor(this); // Hide the icon if preference set if (Preferences.showCalendarIcon(this)) { calendarViews.setImageViewBitmap(R.id.calendar_icon, - WidgetUtils.getOverlaidBitmap(this, R.drawable.ic_lock_idle_calendar, color)); + IconUtils.getOverlaidBitmap(res, R.drawable.ic_lock_idle_calendar, color)); } else { calendarViews.setImageViewBitmap(R.id.calendar_icon, null); } // Set up and start the Calendar RemoteViews service - final Intent remoteAdapterIntent = new Intent(this, CalendarWidgetService.class); + final Intent remoteAdapterIntent = new Intent(this, CalendarViewsService.class); remoteAdapterIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId); remoteAdapterIntent.setData(Uri.parse(remoteAdapterIntent.toUri(Intent.URI_INTENT_SCHEME))); calendarViews.setRemoteAdapter(R.id.calendar_list, remoteAdapterIntent); diff --git a/src/com/cyanogenmod/lockclock/calendar/CalendarWidgetService.java b/src/com/cyanogenmod/lockclock/calendar/CalendarViewsService.java index a073280..893d8f7 100755 --- a/src/com/cyanogenmod/lockclock/calendar/CalendarWidgetService.java +++ b/src/com/cyanogenmod/lockclock/calendar/CalendarViewsService.java @@ -48,7 +48,7 @@ import java.util.Calendar; import java.util.Date; import java.util.Set; -public class CalendarWidgetService extends RemoteViewsService { +public class CalendarViewsService extends RemoteViewsService { @Override public RemoteViewsFactory onGetViewFactory(Intent intent) { diff --git a/src/com/cyanogenmod/lockclock/misc/Constants.java b/src/com/cyanogenmod/lockclock/misc/Constants.java index db1b89f..751de2d 100755 --- a/src/com/cyanogenmod/lockclock/misc/Constants.java +++ b/src/com/cyanogenmod/lockclock/misc/Constants.java @@ -34,6 +34,7 @@ public class Constants { public static final String CLOCK_AM_PM_INDICATOR = "clock_am_pm_indicator"; public static final String SHOW_WEATHER = "show_weather"; + public static final String WEATHER_SOURCE = "weather_source"; public static final String WEATHER_USE_CUSTOM_LOCATION = "weather_use_custom_location"; public static final String WEATHER_CUSTOM_LOCATION_ID = "weather_custom_location_id"; public static final String WEATHER_CUSTOM_LOCATION_CITY = "weather_custom_location_city"; @@ -42,12 +43,13 @@ public class Constants { public static final String WEATHER_USE_METRIC = "weather_use_metric"; public static final String WEATHER_INVERT_LOWHIGH = "weather_invert_lowhigh"; public static final String WEATHER_REFRESH_INTERVAL = "weather_refresh_interval"; - public static final String WEATHER_USE_ALTERNATE_ICONS = "weather_use_alternate_icons"; public static final String WEATHER_LOCATION_ID = "weather_woeid"; public static final String WEATHER_SHOW_WHEN_MINIMIZED = "weather_show_when_minimized"; public static final String WEATHER_FONT_COLOR = "weather_font_color"; public static final String WEATHER_TIMESTAMP_FONT_COLOR = "weather_timestamp_font_color"; - + public static final String WEATHER_ICONS = "weather_icons"; + public static final String MONOCHROME = "mono"; + public static final String COLOR_STD = "color"; public static final String SHOW_CALENDAR = "show_calendar"; public static final String CALENDAR_LIST = "calendar_list"; public static final String CALENDAR_LOOKAHEAD = "calendar_lookahead"; @@ -89,5 +91,8 @@ public class Constants { public static final String DEFAULT_LIGHT_COLOR = "#ffffffff"; public static final String DEFAULT_DARK_COLOR = "#80ffffff"; + + // Intent actions + public static final String ACTION_SHOW_FORECAST = "com.cyanogenmod.lockclock.action.SHOW_FORECAST"; } diff --git a/src/com/cyanogenmod/lockclock/misc/IconUtils.java b/src/com/cyanogenmod/lockclock/misc/IconUtils.java new file mode 100644 index 0000000..437d075 --- /dev/null +++ b/src/com/cyanogenmod/lockclock/misc/IconUtils.java @@ -0,0 +1,153 @@ +/* + * Copyright (C) 2013 The CyanogenMod Project (DvTonder) + * + * 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 com.cyanogenmod.lockclock.misc; + +import android.content.Context; +import android.content.pm.PackageManager; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.util.DisplayMetrics; +import android.util.Log; +import com.cyanogenmod.lockclock.R; + +public class IconUtils { + private static final String TAG = "IconUtils"; + private static boolean D = Constants.DEBUG; + + public static int getWeatherIconResource(Context context, String iconSet, int conditionCode) { + if (iconSet.startsWith("ext:") || iconSet.equals(Constants.MONOCHROME)) { + return 0; + } + + final Resources res = context.getResources(); + final int resId = res.getIdentifier("weather_" + iconSet + "_" + conditionCode, + "drawable", context.getPackageName()); + + if (resId != 0) { + return resId; + } + + // Use the default color set unknown icon + return R.drawable.weather_color_na; + } + + public static Bitmap getWeatherIconBitmap(Context context, String iconSet, + int color, int conditionCode) { + return getWeatherIconBitmap(context, iconSet, color, conditionCode, 0); + } + + public static Bitmap getWeatherIconBitmap(Context context, String iconSet, + int color, int conditionCode, int density) { + boolean isMonoSet = Constants.MONOCHROME.equals(iconSet); + Resources res = null; + int resId = 0; + + if (iconSet.startsWith("ext:")) { + String packageName = iconSet.substring(4); + try { + res = context.getPackageManager().getResourcesForApplication(packageName); + resId = res.getIdentifier("weather_" + conditionCode, "drawable", packageName); + } catch (PackageManager.NameNotFoundException e) { + // fall back to colored icons + iconSet = Constants.COLOR_STD; + } + } + if (resId == 0) { + String identifier = isMonoSet + ? "weather_" + conditionCode : "weather_" + iconSet + "_" + conditionCode; + res = context.getResources(); + resId = res.getIdentifier(identifier, "drawable", context.getPackageName()); + } + + if (resId == 0) { + resId = isMonoSet ? R.drawable.weather_na : R.drawable.weather_color_na; + } + + return getOverlaidBitmap(res, resId, isMonoSet ? color : 0, density); + } + + public static Bitmap getOverlaidBitmap(Resources res, int resId, int color) { + return getOverlaidBitmap(res, resId, color, 0); + } + + public static Bitmap getOverlaidBitmap(Resources res, int resId, int color, int density) { + Bitmap src = getBitmapFromResource(res, resId, density); + if (color == 0 || src == null) { + return src; + } + + final Bitmap dest = Bitmap.createBitmap(src.getWidth(), src.getHeight(), + Bitmap.Config.ARGB_8888); + Canvas c = new Canvas(dest); + final Paint paint = new Paint(); + + // Overlay the selected color and set the imageview + paint.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_ATOP)); + c.drawBitmap(src, 0, 0, paint); + return dest; + } + + public static Bitmap getBitmapFromResource(Resources res, int resId, int density) { + if (density == 0) { + if (D) Log.d(TAG, "Decoding resource id = " + resId + " for default density"); + return BitmapFactory.decodeResource(res, resId); + } + + if (D) Log.d(TAG, "Decoding resource id = " + resId + " for density = " + density); + Drawable d = res.getDrawableForDensity(resId, density); + if (d instanceof BitmapDrawable) { + BitmapDrawable bd = (BitmapDrawable) d; + return bd.getBitmap(); + } + + Bitmap result = Bitmap.createBitmap(d.getIntrinsicWidth(), + d.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(result); + d.setBounds(0, 0, result.getWidth(), result.getHeight()); + d.draw(canvas); + canvas.setBitmap(null); + + return result; + } + + public static int getNextHigherDensity(Context context) { + Resources res = context.getResources(); + int density = res.getDisplayMetrics().densityDpi; + + if (density == DisplayMetrics.DENSITY_LOW) { + return DisplayMetrics.DENSITY_MEDIUM; + } else if (density == DisplayMetrics.DENSITY_MEDIUM) { + return DisplayMetrics.DENSITY_HIGH; + } else if (density == DisplayMetrics.DENSITY_HIGH) { + return DisplayMetrics.DENSITY_XHIGH; + } else if (density == DisplayMetrics.DENSITY_XHIGH) { + return DisplayMetrics.DENSITY_XXHIGH; + } else if (density == DisplayMetrics.DENSITY_XXHIGH) { + return DisplayMetrics.DENSITY_XXXHIGH; + } + + // fallback: use current density + return density; + } +} diff --git a/src/com/cyanogenmod/lockclock/misc/Preferences.java b/src/com/cyanogenmod/lockclock/misc/Preferences.java index a6c5c77..8e4c165 100644 --- a/src/com/cyanogenmod/lockclock/misc/Preferences.java +++ b/src/com/cyanogenmod/lockclock/misc/Preferences.java @@ -20,7 +20,10 @@ import android.content.Context; import android.content.SharedPreferences; import android.graphics.Color; +import com.cyanogenmod.lockclock.weather.OpenWeatherMapProvider; import com.cyanogenmod.lockclock.weather.WeatherInfo; +import com.cyanogenmod.lockclock.weather.WeatherProvider; +import com.cyanogenmod.lockclock.weather.YahooWeatherProvider; import java.util.Calendar; import java.util.Set; @@ -137,8 +140,8 @@ public class Preferences { return getPrefs(context).getBoolean(Constants.WEATHER_INVERT_LOWHIGH, false); } - public static boolean useAlternateWeatherIcons(Context context) { - return getPrefs(context).getBoolean(Constants.WEATHER_USE_ALTERNATE_ICONS, true); + public static String getWeatherIconSet(Context context) { + return getPrefs(context).getString(Constants.WEATHER_ICONS, "color"); } public static boolean useMetricUnits(Context context) { @@ -154,6 +157,10 @@ public class Preferences { return getPrefs(context).getBoolean(Constants.WEATHER_USE_CUSTOM_LOCATION, false); } + public static void setUseCustomWeatherLocation(Context context, boolean value) { + getPrefs(context).edit().putBoolean(Constants.WEATHER_USE_CUSTOM_LOCATION, value).apply(); + } + public static String customWeatherLocationId(Context context) { return getPrefs(context).getString(Constants.WEATHER_CUSTOM_LOCATION_ID, null); } @@ -166,6 +173,18 @@ public class Preferences { return getPrefs(context).getString(Constants.WEATHER_CUSTOM_LOCATION_CITY, null); } + public static void setCustomWeatherLocationCity(Context context, String city) { + getPrefs(context).edit().putString(Constants.WEATHER_CUSTOM_LOCATION_CITY, city).apply(); + } + + public static WeatherProvider weatherProvider(Context context) { + String name = getPrefs(context).getString(Constants.WEATHER_SOURCE, "yahoo"); + if (name.equals("openweathermap")) { + return new OpenWeatherMapProvider(context); + } + return new YahooWeatherProvider(context); + } + public static void setCachedWeatherInfo(Context context, long timestamp, WeatherInfo data) { SharedPreferences.Editor editor = getPrefs(context).edit(); editor.putLong(Constants.WEATHER_LAST_UPDATE, timestamp); diff --git a/src/com/cyanogenmod/lockclock/misc/WidgetUtils.java b/src/com/cyanogenmod/lockclock/misc/WidgetUtils.java index 465ddc2..e080793 100644 --- a/src/com/cyanogenmod/lockclock/misc/WidgetUtils.java +++ b/src/com/cyanogenmod/lockclock/misc/WidgetUtils.java @@ -23,13 +23,8 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffColorFilter; -import android.graphics.Bitmap.Config; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; import android.os.Build; import android.os.Bundle; import android.util.Log; @@ -46,22 +41,6 @@ public class WidgetUtils { private static final boolean D = Constants.DEBUG; /** - * Load a resource by Id and overlay with a specified color - */ - public static Bitmap getOverlaidBitmap(Context context, int resId, int overlayColor) { - final Resources res = context.getResources(); - final Bitmap src = BitmapFactory.decodeResource(res, resId); - final Bitmap dest = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Config.ARGB_8888); - Canvas c = new Canvas(dest); - final Paint paint = new Paint(); - - // Overlay the selected color and set the imageview - paint.setColorFilter(new PorterDuffColorFilter(overlayColor, PorterDuff.Mode.SRC_ATOP)); - c.drawBitmap(src, 0, 0, paint); - return dest; - } - - /** * Decide whether to show the small Weather panel */ public static boolean showSmallWidget(Context context, int id, boolean digitalClock, boolean isKeyguard) { @@ -214,7 +193,27 @@ public class WidgetUtils { /** * API level check to see if the new API 17 TextClock is available */ - public static boolean isTextClockAvailable(){ + public static boolean isTextClockAvailable() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1; } + + /** + * API level check to see if the new API 19 transparencies are available + */ + public static boolean isTranslucencyAvailable() { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT; + } + + /** + * Networking available check + */ + public static boolean isNetworkAvailable(Context context) { + ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo info = cm.getActiveNetworkInfo(); + if (info == null || !info.isConnected() || !info.isAvailable()) { + if (D) Log.d(TAG, "No network connection is available for weather update"); + return false; + } + return true; + } } diff --git a/src/com/cyanogenmod/lockclock/preference/CustomLocationPreference.java b/src/com/cyanogenmod/lockclock/preference/CustomLocationPreference.java index d88809a..6d0992f 100644 --- a/src/com/cyanogenmod/lockclock/preference/CustomLocationPreference.java +++ b/src/com/cyanogenmod/lockclock/preference/CustomLocationPreference.java @@ -33,7 +33,6 @@ import android.widget.Toast; import com.cyanogenmod.lockclock.R; import com.cyanogenmod.lockclock.misc.Preferences; import com.cyanogenmod.lockclock.weather.WeatherProvider.LocationResult; -import com.cyanogenmod.lockclock.weather.YahooWeatherProvider; import java.util.HashSet; import java.util.List; @@ -112,7 +111,7 @@ public class CustomLocationPreference extends EditTextPreference { @Override protected List<LocationResult> doInBackground(Void... input) { - return new YahooWeatherProvider(getContext()).getLocations(mLocation); + return Preferences.weatherProvider(getContext()).getLocations(mLocation); } @Override diff --git a/src/com/cyanogenmod/lockclock/preference/IconSelectionPreference.java b/src/com/cyanogenmod/lockclock/preference/IconSelectionPreference.java new file mode 100644 index 0000000..87309a2 --- /dev/null +++ b/src/com/cyanogenmod/lockclock/preference/IconSelectionPreference.java @@ -0,0 +1,314 @@ +/* + * Copyright (C) 2013 The CyanogenMod Project (DvTonder) + * + * 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 com.cyanogenmod.lockclock.preference; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Locale; + +import android.app.AlertDialog; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.os.Bundle; +import android.preference.DialogPreference; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.GridView; +import android.widget.ImageView; +import android.widget.TextView; + +import com.cyanogenmod.lockclock.R; + +public class IconSelectionPreference extends DialogPreference implements + AdapterView.OnItemClickListener { + private static final String INTENT_CATEGORY_ICONPACK = "com.dvtonder.chronus.ICON_PACK"; + + private static final String SEARCH_URI = "https://market.android.com/search?q=%s&c=apps"; + private static final String APP_URI = "market://details?id=%s"; + + private static class IconSetDescriptor { + String name; + CharSequence description; + int descriptionResId; + Drawable previewDrawable; + int previewResId; + public IconSetDescriptor(String name, int descriptionResId, + int previewResId) { + this.name = name; + this.descriptionResId = descriptionResId; + this.previewResId = previewResId; + } + public IconSetDescriptor(String packageName, CharSequence description, + Drawable preview) { + this.name = "ext:" + packageName; + this.description = description; + this.previewDrawable = preview; + } + public CharSequence getDescription(Context context) { + if (description != null) { + return description; + } + return context.getString(descriptionResId); + } + @Override + public boolean equals(Object other) { + if (other instanceof IconSetDescriptor) { + IconSetDescriptor o = (IconSetDescriptor) other; + return name.equals(o.name); + } + return false; + } + } + + private static final IconSetDescriptor ICON_SETS[] = new IconSetDescriptor[] { + new IconSetDescriptor("color", R.string.weather_icons_standard, + R.drawable.weather_color_28), + new IconSetDescriptor("mono", R.string.weather_icons_monochrome, + R.drawable.weather_28), + new IconSetDescriptor("vclouds", R.string.weather_icons_vclouds, + R.drawable.weather_vclouds_28) + }; + + private static final IntentFilter PACKAGE_CHANGE_FILTER = new IntentFilter(); + static { + PACKAGE_CHANGE_FILTER.addAction(Intent.ACTION_PACKAGE_ADDED); + PACKAGE_CHANGE_FILTER.addAction(Intent.ACTION_PACKAGE_REMOVED); + PACKAGE_CHANGE_FILTER.addDataScheme("package"); + } + + private IconSetAdapter mAdapter; + private GridView mGrid; + private String mValue; + private String mSelectedValue; + private String mPreviousSelection; + + private BroadcastReceiver mPackageChangeReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + mAdapter.reenumerateIconSets(); + if (getValueIndex(mSelectedValue) == GridView.INVALID_POSITION) { + selectValue(mAdapter.getItem(0).name); + } else { + // index might have changed + selectValue(mSelectedValue); + } + } + }; + + public IconSelectionPreference(Context context, AttributeSet attrs) { + super(context, attrs); + mAdapter = new IconSetAdapter(getContext()); + } + + public CharSequence getEntry() { + int index = getValueIndex(mValue); + if (index != GridView.INVALID_POSITION) { + return mAdapter.getItem(index).getDescription(getContext()); + } + return null; + } + + @Override + protected void onPrepareDialogBuilder(AlertDialog.Builder builder) { + super.onPrepareDialogBuilder(builder); + builder.setNeutralButton(R.string.icon_set_selection_get_more, null); + } + + @Override + protected void showDialog(Bundle state) { + getContext().registerReceiver(mPackageChangeReceiver, PACKAGE_CHANGE_FILTER); + super.showDialog(state); + + AlertDialog d = (AlertDialog) getDialog(); + d.getButton(DialogInterface.BUTTON_NEUTRAL).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + String uri = String.format(Locale.US, SEARCH_URI, + getContext().getString(R.string.icon_set_store_filter)); + viewUri(getContext(), uri); + } + }); + } + + @Override + protected void onDialogClosed(boolean positiveResult) { + super.onDialogClosed(positiveResult); + + int selected = mGrid.getCheckedItemPosition(); + if (positiveResult && selected != GridView.INVALID_POSITION) { + IconSetDescriptor descriptor = mAdapter.getItem(selected); + if (callChangeListener(descriptor.name)) { + mValue = descriptor.name; + persistString(descriptor.name); + } + } + + getContext().unregisterReceiver(mPackageChangeReceiver); + } + + @Override + protected Object onGetDefaultValue(TypedArray a, int index) { + return a.getString(index); + } + + @Override + protected void onSetInitialValue(boolean restorePersistedValue, Object defaultValue) { + String defValue = (String) defaultValue; + mValue = restorePersistedValue ? getPersistedString(defValue) : defValue; + } + + @Override + public void onItemClick(AdapterView<?> parent, View view, int position, long id) { + IconSetDescriptor descriptor = mAdapter.getItem(mGrid.getCheckedItemPosition()); + mSelectedValue = descriptor.name; + mPreviousSelection = mSelectedValue; + } + + @Override + protected View onCreateDialogView() { + LayoutInflater inflater = LayoutInflater.from(getContext()); + View view = inflater.inflate(R.layout.icon_style_selection, null); + + mGrid = (GridView) view.findViewById(R.id.icon_list); + mGrid.setAdapter(mAdapter); + mGrid.setOnItemClickListener(this); + + selectValue(mValue); + + return view; + } + + private void selectValue(String value) { + int index = getValueIndex(value); + if (index == GridView.INVALID_POSITION) { + index = 0; + } + mGrid.setItemChecked(index, true); + mSelectedValue = mAdapter.getItem(index).name; + mPreviousSelection = mSelectedValue; + } + + private int getValueIndex(String value) { + int count = mAdapter.getCount(); + for (int i = 0; i < count; i++) { + if (mAdapter.getItem(i).name.equals(value)) { + return i; + } + } + return GridView.INVALID_POSITION; + } + + private static void viewUri(Context context, String uri) { + final Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setData(Uri.parse(uri)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + context.startActivity(intent); + } + + private static class IconSetAdapter extends ArrayAdapter<IconSetDescriptor> { + private LayoutInflater mInflater; + + public IconSetAdapter(Context context) { + super(context, R.layout.icon_item, 0, populateIconSets(context)); + mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + } + + public void reenumerateIconSets() { + ArrayList<IconSetDescriptor> newSets = populateIconSets(getContext()); + boolean changed = false; + + if (newSets.size() != getCount()) { + changed = true; + } else { + for (int i = 0; i < getCount(); i++) { + if (!newSets.get(i).equals(getItem(i))) { + changed = true; + break; + } + } + } + + if (changed) { + setNotifyOnChange(false); + clear(); + addAll(newSets); + notifyDataSetChanged(); + } + } + + private static ArrayList<IconSetDescriptor> populateIconSets(Context context) { + ArrayList<IconSetDescriptor> result = new ArrayList<IconSetDescriptor>(); + for (IconSetDescriptor desc : ICON_SETS) { + result.add(desc); + } + + PackageManager pm = context.getPackageManager(); + Intent i = new Intent(Intent.ACTION_MAIN); + i.addCategory(INTENT_CATEGORY_ICONPACK); + + HashSet<String> installedIconPacks = new HashSet<String>(); + + for (ResolveInfo info : pm.queryIntentActivities(i, 0)) { + ApplicationInfo appInfo = info.activityInfo.applicationInfo; + try { + Resources res = pm.getResourcesForApplication(appInfo); + int previewResId = res.getIdentifier("weather_28", "drawable", appInfo.packageName); + Drawable preview = previewResId != 0 ? res.getDrawable(previewResId) : null; + result.add(new IconSetDescriptor(appInfo.packageName, + appInfo.loadLabel(pm), preview)); + installedIconPacks.add(appInfo.packageName.toLowerCase(Locale.US)); + } catch (PackageManager.NameNotFoundException e) { + // shouldn't happen, ignore package + } + } + return result; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + if (convertView == null) { + convertView = mInflater.inflate(R.layout.icon_item, parent, false); + } + + IconSetDescriptor descriptor = getItem(position); + ImageView preview = (ImageView) convertView.findViewById(R.id.preview); + TextView name = (TextView) convertView.findViewById(R.id.name); + + if (descriptor.previewDrawable != null) { + preview.setImageDrawable(descriptor.previewDrawable); + } else { + preview.setImageResource(descriptor.previewResId); + } + name.setText(descriptor.getDescription(getContext())); + return convertView; + } + } +} diff --git a/src/com/cyanogenmod/lockclock/preference/Preferences.java b/src/com/cyanogenmod/lockclock/preference/Preferences.java index bb9faa2..f60ab4d 100755 --- a/src/com/cyanogenmod/lockclock/preference/Preferences.java +++ b/src/com/cyanogenmod/lockclock/preference/Preferences.java @@ -16,6 +16,7 @@ package com.cyanogenmod.lockclock.preference; +import android.annotation.SuppressLint; import android.appwidget.AppWidgetManager; import android.content.Intent; import android.preference.PreferenceActivity; @@ -77,4 +78,14 @@ public class Preferences extends PreferenceActivity { setResult(result, new Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mNewWidgetId)); } } + + /** + * This is required to be able to build with API level 19 + */ + @SuppressLint("Override") + @Override + public boolean isValidFragment(String fragmentName) { + // Assume a valid fragment name at all times + return true; + } } diff --git a/src/com/cyanogenmod/lockclock/preference/WeatherPreferences.java b/src/com/cyanogenmod/lockclock/preference/WeatherPreferences.java index 327b3e1..9b06246 100644 --- a/src/com/cyanogenmod/lockclock/preference/WeatherPreferences.java +++ b/src/com/cyanogenmod/lockclock/preference/WeatherPreferences.java @@ -58,6 +58,8 @@ public class WeatherPreferences extends PreferenceFragment implements private ListPreference mFontColor; private ListPreference mTimestampFontColor; private CheckBoxPreference mUseMetric; + private IconSelectionPreference mIconSet; + private CheckBoxPreference mUseCustomlocation; private Context mContext; private ContentResolver mResolver; @@ -73,16 +75,15 @@ public class WeatherPreferences extends PreferenceFragment implements // Load items that need custom summaries etc. mUseCustomLoc = (CheckBoxPreference) findPreference(Constants.WEATHER_USE_CUSTOM_LOCATION); mCustomWeatherLoc = (EditTextPreference) findPreference(Constants.WEATHER_CUSTOM_LOCATION_CITY); - mFontColor = (ListPreference) findPreference(Constants.WEATHER_FONT_COLOR); mTimestampFontColor = (ListPreference) findPreference(Constants.WEATHER_TIMESTAMP_FONT_COLOR); - + mIconSet = (IconSelectionPreference) findPreference(Constants.WEATHER_ICONS); mUseMetric = (CheckBoxPreference) findPreference(Constants.WEATHER_USE_METRIC); + mUseCustomlocation = (CheckBoxPreference) findPreference(Constants.WEATHER_USE_CUSTOM_LOCATION); // Show a warning if location manager is disabled and there is no custom location set - if (!Settings.Secure.isLocationProviderEnabled(mResolver, - LocationManager.NETWORK_PROVIDER) - && !mUseCustomLoc.isChecked()) { + LocationManager lm = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE); + if (!lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER) && !mUseCustomLoc.isChecked()) { showDialog(); } } @@ -93,6 +94,7 @@ public class WeatherPreferences extends PreferenceFragment implements getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); updateLocationSummary(); updateFontColorsSummary(); + updateIconSetSummary(); } @Override @@ -109,12 +111,16 @@ public class WeatherPreferences extends PreferenceFragment implements pref.setSummary(listPref.getEntry()); } + boolean needWeatherUpdate = false; + boolean forceWeatherUpdate = false; + if (pref == mUseCustomLoc || pref == mCustomWeatherLoc) { updateLocationSummary(); } - boolean needWeatherUpdate = false; - boolean forceWeatherUpdate = false; + if (pref == mIconSet) { + updateIconSetSummary(); + } if (pref == mUseMetric) { // The display format of the temperatures have changed @@ -122,20 +128,23 @@ public class WeatherPreferences extends PreferenceFragment implements forceWeatherUpdate = true; } - for (String k : LOCATION_PREF_KEYS) { - if (TextUtils.equals(key, k)) { - // location pref has changed -> clear out location id cache - Preferences.setCachedLocationId(mContext, null); - forceWeatherUpdate = true; - break; - } + // If the weather source has changes, invalidate the custom location settings and change + // back to GeoLocation to force the user to specify a new custom location if needed + if (TextUtils.equals(key, Constants.WEATHER_SOURCE)) { + Preferences.setCustomWeatherLocationId(mContext, null); + Preferences.setCustomWeatherLocationCity(mContext, null); + Preferences.setUseCustomWeatherLocation(mContext, false); + mUseCustomlocation.setChecked(false); + updateLocationSummary(); } - for (String k : WEATHER_REFRESH_KEYS) { - if (TextUtils.equals(key, k)) { - needWeatherUpdate = true; - break; - } + if (key.equals(Constants.WEATHER_USE_CUSTOM_LOCATION) + || key.equals(Constants.WEATHER_CUSTOM_LOCATION_CITY)) { + forceWeatherUpdate = true; + } + + if (key.equals(Constants.SHOW_WEATHER) || key.equals(Constants.WEATHER_REFRESH_INTERVAL)) { + needWeatherUpdate = true; } if (Constants.DEBUG) { @@ -200,4 +209,10 @@ public class WeatherPreferences extends PreferenceFragment implements mTimestampFontColor.setSummary(mTimestampFontColor.getEntry()); } } + + private void updateIconSetSummary() { + if (mIconSet != null) { + mIconSet.setSummary(mIconSet.getEntry()); + } + } } diff --git a/src/com/cyanogenmod/lockclock/weather/ForecastActivity.java b/src/com/cyanogenmod/lockclock/weather/ForecastActivity.java new file mode 100644 index 0000000..2409cb8 --- /dev/null +++ b/src/com/cyanogenmod/lockclock/weather/ForecastActivity.java @@ -0,0 +1,147 @@ +/* + * Copyright (C) 2013 David van Tonder + * + * 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 com.cyanogenmod.lockclock.weather; + +import android.annotation.SuppressLint; +import android.app.Activity; +import android.app.KeyguardManager; +import android.app.WallpaperManager; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.Window; +import android.view.WindowManager; +import android.view.animation.Animation; +import android.view.animation.LinearInterpolator; +import android.view.animation.RotateAnimation; +import android.widget.ImageView; + +import com.cyanogenmod.lockclock.misc.Constants; +import com.cyanogenmod.lockclock.misc.Preferences; +import com.cyanogenmod.lockclock.misc.WidgetUtils; +import com.cyanogenmod.lockclock.R; + +public class ForecastActivity extends Activity implements OnClickListener { + private static final String TAG = "ForecastActivity"; + + private BroadcastReceiver mUpdateReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + // Stop the animation + ImageView view = (ImageView) findViewById(R.id.weather_refresh); + view.setAnimation(null); + + if (!intent.getBooleanExtra(WeatherUpdateService.EXTRA_UPDATE_CANCELLED, false)) { + updateForecastPanel(); + } + } + }; + + @SuppressLint("InlinedApi") + @Override + public void onCreate(Bundle savedInstanceState) { + // If we are in keyguard, override the default transparent theme + KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); + boolean locked = km.isKeyguardLocked(); + if (locked) { + if (WidgetUtils.isTranslucencyAvailable()) { + setTheme(android.R.style.Theme_Holo_NoActionBar_TranslucentDecor); + } else { + setTheme(android.R.style.Theme_Holo_NoActionBar); + } + } + super.onCreate(savedInstanceState); + + // Get the window ready + Window window = getWindow(); + requestWindowFeature(Window.FEATURE_NO_TITLE); + if (locked) { + window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED + | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this); + final Drawable wallpaperDrawable = wallpaperManager.getFastDrawable(); + window.setBackgroundDrawable(wallpaperDrawable); + } else if (WidgetUtils.isTranslucencyAvailable()) { + window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, + WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); + window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, + WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + } + + registerReceiver(mUpdateReceiver, new IntentFilter(WeatherUpdateService.ACTION_UPDATE_FINISHED)); + updateForecastPanel(); + } + + @Override + protected void onDestroy() { + unregisterReceiver(mUpdateReceiver); + super.onDestroy(); + } + + @Override + protected void onUserLeaveHint() { + super.onUserLeaveHint(); + finish(); + } + + private void updateForecastPanel() { + // Get the forecasts data + WeatherInfo weather = Preferences.getCachedWeatherInfo(this); + if (weather == null) { + Log.e(TAG, "Error retrieving forecast data, exiting"); + finish(); + return; + } + + View fullLayout = ForecastBuilder.buildFullPanel(this, R.layout.forecast_activity, weather); + setContentView(fullLayout); + fullLayout.requestFitSystemWindows(); + + // Register an onClickListener on Weather refresh + findViewById(R.id.weather_refresh).setOnClickListener(this); + + // Register an onClickListener on the fake done button + findViewById(R.id.button).setOnClickListener(this); + } + + @Override + public void onClick(View v) { + if (v.getId() != R.id.button) { + // Setup anim with desired properties and start the animation + ImageView view = (ImageView) findViewById(R.id.weather_refresh); + RotateAnimation anim = new RotateAnimation(0.0f, 360.0f, + Animation.RELATIVE_TO_SELF, 0.5f, + Animation.RELATIVE_TO_SELF, 0.5f); + anim.setInterpolator(new LinearInterpolator()); + anim.setRepeatCount(Animation.INFINITE); + anim.setDuration(700); + view.startAnimation(anim); + + Intent i = new Intent(this, WeatherUpdateService.class); + i.setAction(WeatherUpdateService.ACTION_FORCE_UPDATE); + startService(i); + } else { + finish(); + } + } +} diff --git a/src/com/cyanogenmod/lockclock/weather/ForecastBuilder.java b/src/com/cyanogenmod/lockclock/weather/ForecastBuilder.java new file mode 100644 index 0000000..6f8da53 --- /dev/null +++ b/src/com/cyanogenmod/lockclock/weather/ForecastBuilder.java @@ -0,0 +1,174 @@ +/* + * Copyright (C) 2013 David van Tonder + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use context 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 com.cyanogenmod.lockclock.weather; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.Locale; +import java.util.TimeZone; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.text.format.DateFormat; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.webkit.WebView; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.cyanogenmod.lockclock.misc.IconUtils; +import com.cyanogenmod.lockclock.misc.Preferences; +import com.cyanogenmod.lockclock.misc.WidgetUtils; +import com.cyanogenmod.lockclock.weather.WeatherInfo.DayForecast; +import com.cyanogenmod.lockclock.R; + +public class ForecastBuilder { + private static final String TAG = "ForecastBuilder"; + + /** + * This method is used to build the full current conditions and horizontal forecasts + * panels + * + * @param context + * @param w = the Weather info object that contains the forecast data + * @return = a built view that can be displayed + */ + @SuppressLint("SetJavaScriptEnabled") + public static View buildFullPanel(Context context, int resourceId, WeatherInfo w) { + + // Load some basic settings + LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + int color = Preferences.weatherFontColor(context); + boolean invertLowHigh = Preferences.invertLowHighTemperature(context); + + View view = inflater.inflate(resourceId, null); + + // Set the weather source + TextView weatherSource = (TextView) view.findViewById(R.id.weather_source); + weatherSource.setText(Preferences.weatherProvider(context).getNameResourceId()); + + // Set the current conditions + // Weather Image + ImageView weatherImage = (ImageView) view.findViewById(R.id.weather_image); + String iconsSet = Preferences.getWeatherIconSet(context); + weatherImage.setImageBitmap(w.getConditionBitmap(iconsSet, color, + IconUtils.getNextHigherDensity(context))); + + // Weather Condition + TextView weatherCondition = (TextView) view.findViewById(R.id.weather_condition); + weatherCondition.setText(w.getCondition()); + + // Weather Temps + TextView weatherTemp = (TextView) view.findViewById(R.id.weather_temp); + weatherTemp.setText(w.getFormattedTemperature()); + + // City + TextView city = (TextView) view.findViewById(R.id.weather_city); + city.setText(w.getCity()); + + // Weather Update Time + Date lastUpdate = w.getTimestamp(); + StringBuilder sb = new StringBuilder(); + sb.append(DateFormat.format("E", lastUpdate)); + sb.append(" "); + sb.append(DateFormat.getTimeFormat(context).format(lastUpdate)); + TextView updateTime = (TextView) view.findViewById(R.id.update_time); + updateTime.setText(sb.toString()); + updateTime.setVisibility(Preferences.showWeatherTimestamp(context) ? View.VISIBLE : View.GONE); + + // Weather Temps Panel additional items + final String low = w.getFormattedLow(); + final String high = w.getFormattedHigh(); + TextView weatherLowHigh = (TextView) view.findViewById(R.id.weather_low_high); + weatherLowHigh.setText(invertLowHigh ? high + " | " + low : low + " | " + high); + + // Get things ready + LinearLayout forecastView = (LinearLayout) view.findViewById(R.id.forecast_view); + final View progressIndicator = view.findViewById(R.id.progress_indicator); + + // Build the forecast panel + if (buildSmallPanel(context, forecastView, w)) { + // Success, hide the progress container + progressIndicator.setVisibility(View.GONE); + } + + return view; + } + + /** + * This method is used to build the small, horizontal forecasts panel + * @param context + * @param smallPanel = a horizontal linearlayout that will contain the forecasts + * @param w = the Weather info object that contains the forecast data + */ + public static boolean buildSmallPanel(Context context, LinearLayout smallPanel, WeatherInfo w) { + if (smallPanel == null) { + Log.d(TAG, "Invalid view passed"); + return false; + } + + // Get things ready + LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + int color = Preferences.weatherFontColor(context); + boolean invertLowHigh = Preferences.invertLowHighTemperature(context); + + ArrayList<DayForecast> forecasts = w.getForecasts(); + if (forecasts == null || forecasts.size() <= 1) { + smallPanel.setVisibility(View.GONE); + return false; + } + + TimeZone MyTimezone = TimeZone.getDefault(); + Calendar calendar = new GregorianCalendar(MyTimezone); + + // Iterate through the forecasts + for (DayForecast d : forecasts) { + // Load the views + View forecastItem = inflater.inflate(R.layout.forecast_item, null); + + // The day of the week + TextView day = (TextView) forecastItem.findViewById(R.id.forecast_day); + day.setText(calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.getDefault())); + calendar.roll(Calendar.DAY_OF_WEEK, true); + + // Weather Image + ImageView image = (ImageView) forecastItem.findViewById(R.id.weather_image); + String iconsSet = Preferences.getWeatherIconSet(context); + int resId = d.getConditionResource(context, iconsSet); + if (resId != 0) { + image.setImageResource(resId); + } else { + image.setImageBitmap(d.getConditionBitmap(context, iconsSet, color)); + } + + // Temperatures + String dayLow = d.getFormattedLow(); + String dayHigh = d.getFormattedHigh(); + TextView temps = (TextView) forecastItem.findViewById(R.id.weather_temps); + temps.setText(invertLowHigh ? dayHigh + " " + dayLow : dayLow + " " + dayHigh); + + // Add the view + smallPanel.addView(forecastItem, + new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1)); + } + return true; + } +} diff --git a/src/com/cyanogenmod/lockclock/weather/HttpRetriever.java b/src/com/cyanogenmod/lockclock/weather/HttpRetriever.java index 957d6dc..60723fa 100755 --- a/src/com/cyanogenmod/lockclock/weather/HttpRetriever.java +++ b/src/com/cyanogenmod/lockclock/weather/HttpRetriever.java @@ -38,7 +38,7 @@ public class HttpRetriever { return EntityUtils.toString(entity); } } catch (IOException e) { - Log.e(TAG, "Couldn't retrieve data", e); + Log.e(TAG, "Couldn't retrieve data from url " + url, e); } return null; } diff --git a/src/com/cyanogenmod/lockclock/weather/OpenWeatherMapProvider.java b/src/com/cyanogenmod/lockclock/weather/OpenWeatherMapProvider.java new file mode 100644 index 0000000..808077c --- /dev/null +++ b/src/com/cyanogenmod/lockclock/weather/OpenWeatherMapProvider.java @@ -0,0 +1,311 @@ +package com.cyanogenmod.lockclock.weather; + +import java.util.*; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import android.content.Context; +import android.location.Location; +import android.net.Uri; +import android.util.Log; + +import com.cyanogenmod.lockclock.weather.WeatherInfo.DayForecast; +import com.cyanogenmod.lockclock.R; + +public class OpenWeatherMapProvider implements WeatherProvider { + private static final String TAG = "OpenWeatherMapProvider"; + + private static final int FORECAST_DAYS = 5; + private static final String SELECTION_LOCATION = "lat=%f&lon=%f"; + private static final String SELECTION_ID = "id=%s"; + + private static final String URL_LOCATION = + "http://api.openweathermap.org/data/2.5/find?q=%s&mode=json&lang=%s"; + private static final String URL_WEATHER = + "http://api.openweathermap.org/data/2.5/weather?%s&mode=json&units=%s&lang=%s"; + private static final String URL_FORECAST = + "http://api.openweathermap.org/data/2.5/forecast/daily?" + + "%s&mode=json&units=%s&lang=%s&cnt=" + FORECAST_DAYS; + + private Context mContext; + + public OpenWeatherMapProvider(Context context) { + mContext = context; + } + + @Override + public int getNameResourceId() { + return R.string.weather_source_openweathermap; + } + + @Override + public List<LocationResult> getLocations(String input) { + String url = String.format(URL_LOCATION, Uri.encode(input), getLanguageCode()); + String response = HttpRetriever.retrieve(url); + if (response == null) { + return null; + } + + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "URL = " + url + " returning a response of " + response); + } + + try { + JSONArray jsonResults = new JSONObject(response).getJSONArray("list"); + ArrayList<LocationResult> results = new ArrayList<LocationResult>(); + int count = jsonResults.length(); + + for (int i = 0; i < count; i++) { + JSONObject result = jsonResults.getJSONObject(i); + LocationResult location = new LocationResult(); + + location.id = result.getString("id"); + location.city = result.getString("name"); + location.countryId = result.getJSONObject("sys").getString("country"); + results.add(location); + } + + return results; + } catch (JSONException e) { + Log.w(TAG, "Received malformed location data (input=" + input + ")", e); + } + + return null; + } + + public WeatherInfo getWeatherInfo(String id, String localizedCityName, boolean metric) { + String selection = String.format(Locale.US, SELECTION_ID, id); + return handleWeatherRequest(selection, localizedCityName, metric); + } + + public WeatherInfo getWeatherInfo(Location location, boolean metric) { + String selection = String.format(Locale.US, SELECTION_LOCATION, + location.getLatitude(), location.getLongitude()); + return handleWeatherRequest(selection, null, metric); + } + + private WeatherInfo handleWeatherRequest(String selection, + String localizedCityName, boolean metric) { + String units = metric ? "metric" : "imperial"; + String locale = getLanguageCode(); + String conditionUrl = String.format(Locale.US, URL_WEATHER, selection, units, locale); + String conditionResponse = HttpRetriever.retrieve(conditionUrl); + if (conditionResponse == null) { + return null; + } + + String forecastUrl = String.format(Locale.US, URL_FORECAST, selection, units, locale); + String forecastResponse = HttpRetriever.retrieve(forecastUrl); + if (forecastResponse == null) { + return null; + } + + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "URL = " + conditionUrl + " returning a response of " + conditionResponse); + } + + try { + JSONObject conditions = new JSONObject(conditionResponse); + JSONObject weather = conditions.getJSONArray("weather").getJSONObject(0); + JSONObject conditionData = conditions.getJSONObject("main"); + JSONObject windData = conditions.getJSONObject("wind"); + ArrayList<DayForecast> forecasts = + parseForecasts(new JSONObject(forecastResponse).getJSONArray("list")); + int speedUnitResId = metric ? R.string.weather_kph : R.string.weather_mph; + if (localizedCityName == null) { + localizedCityName = conditions.getString("name"); + } + + WeatherInfo w = new WeatherInfo(mContext, conditions.getString("id"), localizedCityName, + /* condition */ weather.getString("main"), + /* conditionCode */ mapConditionIconToCode( + weather.getString("icon"), weather.getInt("id")), + /* temperature */ (float) conditionData.getDouble("temp"), + /* tempUnit */ metric ? "C" : "F", + /* humidity */ (float) conditionData.getDouble("humidity"), + /* wind */ (float) windData.getDouble("speed"), + /* windDir */ windData.getInt("deg"), + /* speedUnit */ mContext.getString(speedUnitResId), + forecasts, + System.currentTimeMillis()); + + Log.d(TAG, "Weather updated: " + w); + return w; + } catch (JSONException e) { + Log.w(TAG, "Received malformed weather data (selection = " + selection + + ", lang = " + locale + ")", e); + } + + return null; + } + + private ArrayList<DayForecast> parseForecasts(JSONArray forecasts) throws JSONException { + ArrayList<DayForecast> result = new ArrayList<DayForecast>(); + int count = forecasts.length(); + + if (count == 0) { + throw new JSONException("Empty forecasts array"); + } + for (int i = 0; i < count; i++) { + JSONObject forecast = forecasts.getJSONObject(i); + JSONObject temperature = forecast.getJSONObject("temp"); + JSONObject data = forecast.getJSONArray("weather").getJSONObject(0); + DayForecast item = new DayForecast( + /* low */ (float) temperature.getDouble("min"), + /* high */ (float) temperature.getDouble("max"), + /* condition */ data.getString("main"), + /* conditionCode */ mapConditionIconToCode( + data.getString("icon"), data.getInt("id"))); + result.add(item); + } + + return result; + } + + private static final HashMap<String, Integer> ICON_MAPPING = new HashMap<String, Integer>(); + static { + ICON_MAPPING.put("01d", 32); + ICON_MAPPING.put("01n", 31); + ICON_MAPPING.put("02d", 30); + ICON_MAPPING.put("02n", 29); + ICON_MAPPING.put("03d", 26); + ICON_MAPPING.put("03n", 26); + ICON_MAPPING.put("04d", 28); + ICON_MAPPING.put("04n", 27); + ICON_MAPPING.put("09d", 12); + ICON_MAPPING.put("09n", 11); + ICON_MAPPING.put("10d", 40); + ICON_MAPPING.put("10n", 45); + ICON_MAPPING.put("11d", 4); + ICON_MAPPING.put("11n", 4); + ICON_MAPPING.put("13d", 16); + ICON_MAPPING.put("13n", 16); + ICON_MAPPING.put("50d", 21); + ICON_MAPPING.put("50n", 20); + } + + private int mapConditionIconToCode(String icon, int conditionId) { + + // First, use condition ID for specific cases + switch (conditionId) { + // Thunderstorms + case 202: // thunderstorm with heavy rain + case 232: // thunderstorm with heavy drizzle + case 211: // thunderstorm + return 4; + case 212: // heavy thunderstorm + return 3; + case 221: // ragged thunderstorm + case 231: // thunderstorm with drizzle + case 201: // thunderstorm with rain + return 38; + case 230: // thunderstorm with light drizzle + case 200: // thunderstorm with light rain + case 210: // light thunderstorm + return 37; + + // Drizzle + case 300: // light intensity drizzle + case 301: // drizzle + case 302: // heavy intensity drizzle + case 310: // light intensity drizzle rain + case 311: // drizzle rain + case 312: // heavy intensity drizzle rain + case 313: // shower rain and drizzle + case 314: // heavy shower rain and drizzle + case 321: // shower drizzle + return 9; + + // Rain + case 500: // light rain + case 501: // moderate rain + case 520: // light intensity shower rain + case 521: // shower rain + case 531: // ragged shower rain + return 11; + case 502: // heavy intensity rain + case 503: // very heavy rain + case 504: // extreme rain + case 522: // heavy intensity shower rain + return 12; + case 511: // freezing rain + return 10; + + // Snow + case 600: case 620: return 14; // light snow + case 601: case 621: return 16; // snow + case 602: case 622: return 41; // heavy snow + case 611: case 612: return 18; // sleet + case 615: case 616: return 5; // rain and snow + + // Atmosphere + case 741: // fog + return 20; + case 711: // smoke + case 762: // volcanic ash + return 22; + case 701: // mist + case 721: // haze + return 21; + case 731: // sand/dust whirls + case 751: // sand + case 761: // dust + return 19; + case 771: // squalls + return 23; + case 781: // tornado + return 0; + + // Extreme + case 900: return 0; // tornado + case 901: return 1; // tropical storm + case 902: return 2; // hurricane + case 903: return 25; // cold + case 904: return 36; // hot + case 905: return 24; // windy + case 906: return 17; // hail + } + + // Not yet handled - Use generic icon mapping + Integer condition = ICON_MAPPING.get(icon); + if (condition != null) { + return condition; + } + + return -1; + } + + private static final HashMap<String, String> LANGUAGE_CODE_MAPPING = new HashMap<String, String>(); + static { + LANGUAGE_CODE_MAPPING.put("bg-", "bg"); + LANGUAGE_CODE_MAPPING.put("de-", "de"); + LANGUAGE_CODE_MAPPING.put("es-", "sp"); + LANGUAGE_CODE_MAPPING.put("fi-", "fi"); + LANGUAGE_CODE_MAPPING.put("fr-", "fr"); + LANGUAGE_CODE_MAPPING.put("it-", "it"); + LANGUAGE_CODE_MAPPING.put("nl-", "nl"); + LANGUAGE_CODE_MAPPING.put("pl-", "pl"); + LANGUAGE_CODE_MAPPING.put("pt-", "pt"); + LANGUAGE_CODE_MAPPING.put("ro-", "ro"); + LANGUAGE_CODE_MAPPING.put("ru-", "ru"); + LANGUAGE_CODE_MAPPING.put("se-", "se"); + LANGUAGE_CODE_MAPPING.put("tr-", "tr"); + LANGUAGE_CODE_MAPPING.put("uk-", "ua"); + LANGUAGE_CODE_MAPPING.put("zh-CN", "zh_cn"); + LANGUAGE_CODE_MAPPING.put("zh-TW", "zh_tw"); + } + private String getLanguageCode() { + Locale locale = mContext.getResources().getConfiguration().locale; + String selector = locale.getLanguage() + "-" + locale.getCountry(); + + for (Map.Entry<String, String> entry : LANGUAGE_CODE_MAPPING.entrySet()) { + if (selector.startsWith(entry.getKey())) { + return entry.getValue(); + } + } + + return "en"; + } +} diff --git a/src/com/cyanogenmod/lockclock/weather/WeatherInfo.java b/src/com/cyanogenmod/lockclock/weather/WeatherInfo.java index a857734..b7c09d5 100755 --- a/src/com/cyanogenmod/lockclock/weather/WeatherInfo.java +++ b/src/com/cyanogenmod/lockclock/weather/WeatherInfo.java @@ -21,9 +21,10 @@ import android.content.res.Resources; import android.graphics.Bitmap; import com.cyanogenmod.lockclock.R; -import com.cyanogenmod.lockclock.misc.WidgetUtils; +import com.cyanogenmod.lockclock.misc.IconUtils; import java.text.DecimalFormat; +import java.util.ArrayList; import java.util.Date; public class WeatherInfo { @@ -33,27 +34,24 @@ public class WeatherInfo { private String id; private String city; - private String forecastDate; private String condition; private int conditionCode; private float temperature; - private float lowTemperature; - private float highTemperature; private String tempUnit; private float humidity; private float wind; private int windDirection; private String speedUnit; private long timestamp; + private ArrayList<DayForecast> forecasts; public WeatherInfo(Context context, String id, - String city, String fdate, String condition, int conditionCode, - float temp, float low, float high, String tempUnit, float humidity, - float wind, int windDir, String speedUnit, long timestamp) { + String city, String condition, int conditionCode, float temp, + String tempUnit, float humidity, float wind, int windDir, + String speedUnit, ArrayList<DayForecast> forecasts, long timestamp) { this.mContext = context.getApplicationContext(); this.id = id; this.city = city; - this.forecastDate = fdate; this.condition = condition; this.conditionCode = conditionCode; this.humidity = humidity; @@ -62,27 +60,57 @@ public class WeatherInfo { this.speedUnit = speedUnit; this.timestamp = timestamp; this.temperature = temp; - this.lowTemperature = low; - this.highTemperature = high; this.tempUnit = tempUnit; + this.forecasts = forecasts; } - public int getConditionResource() { - final Resources res = mContext.getResources(); - final int resId = res.getIdentifier("weather2_" + conditionCode, "drawable", mContext.getPackageName()); - if (resId != 0) { - return resId; + public static class DayForecast { + public final float low, high; + public final int conditionCode; + public final String condition; + + public DayForecast(float low, float high, String condition, int conditionCode) { + this.low = low; + this.high = high; + this.condition = condition; + this.conditionCode = conditionCode; + } + + public String getFormattedLow() { + return getFormattedValue(low, "\u00b0"); } - return R.drawable.weather2_na; - } - public Bitmap getConditionBitmap(int color) { - final Resources res = mContext.getResources(); - int resId = res.getIdentifier("weather_" + conditionCode, "drawable", mContext.getPackageName()); - if (resId == 0) { - resId = R.drawable.weather_na; + public String getFormattedHigh() { + return getFormattedValue(high, "\u00b0"); } - return WidgetUtils.getOverlaidBitmap(mContext, resId, color); + + public int getConditionResource(Context context, String set) { + return IconUtils.getWeatherIconResource(context, set, conditionCode); + } + + public Bitmap getConditionBitmap(Context context, String set, int color) { + return IconUtils.getWeatherIconBitmap(context, set, color, conditionCode); + } + + public Bitmap getConditionBitmap(Context context, String set, int color, int density) { + return IconUtils.getWeatherIconBitmap(context, set, color, conditionCode, density); + } + + public String getCondition(Context context) { + return WeatherInfo.getCondition(context, conditionCode, condition); + } + } + + public int getConditionResource(String set) { + return IconUtils.getWeatherIconResource(mContext, set, conditionCode); + } + + public Bitmap getConditionBitmap(String set, int color) { + return IconUtils.getWeatherIconBitmap(mContext, set, color, conditionCode); + } + + public Bitmap getConditionBitmap(String set, int color, int density) { + return IconUtils.getWeatherIconBitmap(mContext, set, color, conditionCode, density); } public String getId() { @@ -94,8 +122,12 @@ public class WeatherInfo { } public String getCondition() { - final Resources res = mContext.getResources(); - final int resId = res.getIdentifier("weather_" + conditionCode, "string", mContext.getPackageName()); + return getCondition(mContext, conditionCode, condition); + } + + private static String getCondition(Context context, int conditionCode, String condition) { + final Resources res = context.getResources(); + final int resId = res.getIdentifier("weather_" + conditionCode, "string", context.getPackageName()); if (resId != 0) { return res.getString(resId); } @@ -106,23 +138,27 @@ public class WeatherInfo { return new Date(timestamp); } - private String getFormattedValue(float value, String unit) { - if (Float.isNaN(highTemperature)) { + private static String getFormattedValue(float value, String unit) { + if (Float.isNaN(value)) { return "-"; } - return sNoDigitsFormat.format(value) + unit; + String formatted = sNoDigitsFormat.format(value); + if (formatted.equals("-0")) { + formatted = "0"; + } + return formatted + unit; } public String getFormattedTemperature() { - return getFormattedValue(temperature, "°" + tempUnit); + return getFormattedValue(temperature, "\u00b0" + tempUnit); } public String getFormattedLow() { - return getFormattedValue(lowTemperature, "°"); + return forecasts.get(0).getFormattedLow(); } public String getFormattedHigh() { - return getFormattedValue(highTemperature, "°"); + return forecasts.get(0).getFormattedHigh(); } public String getFormattedHumidity() { @@ -153,6 +189,10 @@ public class WeatherInfo { return mContext.getString(resId); } + public ArrayList<DayForecast> getForecasts() { + return forecasts; + } + @Override public String toString() { StringBuilder builder = new StringBuilder(); @@ -178,6 +218,20 @@ public class WeatherInfo { builder.append(getFormattedWindSpeed()); builder.append(" at "); builder.append(getWindDirection()); + if (forecasts.size() > 0) { + builder.append(", forecasts:"); + } + for (int i = 0; i < forecasts.size(); i++) { + DayForecast d = forecasts.get(i); + if (i != 0) { + builder.append(";"); + } + builder.append(" day ").append(i + 1).append(": "); + builder.append("high ").append(d.getFormattedHigh()); + builder.append(", low ").append(d.getFormattedLow()); + builder.append(", ").append(d.condition); + builder.append("(").append(d.conditionCode).append(")"); + } return builder.toString(); } @@ -185,52 +239,88 @@ public class WeatherInfo { StringBuilder builder = new StringBuilder(); builder.append(id).append('|'); builder.append(city).append('|'); - builder.append(forecastDate).append('|'); builder.append(condition).append('|'); builder.append(conditionCode).append('|'); builder.append(temperature).append('|'); - builder.append(lowTemperature).append('|'); - builder.append(highTemperature).append('|'); builder.append(tempUnit).append('|'); builder.append(humidity).append('|'); builder.append(wind).append('|'); builder.append(windDirection).append('|'); builder.append(speedUnit).append('|'); - builder.append(timestamp); + builder.append(timestamp).append('|'); + serializeForecasts(builder); return builder.toString(); } + private void serializeForecasts(StringBuilder builder) { + builder.append(forecasts.size()); + for (DayForecast d : forecasts) { + builder.append(';'); + builder.append(d.high).append(';'); + builder.append(d.low).append(';'); + builder.append(d.condition).append(';'); + builder.append(d.conditionCode); + } + } + public static WeatherInfo fromSerializedString(Context context, String input) { if (input == null) { return null; } String[] parts = input.split("\\|"); - if (parts == null || parts.length != 14) { + if (parts == null || parts.length != 12) { return null; } int conditionCode, windDirection; long timestamp; - float temperature, low, high, humidity, wind; + float temperature, humidity, wind; + String[] forecastParts = parts[11].split(";"); + int forecastItems; + ArrayList<DayForecast> forecasts = new ArrayList<DayForecast>(); + // Parse the core data try { - conditionCode = Integer.parseInt(parts[4]); - temperature = Float.parseFloat(parts[5]); - low = Float.parseFloat(parts[6]); - high = Float.parseFloat(parts[7]); - humidity = Float.parseFloat(parts[9]); - wind = Float.parseFloat(parts[10]); - windDirection = Integer.parseInt(parts[11]); - timestamp = Long.parseLong(parts[13]); + conditionCode = Integer.parseInt(parts[3]); + temperature = Float.parseFloat(parts[4]); + humidity = Float.parseFloat(parts[6]); + wind = Float.parseFloat(parts[7]); + windDirection = Integer.parseInt(parts[8]); + timestamp = Long.parseLong(parts[10]); + forecastItems = forecastParts == null ? 0 : Integer.parseInt(forecastParts[0]); } catch (NumberFormatException e) { return null; } + if (forecastItems == 0 || forecastParts.length != 4 * forecastItems + 1) { + return null; + } + + // Parse the forecast data + try { + for (int item = 0; item < forecastItems; item ++) { + int offset = item * 4 + 1; + DayForecast day = new DayForecast( + /* low */ Float.parseFloat(forecastParts[offset + 1]), + /* high */ Float.parseFloat(forecastParts[offset]), + /* condition */ forecastParts[offset + 2], + /* conditionCode */ Integer.parseInt(forecastParts[offset + 3])); + if (!Float.isNaN(day.low) && !Float.isNaN(day.high) && day.conditionCode >= 0) { + forecasts.add(day); + } + } + } catch (NumberFormatException ignored) { + } + + if (forecasts.isEmpty()) { + return null; + } + return new WeatherInfo(context, - /* id */ parts[0], /* city */ parts[1], /* date */ parts[2], - /* condition */ parts[3], conditionCode, temperature, low, high, - /* tempUnit */ parts[8], humidity, wind, windDirection, - /* speedUnit */ parts[12], timestamp); + /* id */ parts[0], /* city */ parts[1], /* condition */ parts[2], + conditionCode, temperature, /* tempUnit */ parts[5], + humidity, wind, windDirection, /* speedUnit */ parts[9], + /* forecasts */ forecasts, timestamp); } } diff --git a/src/com/cyanogenmod/lockclock/weather/WeatherProvider.java b/src/com/cyanogenmod/lockclock/weather/WeatherProvider.java index 15c8aff..70fbf42 100644 --- a/src/com/cyanogenmod/lockclock/weather/WeatherProvider.java +++ b/src/com/cyanogenmod/lockclock/weather/WeatherProvider.java @@ -27,11 +27,13 @@ public interface WeatherProvider { public String postal; public String countryId; public String country; - }; + } List<LocationResult> getLocations(String input); - WeatherInfo getWeatherInfo(String id, String localizedCityName); + WeatherInfo getWeatherInfo(String id, String localizedCityName, boolean metricUnits); - WeatherInfo getWeatherInfo(Location location); -}; + WeatherInfo getWeatherInfo(Location location, boolean metricUnits); + + int getNameResourceId(); +} diff --git a/src/com/cyanogenmod/lockclock/weather/WeatherUpdateService.java b/src/com/cyanogenmod/lockclock/weather/WeatherUpdateService.java index 94fca71..f38c046 100755 --- a/src/com/cyanogenmod/lockclock/weather/WeatherUpdateService.java +++ b/src/com/cyanogenmod/lockclock/weather/WeatherUpdateService.java @@ -26,19 +26,19 @@ import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.location.LocationProvider; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; import android.os.AsyncTask; import android.os.Bundle; import android.os.IBinder; import android.os.PowerManager; import android.os.PowerManager.WakeLock; +import android.os.SystemClock; import android.text.TextUtils; import android.util.Log; import com.cyanogenmod.lockclock.ClockWidgetProvider; import com.cyanogenmod.lockclock.misc.Constants; import com.cyanogenmod.lockclock.misc.Preferences; +import com.cyanogenmod.lockclock.misc.WidgetUtils; import java.util.Date; @@ -47,6 +47,15 @@ public class WeatherUpdateService extends Service { private static final boolean D = Constants.DEBUG; public static final String ACTION_FORCE_UPDATE = "com.cyanogenmod.lockclock.action.FORCE_WEATHER_UPDATE"; + private static final String ACTION_CANCEL_LOCATION_UPDATE = + "com.cyanogenmod.lockclock.action.CANCEL_LOCATION_UPDATE"; + + // Broadcast action for end of update + public static final String ACTION_UPDATE_FINISHED = "com.cyanogenmod.lockclock.action.WEATHER_UPDATE_FINISHED"; + public static final String EXTRA_UPDATE_CANCELLED = "update_cancelled"; + + private static final long LOCATION_REQUEST_TIMEOUT = 5L * 60L * 1000L; // request for at most 5 minutes + private static final long OUTDATED_LOCATION_THRESHOLD_MILLIS = 10L * 60L * 1000L; // 10 minutes private WeatherUpdateTask mTask; @@ -62,18 +71,26 @@ public class WeatherUpdateService extends Service { public int onStartCommand(Intent intent, int flags, int startId) { if (D) Log.v(TAG, "Got intent " + intent); - if (mTask != null && mTask.getStatus() != AsyncTask.Status.FINISHED) { + boolean active = mTask != null && mTask.getStatus() != AsyncTask.Status.FINISHED; + + if (ACTION_CANCEL_LOCATION_UPDATE.equals(intent.getAction())) { + WeatherLocationListener.cancel(this); + if (!active) { + stopSelf(); + } + return START_NOT_STICKY; + } + + if (active) { if (D) Log.v(TAG, "Weather update is still active, not starting new update"); return START_REDELIVER_INTENT; } boolean force = ACTION_FORCE_UPDATE.equals(intent.getAction()); - if (force) { - Preferences.setCachedWeatherInfo(this, 0, null); - } if (!shouldUpdate(force)) { Log.d(TAG, "Service started, but shouldn't update ... stopping"); stopSelf(); + sendCancelledBroadcast(); return START_NOT_STICKY; } @@ -83,6 +100,12 @@ public class WeatherUpdateService extends Service { return START_REDELIVER_INTENT; } + private void sendCancelledBroadcast() { + Intent finishedIntent = new Intent(ACTION_UPDATE_FINISHED); + finishedIntent.putExtra(EXTRA_UPDATE_CANCELLED, true); + sendBroadcast(finishedIntent); + } + @Override public IBinder onBind(Intent intent) { return null; @@ -97,25 +120,16 @@ public class WeatherUpdateService extends Service { } private boolean shouldUpdate(boolean force) { - ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); - NetworkInfo info = cm.getActiveNetworkInfo(); - - if (info == null || !info.isConnected()) { - if (D) Log.d(TAG, "No network connection is available for weather update"); - return false; - } - - if (!Preferences.showWeather(this)) { - if (D) Log.v(TAG, "Weather isn't shown, skip update"); - return false; - } - long interval = Preferences.weatherRefreshIntervalInMs(this); if (interval == 0 && !force) { if (D) Log.v(TAG, "Interval set to manual and update not forced, skip update"); return false; } + if (force) { + Preferences.setCachedWeatherInfo(this, 0, null); + } + long now = System.currentTimeMillis(); long lastUpdate = Preferences.lastWeatherUpdateTimestamp(this); long due = lastUpdate + interval; @@ -127,7 +141,7 @@ public class WeatherUpdateService extends Service { return false; } - return true; + return WidgetUtils.isNetworkAvailable(this); } private class WeatherUpdateTask extends AsyncTask<Void, Void, WeatherInfo> { @@ -138,6 +152,7 @@ public class WeatherUpdateService extends Service { if (D) Log.d(TAG, "Starting weather update task"); PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG); + mWakeLock.setReferenceCounted(false); mContext = WeatherUpdateService.this; } @@ -151,12 +166,32 @@ public class WeatherUpdateService extends Service { LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Location location = lm.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER); if (D) Log.v(TAG, "Current location is " + location); + + // If lastKnownLocation is not present (because none of the apps in the + // device has requested the current location to the system yet) or outdated, + // then try to get the current location use the provider that best matches the criteria. + boolean needsUpdate = location == null; + if (location != null) { + long delta = System.currentTimeMillis() - location.getTime(); + needsUpdate = delta > OUTDATED_LOCATION_THRESHOLD_MILLIS; + } + if (needsUpdate) { + if (D) Log.d(TAG, "Getting best location provider"); + String locationProvider = lm.getBestProvider(sLocationCriteria, true); + if (TextUtils.isEmpty(locationProvider)) { + Log.e(TAG, "No available location providers matching criteria."); + } else { + WeatherLocationListener.registerIfNeeded(mContext, locationProvider); + } + } + return location; } @Override protected WeatherInfo doInBackground(Void... params) { - WeatherProvider provider = new YahooWeatherProvider(mContext); + WeatherProvider provider = Preferences.weatherProvider(mContext); + boolean metric = Preferences.useMetricUnits(mContext); String customLocationId = null, customLocationName = null; if (Preferences.useCustomWeatherLocation(mContext)) { @@ -165,31 +200,22 @@ public class WeatherUpdateService extends Service { } if (customLocationId != null) { - return provider.getWeatherInfo(customLocationId, customLocationName); + return provider.getWeatherInfo(customLocationId, customLocationName, metric); } Location location = getCurrentLocation(); if (location != null) { - WeatherInfo info = provider.getWeatherInfo(location); + WeatherInfo info = provider.getWeatherInfo(location, metric); if (info != null) { return info; } } + // work with cached location from last request for now + // a listener to update it is already scheduled if possible WeatherInfo cachedInfo = Preferences.getCachedWeatherInfo(mContext); if (cachedInfo != null) { - return provider.getWeatherInfo(cachedInfo.getId(), cachedInfo.getCity()); - } - // If lastKnownLocation is not present because none of the apps in the - // device has requested the current location to the system yet, then try to - // get the current location use the provider that best matches the criteria. - if (D) Log.d(TAG, "Getting best location provider"); - LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); - String locationProvider = lm.getBestProvider(sLocationCriteria, true); - if (TextUtils.isEmpty(locationProvider)) { - Log.e(TAG, "No available location providers matching criteria."); - } else { - WeatherLocationListener.registerIfNeeded(mContext, locationProvider); + return provider.getWeatherInfo(cachedInfo.getId(), cachedInfo.getCity(), metric); } return null; @@ -224,6 +250,10 @@ public class WeatherUpdateService extends Service { scheduleUpdate(mContext, interval, false); } + Intent finishedIntent = new Intent(ACTION_UPDATE_FINISHED); + finishedIntent.putExtra(EXTRA_UPDATE_CANCELLED, result == null); + sendBroadcast(finishedIntent); + if (D) Log.d(TAG, "RELEASING WAKELOCK"); mWakeLock.release(); stopSelf(); @@ -232,6 +262,7 @@ public class WeatherUpdateService extends Service { private static class WeatherLocationListener implements LocationListener { private Context mContext; + private PendingIntent mTimeoutIntent; private static WeatherLocationListener sInstance = null; static void registerIfNeeded(Context context, String provider) { @@ -248,35 +279,79 @@ public class WeatherUpdateService extends Service { // Check whether the provider is supported. // NOTE!!! Actually only WeatherUpdateService class is calling this function // with the NETWORK_PROVIDER, so setting the instance is safe. We must - // change this if this call receive differents providers + // change this if this call receive different providers LocationProvider lp = locationManager.getProvider(provider); if (lp != null) { if (D) Log.d(TAG, "LocationManager - Requesting single update"); locationManager.requestSingleUpdate(provider, sInstance, appContext.getMainLooper()); + sInstance.setTimeoutAlarm(); } } } } + static void cancel(Context context) { + synchronized (WeatherLocationListener.class) { + if (sInstance != null) { + final Context appContext = context.getApplicationContext(); + final LocationManager locationManager = + (LocationManager) appContext.getSystemService(Context.LOCATION_SERVICE); + if (D) Log.d(TAG, "Aborting location request after timeout"); + locationManager.removeUpdates(sInstance); + sInstance.cancelTimeoutAlarm(); + sInstance = null; + } + } + } + private WeatherLocationListener(Context context) { super(); mContext = context; } + private void setTimeoutAlarm() { + Intent intent = new Intent(mContext, WeatherUpdateService.class); + intent.setAction(ACTION_CANCEL_LOCATION_UPDATE); + + mTimeoutIntent = PendingIntent.getService(mContext, 0, intent, + PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_CANCEL_CURRENT); + + AlarmManager am = (AlarmManager) mContext.getSystemService(ALARM_SERVICE); + long elapseTime = SystemClock.elapsedRealtime() + LOCATION_REQUEST_TIMEOUT; + am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, elapseTime, mTimeoutIntent); + } + + private void cancelTimeoutAlarm() { + if (mTimeoutIntent != null) { + AlarmManager am = (AlarmManager) mContext.getSystemService(ALARM_SERVICE); + am.cancel(mTimeoutIntent); + mTimeoutIntent = null; + } + } + @Override public void onLocationChanged(Location location) { // Now, we have a location to use. Schedule a weather update right now. if (D) Log.d(TAG, "The location has changed, schedule an update "); synchronized (WeatherLocationListener.class) { WeatherUpdateService.scheduleUpdate(mContext, 0, true); + cancelTimeoutAlarm(); sInstance = null; } } @Override public void onStatusChanged(String provider, int status, Bundle extras) { - // Not used + // Now, we have a location to use. Schedule a weather update right now. + if (D) Log.d(TAG, "The location service has become available, schedule an update "); + if (status == LocationProvider.AVAILABLE) { + synchronized (WeatherLocationListener.class) { + WeatherUpdateService.scheduleUpdate(mContext, 0, true); + cancelTimeoutAlarm(); + sInstance = null; + } + } } @Override @@ -298,9 +373,9 @@ public class WeatherUpdateService extends Service { am.set(AlarmManager.RTC_WAKEUP, due, getUpdateIntent(context, force)); } - public static void scheduleNextUpdate(Context context) { + public static void scheduleNextUpdate(Context context, boolean force) { long lastUpdate = Preferences.lastWeatherUpdateTimestamp(context); - if (lastUpdate == 0) { + if (lastUpdate == 0 || force) { scheduleUpdate(context, 0, true); } else { long interval = Preferences.weatherRefreshIntervalInMs(context); @@ -320,5 +395,6 @@ public class WeatherUpdateService extends Service { AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); am.cancel(getUpdateIntent(context, true)); am.cancel(getUpdateIntent(context, false)); + WeatherLocationListener.cancel(context); } } diff --git a/src/com/cyanogenmod/lockclock/weather/YahooWeatherProvider.java b/src/com/cyanogenmod/lockclock/weather/YahooWeatherProvider.java index dc714cb..5abe35d 100644 --- a/src/com/cyanogenmod/lockclock/weather/YahooWeatherProvider.java +++ b/src/com/cyanogenmod/lockclock/weather/YahooWeatherProvider.java @@ -19,9 +19,12 @@ package com.cyanogenmod.lockclock.weather; import android.content.Context; import android.location.Location; import android.net.Uri; +import android.text.Html; +import android.text.TextUtils; import android.util.Log; -import com.cyanogenmod.lockclock.misc.Preferences; +import com.cyanogenmod.lockclock.weather.WeatherInfo.DayForecast; +import com.cyanogenmod.lockclock.R; import org.json.JSONArray; import org.json.JSONException; @@ -51,7 +54,7 @@ public class YahooWeatherProvider implements WeatherProvider { Uri.encode("select woeid, postal, admin1, admin2, admin3, " + "locality1, locality2, country from geo.places where " + "(placetype = 7 or placetype = 8 or placetype = 9 " + - "or placetype = 10 or placetype = 11) and text ="); + "or placetype = 10 or placetype = 11 or placetype = 20) and text ="); private static final String URL_PLACEFINDER = "http://query.yahooapis.com/v1/public/yql?format=json&q=" + Uri.encode("select woeid, city from geo.placefinder where gflags=\"R\" and text ="); @@ -67,9 +70,14 @@ public class YahooWeatherProvider implements WeatherProvider { } @Override + public int getNameResourceId() { + return R.string.weather_source_yahoo; + } + + @Override public List<LocationResult> getLocations(String input) { - String locale = mContext.getResources().getConfiguration().locale.getCountry(); - String params = "\"" + input + "\" and lang = \"" + locale + "\""; + String language = getLanguage(); + String params = "\"" + input + "\" and lang = \"" + language + "\""; String url = URL_LOCATION + Uri.encode(params); JSONObject jsonResults = fetchResults(url); if (jsonResults == null) { @@ -93,14 +101,14 @@ public class YahooWeatherProvider implements WeatherProvider { } return results; } catch (JSONException e) { - Log.e(TAG, "Received malformed places data", e); + Log.e(TAG, "Received malformed places data (input=" + input + ", lang=" + language + ")", e); } return null; } - public WeatherInfo getWeatherInfo(String id, String localizedCityName) { - String unit = Preferences.useMetricUnits(mContext) ? "c" : "f"; - String url = String.format(URL_WEATHER, id, unit); + @Override + public WeatherInfo getWeatherInfo(String id, String localizedCityName, boolean metric) { + String url = String.format(URL_WEATHER, id, metric ? "c" : "f"); String response = HttpRetriever.retrieve(url); if (response == null) { @@ -115,22 +123,31 @@ public class YahooWeatherProvider implements WeatherProvider { parser.parse(new InputSource(reader), handler); if (handler.isComplete()) { + // There are cases where the current condition is unknown, but the forecast + // is not - using the (inaccurate) forecast is probably better than showing + // the question mark + if (handler.conditionCode == 3200) { + handler.condition = handler.forecasts.get(0).condition; + handler.conditionCode = handler.forecasts.get(0).conditionCode; + } + WeatherInfo w = new WeatherInfo(mContext, id, - localizedCityName != null ? localizedCityName : handler.city, null, + localizedCityName != null ? localizedCityName : handler.city, handler.condition, handler.conditionCode, handler.temperature, - handler.forecasts.get(0).low, handler.forecasts.get(0).high, handler.temperatureUnit, handler.humidity, handler.windSpeed, - handler.windDirection, handler.speedUnit, + handler.windDirection, handler.speedUnit, handler.forecasts, System.currentTimeMillis()); Log.d(TAG, "Weather updated: " + w); return w; + } else { + Log.w(TAG, "Received incomplete weather XML (id=" + id + ")"); } } catch (ParserConfigurationException e) { Log.e(TAG, "Could not create XML parser", e); } catch (SAXException e) { - Log.e(TAG, "Could not parse weather XML", e); + Log.e(TAG, "Could not parse weather XML (id=" + id + ")", e); } catch (IOException e) { - Log.e(TAG, "Could not parse weather XML", e); + Log.e(TAG, "Could not parse weather XML (id=" + id + ")", e); } return null; @@ -144,12 +161,6 @@ public class YahooWeatherProvider implements WeatherProvider { String condition; ArrayList<DayForecast> forecasts = new ArrayList<DayForecast>(); - private static class DayForecast { - float low, high; - int conditionCode; - String condition; - } - @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { @@ -168,11 +179,11 @@ public class YahooWeatherProvider implements WeatherProvider { conditionCode = (int) stringToFloat(attributes.getValue("code"), -1); temperature = stringToFloat(attributes.getValue("temp"), Float.NaN); } else if (qName.equals("yweather:forecast")) { - DayForecast day = new DayForecast(); - day.low = stringToFloat(attributes.getValue("low"), Float.NaN); - day.high = stringToFloat(attributes.getValue("high"), Float.NaN); - day.condition = attributes.getValue("text"); - day.conditionCode = (int) stringToFloat(attributes.getValue("code"), -1); + DayForecast day = new DayForecast( + /* low */ stringToFloat(attributes.getValue("low"), Float.NaN), + /* high */ stringToFloat(attributes.getValue("high"), Float.NaN), + /* condition */ attributes.getValue("text"), + /* conditionCode */ (int) stringToFloat(attributes.getValue("code"), -1)); if (!Float.isNaN(day.low) && !Float.isNaN(day.high) && day.conditionCode >= 0) { forecasts.add(day); } @@ -194,10 +205,11 @@ public class YahooWeatherProvider implements WeatherProvider { } } - public WeatherInfo getWeatherInfo(Location location) { - String locale = mContext.getResources().getConfiguration().locale.getCountry(); - String params = String.format(Locale.US, "\"%f %f\" and lang=\"%s\"", - location.getLatitude(), location.getLongitude(), locale); + @Override + public WeatherInfo getWeatherInfo(Location location, boolean metric) { + String language = getLanguage(); + String params = String.format(Locale.US, "\"%f %f\" and locale=\"%s\"", + location.getLatitude(), location.getLongitude(), language); String url = URL_PLACEFINDER + Uri.encode(params); JSONObject results = fetchResults(url); if (results == null) { @@ -209,17 +221,24 @@ public class YahooWeatherProvider implements WeatherProvider { String woeid = result.getString("woeid"); String city = result.getString("city"); + if (city == null) { + city = result.getString("neighborhood"); + } + + // The city name in the placefinder result is HTML encoded :-( + if (city != null) { + city = Html.fromHtml(city).toString(); + } + Log.d(TAG, "Resolved location " + location + " to " + city + " (" + woeid + ")"); - WeatherInfo info = getWeatherInfo(woeid, city); + WeatherInfo info = getWeatherInfo(woeid, city, metric); if (info != null) { - // cache the result for potential reuse - // (the placefinder service API is rate limited) - Preferences.setCachedLocationId(mContext, woeid); return info; } } catch (JSONException e) { - Log.e(TAG, "Received malformed placefinder data", e); + Log.e(TAG, "Received malformed placefinder data (location=" + + location + ", lang=" + language + ")", e); } return null; @@ -243,6 +262,11 @@ public class YahooWeatherProvider implements WeatherProvider { } } + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "JSON data " + place.toString() + " -> id=" + result.id + + ", city=" + result.city + ", country=" + result.countryId); + } + if (result.id == null || result.city == null || result.countryId == null) { return null; } @@ -264,9 +288,20 @@ public class YahooWeatherProvider implements WeatherProvider { JSONObject rootObject = new JSONObject(response); return rootObject.getJSONObject("query").getJSONObject("results"); } catch (JSONException e) { - Log.w(TAG, "Received malformed places data", e); + Log.w(TAG, "Received malformed places data (url=" + url + ")", e); } return null; } -}; + + private String getLanguage() { + Locale locale = mContext.getResources().getConfiguration().locale; + String country = locale.getCountry(); + String language = locale.getLanguage(); + + if (TextUtils.isEmpty(country)) { + return language; + } + return language + "-" + country; + } +} |