aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2014-01-05 14:13:16 +0100
committerDanny Baumann <dannybaumann@web.de>2014-01-07 12:06:59 +0100
commitf1487b06a4671ddc79f713aaac4f9a425a3937e1 (patch)
tree9445aadafaccf7a6f5ec9593238b8c6f323197ec
parentc547e3dce2216eb2879a03f07266d3845da11c01 (diff)
downloadandroid_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
-rw-r--r--Android.mk2
-rw-r--r--AndroidManifest.xml23
-rw-r--r--res/drawable-hdpi/calendar_preferences.pngbin1419 -> 309 bytes
-rw-r--r--res/drawable-hdpi/dialog_full_holo_dark.9.pngbin0 -> 1482 bytes
-rw-r--r--res/drawable-hdpi/ic_menu_done_holo_light.pngbin2578 -> 713 bytes
-rw-r--r--res/drawable-hdpi/ic_menu_refresh_holo_dark.pngbin0 -> 1330 bytes
-rw-r--r--res/drawable-hdpi/weather2_0.pngbin8467 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_1.pngbin7714 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_10.pngbin7714 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_11.pngbin7714 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_12.pngbin7714 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_13.pngbin7903 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_14.pngbin7903 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_15.pngbin7903 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_16.pngbin7903 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_17.pngbin8467 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_18.pngbin7903 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_19.pngbin5719 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_2.pngbin7714 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_20.pngbin11160 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_21.pngbin11571 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_22.pngbin11571 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_23.pngbin10335 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_24.pngbin10335 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_25.pngbin6825 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_26.pngbin6825 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_27.pngbin5784 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_28.pngbin10335 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_29.pngbin7347 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_3.pngbin8467 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_30.pngbin10335 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_31.pngbin6611 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_32.pngbin10204 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_33.pngbin6872 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_34.pngbin11011 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_35.pngbin8467 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_36.pngbin10204 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_37.pngbin12563 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_38.pngbin8467 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_39.pngbin11994 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_4.pngbin8467 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_40.pngbin7714 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_41.pngbin7903 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_42.pngbin7903 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_43.pngbin8482 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_44.pngbin11064 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_45.pngbin8051 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_46.pngbin8223 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_47.pngbin8520 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_5.pngbin8245 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_6.pngbin8245 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_7.pngbin7903 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_8.pngbin6825 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_9.pngbin7714 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather2_na.pngbin3951 -> 0 bytes
-rw-r--r--res/drawable-hdpi/weather_0.pngbin3262 -> 3068 bytes
-rw-r--r--res/drawable-hdpi/weather_1.pngbin3262 -> 3068 bytes
-rw-r--r--res/drawable-hdpi/weather_10.pngbin4531 -> 4009 bytes
-rw-r--r--res/drawable-hdpi/weather_11.pngbin4091 -> 3784 bytes
-rw-r--r--res/drawable-hdpi/weather_12.pngbin4091 -> 3784 bytes
-rw-r--r--res/drawable-hdpi/weather_13.pngbin4103 -> 3780 bytes
-rw-r--r--res/drawable-hdpi/weather_14.pngbin4103 -> 3780 bytes
-rw-r--r--res/drawable-hdpi/weather_15.pngbin4706 -> 4095 bytes
-rw-r--r--res/drawable-hdpi/weather_16.pngbin4305 -> 3884 bytes
-rw-r--r--res/drawable-hdpi/weather_17.pngbin4418 -> 3992 bytes
-rw-r--r--res/drawable-hdpi/weather_18.pngbin4134 -> 3829 bytes
-rw-r--r--res/drawable-hdpi/weather_19.pngbin3355 -> 3172 bytes
-rw-r--r--res/drawable-hdpi/weather_2.pngbin3262 -> 3068 bytes
-rw-r--r--res/drawable-hdpi/weather_20.pngbin3699 -> 3489 bytes
-rw-r--r--res/drawable-hdpi/weather_21.pngbin3991 -> 3633 bytes
-rw-r--r--res/drawable-hdpi/weather_22.pngbin3355 -> 3172 bytes
-rw-r--r--res/drawable-hdpi/weather_23.pngbin3613 -> 3322 bytes
-rw-r--r--res/drawable-hdpi/weather_24.pngbin3613 -> 3322 bytes
-rw-r--r--res/drawable-hdpi/weather_25.pngbin4419 -> 3976 bytes
-rw-r--r--res/drawable-hdpi/weather_26.pngbin4010 -> 3690 bytes
-rw-r--r--res/drawable-hdpi/weather_27.pngbin4380 -> 3885 bytes
-rw-r--r--res/drawable-hdpi/weather_28.pngbin4523 -> 3990 bytes
-rw-r--r--res/drawable-hdpi/weather_29.pngbin4380 -> 3885 bytes
-rw-r--r--res/drawable-hdpi/weather_3.pngbin4412 -> 3930 bytes
-rw-r--r--res/drawable-hdpi/weather_30.pngbin4523 -> 3990 bytes
-rw-r--r--res/drawable-hdpi/weather_31.pngbin3691 -> 3431 bytes
-rw-r--r--res/drawable-hdpi/weather_32.pngbin4246 -> 3726 bytes
-rw-r--r--res/drawable-hdpi/weather_33.pngbin3691 -> 3431 bytes
-rw-r--r--res/drawable-hdpi/weather_34.pngbin4246 -> 3726 bytes
-rw-r--r--res/drawable-hdpi/weather_35.pngbin4588 -> 4327 bytes
-rw-r--r--res/drawable-hdpi/weather_36.pngbin4798 -> 4180 bytes
-rw-r--r--res/drawable-hdpi/weather_37.pngbin4911 -> 4252 bytes
-rw-r--r--res/drawable-hdpi/weather_38.pngbin4734 -> 4113 bytes
-rw-r--r--res/drawable-hdpi/weather_39.pngbin4911 -> 4252 bytes
-rw-r--r--res/drawable-hdpi/weather_4.pngbin4412 -> 3930 bytes
-rw-r--r--res/drawable-hdpi/weather_40.pngbin4573 -> 4061 bytes
-rw-r--r--res/drawable-hdpi/weather_41.pngbin4305 -> 3884 bytes
-rw-r--r--res/drawable-hdpi/weather_42.pngbin4627 -> 4055 bytes
-rw-r--r--res/drawable-hdpi/weather_43.pngbin4305 -> 3884 bytes
-rw-r--r--res/drawable-hdpi/weather_44.pngbin4380 -> 3885 bytes
-rw-r--r--res/drawable-hdpi/weather_45.pngbin4412 -> 3930 bytes
-rw-r--r--res/drawable-hdpi/weather_46.pngbin4103 -> 3780 bytes
-rw-r--r--res/drawable-hdpi/weather_47.pngbin4734 -> 4113 bytes
-rw-r--r--res/drawable-hdpi/weather_5.pngbin4134 -> 3829 bytes
-rw-r--r--res/drawable-hdpi/weather_6.pngbin4134 -> 3829 bytes
-rw-r--r--res/drawable-hdpi/weather_7.pngbin4134 -> 3829 bytes
-rw-r--r--res/drawable-hdpi/weather_8.pngbin4593 -> 4041 bytes
-rw-r--r--res/drawable-hdpi/weather_9.pngbin4180 -> 3821 bytes
-rw-r--r--res/drawable-hdpi/weather_color_0.pngbin0 -> 10673 bytes
-rw-r--r--res/drawable-hdpi/weather_color_1.pngbin0 -> 10214 bytes
-rw-r--r--res/drawable-hdpi/weather_color_10.pngbin0 -> 10060 bytes
-rw-r--r--res/drawable-hdpi/weather_color_11.pngbin0 -> 10078 bytes
-rw-r--r--res/drawable-hdpi/weather_color_12.pngbin0 -> 10078 bytes
-rw-r--r--res/drawable-hdpi/weather_color_13.pngbin0 -> 11176 bytes
-rw-r--r--res/drawable-hdpi/weather_color_14.pngbin0 -> 11176 bytes
-rw-r--r--res/drawable-hdpi/weather_color_15.pngbin0 -> 11176 bytes
-rw-r--r--res/drawable-hdpi/weather_color_16.pngbin0 -> 11176 bytes
-rw-r--r--res/drawable-hdpi/weather_color_17.pngbin0 -> 9474 bytes
-rw-r--r--res/drawable-hdpi/weather_color_18.pngbin0 -> 10751 bytes
-rw-r--r--res/drawable-hdpi/weather_color_19.pngbin0 -> 5568 bytes
-rw-r--r--res/drawable-hdpi/weather_color_2.pngbin0 -> 10214 bytes
-rw-r--r--res/drawable-hdpi/weather_color_20.pngbin0 -> 5590 bytes
-rw-r--r--res/drawable-hdpi/weather_color_21.pngbin0 -> 11636 bytes
-rw-r--r--res/drawable-hdpi/weather_color_22.pngbin0 -> 5705 bytes
-rw-r--r--res/drawable-hdpi/weather_color_23.pngbin0 -> 6033 bytes
-rw-r--r--res/drawable-hdpi/weather_color_24.pngbin0 -> 6033 bytes
-rw-r--r--res/drawable-hdpi/weather_color_25.pngbin0 -> 5590 bytes
-rw-r--r--res/drawable-hdpi/weather_color_26.pngbin0 -> 9682 bytes
-rw-r--r--res/drawable-hdpi/weather_color_27.pngbin0 -> 8436 bytes
-rw-r--r--res/drawable-hdpi/weather_color_28.pngbin0 -> 11990 bytes
-rw-r--r--res/drawable-hdpi/weather_color_29.pngbin0 -> 9159 bytes
-rw-r--r--res/drawable-hdpi/weather_color_3.pngbin0 -> 10673 bytes
-rw-r--r--res/drawable-hdpi/weather_color_30.pngbin0 -> 12371 bytes
-rw-r--r--res/drawable-hdpi/weather_color_31.pngbin0 -> 8469 bytes
-rw-r--r--res/drawable-hdpi/weather_color_32.pngbin0 -> 11214 bytes
-rw-r--r--res/drawable-hdpi/weather_color_33.pngbin0 -> 9006 bytes
-rw-r--r--res/drawable-hdpi/weather_color_34.pngbin0 -> 11849 bytes
-rw-r--r--res/drawable-hdpi/weather_color_35.pngbin0 -> 9913 bytes
-rw-r--r--res/drawable-hdpi/weather_color_36.pngbin0 -> 5521 bytes
-rw-r--r--res/drawable-hdpi/weather_color_37.pngbin0 -> 13599 bytes
-rw-r--r--res/drawable-hdpi/weather_color_38.pngbin0 -> 13599 bytes
-rw-r--r--res/drawable-hdpi/weather_color_39.pngbin0 -> 13599 bytes
-rw-r--r--res/drawable-hdpi/weather_color_4.pngbin0 -> 10673 bytes
-rw-r--r--res/drawable-hdpi/weather_color_40.pngbin0 -> 13112 bytes
-rw-r--r--res/drawable-hdpi/weather_color_41.pngbin0 -> 11746 bytes
-rw-r--r--res/drawable-hdpi/weather_color_42.pngbin0 -> 11176 bytes
-rw-r--r--res/drawable-hdpi/weather_color_43.pngbin0 -> 11790 bytes
-rw-r--r--res/drawable-hdpi/weather_color_44.pngbin0 -> 9006 bytes
-rw-r--r--res/drawable-hdpi/weather_color_45.pngbin0 -> 10340 bytes
-rw-r--r--res/drawable-hdpi/weather_color_46.pngbin0 -> 11112 bytes
-rw-r--r--res/drawable-hdpi/weather_color_47.pngbin0 -> 10752 bytes
-rw-r--r--res/drawable-hdpi/weather_color_5.pngbin0 -> 10751 bytes
-rw-r--r--res/drawable-hdpi/weather_color_6.pngbin0 -> 10751 bytes
-rw-r--r--res/drawable-hdpi/weather_color_7.pngbin0 -> 11176 bytes
-rw-r--r--res/drawable-hdpi/weather_color_8.pngbin0 -> 9652 bytes
-rw-r--r--res/drawable-hdpi/weather_color_9.pngbin0 -> 9723 bytes
-rw-r--r--res/drawable-hdpi/weather_color_na.pngbin0 -> 6082 bytes
-rw-r--r--res/drawable-hdpi/weather_na.pngbin4113 -> 3629 bytes
-rw-r--r--res/drawable-hdpi/weather_preferences.pngbin3740 -> 823 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_0.pngbin0 -> 15049 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_1.pngbin0 -> 15049 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_10.pngbin0 -> 14887 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_11.pngbin0 -> 14275 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_12.pngbin0 -> 14774 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_13.pngbin0 -> 13713 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_14.pngbin0 -> 13777 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_15.pngbin0 -> 15090 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_16.pngbin0 -> 13909 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_17.pngbin0 -> 15049 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_18.pngbin0 -> 14409 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_19.pngbin0 -> 9123 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_2.pngbin0 -> 15049 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_20.pngbin0 -> 8509 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_21.pngbin0 -> 9636 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_22.pngbin0 -> 9487 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_23.pngbin0 -> 13137 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_24.pngbin0 -> 13137 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_25.pngbin0 -> 12651 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_26.pngbin0 -> 14222 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_27.pngbin0 -> 13986 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_28.pngbin0 -> 14843 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_29.pngbin0 -> 10750 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_3.pngbin0 -> 15049 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_30.pngbin0 -> 13615 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_31.pngbin0 -> 5137 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_32.pngbin0 -> 10382 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_33.pngbin0 -> 10252 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_34.pngbin0 -> 12053 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_35.pngbin0 -> 15049 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_36.pngbin0 -> 10689 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_37.pngbin0 -> 13828 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_38.pngbin0 -> 13828 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_39.pngbin0 -> 13570 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_4.pngbin0 -> 15049 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_40.pngbin0 -> 14774 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_41.pngbin0 -> 13039 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_42.pngbin0 -> 13909 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_43.pngbin0 -> 15090 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_44.pngbin0 -> 11913 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_45.pngbin0 -> 12560 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_46.pngbin0 -> 12158 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_47.pngbin0 -> 13088 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_5.pngbin0 -> 15767 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_6.pngbin0 -> 16244 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_7.pngbin0 -> 16306 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_8.pngbin0 -> 14718 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_9.pngbin0 -> 14258 bytes
-rw-r--r--res/drawable-hdpi/weather_vclouds_na.pngbin0 -> 11913 bytes
-rw-r--r--res/drawable-mdpi/calendar_preferences.pngbin367 -> 438 bytes
-rw-r--r--res/drawable-mdpi/dialog_full_holo_dark.9.pngbin0 -> 935 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_done_holo_light.pngbin1681 -> 566 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_refresh_holo_dark.pngbin0 -> 889 bytes
-rw-r--r--res/drawable-mdpi/weather2_0.pngbin4442 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_1.pngbin4068 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_10.pngbin4068 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_11.pngbin4068 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_12.pngbin4068 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_13.pngbin4167 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_14.pngbin4167 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_15.pngbin4167 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_16.pngbin4167 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_17.pngbin4442 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_18.pngbin4167 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_19.pngbin3063 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_2.pngbin4068 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_20.pngbin5051 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_21.pngbin5235 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_22.pngbin5235 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_23.pngbin5254 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_24.pngbin5254 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_25.pngbin3643 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_26.pngbin3643 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_27.pngbin3048 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_28.pngbin5254 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_29.pngbin3436 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_3.pngbin4442 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_30.pngbin5254 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_31.pngbin3126 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_32.pngbin4784 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_33.pngbin3403 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_34.pngbin5175 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_35.pngbin4442 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_36.pngbin4784 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_37.pngbin6130 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_38.pngbin4442 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_39.pngbin5880 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_4.pngbin4442 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_40.pngbin4068 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_41.pngbin4167 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_42.pngbin4167 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_43.pngbin4474 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_44.pngbin5471 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_45.pngbin4263 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_46.pngbin4420 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_47.pngbin4462 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_5.pngbin4281 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_6.pngbin4281 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_7.pngbin4167 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_8.pngbin3643 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_9.pngbin4068 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather2_na.pngbin2015 -> 0 bytes
-rw-r--r--res/drawable-mdpi/weather_color_0.pngbin0 -> 7602 bytes
-rw-r--r--res/drawable-mdpi/weather_color_1.pngbin0 -> 7377 bytes
-rw-r--r--res/drawable-mdpi/weather_color_10.pngbin0 -> 7182 bytes
-rw-r--r--res/drawable-mdpi/weather_color_11.pngbin0 -> 7347 bytes
-rw-r--r--res/drawable-mdpi/weather_color_12.pngbin0 -> 7347 bytes
-rw-r--r--res/drawable-mdpi/weather_color_13.pngbin0 -> 7742 bytes
-rw-r--r--res/drawable-mdpi/weather_color_14.pngbin0 -> 7742 bytes
-rw-r--r--res/drawable-mdpi/weather_color_15.pngbin0 -> 7742 bytes
-rw-r--r--res/drawable-mdpi/weather_color_16.pngbin0 -> 7742 bytes
-rw-r--r--res/drawable-mdpi/weather_color_17.pngbin0 -> 7067 bytes
-rw-r--r--res/drawable-mdpi/weather_color_18.pngbin0 -> 7670 bytes
-rw-r--r--res/drawable-mdpi/weather_color_19.pngbin0 -> 4428 bytes
-rw-r--r--res/drawable-mdpi/weather_color_2.pngbin0 -> 7377 bytes
-rw-r--r--res/drawable-mdpi/weather_color_20.pngbin0 -> 4493 bytes
-rw-r--r--res/drawable-mdpi/weather_color_21.pngbin0 -> 8199 bytes
-rw-r--r--res/drawable-mdpi/weather_color_22.pngbin0 -> 4441 bytes
-rw-r--r--res/drawable-mdpi/weather_color_23.pngbin0 -> 4950 bytes
-rw-r--r--res/drawable-mdpi/weather_color_24.pngbin0 -> 4950 bytes
-rw-r--r--res/drawable-mdpi/weather_color_25.pngbin0 -> 4578 bytes
-rw-r--r--res/drawable-mdpi/weather_color_26.pngbin0 -> 7166 bytes
-rw-r--r--res/drawable-mdpi/weather_color_27.pngbin0 -> 6280 bytes
-rw-r--r--res/drawable-mdpi/weather_color_28.pngbin0 -> 8417 bytes
-rw-r--r--res/drawable-mdpi/weather_color_29.pngbin0 -> 6712 bytes
-rw-r--r--res/drawable-mdpi/weather_color_3.pngbin0 -> 7602 bytes
-rw-r--r--res/drawable-mdpi/weather_color_30.pngbin0 -> 8613 bytes
-rw-r--r--res/drawable-mdpi/weather_color_31.pngbin0 -> 6365 bytes
-rw-r--r--res/drawable-mdpi/weather_color_32.pngbin0 -> 7982 bytes
-rw-r--r--res/drawable-mdpi/weather_color_33.pngbin0 -> 6664 bytes
-rw-r--r--res/drawable-mdpi/weather_color_34.pngbin0 -> 8322 bytes
-rw-r--r--res/drawable-mdpi/weather_color_35.pngbin0 -> 7297 bytes
-rw-r--r--res/drawable-mdpi/weather_color_36.pngbin0 -> 4542 bytes
-rw-r--r--res/drawable-mdpi/weather_color_37.pngbin0 -> 9256 bytes
-rw-r--r--res/drawable-mdpi/weather_color_38.pngbin0 -> 9256 bytes
-rw-r--r--res/drawable-mdpi/weather_color_39.pngbin0 -> 9256 bytes
-rw-r--r--res/drawable-mdpi/weather_color_4.pngbin0 -> 7602 bytes
-rw-r--r--res/drawable-mdpi/weather_color_40.pngbin0 -> 9009 bytes
-rw-r--r--res/drawable-mdpi/weather_color_41.pngbin0 -> 8117 bytes
-rw-r--r--res/drawable-mdpi/weather_color_42.pngbin0 -> 7742 bytes
-rw-r--r--res/drawable-mdpi/weather_color_43.pngbin0 -> 8143 bytes
-rw-r--r--res/drawable-mdpi/weather_color_44.pngbin0 -> 6664 bytes
-rw-r--r--res/drawable-mdpi/weather_color_45.pngbin0 -> 7466 bytes
-rw-r--r--res/drawable-mdpi/weather_color_46.pngbin0 -> 7793 bytes
-rw-r--r--res/drawable-mdpi/weather_color_47.pngbin0 -> 7645 bytes
-rw-r--r--res/drawable-mdpi/weather_color_5.pngbin0 -> 7670 bytes
-rw-r--r--res/drawable-mdpi/weather_color_6.pngbin0 -> 7670 bytes
-rw-r--r--res/drawable-mdpi/weather_color_7.pngbin0 -> 7742 bytes
-rw-r--r--res/drawable-mdpi/weather_color_8.pngbin0 -> 6816 bytes
-rw-r--r--res/drawable-mdpi/weather_color_9.pngbin0 -> 6930 bytes
-rw-r--r--res/drawable-mdpi/weather_color_na.pngbin0 -> 4927 bytes
-rw-r--r--res/drawable-mdpi/weather_preferences.pngbin575 -> 512 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_0.pngbin0 -> 9532 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_1.pngbin0 -> 9532 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_10.pngbin0 -> 9435 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_11.pngbin0 -> 9126 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_12.pngbin0 -> 9345 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_13.pngbin0 -> 8913 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_14.pngbin0 -> 8914 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_15.pngbin0 -> 9593 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_16.pngbin0 -> 8921 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_17.pngbin0 -> 9532 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_18.pngbin0 -> 9328 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_19.pngbin0 -> 6422 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_2.pngbin0 -> 9532 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_20.pngbin0 -> 6086 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_21.pngbin0 -> 6729 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_22.pngbin0 -> 6596 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_23.pngbin0 -> 8759 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_24.pngbin0 -> 8759 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_25.pngbin0 -> 8346 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_26.pngbin0 -> 9137 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_27.pngbin0 -> 9051 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_28.pngbin0 -> 9451 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_29.pngbin0 -> 7406 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_3.pngbin0 -> 9532 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_30.pngbin0 -> 8871 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_31.pngbin0 -> 4146 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_32.pngbin0 -> 6990 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_33.pngbin0 -> 7122 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_34.pngbin0 -> 7989 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_35.pngbin0 -> 9532 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_36.pngbin0 -> 7126 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_37.pngbin0 -> 8915 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_38.pngbin0 -> 8915 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_39.pngbin0 -> 8775 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_4.pngbin0 -> 9532 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_40.pngbin0 -> 9345 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_41.pngbin0 -> 8428 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_42.pngbin0 -> 8921 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_43.pngbin0 -> 9593 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_44.pngbin0 -> 7987 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_45.pngbin0 -> 8213 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_46.pngbin0 -> 7994 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_47.pngbin0 -> 8504 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_5.pngbin0 -> 9901 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_6.pngbin0 -> 10233 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_7.pngbin0 -> 10261 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_8.pngbin0 -> 9416 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_9.pngbin0 -> 9132 bytes
-rw-r--r--res/drawable-mdpi/weather_vclouds_na.pngbin0 -> 7987 bytes
-rw-r--r--res/drawable-xhdpi/calendar_preferences.pngbin1680 -> 383 bytes
-rw-r--r--res/drawable-xhdpi/dialog_full_holo_dark.9.pngbin0 -> 2201 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_done_holo_light.pngbin3784 -> 970 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_refresh_holo_dark.pngbin0 -> 1765 bytes
-rw-r--r--res/drawable-xhdpi/weather2_1.pngbin14026 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_10.pngbin14026 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_11.pngbin14026 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_12.pngbin14026 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_13.pngbin15998 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_14.pngbin15998 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_15.pngbin15998 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_16.pngbin15998 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_18.pngbin15998 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_19.pngbin11344 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_2.pngbin14026 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_21.pngbin16858 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_22.pngbin16858 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_23.pngbin17150 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_24.pngbin17150 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_25.pngbin13199 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_26.pngbin13199 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_27.pngbin11249 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_28.pngbin17150 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_29.pngbin12135 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_31.pngbin11339 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_32.pngbin15729 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_33.pngbin12103 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_35.pngbin14930 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_38.pngbin14930 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_4.pngbin14930 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_40.pngbin14026 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_41.pngbin15998 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_42.pngbin15998 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_45.pngbin14570 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_46.pngbin15995 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_47.pngbin14874 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_6.pngbin15398 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_7.pngbin15998 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_8.pngbin13199 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_9.pngbin14026 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather2_na.pngbin7644 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/weather_0.pngbin3583 -> 3205 bytes
-rw-r--r--res/drawable-xhdpi/weather_1.pngbin3583 -> 3205 bytes
-rw-r--r--res/drawable-xhdpi/weather_10.pngbin4815 -> 3882 bytes
-rw-r--r--res/drawable-xhdpi/weather_11.pngbin4376 -> 3665 bytes
-rw-r--r--res/drawable-xhdpi/weather_12.pngbin4376 -> 3665 bytes
-rw-r--r--res/drawable-xhdpi/weather_13.pngbin4525 -> 3682 bytes
-rw-r--r--res/drawable-xhdpi/weather_14.pngbin4525 -> 3682 bytes
-rw-r--r--res/drawable-xhdpi/weather_15.pngbin4955 -> 3918 bytes
-rw-r--r--res/drawable-xhdpi/weather_16.pngbin4493 -> 3684 bytes
-rw-r--r--res/drawable-xhdpi/weather_17.pngbin4701 -> 3823 bytes
-rw-r--r--res/drawable-xhdpi/weather_18.pngbin4455 -> 3709 bytes
-rw-r--r--res/drawable-xhdpi/weather_19.pngbin3610 -> 3210 bytes
-rw-r--r--res/drawable-xhdpi/weather_2.pngbin3583 -> 3205 bytes
-rw-r--r--res/drawable-xhdpi/weather_20.pngbin4022 -> 3422 bytes
-rw-r--r--res/drawable-xhdpi/weather_21.pngbin4280 -> 3574 bytes
-rw-r--r--res/drawable-xhdpi/weather_22.pngbin3610 -> 3210 bytes
-rw-r--r--res/drawable-xhdpi/weather_23.pngbin3945 -> 3386 bytes
-rw-r--r--res/drawable-xhdpi/weather_24.pngbin3945 -> 3386 bytes
-rw-r--r--res/drawable-xhdpi/weather_25.pngbin4689 -> 3784 bytes
-rw-r--r--res/drawable-xhdpi/weather_26.pngbin4180 -> 3551 bytes
-rw-r--r--res/drawable-xhdpi/weather_27.pngbin4484 -> 3710 bytes
-rw-r--r--res/drawable-xhdpi/weather_28.pngbin4661 -> 3857 bytes
-rw-r--r--res/drawable-xhdpi/weather_29.pngbin4484 -> 3710 bytes
-rw-r--r--res/drawable-xhdpi/weather_3.pngbin4597 -> 3761 bytes
-rw-r--r--res/drawable-xhdpi/weather_30.pngbin4661 -> 3857 bytes
-rw-r--r--res/drawable-xhdpi/weather_31.pngbin3872 -> 3369 bytes
-rw-r--r--res/drawable-xhdpi/weather_32.pngbin4521 -> 3736 bytes
-rw-r--r--res/drawable-xhdpi/weather_33.pngbin3872 -> 3369 bytes
-rw-r--r--res/drawable-xhdpi/weather_34.pngbin4521 -> 3736 bytes
-rw-r--r--res/drawable-xhdpi/weather_35.pngbin4833 -> 3897 bytes
-rw-r--r--res/drawable-xhdpi/weather_36.pngbin5061 -> 3993 bytes
-rw-r--r--res/drawable-xhdpi/weather_37.pngbin5047 -> 4030 bytes
-rw-r--r--res/drawable-xhdpi/weather_38.pngbin4933 -> 3953 bytes
-rw-r--r--res/drawable-xhdpi/weather_39.pngbin5047 -> 4030 bytes
-rw-r--r--res/drawable-xhdpi/weather_4.pngbin4597 -> 3761 bytes
-rw-r--r--res/drawable-xhdpi/weather_40.pngbin4805 -> 3938 bytes
-rw-r--r--res/drawable-xhdpi/weather_41.pngbin4493 -> 3684 bytes
-rw-r--r--res/drawable-xhdpi/weather_42.pngbin4754 -> 3865 bytes
-rw-r--r--res/drawable-xhdpi/weather_43.pngbin4493 -> 3684 bytes
-rw-r--r--res/drawable-xhdpi/weather_44.pngbin4484 -> 3710 bytes
-rw-r--r--res/drawable-xhdpi/weather_45.pngbin4597 -> 3761 bytes
-rw-r--r--res/drawable-xhdpi/weather_46.pngbin4525 -> 3682 bytes
-rw-r--r--res/drawable-xhdpi/weather_47.pngbin4933 -> 3953 bytes
-rw-r--r--res/drawable-xhdpi/weather_5.pngbin4455 -> 3709 bytes
-rw-r--r--res/drawable-xhdpi/weather_6.pngbin4455 -> 3709 bytes
-rw-r--r--res/drawable-xhdpi/weather_7.pngbin4455 -> 3709 bytes
-rw-r--r--res/drawable-xhdpi/weather_8.pngbin4962 -> 3964 bytes
-rw-r--r--res/drawable-xhdpi/weather_9.pngbin4521 -> 3739 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_0.png (renamed from res/drawable-xhdpi/weather2_0.png)bin14930 -> 14930 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_1.pngbin0 -> 13473 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_10.pngbin0 -> 12949 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_11.pngbin0 -> 13958 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_12.pngbin0 -> 13958 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_13.pngbin0 -> 14997 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_14.pngbin0 -> 14997 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_15.pngbin0 -> 14997 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_16.pngbin0 -> 14997 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_17.pngbin0 -> 12758 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_18.png (renamed from res/drawable-xhdpi/weather2_5.png)bin15398 -> 15398 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_19.pngbin0 -> 4573 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_2.pngbin0 -> 13473 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_20.pngbin0 -> 4553 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_21.png (renamed from res/drawable-xhdpi/weather2_20.png)bin16416 -> 16416 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_22.pngbin0 -> 4617 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_23.pngbin0 -> 7181 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_24.pngbin0 -> 7181 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_25.pngbin0 -> 6573 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_26.pngbin0 -> 12800 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_27.pngbin0 -> 11043 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_28.png (renamed from res/drawable-xhdpi/weather2_30.png)bin17150 -> 17148 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_29.pngbin0 -> 12292 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_3.png (renamed from res/drawable-xhdpi/weather2_17.png)bin14930 -> 14930 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_30.png (renamed from res/drawable-xhdpi/weather2_44.png)bin17708 -> 17708 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_31.pngbin0 -> 11221 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_32.png (renamed from res/drawable-xhdpi/weather2_36.png)bin15729 -> 15728 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_33.pngbin0 -> 11929 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_34.png (renamed from res/drawable-xhdpi/weather2_34.png)bin16848 -> 16847 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_35.pngbin0 -> 13340 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_36.pngbin0 -> 6482 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_37.png (renamed from res/drawable-xhdpi/weather2_37.png)bin19842 -> 19841 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_38.pngbin0 -> 19841 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_39.pngbin0 -> 19841 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_4.png (renamed from res/drawable-xhdpi/weather2_3.png)bin14930 -> 14930 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_40.png (renamed from res/drawable-xhdpi/weather2_39.png)bin19020 -> 19018 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_41.png (renamed from res/drawable-xhdpi/weather2_43.png)bin17408 -> 17408 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_42.pngbin0 -> 14997 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_43.pngbin0 -> 16116 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_44.pngbin0 -> 11929 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_45.pngbin0 -> 14455 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_46.pngbin0 -> 15382 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_47.pngbin0 -> 14784 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_5.pngbin0 -> 15126 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_6.pngbin0 -> 15126 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_7.pngbin0 -> 14997 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_8.pngbin0 -> 12057 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_9.pngbin0 -> 11817 bytes
-rw-r--r--res/drawable-xhdpi/weather_color_na.pngbin0 -> 7632 bytes
-rw-r--r--res/drawable-xhdpi/weather_na.pngbin4512 -> 3855 bytes
-rw-r--r--res/drawable-xhdpi/weather_preferences.pngbin4053 -> 1098 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_0.pngbin0 -> 25612 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_1.pngbin0 -> 25612 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_10.pngbin0 -> 25154 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_11.pngbin0 -> 23798 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_12.pngbin0 -> 24939 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_13.pngbin0 -> 22749 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_14.pngbin0 -> 22927 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_15.pngbin0 -> 25290 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_16.pngbin0 -> 23211 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_17.pngbin0 -> 25612 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_18.pngbin0 -> 24033 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_19.pngbin0 -> 13771 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_2.pngbin0 -> 25612 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_20.pngbin0 -> 12997 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_21.pngbin0 -> 14918 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_22.pngbin0 -> 14898 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_23.pngbin0 -> 20931 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_24.pngbin0 -> 20931 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_25.pngbin0 -> 20456 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_26.pngbin0 -> 23445 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_27.pngbin0 -> 23352 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_28.pngbin0 -> 24737 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_29.pngbin0 -> 17141 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_3.pngbin0 -> 25612 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_30.pngbin0 -> 22634 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_31.pngbin0 -> 7061 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_32.pngbin0 -> 17052 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_33.pngbin0 -> 15978 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_34.pngbin0 -> 19847 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_35.pngbin0 -> 25612 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_36.pngbin0 -> 17547 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_37.pngbin0 -> 23137 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_38.pngbin0 -> 23137 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_39.pngbin0 -> 22656 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_4.pngbin0 -> 25612 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_40.pngbin0 -> 24939 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_41.pngbin0 -> 21788 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_42.pngbin0 -> 23211 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_43.pngbin0 -> 25290 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_44.pngbin0 -> 19240 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_45.pngbin0 -> 20932 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_46.pngbin0 -> 19799 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_47.pngbin0 -> 21820 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_5.pngbin0 -> 26774 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_6.pngbin0 -> 27743 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_7.pngbin0 -> 27851 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_8.pngbin0 -> 24463 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_9.pngbin0 -> 23870 bytes
-rw-r--r--res/drawable-xhdpi/weather_vclouds_na.pngbin0 -> 19240 bytes
-rw-r--r--res/drawable-xxhdpi/calendar_preferences.pngbin0 -> 468 bytes
-rw-r--r--res/drawable-xxhdpi/clock_preferences.pngbin0 -> 1846 bytes
-rw-r--r--res/drawable-xxhdpi/ic_menu_done_holo_light.pngbin0 -> 1945 bytes
-rw-r--r--res/drawable-xxhdpi/ic_menu_refresh_holo_dark.pngbin0 -> 2476 bytes
-rw-r--r--res/drawable-xxhdpi/weather_0.pngbin20226 -> 19484 bytes
-rw-r--r--res/drawable-xxhdpi/weather_1.pngbin20226 -> 19484 bytes
-rw-r--r--res/drawable-xxhdpi/weather_10.pngbin22969 -> 21088 bytes
-rw-r--r--res/drawable-xxhdpi/weather_11.pngbin22136 -> 20681 bytes
-rw-r--r--res/drawable-xxhdpi/weather_12.pngbin22136 -> 20681 bytes
-rw-r--r--res/drawable-xxhdpi/weather_13.pngbin22067 -> 20377 bytes
-rw-r--r--res/drawable-xxhdpi/weather_14.pngbin22067 -> 20377 bytes
-rw-r--r--res/drawable-xxhdpi/weather_15.pngbin23242 -> 20940 bytes
-rw-r--r--res/drawable-xxhdpi/weather_16.pngbin22253 -> 20495 bytes
-rw-r--r--res/drawable-xxhdpi/weather_17.pngbin22251 -> 20610 bytes
-rw-r--r--res/drawable-xxhdpi/weather_18.pngbin21892 -> 20426 bytes
-rw-r--r--res/drawable-xxhdpi/weather_19.pngbin20144 -> 19486 bytes
-rw-r--r--res/drawable-xxhdpi/weather_2.pngbin20226 -> 19484 bytes
-rw-r--r--res/drawable-xxhdpi/weather_20.pngbin21004 -> 19870 bytes
-rw-r--r--res/drawable-xxhdpi/weather_21.pngbin21455 -> 20095 bytes
-rw-r--r--res/drawable-xxhdpi/weather_22.pngbin20144 -> 19486 bytes
-rw-r--r--res/drawable-xxhdpi/weather_23.pngbin20922 -> 19779 bytes
-rw-r--r--res/drawable-xxhdpi/weather_24.pngbin20922 -> 19779 bytes
-rw-r--r--res/drawable-xxhdpi/weather_25.pngbin22770 -> 20927 bytes
-rw-r--r--res/drawable-xxhdpi/weather_26.pngbin21854 -> 20441 bytes
-rw-r--r--res/drawable-xxhdpi/weather_27.pngbin22120 -> 20481 bytes
-rw-r--r--res/drawable-xxhdpi/weather_28.pngbin22627 -> 20684 bytes
-rw-r--r--res/drawable-xxhdpi/weather_29.pngbin22120 -> 20481 bytes
-rw-r--r--res/drawable-xxhdpi/weather_3.pngbin22309 -> 20526 bytes
-rw-r--r--res/drawable-xxhdpi/weather_30.pngbin22627 -> 20684 bytes
-rw-r--r--res/drawable-xxhdpi/weather_31.pngbin20856 -> 19718 bytes
-rw-r--r--res/drawable-xxhdpi/weather_32.pngbin22203 -> 20125 bytes
-rw-r--r--res/drawable-xxhdpi/weather_33.pngbin20856 -> 19718 bytes
-rw-r--r--res/drawable-xxhdpi/weather_34.pngbin22203 -> 20125 bytes
-rw-r--r--res/drawable-xxhdpi/weather_35.pngbin22574 -> 20836 bytes
-rw-r--r--res/drawable-xxhdpi/weather_36.pngbin23224 -> 20753 bytes
-rw-r--r--res/drawable-xxhdpi/weather_37.pngbin23450 -> 21087 bytes
-rw-r--r--res/drawable-xxhdpi/weather_38.pngbin23107 -> 20877 bytes
-rw-r--r--res/drawable-xxhdpi/weather_39.pngbin23450 -> 21087 bytes
-rw-r--r--res/drawable-xxhdpi/weather_4.pngbin22309 -> 20526 bytes
-rw-r--r--res/drawable-xxhdpi/weather_40.pngbin22846 -> 20913 bytes
-rw-r--r--res/drawable-xxhdpi/weather_41.pngbin22253 -> 20495 bytes
-rw-r--r--res/drawable-xxhdpi/weather_42.pngbin22786 -> 20771 bytes
-rw-r--r--res/drawable-xxhdpi/weather_43.pngbin23230 -> 21053 bytes
-rw-r--r--res/drawable-xxhdpi/weather_44.pngbin22120 -> 20481 bytes
-rw-r--r--res/drawable-xxhdpi/weather_45.pngbin22309 -> 20526 bytes
-rw-r--r--res/drawable-xxhdpi/weather_46.pngbin22067 -> 20377 bytes
-rw-r--r--res/drawable-xxhdpi/weather_47.pngbin23107 -> 20877 bytes
-rw-r--r--res/drawable-xxhdpi/weather_5.pngbin21892 -> 20426 bytes
-rw-r--r--res/drawable-xxhdpi/weather_6.pngbin21892 -> 20426 bytes
-rw-r--r--res/drawable-xxhdpi/weather_7.pngbin21892 -> 20426 bytes
-rw-r--r--res/drawable-xxhdpi/weather_8.pngbin23417 -> 21303 bytes
-rw-r--r--res/drawable-xxhdpi/weather_9.pngbin22545 -> 20889 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_0.pngbin0 -> 27656 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_1.pngbin0 -> 25173 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_10.pngbin0 -> 23998 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_11.pngbin0 -> 25753 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_12.pngbin0 -> 25753 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_13.pngbin0 -> 28442 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_14.pngbin0 -> 28442 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_15.pngbin0 -> 28442 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_16.pngbin0 -> 28442 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_17.pngbin0 -> 23275 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_18.pngbin0 -> 28272 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_19.pngbin0 -> 9246 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_2.pngbin0 -> 25173 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_20.pngbin0 -> 9288 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_21.pngbin0 -> 30516 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_22.pngbin0 -> 9416 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_23.pngbin0 -> 10891 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_24.pngbin0 -> 10891 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_25.pngbin0 -> 10737 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_26.pngbin0 -> 23244 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_27.pngbin0 -> 19505 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_28.pngbin0 -> 31831 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_29.pngbin0 -> 21406 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_3.pngbin0 -> 27656 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_30.pngbin0 -> 32916 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_31.pngbin0 -> 19849 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_32.pngbin0 -> 29091 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_33.pngbin0 -> 21135 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_34.pngbin0 -> 31144 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_35.pngbin0 -> 24986 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_36.pngbin0 -> 10385 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_37.pngbin0 -> 37377 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_38.pngbin0 -> 37377 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_39.pngbin0 -> 37377 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_4.pngbin0 -> 27656 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_40.pngbin0 -> 35797 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_41.pngbin0 -> 30676 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_42.pngbin0 -> 28442 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_43.pngbin0 -> 30676 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_44.pngbin0 -> 21135 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_45.pngbin0 -> 26175 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_46.pngbin0 -> 28270 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_47.pngbin0 -> 27181 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_5.pngbin0 -> 28272 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_6.pngbin0 -> 28272 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_7.pngbin0 -> 28442 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_8.pngbin0 -> 22890 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_9.pngbin0 -> 23002 bytes
-rw-r--r--res/drawable-xxhdpi/weather_color_na.pngbin0 -> 12701 bytes
-rw-r--r--res/drawable-xxhdpi/weather_na.pngbin22364 -> 20904 bytes
-rw-r--r--res/drawable-xxhdpi/weather_preferences.pngbin0 -> 1638 bytes
-rw-r--r--res/drawable-xxhdpi/weather_refresh.pngbin22734 -> 20941 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_0.pngbin0 -> 41024 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_1.pngbin0 -> 41024 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_10.pngbin0 -> 40232 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_11.pngbin0 -> 37653 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_12.pngbin0 -> 39896 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_13.pngbin0 -> 34831 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_14.pngbin0 -> 35593 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_15.pngbin0 -> 39481 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_16.pngbin0 -> 36151 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_17.pngbin0 -> 41024 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_18.pngbin0 -> 37020 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_19.pngbin0 -> 15187 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_2.pngbin0 -> 41024 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_20.pngbin0 -> 15937 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_21.pngbin0 -> 16129 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_22.pngbin0 -> 17505 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_23.pngbin0 -> 31114 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_24.pngbin0 -> 31114 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_25.pngbin0 -> 29834 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_26.pngbin0 -> 37089 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_27.pngbin0 -> 36689 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_28.pngbin0 -> 39574 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_29.pngbin0 -> 26327 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_3.pngbin0 -> 41024 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_30.pngbin0 -> 35334 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_31.pngbin0 -> 10071 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_32.pngbin0 -> 27632 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_33.pngbin0 -> 23098 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_34.pngbin0 -> 31366 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_35.pngbin0 -> 41024 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_36.pngbin0 -> 28604 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_37.pngbin0 -> 36822 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_38.pngbin0 -> 36822 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_39.pngbin0 -> 35925 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_4.pngbin0 -> 41024 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_40.pngbin0 -> 39896 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_41.pngbin0 -> 34277 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_42.pngbin0 -> 36151 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_43.pngbin0 -> 39481 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_44.pngbin0 -> 29230 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_45.pngbin0 -> 33349 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_46.pngbin0 -> 31375 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_47.pngbin0 -> 34858 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_5.pngbin0 -> 42054 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_6.pngbin0 -> 43166 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_7.pngbin0 -> 43772 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_8.pngbin0 -> 38043 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_9.pngbin0 -> 37785 bytes
-rw-r--r--res/drawable-xxhdpi/weather_vclouds_na.pngbin0 -> 29230 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_0.pngbin0 -> 41157 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_1.pngbin0 -> 37850 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_10.pngbin0 -> 32193 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_11.pngbin0 -> 37346 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_12.pngbin0 -> 37346 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_13.pngbin0 -> 41832 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_14.pngbin0 -> 41832 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_15.pngbin0 -> 41832 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_16.pngbin0 -> 41832 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_17.pngbin0 -> 33939 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_18.pngbin0 -> 41803 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_19.pngbin0 -> 10155 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_2.pngbin0 -> 37850 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_20.pngbin0 -> 10095 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_21.pngbin0 -> 43417 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_22.pngbin0 -> 10833 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_23.pngbin0 -> 14553 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_24.pngbin0 -> 14553 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_25.pngbin0 -> 14913 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_26.pngbin0 -> 33560 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_27.pngbin0 -> 28195 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_28.pngbin0 -> 47406 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_29.pngbin0 -> 30453 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_3.pngbin0 -> 41157 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_30.pngbin0 -> 48550 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_31.pngbin0 -> 26956 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_32.pngbin0 -> 40906 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_33.pngbin0 -> 29721 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_34.pngbin0 -> 44555 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_35.pngbin0 -> 36621 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_36.pngbin0 -> 14315 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_37.pngbin0 -> 55578 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_38.pngbin0 -> 55578 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_39.pngbin0 -> 55578 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_4.pngbin0 -> 41157 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_40.pngbin0 -> 53234 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_41.pngbin0 -> 45877 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_42.pngbin0 -> 41832 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_43.pngbin0 -> 45877 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_44.pngbin0 -> 29721 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_45.pngbin0 -> 37776 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_46.pngbin0 -> 41600 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_47.pngbin0 -> 39261 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_5.pngbin0 -> 41803 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_6.pngbin0 -> 41803 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_7.pngbin0 -> 41832 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_8.pngbin0 -> 28925 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_9.pngbin0 -> 28780 bytes
-rw-r--r--res/drawable-xxxhdpi/weather_color_na.pngbin0 -> 18009 bytes
-rw-r--r--res/drawable/icon_set_selector.xml8
-rw-r--r--res/layout/forecast_activity.xml212
-rw-r--r--res/layout/forecast_item.xml56
-rw-r--r--res/layout/icon_item.xml28
-rw-r--r--res/layout/icon_style_selection.xml16
-rw-r--r--res/values-af/strings.xml2
-rw-r--r--res/values-ar/strings.xml204
-rw-r--r--res/values-ca/strings.xml2
-rw-r--r--res/values-cs/strings.xml2
-rw-r--r--res/values-da/strings.xml2
-rw-r--r--res/values-de/strings.xml2
-rw-r--r--res/values-el/strings.xml2
-rw-r--r--res/values-en-rCA/strings.xml34
-rw-r--r--res/values-es/strings.xml2
-rw-r--r--res/values-fi/strings.xml2
-rw-r--r--res/values-fr/strings.xml2
-rw-r--r--res/values-hu/strings.xml2
-rw-r--r--res/values-it/strings.xml2
-rw-r--r--res/values-ja/strings.xml2
-rw-r--r--res/values-lt/strings.xml2
-rw-r--r--res/values-nb/strings.xml2
-rw-r--r--res/values-nl/strings.xml2
-rw-r--r--res/values-pl/strings.xml2
-rw-r--r--res/values-pt-rBR/strings.xml4
-rw-r--r--res/values-pt-rPT/strings.xml2
-rw-r--r--res/values-ro/strings.xml2
-rw-r--r--res/values-ru/strings.xml2
-rw-r--r--res/values-sk/strings.xml2
-rw-r--r--res/values-sl/strings.xml207
-rw-r--r--res/values-sv/strings.xml2
-rw-r--r--res/values-th/strings.xml2
-rw-r--r--res/values-tr/strings.xml205
-rw-r--r--res/values-ug/strings.xml2
-rw-r--r--res/values-uk/strings.xml2
-rw-r--r--res/values-zh-rCN/strings.xml2
-rw-r--r--res/values-zh-rTW/strings.xml2
-rw-r--r--res/values/arrays.xml11
-rw-r--r--res/values/colors.xml2
-rw-r--r--res/values/dimens.xml3
-rw-r--r--res/values/strings.xml22
-rw-r--r--res/values/styles.xml10
-rwxr-xr-xres/xml/preferences_calendar.xml15
-rw-r--r--res/xml/preferences_weather.xml22
-rw-r--r--src/com/cyanogenmod/lockclock/ClockWidgetProvider.java11
-rwxr-xr-xsrc/com/cyanogenmod/lockclock/ClockWidgetService.java46
-rwxr-xr-xsrc/com/cyanogenmod/lockclock/calendar/CalendarViewsService.java (renamed from src/com/cyanogenmod/lockclock/calendar/CalendarWidgetService.java)2
-rwxr-xr-xsrc/com/cyanogenmod/lockclock/misc/Constants.java9
-rw-r--r--src/com/cyanogenmod/lockclock/misc/IconUtils.java153
-rw-r--r--src/com/cyanogenmod/lockclock/misc/Preferences.java23
-rw-r--r--src/com/cyanogenmod/lockclock/misc/WidgetUtils.java47
-rw-r--r--src/com/cyanogenmod/lockclock/preference/CustomLocationPreference.java3
-rw-r--r--src/com/cyanogenmod/lockclock/preference/IconSelectionPreference.java314
-rwxr-xr-xsrc/com/cyanogenmod/lockclock/preference/Preferences.java11
-rw-r--r--src/com/cyanogenmod/lockclock/preference/WeatherPreferences.java53
-rw-r--r--src/com/cyanogenmod/lockclock/weather/ForecastActivity.java147
-rw-r--r--src/com/cyanogenmod/lockclock/weather/ForecastBuilder.java174
-rwxr-xr-xsrc/com/cyanogenmod/lockclock/weather/HttpRetriever.java2
-rw-r--r--src/com/cyanogenmod/lockclock/weather/OpenWeatherMapProvider.java311
-rwxr-xr-xsrc/com/cyanogenmod/lockclock/weather/WeatherInfo.java188
-rw-r--r--src/com/cyanogenmod/lockclock/weather/WeatherProvider.java10
-rwxr-xr-xsrc/com/cyanogenmod/lockclock/weather/WeatherUpdateService.java154
-rw-r--r--src/com/cyanogenmod/lockclock/weather/YahooWeatherProvider.java105
808 files changed, 2657 insertions, 242 deletions
diff --git a/Android.mk b/Android.mk
index ba1cd9a..5492ee3 100644
--- a/Android.mk
+++ b/Android.mk
@@ -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
index c0a4dfd..7568ebc 100644
--- a/res/drawable-hdpi/calendar_preferences.png
+++ b/res/drawable-hdpi/calendar_preferences.png
Binary files differ
diff --git a/res/drawable-hdpi/dialog_full_holo_dark.9.png b/res/drawable-hdpi/dialog_full_holo_dark.9.png
new file mode 100644
index 0000000..911f3fe
--- /dev/null
+++ b/res/drawable-hdpi/dialog_full_holo_dark.9.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_done_holo_light.png b/res/drawable-hdpi/ic_menu_done_holo_light.png
index 923589e..d8662e3 100644
--- a/res/drawable-hdpi/ic_menu_done_holo_light.png
+++ b/res/drawable-hdpi/ic_menu_done_holo_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_refresh_holo_dark.png b/res/drawable-hdpi/ic_menu_refresh_holo_dark.png
new file mode 100644
index 0000000..69ac31b
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_refresh_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/weather2_0.png b/res/drawable-hdpi/weather2_0.png
deleted file mode 100644
index 93acd59..0000000
--- a/res/drawable-hdpi/weather2_0.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_1.png b/res/drawable-hdpi/weather2_1.png
deleted file mode 100644
index 7bb9f7f..0000000
--- a/res/drawable-hdpi/weather2_1.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_10.png b/res/drawable-hdpi/weather2_10.png
deleted file mode 100644
index 7bb9f7f..0000000
--- a/res/drawable-hdpi/weather2_10.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_11.png b/res/drawable-hdpi/weather2_11.png
deleted file mode 100644
index 7bb9f7f..0000000
--- a/res/drawable-hdpi/weather2_11.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_12.png b/res/drawable-hdpi/weather2_12.png
deleted file mode 100644
index 7bb9f7f..0000000
--- a/res/drawable-hdpi/weather2_12.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_13.png b/res/drawable-hdpi/weather2_13.png
deleted file mode 100644
index 30d3b2f..0000000
--- a/res/drawable-hdpi/weather2_13.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_14.png b/res/drawable-hdpi/weather2_14.png
deleted file mode 100644
index 30d3b2f..0000000
--- a/res/drawable-hdpi/weather2_14.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_15.png b/res/drawable-hdpi/weather2_15.png
deleted file mode 100644
index 30d3b2f..0000000
--- a/res/drawable-hdpi/weather2_15.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_16.png b/res/drawable-hdpi/weather2_16.png
deleted file mode 100644
index 30d3b2f..0000000
--- a/res/drawable-hdpi/weather2_16.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_17.png b/res/drawable-hdpi/weather2_17.png
deleted file mode 100644
index 93acd59..0000000
--- a/res/drawable-hdpi/weather2_17.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_18.png b/res/drawable-hdpi/weather2_18.png
deleted file mode 100644
index 30d3b2f..0000000
--- a/res/drawable-hdpi/weather2_18.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_19.png b/res/drawable-hdpi/weather2_19.png
deleted file mode 100644
index 89adec3..0000000
--- a/res/drawable-hdpi/weather2_19.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_2.png b/res/drawable-hdpi/weather2_2.png
deleted file mode 100644
index 7bb9f7f..0000000
--- a/res/drawable-hdpi/weather2_2.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_20.png b/res/drawable-hdpi/weather2_20.png
deleted file mode 100644
index 130146b..0000000
--- a/res/drawable-hdpi/weather2_20.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_21.png b/res/drawable-hdpi/weather2_21.png
deleted file mode 100644
index e8ae4eb..0000000
--- a/res/drawable-hdpi/weather2_21.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_22.png b/res/drawable-hdpi/weather2_22.png
deleted file mode 100644
index e8ae4eb..0000000
--- a/res/drawable-hdpi/weather2_22.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_23.png b/res/drawable-hdpi/weather2_23.png
deleted file mode 100644
index e683f51..0000000
--- a/res/drawable-hdpi/weather2_23.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_24.png b/res/drawable-hdpi/weather2_24.png
deleted file mode 100644
index e683f51..0000000
--- a/res/drawable-hdpi/weather2_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_25.png b/res/drawable-hdpi/weather2_25.png
deleted file mode 100644
index 91e017b..0000000
--- a/res/drawable-hdpi/weather2_25.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_26.png b/res/drawable-hdpi/weather2_26.png
deleted file mode 100644
index 91e017b..0000000
--- a/res/drawable-hdpi/weather2_26.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_27.png b/res/drawable-hdpi/weather2_27.png
deleted file mode 100644
index c4a7769..0000000
--- a/res/drawable-hdpi/weather2_27.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_28.png b/res/drawable-hdpi/weather2_28.png
deleted file mode 100644
index e683f51..0000000
--- a/res/drawable-hdpi/weather2_28.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_29.png b/res/drawable-hdpi/weather2_29.png
deleted file mode 100644
index b268282..0000000
--- a/res/drawable-hdpi/weather2_29.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_3.png b/res/drawable-hdpi/weather2_3.png
deleted file mode 100644
index 93acd59..0000000
--- a/res/drawable-hdpi/weather2_3.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_30.png b/res/drawable-hdpi/weather2_30.png
deleted file mode 100644
index e683f51..0000000
--- a/res/drawable-hdpi/weather2_30.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_31.png b/res/drawable-hdpi/weather2_31.png
deleted file mode 100644
index 6b8717a..0000000
--- a/res/drawable-hdpi/weather2_31.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_32.png b/res/drawable-hdpi/weather2_32.png
deleted file mode 100644
index 076d20d..0000000
--- a/res/drawable-hdpi/weather2_32.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_33.png b/res/drawable-hdpi/weather2_33.png
deleted file mode 100644
index 3a4404a..0000000
--- a/res/drawable-hdpi/weather2_33.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_34.png b/res/drawable-hdpi/weather2_34.png
deleted file mode 100644
index 21f2d64..0000000
--- a/res/drawable-hdpi/weather2_34.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_35.png b/res/drawable-hdpi/weather2_35.png
deleted file mode 100644
index 93acd59..0000000
--- a/res/drawable-hdpi/weather2_35.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_36.png b/res/drawable-hdpi/weather2_36.png
deleted file mode 100644
index 076d20d..0000000
--- a/res/drawable-hdpi/weather2_36.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_37.png b/res/drawable-hdpi/weather2_37.png
deleted file mode 100644
index 3e37538..0000000
--- a/res/drawable-hdpi/weather2_37.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_38.png b/res/drawable-hdpi/weather2_38.png
deleted file mode 100644
index 93acd59..0000000
--- a/res/drawable-hdpi/weather2_38.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_39.png b/res/drawable-hdpi/weather2_39.png
deleted file mode 100644
index 0df118e..0000000
--- a/res/drawable-hdpi/weather2_39.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_4.png b/res/drawable-hdpi/weather2_4.png
deleted file mode 100644
index 93acd59..0000000
--- a/res/drawable-hdpi/weather2_4.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_40.png b/res/drawable-hdpi/weather2_40.png
deleted file mode 100644
index 7bb9f7f..0000000
--- a/res/drawable-hdpi/weather2_40.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_41.png b/res/drawable-hdpi/weather2_41.png
deleted file mode 100644
index 30d3b2f..0000000
--- a/res/drawable-hdpi/weather2_41.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_42.png b/res/drawable-hdpi/weather2_42.png
deleted file mode 100644
index 30d3b2f..0000000
--- a/res/drawable-hdpi/weather2_42.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_43.png b/res/drawable-hdpi/weather2_43.png
deleted file mode 100644
index 3b31634..0000000
--- a/res/drawable-hdpi/weather2_43.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_44.png b/res/drawable-hdpi/weather2_44.png
deleted file mode 100644
index e9a0029..0000000
--- a/res/drawable-hdpi/weather2_44.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_45.png b/res/drawable-hdpi/weather2_45.png
deleted file mode 100644
index dda8edb..0000000
--- a/res/drawable-hdpi/weather2_45.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_46.png b/res/drawable-hdpi/weather2_46.png
deleted file mode 100644
index 4ea6a2d..0000000
--- a/res/drawable-hdpi/weather2_46.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_47.png b/res/drawable-hdpi/weather2_47.png
deleted file mode 100644
index 1f82f89..0000000
--- a/res/drawable-hdpi/weather2_47.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_5.png b/res/drawable-hdpi/weather2_5.png
deleted file mode 100644
index c2bf7f3..0000000
--- a/res/drawable-hdpi/weather2_5.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_6.png b/res/drawable-hdpi/weather2_6.png
deleted file mode 100644
index c2bf7f3..0000000
--- a/res/drawable-hdpi/weather2_6.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_7.png b/res/drawable-hdpi/weather2_7.png
deleted file mode 100644
index 30d3b2f..0000000
--- a/res/drawable-hdpi/weather2_7.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_8.png b/res/drawable-hdpi/weather2_8.png
deleted file mode 100644
index 91e017b..0000000
--- a/res/drawable-hdpi/weather2_8.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_9.png b/res/drawable-hdpi/weather2_9.png
deleted file mode 100644
index 7bb9f7f..0000000
--- a/res/drawable-hdpi/weather2_9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather2_na.png b/res/drawable-hdpi/weather2_na.png
deleted file mode 100644
index ea0bfff..0000000
--- a/res/drawable-hdpi/weather2_na.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/weather_0.png b/res/drawable-hdpi/weather_0.png
index 9e539b6..6da5673 100644
--- a/res/drawable-hdpi/weather_0.png
+++ b/res/drawable-hdpi/weather_0.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_1.png b/res/drawable-hdpi/weather_1.png
index 9e539b6..6da5673 100644
--- a/res/drawable-hdpi/weather_1.png
+++ b/res/drawable-hdpi/weather_1.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_10.png b/res/drawable-hdpi/weather_10.png
index daf991e..608d12e 100644
--- a/res/drawable-hdpi/weather_10.png
+++ b/res/drawable-hdpi/weather_10.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_11.png b/res/drawable-hdpi/weather_11.png
index 91a74a5..c423c2f 100644
--- a/res/drawable-hdpi/weather_11.png
+++ b/res/drawable-hdpi/weather_11.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_12.png b/res/drawable-hdpi/weather_12.png
index 91a74a5..c423c2f 100644
--- a/res/drawable-hdpi/weather_12.png
+++ b/res/drawable-hdpi/weather_12.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_13.png b/res/drawable-hdpi/weather_13.png
index b2f41a5..57845d9 100644
--- a/res/drawable-hdpi/weather_13.png
+++ b/res/drawable-hdpi/weather_13.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_14.png b/res/drawable-hdpi/weather_14.png
index b2f41a5..57845d9 100644
--- a/res/drawable-hdpi/weather_14.png
+++ b/res/drawable-hdpi/weather_14.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_15.png b/res/drawable-hdpi/weather_15.png
index 2e92b35..0bd5ced 100644
--- a/res/drawable-hdpi/weather_15.png
+++ b/res/drawable-hdpi/weather_15.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_16.png b/res/drawable-hdpi/weather_16.png
index bf4564c..5efb417 100644
--- a/res/drawable-hdpi/weather_16.png
+++ b/res/drawable-hdpi/weather_16.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_17.png b/res/drawable-hdpi/weather_17.png
index f7948c1..7960cae 100644
--- a/res/drawable-hdpi/weather_17.png
+++ b/res/drawable-hdpi/weather_17.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_18.png b/res/drawable-hdpi/weather_18.png
index 802a80f..8e6dd43 100644
--- a/res/drawable-hdpi/weather_18.png
+++ b/res/drawable-hdpi/weather_18.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_19.png b/res/drawable-hdpi/weather_19.png
index b67ba5e..f90075e 100644
--- a/res/drawable-hdpi/weather_19.png
+++ b/res/drawable-hdpi/weather_19.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_2.png b/res/drawable-hdpi/weather_2.png
index 9e539b6..6da5673 100644
--- a/res/drawable-hdpi/weather_2.png
+++ b/res/drawable-hdpi/weather_2.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_20.png b/res/drawable-hdpi/weather_20.png
index fd40f33..22ffd2d 100644
--- a/res/drawable-hdpi/weather_20.png
+++ b/res/drawable-hdpi/weather_20.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_21.png b/res/drawable-hdpi/weather_21.png
index 8349b21..9b9e309 100644
--- a/res/drawable-hdpi/weather_21.png
+++ b/res/drawable-hdpi/weather_21.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_22.png b/res/drawable-hdpi/weather_22.png
index b67ba5e..f90075e 100644
--- a/res/drawable-hdpi/weather_22.png
+++ b/res/drawable-hdpi/weather_22.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_23.png b/res/drawable-hdpi/weather_23.png
index ca015be..86b968d 100644
--- a/res/drawable-hdpi/weather_23.png
+++ b/res/drawable-hdpi/weather_23.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_24.png b/res/drawable-hdpi/weather_24.png
index ca015be..86b968d 100644
--- a/res/drawable-hdpi/weather_24.png
+++ b/res/drawable-hdpi/weather_24.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_25.png b/res/drawable-hdpi/weather_25.png
index 32cb0d8..225047f 100644
--- a/res/drawable-hdpi/weather_25.png
+++ b/res/drawable-hdpi/weather_25.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_26.png b/res/drawable-hdpi/weather_26.png
index ce9761a..c918c4c 100644
--- a/res/drawable-hdpi/weather_26.png
+++ b/res/drawable-hdpi/weather_26.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_27.png b/res/drawable-hdpi/weather_27.png
index 67433a7..3db96b7 100644
--- a/res/drawable-hdpi/weather_27.png
+++ b/res/drawable-hdpi/weather_27.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_28.png b/res/drawable-hdpi/weather_28.png
index 43f3df8..a49a089 100644
--- a/res/drawable-hdpi/weather_28.png
+++ b/res/drawable-hdpi/weather_28.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_29.png b/res/drawable-hdpi/weather_29.png
index 67433a7..3db96b7 100644
--- a/res/drawable-hdpi/weather_29.png
+++ b/res/drawable-hdpi/weather_29.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_3.png b/res/drawable-hdpi/weather_3.png
index 708a2e6..dd25ea4 100644
--- a/res/drawable-hdpi/weather_3.png
+++ b/res/drawable-hdpi/weather_3.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_30.png b/res/drawable-hdpi/weather_30.png
index 43f3df8..a49a089 100644
--- a/res/drawable-hdpi/weather_30.png
+++ b/res/drawable-hdpi/weather_30.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_31.png b/res/drawable-hdpi/weather_31.png
index d545d77..831f19d 100644
--- a/res/drawable-hdpi/weather_31.png
+++ b/res/drawable-hdpi/weather_31.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_32.png b/res/drawable-hdpi/weather_32.png
index c55e4b3..c9fecb0 100644
--- a/res/drawable-hdpi/weather_32.png
+++ b/res/drawable-hdpi/weather_32.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_33.png b/res/drawable-hdpi/weather_33.png
index d545d77..831f19d 100644
--- a/res/drawable-hdpi/weather_33.png
+++ b/res/drawable-hdpi/weather_33.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_34.png b/res/drawable-hdpi/weather_34.png
index c55e4b3..c9fecb0 100644
--- a/res/drawable-hdpi/weather_34.png
+++ b/res/drawable-hdpi/weather_34.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_35.png b/res/drawable-hdpi/weather_35.png
index 3cd1b81..f92be1c 100644
--- a/res/drawable-hdpi/weather_35.png
+++ b/res/drawable-hdpi/weather_35.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_36.png b/res/drawable-hdpi/weather_36.png
index 06cb774..97e9b0f 100644
--- a/res/drawable-hdpi/weather_36.png
+++ b/res/drawable-hdpi/weather_36.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_37.png b/res/drawable-hdpi/weather_37.png
index 8b2c4d1..b87873c 100644
--- a/res/drawable-hdpi/weather_37.png
+++ b/res/drawable-hdpi/weather_37.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_38.png b/res/drawable-hdpi/weather_38.png
index f0509ef..1fb1c34 100644
--- a/res/drawable-hdpi/weather_38.png
+++ b/res/drawable-hdpi/weather_38.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_39.png b/res/drawable-hdpi/weather_39.png
index 8b2c4d1..b87873c 100644
--- a/res/drawable-hdpi/weather_39.png
+++ b/res/drawable-hdpi/weather_39.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_4.png b/res/drawable-hdpi/weather_4.png
index 708a2e6..dd25ea4 100644
--- a/res/drawable-hdpi/weather_4.png
+++ b/res/drawable-hdpi/weather_4.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_40.png b/res/drawable-hdpi/weather_40.png
index fb3c06d..93e4756 100644
--- a/res/drawable-hdpi/weather_40.png
+++ b/res/drawable-hdpi/weather_40.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_41.png b/res/drawable-hdpi/weather_41.png
index bf4564c..5efb417 100644
--- a/res/drawable-hdpi/weather_41.png
+++ b/res/drawable-hdpi/weather_41.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_42.png b/res/drawable-hdpi/weather_42.png
index 7b81366..06e76de 100644
--- a/res/drawable-hdpi/weather_42.png
+++ b/res/drawable-hdpi/weather_42.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_43.png b/res/drawable-hdpi/weather_43.png
index bf4564c..5efb417 100644
--- a/res/drawable-hdpi/weather_43.png
+++ b/res/drawable-hdpi/weather_43.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_44.png b/res/drawable-hdpi/weather_44.png
index 67433a7..3db96b7 100644
--- a/res/drawable-hdpi/weather_44.png
+++ b/res/drawable-hdpi/weather_44.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_45.png b/res/drawable-hdpi/weather_45.png
index 708a2e6..dd25ea4 100644
--- a/res/drawable-hdpi/weather_45.png
+++ b/res/drawable-hdpi/weather_45.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_46.png b/res/drawable-hdpi/weather_46.png
index b2f41a5..57845d9 100644
--- a/res/drawable-hdpi/weather_46.png
+++ b/res/drawable-hdpi/weather_46.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_47.png b/res/drawable-hdpi/weather_47.png
index f0509ef..1fb1c34 100644
--- a/res/drawable-hdpi/weather_47.png
+++ b/res/drawable-hdpi/weather_47.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_5.png b/res/drawable-hdpi/weather_5.png
index 802a80f..8e6dd43 100644
--- a/res/drawable-hdpi/weather_5.png
+++ b/res/drawable-hdpi/weather_5.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_6.png b/res/drawable-hdpi/weather_6.png
index 802a80f..8e6dd43 100644
--- a/res/drawable-hdpi/weather_6.png
+++ b/res/drawable-hdpi/weather_6.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_7.png b/res/drawable-hdpi/weather_7.png
index 802a80f..8e6dd43 100644
--- a/res/drawable-hdpi/weather_7.png
+++ b/res/drawable-hdpi/weather_7.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_8.png b/res/drawable-hdpi/weather_8.png
index e36a680..ec5c008 100644
--- a/res/drawable-hdpi/weather_8.png
+++ b/res/drawable-hdpi/weather_8.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_9.png b/res/drawable-hdpi/weather_9.png
index 7651b3e..f1c54b7 100644
--- a/res/drawable-hdpi/weather_9.png
+++ b/res/drawable-hdpi/weather_9.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_0.png b/res/drawable-hdpi/weather_color_0.png
new file mode 100644
index 0000000..817a1ef
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_0.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_1.png b/res/drawable-hdpi/weather_color_1.png
new file mode 100644
index 0000000..ccd81c6
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_1.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_10.png b/res/drawable-hdpi/weather_color_10.png
new file mode 100644
index 0000000..e8e05ec
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_10.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_11.png b/res/drawable-hdpi/weather_color_11.png
new file mode 100644
index 0000000..86cb275
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_11.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_12.png b/res/drawable-hdpi/weather_color_12.png
new file mode 100644
index 0000000..86cb275
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_12.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_13.png b/res/drawable-hdpi/weather_color_13.png
new file mode 100644
index 0000000..0b453f5
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_13.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_14.png b/res/drawable-hdpi/weather_color_14.png
new file mode 100644
index 0000000..0b453f5
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_14.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_15.png b/res/drawable-hdpi/weather_color_15.png
new file mode 100644
index 0000000..0b453f5
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_15.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_16.png b/res/drawable-hdpi/weather_color_16.png
new file mode 100644
index 0000000..0b453f5
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_16.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_17.png b/res/drawable-hdpi/weather_color_17.png
new file mode 100644
index 0000000..b0d0d2f
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_17.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_18.png b/res/drawable-hdpi/weather_color_18.png
new file mode 100644
index 0000000..70b3ff3
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_18.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_19.png b/res/drawable-hdpi/weather_color_19.png
new file mode 100644
index 0000000..70cd4f8
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_19.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_2.png b/res/drawable-hdpi/weather_color_2.png
new file mode 100644
index 0000000..ccd81c6
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_2.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_20.png b/res/drawable-hdpi/weather_color_20.png
new file mode 100644
index 0000000..55e3b0a
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_20.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_21.png b/res/drawable-hdpi/weather_color_21.png
new file mode 100644
index 0000000..bc115ab
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_21.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_22.png b/res/drawable-hdpi/weather_color_22.png
new file mode 100644
index 0000000..2e937f7
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_22.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_23.png b/res/drawable-hdpi/weather_color_23.png
new file mode 100644
index 0000000..a3da963
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_23.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_24.png b/res/drawable-hdpi/weather_color_24.png
new file mode 100644
index 0000000..a3da963
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_24.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_25.png b/res/drawable-hdpi/weather_color_25.png
new file mode 100644
index 0000000..a2a7341
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_25.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_26.png b/res/drawable-hdpi/weather_color_26.png
new file mode 100644
index 0000000..e42cb6c
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_26.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_27.png b/res/drawable-hdpi/weather_color_27.png
new file mode 100644
index 0000000..27cce80
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_27.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_28.png b/res/drawable-hdpi/weather_color_28.png
new file mode 100644
index 0000000..1d957ab
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_28.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_29.png b/res/drawable-hdpi/weather_color_29.png
new file mode 100644
index 0000000..659129e
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_29.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_3.png b/res/drawable-hdpi/weather_color_3.png
new file mode 100644
index 0000000..817a1ef
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_3.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_30.png b/res/drawable-hdpi/weather_color_30.png
new file mode 100644
index 0000000..0672cc2
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_30.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_31.png b/res/drawable-hdpi/weather_color_31.png
new file mode 100644
index 0000000..4f6786b
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_31.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_32.png b/res/drawable-hdpi/weather_color_32.png
new file mode 100644
index 0000000..5c3e46c
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_32.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_33.png b/res/drawable-hdpi/weather_color_33.png
new file mode 100644
index 0000000..e5e993d
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_33.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_34.png b/res/drawable-hdpi/weather_color_34.png
new file mode 100644
index 0000000..b0b9c5a
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_34.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_35.png b/res/drawable-hdpi/weather_color_35.png
new file mode 100644
index 0000000..6ebd07c
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_35.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_36.png b/res/drawable-hdpi/weather_color_36.png
new file mode 100644
index 0000000..2e8308d
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_36.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_37.png b/res/drawable-hdpi/weather_color_37.png
new file mode 100644
index 0000000..36b11c2
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_37.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_38.png b/res/drawable-hdpi/weather_color_38.png
new file mode 100644
index 0000000..36b11c2
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_38.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_39.png b/res/drawable-hdpi/weather_color_39.png
new file mode 100644
index 0000000..36b11c2
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_39.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_4.png b/res/drawable-hdpi/weather_color_4.png
new file mode 100644
index 0000000..817a1ef
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_4.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_40.png b/res/drawable-hdpi/weather_color_40.png
new file mode 100644
index 0000000..01e8f64
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_40.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_41.png b/res/drawable-hdpi/weather_color_41.png
new file mode 100644
index 0000000..20d4181
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_41.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_42.png b/res/drawable-hdpi/weather_color_42.png
new file mode 100644
index 0000000..0b453f5
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_42.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_43.png b/res/drawable-hdpi/weather_color_43.png
new file mode 100644
index 0000000..0208659
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_43.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_44.png b/res/drawable-hdpi/weather_color_44.png
new file mode 100644
index 0000000..e5e993d
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_44.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_45.png b/res/drawable-hdpi/weather_color_45.png
new file mode 100644
index 0000000..5caec1e
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_45.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_46.png b/res/drawable-hdpi/weather_color_46.png
new file mode 100644
index 0000000..79c5495
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_46.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_47.png b/res/drawable-hdpi/weather_color_47.png
new file mode 100644
index 0000000..fd769e6
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_47.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_5.png b/res/drawable-hdpi/weather_color_5.png
new file mode 100644
index 0000000..70b3ff3
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_5.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_6.png b/res/drawable-hdpi/weather_color_6.png
new file mode 100644
index 0000000..70b3ff3
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_6.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_7.png b/res/drawable-hdpi/weather_color_7.png
new file mode 100644
index 0000000..0b453f5
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_7.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_8.png b/res/drawable-hdpi/weather_color_8.png
new file mode 100644
index 0000000..7de8be0
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_8.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_9.png b/res/drawable-hdpi/weather_color_9.png
new file mode 100644
index 0000000..dd3b0da
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_9.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_color_na.png b/res/drawable-hdpi/weather_color_na.png
new file mode 100644
index 0000000..9a0ad6e
--- /dev/null
+++ b/res/drawable-hdpi/weather_color_na.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_na.png b/res/drawable-hdpi/weather_na.png
index 4a43283..7dd3505 100644
--- a/res/drawable-hdpi/weather_na.png
+++ b/res/drawable-hdpi/weather_na.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_preferences.png b/res/drawable-hdpi/weather_preferences.png
index d6b096a..2ef8730 100644
--- a/res/drawable-hdpi/weather_preferences.png
+++ b/res/drawable-hdpi/weather_preferences.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_0.png b/res/drawable-hdpi/weather_vclouds_0.png
new file mode 100644
index 0000000..a5b6324
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_0.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_1.png b/res/drawable-hdpi/weather_vclouds_1.png
new file mode 100644
index 0000000..a5b6324
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_1.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_10.png b/res/drawable-hdpi/weather_vclouds_10.png
new file mode 100644
index 0000000..4ddf752
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_10.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_11.png b/res/drawable-hdpi/weather_vclouds_11.png
new file mode 100644
index 0000000..71854e8
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_11.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_12.png b/res/drawable-hdpi/weather_vclouds_12.png
new file mode 100644
index 0000000..4985905
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_12.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_13.png b/res/drawable-hdpi/weather_vclouds_13.png
new file mode 100644
index 0000000..c1db7bb
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_13.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_14.png b/res/drawable-hdpi/weather_vclouds_14.png
new file mode 100644
index 0000000..8b4d8fa
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_14.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_15.png b/res/drawable-hdpi/weather_vclouds_15.png
new file mode 100644
index 0000000..84f39c8
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_15.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_16.png b/res/drawable-hdpi/weather_vclouds_16.png
new file mode 100644
index 0000000..9ffeee4
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_16.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_17.png b/res/drawable-hdpi/weather_vclouds_17.png
new file mode 100644
index 0000000..a5b6324
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_17.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_18.png b/res/drawable-hdpi/weather_vclouds_18.png
new file mode 100644
index 0000000..0046e64
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_18.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_19.png b/res/drawable-hdpi/weather_vclouds_19.png
new file mode 100644
index 0000000..4ff647d
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_19.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_2.png b/res/drawable-hdpi/weather_vclouds_2.png
new file mode 100644
index 0000000..a5b6324
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_2.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_20.png b/res/drawable-hdpi/weather_vclouds_20.png
new file mode 100644
index 0000000..de08bfc
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_20.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_21.png b/res/drawable-hdpi/weather_vclouds_21.png
new file mode 100644
index 0000000..6595679
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_21.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_22.png b/res/drawable-hdpi/weather_vclouds_22.png
new file mode 100644
index 0000000..68b5fb4
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_22.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_23.png b/res/drawable-hdpi/weather_vclouds_23.png
new file mode 100644
index 0000000..e1663c3
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_23.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_24.png b/res/drawable-hdpi/weather_vclouds_24.png
new file mode 100644
index 0000000..e1663c3
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_24.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_25.png b/res/drawable-hdpi/weather_vclouds_25.png
new file mode 100644
index 0000000..09827eb
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_25.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_26.png b/res/drawable-hdpi/weather_vclouds_26.png
new file mode 100644
index 0000000..3e87fc1
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_26.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_27.png b/res/drawable-hdpi/weather_vclouds_27.png
new file mode 100644
index 0000000..13f43bb
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_27.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_28.png b/res/drawable-hdpi/weather_vclouds_28.png
new file mode 100644
index 0000000..b727fdd
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_28.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_29.png b/res/drawable-hdpi/weather_vclouds_29.png
new file mode 100644
index 0000000..200d78d
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_29.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_3.png b/res/drawable-hdpi/weather_vclouds_3.png
new file mode 100644
index 0000000..a5b6324
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_3.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_30.png b/res/drawable-hdpi/weather_vclouds_30.png
new file mode 100644
index 0000000..c031705
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_30.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_31.png b/res/drawable-hdpi/weather_vclouds_31.png
new file mode 100644
index 0000000..abc4593
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_31.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_32.png b/res/drawable-hdpi/weather_vclouds_32.png
new file mode 100644
index 0000000..37d8474
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_32.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_33.png b/res/drawable-hdpi/weather_vclouds_33.png
new file mode 100644
index 0000000..29319c7
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_33.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_34.png b/res/drawable-hdpi/weather_vclouds_34.png
new file mode 100644
index 0000000..a47bf8a
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_34.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_35.png b/res/drawable-hdpi/weather_vclouds_35.png
new file mode 100644
index 0000000..a5b6324
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_35.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_36.png b/res/drawable-hdpi/weather_vclouds_36.png
new file mode 100644
index 0000000..1f87615
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_36.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_37.png b/res/drawable-hdpi/weather_vclouds_37.png
new file mode 100644
index 0000000..36588ea
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_37.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_38.png b/res/drawable-hdpi/weather_vclouds_38.png
new file mode 100644
index 0000000..36588ea
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_38.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_39.png b/res/drawable-hdpi/weather_vclouds_39.png
new file mode 100644
index 0000000..f5a8048
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_39.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_4.png b/res/drawable-hdpi/weather_vclouds_4.png
new file mode 100644
index 0000000..a5b6324
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_4.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_40.png b/res/drawable-hdpi/weather_vclouds_40.png
new file mode 100644
index 0000000..4985905
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_40.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_41.png b/res/drawable-hdpi/weather_vclouds_41.png
new file mode 100644
index 0000000..f48caee
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_41.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_42.png b/res/drawable-hdpi/weather_vclouds_42.png
new file mode 100644
index 0000000..9ffeee4
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_42.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_43.png b/res/drawable-hdpi/weather_vclouds_43.png
new file mode 100644
index 0000000..84f39c8
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_43.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_44.png b/res/drawable-hdpi/weather_vclouds_44.png
new file mode 100644
index 0000000..ff85cb0
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_44.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_45.png b/res/drawable-hdpi/weather_vclouds_45.png
new file mode 100644
index 0000000..5e2fbf5
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_45.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_46.png b/res/drawable-hdpi/weather_vclouds_46.png
new file mode 100644
index 0000000..c3abc30
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_46.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_47.png b/res/drawable-hdpi/weather_vclouds_47.png
new file mode 100644
index 0000000..4ad5bf7
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_47.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_5.png b/res/drawable-hdpi/weather_vclouds_5.png
new file mode 100644
index 0000000..719185f
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_5.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_6.png b/res/drawable-hdpi/weather_vclouds_6.png
new file mode 100644
index 0000000..bb66e9e
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_6.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_7.png b/res/drawable-hdpi/weather_vclouds_7.png
new file mode 100644
index 0000000..5a0d268
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_7.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_8.png b/res/drawable-hdpi/weather_vclouds_8.png
new file mode 100644
index 0000000..681f2a4
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_8.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_9.png b/res/drawable-hdpi/weather_vclouds_9.png
new file mode 100644
index 0000000..86bcda0
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_9.png
Binary files differ
diff --git a/res/drawable-hdpi/weather_vclouds_na.png b/res/drawable-hdpi/weather_vclouds_na.png
new file mode 100644
index 0000000..ff85cb0
--- /dev/null
+++ b/res/drawable-hdpi/weather_vclouds_na.png
Binary files differ
diff --git a/res/drawable-mdpi/calendar_preferences.png b/res/drawable-mdpi/calendar_preferences.png
index c808d87..205fc00 100644
--- a/res/drawable-mdpi/calendar_preferences.png
+++ b/res/drawable-mdpi/calendar_preferences.png
Binary files differ
diff --git a/res/drawable-mdpi/dialog_full_holo_dark.9.png b/res/drawable-mdpi/dialog_full_holo_dark.9.png
new file mode 100644
index 0000000..dc37316
--- /dev/null
+++ b/res/drawable-mdpi/dialog_full_holo_dark.9.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_done_holo_light.png b/res/drawable-mdpi/ic_menu_done_holo_light.png
index d831414..a17b6a7 100644
--- a/res/drawable-mdpi/ic_menu_done_holo_light.png
+++ b/res/drawable-mdpi/ic_menu_done_holo_light.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_refresh_holo_dark.png b/res/drawable-mdpi/ic_menu_refresh_holo_dark.png
new file mode 100644
index 0000000..f68aacf
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_refresh_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/weather2_0.png b/res/drawable-mdpi/weather2_0.png
deleted file mode 100644
index 76c902e..0000000
--- a/res/drawable-mdpi/weather2_0.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_1.png b/res/drawable-mdpi/weather2_1.png
deleted file mode 100644
index 1b62b47..0000000
--- a/res/drawable-mdpi/weather2_1.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_10.png b/res/drawable-mdpi/weather2_10.png
deleted file mode 100644
index 1b62b47..0000000
--- a/res/drawable-mdpi/weather2_10.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_11.png b/res/drawable-mdpi/weather2_11.png
deleted file mode 100644
index 1b62b47..0000000
--- a/res/drawable-mdpi/weather2_11.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_12.png b/res/drawable-mdpi/weather2_12.png
deleted file mode 100644
index 1b62b47..0000000
--- a/res/drawable-mdpi/weather2_12.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_13.png b/res/drawable-mdpi/weather2_13.png
deleted file mode 100644
index a74b0f8..0000000
--- a/res/drawable-mdpi/weather2_13.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_14.png b/res/drawable-mdpi/weather2_14.png
deleted file mode 100644
index a74b0f8..0000000
--- a/res/drawable-mdpi/weather2_14.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_15.png b/res/drawable-mdpi/weather2_15.png
deleted file mode 100644
index a74b0f8..0000000
--- a/res/drawable-mdpi/weather2_15.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_16.png b/res/drawable-mdpi/weather2_16.png
deleted file mode 100644
index a74b0f8..0000000
--- a/res/drawable-mdpi/weather2_16.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_17.png b/res/drawable-mdpi/weather2_17.png
deleted file mode 100644
index 76c902e..0000000
--- a/res/drawable-mdpi/weather2_17.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_18.png b/res/drawable-mdpi/weather2_18.png
deleted file mode 100644
index a74b0f8..0000000
--- a/res/drawable-mdpi/weather2_18.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_19.png b/res/drawable-mdpi/weather2_19.png
deleted file mode 100644
index c3e1c06..0000000
--- a/res/drawable-mdpi/weather2_19.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_2.png b/res/drawable-mdpi/weather2_2.png
deleted file mode 100644
index 1b62b47..0000000
--- a/res/drawable-mdpi/weather2_2.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_20.png b/res/drawable-mdpi/weather2_20.png
deleted file mode 100644
index 2eb6221..0000000
--- a/res/drawable-mdpi/weather2_20.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_21.png b/res/drawable-mdpi/weather2_21.png
deleted file mode 100644
index 85f33ce..0000000
--- a/res/drawable-mdpi/weather2_21.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_22.png b/res/drawable-mdpi/weather2_22.png
deleted file mode 100644
index 85f33ce..0000000
--- a/res/drawable-mdpi/weather2_22.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_23.png b/res/drawable-mdpi/weather2_23.png
deleted file mode 100644
index a8d0af0..0000000
--- a/res/drawable-mdpi/weather2_23.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_24.png b/res/drawable-mdpi/weather2_24.png
deleted file mode 100644
index a8d0af0..0000000
--- a/res/drawable-mdpi/weather2_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_25.png b/res/drawable-mdpi/weather2_25.png
deleted file mode 100644
index c8a5e02..0000000
--- a/res/drawable-mdpi/weather2_25.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_26.png b/res/drawable-mdpi/weather2_26.png
deleted file mode 100644
index c8a5e02..0000000
--- a/res/drawable-mdpi/weather2_26.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_27.png b/res/drawable-mdpi/weather2_27.png
deleted file mode 100644
index cf5ec57..0000000
--- a/res/drawable-mdpi/weather2_27.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_28.png b/res/drawable-mdpi/weather2_28.png
deleted file mode 100644
index a8d0af0..0000000
--- a/res/drawable-mdpi/weather2_28.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_29.png b/res/drawable-mdpi/weather2_29.png
deleted file mode 100644
index 46692ce..0000000
--- a/res/drawable-mdpi/weather2_29.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_3.png b/res/drawable-mdpi/weather2_3.png
deleted file mode 100644
index 76c902e..0000000
--- a/res/drawable-mdpi/weather2_3.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_30.png b/res/drawable-mdpi/weather2_30.png
deleted file mode 100644
index a8d0af0..0000000
--- a/res/drawable-mdpi/weather2_30.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_31.png b/res/drawable-mdpi/weather2_31.png
deleted file mode 100644
index f8a1add..0000000
--- a/res/drawable-mdpi/weather2_31.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_32.png b/res/drawable-mdpi/weather2_32.png
deleted file mode 100644
index 8a08d32..0000000
--- a/res/drawable-mdpi/weather2_32.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_33.png b/res/drawable-mdpi/weather2_33.png
deleted file mode 100644
index 97b96af..0000000
--- a/res/drawable-mdpi/weather2_33.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_34.png b/res/drawable-mdpi/weather2_34.png
deleted file mode 100644
index 2204467..0000000
--- a/res/drawable-mdpi/weather2_34.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_35.png b/res/drawable-mdpi/weather2_35.png
deleted file mode 100644
index 76c902e..0000000
--- a/res/drawable-mdpi/weather2_35.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_36.png b/res/drawable-mdpi/weather2_36.png
deleted file mode 100644
index 8a08d32..0000000
--- a/res/drawable-mdpi/weather2_36.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_37.png b/res/drawable-mdpi/weather2_37.png
deleted file mode 100644
index 3e6d742..0000000
--- a/res/drawable-mdpi/weather2_37.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_38.png b/res/drawable-mdpi/weather2_38.png
deleted file mode 100644
index 76c902e..0000000
--- a/res/drawable-mdpi/weather2_38.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_39.png b/res/drawable-mdpi/weather2_39.png
deleted file mode 100644
index cede249..0000000
--- a/res/drawable-mdpi/weather2_39.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_4.png b/res/drawable-mdpi/weather2_4.png
deleted file mode 100644
index 76c902e..0000000
--- a/res/drawable-mdpi/weather2_4.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_40.png b/res/drawable-mdpi/weather2_40.png
deleted file mode 100644
index 1b62b47..0000000
--- a/res/drawable-mdpi/weather2_40.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_41.png b/res/drawable-mdpi/weather2_41.png
deleted file mode 100644
index a74b0f8..0000000
--- a/res/drawable-mdpi/weather2_41.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_42.png b/res/drawable-mdpi/weather2_42.png
deleted file mode 100644
index a74b0f8..0000000
--- a/res/drawable-mdpi/weather2_42.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_43.png b/res/drawable-mdpi/weather2_43.png
deleted file mode 100644
index 43ba638..0000000
--- a/res/drawable-mdpi/weather2_43.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_44.png b/res/drawable-mdpi/weather2_44.png
deleted file mode 100644
index 04a3d85..0000000
--- a/res/drawable-mdpi/weather2_44.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_45.png b/res/drawable-mdpi/weather2_45.png
deleted file mode 100644
index c02f754..0000000
--- a/res/drawable-mdpi/weather2_45.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_46.png b/res/drawable-mdpi/weather2_46.png
deleted file mode 100644
index f59544d..0000000
--- a/res/drawable-mdpi/weather2_46.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_47.png b/res/drawable-mdpi/weather2_47.png
deleted file mode 100644
index 2ef2308..0000000
--- a/res/drawable-mdpi/weather2_47.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_5.png b/res/drawable-mdpi/weather2_5.png
deleted file mode 100644
index 4761a6b..0000000
--- a/res/drawable-mdpi/weather2_5.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_6.png b/res/drawable-mdpi/weather2_6.png
deleted file mode 100644
index 4761a6b..0000000
--- a/res/drawable-mdpi/weather2_6.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_7.png b/res/drawable-mdpi/weather2_7.png
deleted file mode 100644
index a74b0f8..0000000
--- a/res/drawable-mdpi/weather2_7.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_8.png b/res/drawable-mdpi/weather2_8.png
deleted file mode 100644
index c8a5e02..0000000
--- a/res/drawable-mdpi/weather2_8.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_9.png b/res/drawable-mdpi/weather2_9.png
deleted file mode 100644
index 1b62b47..0000000
--- a/res/drawable-mdpi/weather2_9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather2_na.png b/res/drawable-mdpi/weather2_na.png
deleted file mode 100644
index 38ceee8..0000000
--- a/res/drawable-mdpi/weather2_na.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_0.png b/res/drawable-mdpi/weather_color_0.png
new file mode 100644
index 0000000..c1a14a6
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_0.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_1.png b/res/drawable-mdpi/weather_color_1.png
new file mode 100644
index 0000000..98a6d3f
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_1.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_10.png b/res/drawable-mdpi/weather_color_10.png
new file mode 100644
index 0000000..6a0d60f
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_10.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_11.png b/res/drawable-mdpi/weather_color_11.png
new file mode 100644
index 0000000..93a72e2
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_11.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_12.png b/res/drawable-mdpi/weather_color_12.png
new file mode 100644
index 0000000..93a72e2
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_12.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_13.png b/res/drawable-mdpi/weather_color_13.png
new file mode 100644
index 0000000..ea27e01
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_13.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_14.png b/res/drawable-mdpi/weather_color_14.png
new file mode 100644
index 0000000..ea27e01
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_14.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_15.png b/res/drawable-mdpi/weather_color_15.png
new file mode 100644
index 0000000..ea27e01
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_15.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_16.png b/res/drawable-mdpi/weather_color_16.png
new file mode 100644
index 0000000..ea27e01
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_16.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_17.png b/res/drawable-mdpi/weather_color_17.png
new file mode 100644
index 0000000..ba2254b
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_17.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_18.png b/res/drawable-mdpi/weather_color_18.png
new file mode 100644
index 0000000..4bffe55
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_18.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_19.png b/res/drawable-mdpi/weather_color_19.png
new file mode 100644
index 0000000..423c696
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_19.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_2.png b/res/drawable-mdpi/weather_color_2.png
new file mode 100644
index 0000000..98a6d3f
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_2.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_20.png b/res/drawable-mdpi/weather_color_20.png
new file mode 100644
index 0000000..49856ba
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_20.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_21.png b/res/drawable-mdpi/weather_color_21.png
new file mode 100644
index 0000000..1045577
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_21.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_22.png b/res/drawable-mdpi/weather_color_22.png
new file mode 100644
index 0000000..4e575df
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_22.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_23.png b/res/drawable-mdpi/weather_color_23.png
new file mode 100644
index 0000000..346f4cf
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_23.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_24.png b/res/drawable-mdpi/weather_color_24.png
new file mode 100644
index 0000000..346f4cf
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_24.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_25.png b/res/drawable-mdpi/weather_color_25.png
new file mode 100644
index 0000000..ded1dd7
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_25.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_26.png b/res/drawable-mdpi/weather_color_26.png
new file mode 100644
index 0000000..0a5140b
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_26.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_27.png b/res/drawable-mdpi/weather_color_27.png
new file mode 100644
index 0000000..357d5ab
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_27.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_28.png b/res/drawable-mdpi/weather_color_28.png
new file mode 100644
index 0000000..6e3a52b
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_28.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_29.png b/res/drawable-mdpi/weather_color_29.png
new file mode 100644
index 0000000..7c052fb
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_29.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_3.png b/res/drawable-mdpi/weather_color_3.png
new file mode 100644
index 0000000..c1a14a6
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_3.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_30.png b/res/drawable-mdpi/weather_color_30.png
new file mode 100644
index 0000000..7951aaf
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_30.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_31.png b/res/drawable-mdpi/weather_color_31.png
new file mode 100644
index 0000000..cd05aa0
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_31.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_32.png b/res/drawable-mdpi/weather_color_32.png
new file mode 100644
index 0000000..74b0127
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_32.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_33.png b/res/drawable-mdpi/weather_color_33.png
new file mode 100644
index 0000000..21b8472
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_33.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_34.png b/res/drawable-mdpi/weather_color_34.png
new file mode 100644
index 0000000..bb0bcec
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_34.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_35.png b/res/drawable-mdpi/weather_color_35.png
new file mode 100644
index 0000000..8bb4fc4
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_35.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_36.png b/res/drawable-mdpi/weather_color_36.png
new file mode 100644
index 0000000..20a14ec
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_36.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_37.png b/res/drawable-mdpi/weather_color_37.png
new file mode 100644
index 0000000..ff99444
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_37.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_38.png b/res/drawable-mdpi/weather_color_38.png
new file mode 100644
index 0000000..ff99444
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_38.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_39.png b/res/drawable-mdpi/weather_color_39.png
new file mode 100644
index 0000000..ff99444
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_39.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_4.png b/res/drawable-mdpi/weather_color_4.png
new file mode 100644
index 0000000..c1a14a6
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_4.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_40.png b/res/drawable-mdpi/weather_color_40.png
new file mode 100644
index 0000000..714ec92
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_40.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_41.png b/res/drawable-mdpi/weather_color_41.png
new file mode 100644
index 0000000..4d459de
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_41.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_42.png b/res/drawable-mdpi/weather_color_42.png
new file mode 100644
index 0000000..ea27e01
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_42.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_43.png b/res/drawable-mdpi/weather_color_43.png
new file mode 100644
index 0000000..dd10ede
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_43.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_44.png b/res/drawable-mdpi/weather_color_44.png
new file mode 100644
index 0000000..21b8472
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_44.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_45.png b/res/drawable-mdpi/weather_color_45.png
new file mode 100644
index 0000000..d55f390
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_45.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_46.png b/res/drawable-mdpi/weather_color_46.png
new file mode 100644
index 0000000..635152a
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_46.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_47.png b/res/drawable-mdpi/weather_color_47.png
new file mode 100644
index 0000000..4c58b97
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_47.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_5.png b/res/drawable-mdpi/weather_color_5.png
new file mode 100644
index 0000000..4bffe55
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_5.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_6.png b/res/drawable-mdpi/weather_color_6.png
new file mode 100644
index 0000000..4bffe55
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_6.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_7.png b/res/drawable-mdpi/weather_color_7.png
new file mode 100644
index 0000000..ea27e01
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_7.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_8.png b/res/drawable-mdpi/weather_color_8.png
new file mode 100644
index 0000000..70b51d6
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_8.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_9.png b/res/drawable-mdpi/weather_color_9.png
new file mode 100644
index 0000000..0560bd9
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_9.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_color_na.png b/res/drawable-mdpi/weather_color_na.png
new file mode 100644
index 0000000..7e8b4e8
--- /dev/null
+++ b/res/drawable-mdpi/weather_color_na.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_preferences.png b/res/drawable-mdpi/weather_preferences.png
index 447b4ba..d7c1882 100644
--- a/res/drawable-mdpi/weather_preferences.png
+++ b/res/drawable-mdpi/weather_preferences.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_0.png b/res/drawable-mdpi/weather_vclouds_0.png
new file mode 100644
index 0000000..0eebdb2
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_0.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_1.png b/res/drawable-mdpi/weather_vclouds_1.png
new file mode 100644
index 0000000..0eebdb2
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_1.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_10.png b/res/drawable-mdpi/weather_vclouds_10.png
new file mode 100644
index 0000000..8583089
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_10.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_11.png b/res/drawable-mdpi/weather_vclouds_11.png
new file mode 100644
index 0000000..1b08812
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_11.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_12.png b/res/drawable-mdpi/weather_vclouds_12.png
new file mode 100644
index 0000000..023b1f6
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_12.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_13.png b/res/drawable-mdpi/weather_vclouds_13.png
new file mode 100644
index 0000000..e797ba4
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_13.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_14.png b/res/drawable-mdpi/weather_vclouds_14.png
new file mode 100644
index 0000000..2739182
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_14.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_15.png b/res/drawable-mdpi/weather_vclouds_15.png
new file mode 100644
index 0000000..179636b
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_15.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_16.png b/res/drawable-mdpi/weather_vclouds_16.png
new file mode 100644
index 0000000..adec978
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_16.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_17.png b/res/drawable-mdpi/weather_vclouds_17.png
new file mode 100644
index 0000000..0eebdb2
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_17.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_18.png b/res/drawable-mdpi/weather_vclouds_18.png
new file mode 100644
index 0000000..4c60cef
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_18.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_19.png b/res/drawable-mdpi/weather_vclouds_19.png
new file mode 100644
index 0000000..2de4a62
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_19.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_2.png b/res/drawable-mdpi/weather_vclouds_2.png
new file mode 100644
index 0000000..0eebdb2
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_2.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_20.png b/res/drawable-mdpi/weather_vclouds_20.png
new file mode 100644
index 0000000..036534d
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_20.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_21.png b/res/drawable-mdpi/weather_vclouds_21.png
new file mode 100644
index 0000000..a943630
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_21.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_22.png b/res/drawable-mdpi/weather_vclouds_22.png
new file mode 100644
index 0000000..88edb28
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_22.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_23.png b/res/drawable-mdpi/weather_vclouds_23.png
new file mode 100644
index 0000000..b844542
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_23.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_24.png b/res/drawable-mdpi/weather_vclouds_24.png
new file mode 100644
index 0000000..b844542
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_24.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_25.png b/res/drawable-mdpi/weather_vclouds_25.png
new file mode 100644
index 0000000..67899e3
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_25.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_26.png b/res/drawable-mdpi/weather_vclouds_26.png
new file mode 100644
index 0000000..8886e2b
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_26.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_27.png b/res/drawable-mdpi/weather_vclouds_27.png
new file mode 100644
index 0000000..2ce6249
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_27.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_28.png b/res/drawable-mdpi/weather_vclouds_28.png
new file mode 100644
index 0000000..8bc2cba
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_28.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_29.png b/res/drawable-mdpi/weather_vclouds_29.png
new file mode 100644
index 0000000..f2d9728
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_29.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_3.png b/res/drawable-mdpi/weather_vclouds_3.png
new file mode 100644
index 0000000..0eebdb2
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_3.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_30.png b/res/drawable-mdpi/weather_vclouds_30.png
new file mode 100644
index 0000000..e54c3c5
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_30.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_31.png b/res/drawable-mdpi/weather_vclouds_31.png
new file mode 100644
index 0000000..57ac647
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_31.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_32.png b/res/drawable-mdpi/weather_vclouds_32.png
new file mode 100644
index 0000000..963f07a
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_32.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_33.png b/res/drawable-mdpi/weather_vclouds_33.png
new file mode 100644
index 0000000..0c6d902
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_33.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_34.png b/res/drawable-mdpi/weather_vclouds_34.png
new file mode 100644
index 0000000..1107643
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_34.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_35.png b/res/drawable-mdpi/weather_vclouds_35.png
new file mode 100644
index 0000000..0eebdb2
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_35.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_36.png b/res/drawable-mdpi/weather_vclouds_36.png
new file mode 100644
index 0000000..e80c0f8
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_36.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_37.png b/res/drawable-mdpi/weather_vclouds_37.png
new file mode 100644
index 0000000..126af36
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_37.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_38.png b/res/drawable-mdpi/weather_vclouds_38.png
new file mode 100644
index 0000000..126af36
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_38.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_39.png b/res/drawable-mdpi/weather_vclouds_39.png
new file mode 100644
index 0000000..677e324
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_39.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_4.png b/res/drawable-mdpi/weather_vclouds_4.png
new file mode 100644
index 0000000..0eebdb2
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_4.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_40.png b/res/drawable-mdpi/weather_vclouds_40.png
new file mode 100644
index 0000000..023b1f6
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_40.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_41.png b/res/drawable-mdpi/weather_vclouds_41.png
new file mode 100644
index 0000000..68ee64c
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_41.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_42.png b/res/drawable-mdpi/weather_vclouds_42.png
new file mode 100644
index 0000000..adec978
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_42.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_43.png b/res/drawable-mdpi/weather_vclouds_43.png
new file mode 100644
index 0000000..179636b
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_43.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_44.png b/res/drawable-mdpi/weather_vclouds_44.png
new file mode 100644
index 0000000..ac158b6
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_44.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_45.png b/res/drawable-mdpi/weather_vclouds_45.png
new file mode 100644
index 0000000..03881b1
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_45.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_46.png b/res/drawable-mdpi/weather_vclouds_46.png
new file mode 100644
index 0000000..33705b8
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_46.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_47.png b/res/drawable-mdpi/weather_vclouds_47.png
new file mode 100644
index 0000000..8a378dc
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_47.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_5.png b/res/drawable-mdpi/weather_vclouds_5.png
new file mode 100644
index 0000000..e263435
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_5.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_6.png b/res/drawable-mdpi/weather_vclouds_6.png
new file mode 100644
index 0000000..f09720a
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_6.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_7.png b/res/drawable-mdpi/weather_vclouds_7.png
new file mode 100644
index 0000000..efe9dcf
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_7.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_8.png b/res/drawable-mdpi/weather_vclouds_8.png
new file mode 100644
index 0000000..56a8a5f
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_8.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_9.png b/res/drawable-mdpi/weather_vclouds_9.png
new file mode 100644
index 0000000..7a51c5f
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_9.png
Binary files differ
diff --git a/res/drawable-mdpi/weather_vclouds_na.png b/res/drawable-mdpi/weather_vclouds_na.png
new file mode 100644
index 0000000..ac158b6
--- /dev/null
+++ b/res/drawable-mdpi/weather_vclouds_na.png
Binary files differ
diff --git a/res/drawable-xhdpi/calendar_preferences.png b/res/drawable-xhdpi/calendar_preferences.png
index 3c7f2d3..41f962d 100644
--- a/res/drawable-xhdpi/calendar_preferences.png
+++ b/res/drawable-xhdpi/calendar_preferences.png
Binary files differ
diff --git a/res/drawable-xhdpi/dialog_full_holo_dark.9.png b/res/drawable-xhdpi/dialog_full_holo_dark.9.png
new file mode 100644
index 0000000..75d36be
--- /dev/null
+++ b/res/drawable-xhdpi/dialog_full_holo_dark.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_done_holo_light.png b/res/drawable-xhdpi/ic_menu_done_holo_light.png
index 7351f21..2e06dd0 100644
--- a/res/drawable-xhdpi/ic_menu_done_holo_light.png
+++ b/res/drawable-xhdpi/ic_menu_done_holo_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_refresh_holo_dark.png b/res/drawable-xhdpi/ic_menu_refresh_holo_dark.png
new file mode 100644
index 0000000..3db90ee
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_refresh_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_1.png b/res/drawable-xhdpi/weather2_1.png
deleted file mode 100644
index 67f992d..0000000
--- a/res/drawable-xhdpi/weather2_1.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_10.png b/res/drawable-xhdpi/weather2_10.png
deleted file mode 100644
index 67f992d..0000000
--- a/res/drawable-xhdpi/weather2_10.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_11.png b/res/drawable-xhdpi/weather2_11.png
deleted file mode 100644
index 67f992d..0000000
--- a/res/drawable-xhdpi/weather2_11.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_12.png b/res/drawable-xhdpi/weather2_12.png
deleted file mode 100644
index 67f992d..0000000
--- a/res/drawable-xhdpi/weather2_12.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_13.png b/res/drawable-xhdpi/weather2_13.png
deleted file mode 100644
index 3000a3c..0000000
--- a/res/drawable-xhdpi/weather2_13.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_14.png b/res/drawable-xhdpi/weather2_14.png
deleted file mode 100644
index 3000a3c..0000000
--- a/res/drawable-xhdpi/weather2_14.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_15.png b/res/drawable-xhdpi/weather2_15.png
deleted file mode 100644
index 3000a3c..0000000
--- a/res/drawable-xhdpi/weather2_15.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_16.png b/res/drawable-xhdpi/weather2_16.png
deleted file mode 100644
index 3000a3c..0000000
--- a/res/drawable-xhdpi/weather2_16.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_18.png b/res/drawable-xhdpi/weather2_18.png
deleted file mode 100644
index 3000a3c..0000000
--- a/res/drawable-xhdpi/weather2_18.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_19.png b/res/drawable-xhdpi/weather2_19.png
deleted file mode 100644
index f056e80..0000000
--- a/res/drawable-xhdpi/weather2_19.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_2.png b/res/drawable-xhdpi/weather2_2.png
deleted file mode 100644
index 67f992d..0000000
--- a/res/drawable-xhdpi/weather2_2.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_21.png b/res/drawable-xhdpi/weather2_21.png
deleted file mode 100644
index 6c3ba81..0000000
--- a/res/drawable-xhdpi/weather2_21.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_22.png b/res/drawable-xhdpi/weather2_22.png
deleted file mode 100644
index 6c3ba81..0000000
--- a/res/drawable-xhdpi/weather2_22.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_23.png b/res/drawable-xhdpi/weather2_23.png
deleted file mode 100644
index d740b54..0000000
--- a/res/drawable-xhdpi/weather2_23.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_24.png b/res/drawable-xhdpi/weather2_24.png
deleted file mode 100644
index d740b54..0000000
--- a/res/drawable-xhdpi/weather2_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_25.png b/res/drawable-xhdpi/weather2_25.png
deleted file mode 100644
index 18c18ee..0000000
--- a/res/drawable-xhdpi/weather2_25.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_26.png b/res/drawable-xhdpi/weather2_26.png
deleted file mode 100644
index 18c18ee..0000000
--- a/res/drawable-xhdpi/weather2_26.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_27.png b/res/drawable-xhdpi/weather2_27.png
deleted file mode 100644
index 915ce2c..0000000
--- a/res/drawable-xhdpi/weather2_27.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_28.png b/res/drawable-xhdpi/weather2_28.png
deleted file mode 100644
index d740b54..0000000
--- a/res/drawable-xhdpi/weather2_28.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_29.png b/res/drawable-xhdpi/weather2_29.png
deleted file mode 100644
index a0632a6..0000000
--- a/res/drawable-xhdpi/weather2_29.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_31.png b/res/drawable-xhdpi/weather2_31.png
deleted file mode 100644
index fcec655..0000000
--- a/res/drawable-xhdpi/weather2_31.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_32.png b/res/drawable-xhdpi/weather2_32.png
deleted file mode 100644
index 7304f86..0000000
--- a/res/drawable-xhdpi/weather2_32.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_33.png b/res/drawable-xhdpi/weather2_33.png
deleted file mode 100644
index d130aa6..0000000
--- a/res/drawable-xhdpi/weather2_33.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_35.png b/res/drawable-xhdpi/weather2_35.png
deleted file mode 100644
index ebfe876..0000000
--- a/res/drawable-xhdpi/weather2_35.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_38.png b/res/drawable-xhdpi/weather2_38.png
deleted file mode 100644
index ebfe876..0000000
--- a/res/drawable-xhdpi/weather2_38.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_4.png b/res/drawable-xhdpi/weather2_4.png
deleted file mode 100644
index ebfe876..0000000
--- a/res/drawable-xhdpi/weather2_4.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_40.png b/res/drawable-xhdpi/weather2_40.png
deleted file mode 100644
index 67f992d..0000000
--- a/res/drawable-xhdpi/weather2_40.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_41.png b/res/drawable-xhdpi/weather2_41.png
deleted file mode 100644
index 3000a3c..0000000
--- a/res/drawable-xhdpi/weather2_41.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_42.png b/res/drawable-xhdpi/weather2_42.png
deleted file mode 100644
index 3000a3c..0000000
--- a/res/drawable-xhdpi/weather2_42.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_45.png b/res/drawable-xhdpi/weather2_45.png
deleted file mode 100644
index 9f841bb..0000000
--- a/res/drawable-xhdpi/weather2_45.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_46.png b/res/drawable-xhdpi/weather2_46.png
deleted file mode 100644
index 159e7ec..0000000
--- a/res/drawable-xhdpi/weather2_46.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_47.png b/res/drawable-xhdpi/weather2_47.png
deleted file mode 100644
index 41749e6..0000000
--- a/res/drawable-xhdpi/weather2_47.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_6.png b/res/drawable-xhdpi/weather2_6.png
deleted file mode 100644
index 574fb4f..0000000
--- a/res/drawable-xhdpi/weather2_6.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_7.png b/res/drawable-xhdpi/weather2_7.png
deleted file mode 100644
index 3000a3c..0000000
--- a/res/drawable-xhdpi/weather2_7.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_8.png b/res/drawable-xhdpi/weather2_8.png
deleted file mode 100644
index 18c18ee..0000000
--- a/res/drawable-xhdpi/weather2_8.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_9.png b/res/drawable-xhdpi/weather2_9.png
deleted file mode 100644
index 67f992d..0000000
--- a/res/drawable-xhdpi/weather2_9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_na.png b/res/drawable-xhdpi/weather2_na.png
deleted file mode 100644
index fca43b8..0000000
--- a/res/drawable-xhdpi/weather2_na.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/weather_0.png b/res/drawable-xhdpi/weather_0.png
index 335af4b..5887301 100644
--- a/res/drawable-xhdpi/weather_0.png
+++ b/res/drawable-xhdpi/weather_0.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_1.png b/res/drawable-xhdpi/weather_1.png
index 335af4b..5887301 100644
--- a/res/drawable-xhdpi/weather_1.png
+++ b/res/drawable-xhdpi/weather_1.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_10.png b/res/drawable-xhdpi/weather_10.png
index 9432a13..3d57554 100644
--- a/res/drawable-xhdpi/weather_10.png
+++ b/res/drawable-xhdpi/weather_10.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_11.png b/res/drawable-xhdpi/weather_11.png
index 3f7c5ad..7363236 100644
--- a/res/drawable-xhdpi/weather_11.png
+++ b/res/drawable-xhdpi/weather_11.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_12.png b/res/drawable-xhdpi/weather_12.png
index 3f7c5ad..7363236 100644
--- a/res/drawable-xhdpi/weather_12.png
+++ b/res/drawable-xhdpi/weather_12.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_13.png b/res/drawable-xhdpi/weather_13.png
index 3f9e500..a03b4fe 100644
--- a/res/drawable-xhdpi/weather_13.png
+++ b/res/drawable-xhdpi/weather_13.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_14.png b/res/drawable-xhdpi/weather_14.png
index 3f9e500..a03b4fe 100644
--- a/res/drawable-xhdpi/weather_14.png
+++ b/res/drawable-xhdpi/weather_14.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_15.png b/res/drawable-xhdpi/weather_15.png
index 2ad1e46..95e6e85 100644
--- a/res/drawable-xhdpi/weather_15.png
+++ b/res/drawable-xhdpi/weather_15.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_16.png b/res/drawable-xhdpi/weather_16.png
index 4bad358..44efd95 100644
--- a/res/drawable-xhdpi/weather_16.png
+++ b/res/drawable-xhdpi/weather_16.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_17.png b/res/drawable-xhdpi/weather_17.png
index 6fced6c..5ff1745 100644
--- a/res/drawable-xhdpi/weather_17.png
+++ b/res/drawable-xhdpi/weather_17.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_18.png b/res/drawable-xhdpi/weather_18.png
index aae6d11..f314bdb 100644
--- a/res/drawable-xhdpi/weather_18.png
+++ b/res/drawable-xhdpi/weather_18.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_19.png b/res/drawable-xhdpi/weather_19.png
index d8e5e82..befb869 100644
--- a/res/drawable-xhdpi/weather_19.png
+++ b/res/drawable-xhdpi/weather_19.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_2.png b/res/drawable-xhdpi/weather_2.png
index 335af4b..5887301 100644
--- a/res/drawable-xhdpi/weather_2.png
+++ b/res/drawable-xhdpi/weather_2.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_20.png b/res/drawable-xhdpi/weather_20.png
index 73cbc39..25fe1b0 100644
--- a/res/drawable-xhdpi/weather_20.png
+++ b/res/drawable-xhdpi/weather_20.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_21.png b/res/drawable-xhdpi/weather_21.png
index 800f484..0977fdc 100644
--- a/res/drawable-xhdpi/weather_21.png
+++ b/res/drawable-xhdpi/weather_21.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_22.png b/res/drawable-xhdpi/weather_22.png
index d8e5e82..befb869 100644
--- a/res/drawable-xhdpi/weather_22.png
+++ b/res/drawable-xhdpi/weather_22.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_23.png b/res/drawable-xhdpi/weather_23.png
index be446c2..3ed0927 100644
--- a/res/drawable-xhdpi/weather_23.png
+++ b/res/drawable-xhdpi/weather_23.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_24.png b/res/drawable-xhdpi/weather_24.png
index be446c2..3ed0927 100644
--- a/res/drawable-xhdpi/weather_24.png
+++ b/res/drawable-xhdpi/weather_24.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_25.png b/res/drawable-xhdpi/weather_25.png
index 63f019a..7a7499e 100644
--- a/res/drawable-xhdpi/weather_25.png
+++ b/res/drawable-xhdpi/weather_25.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_26.png b/res/drawable-xhdpi/weather_26.png
index 3eb5734..73b148e 100644
--- a/res/drawable-xhdpi/weather_26.png
+++ b/res/drawable-xhdpi/weather_26.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_27.png b/res/drawable-xhdpi/weather_27.png
index abf4096..77a535b 100644
--- a/res/drawable-xhdpi/weather_27.png
+++ b/res/drawable-xhdpi/weather_27.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_28.png b/res/drawable-xhdpi/weather_28.png
index 0cbae30..eb87a80 100644
--- a/res/drawable-xhdpi/weather_28.png
+++ b/res/drawable-xhdpi/weather_28.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_29.png b/res/drawable-xhdpi/weather_29.png
index abf4096..77a535b 100644
--- a/res/drawable-xhdpi/weather_29.png
+++ b/res/drawable-xhdpi/weather_29.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_3.png b/res/drawable-xhdpi/weather_3.png
index 7dda34c..a1e64e5 100644
--- a/res/drawable-xhdpi/weather_3.png
+++ b/res/drawable-xhdpi/weather_3.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_30.png b/res/drawable-xhdpi/weather_30.png
index 0cbae30..eb87a80 100644
--- a/res/drawable-xhdpi/weather_30.png
+++ b/res/drawable-xhdpi/weather_30.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_31.png b/res/drawable-xhdpi/weather_31.png
index 16f2d9f..bdf5aa2 100644
--- a/res/drawable-xhdpi/weather_31.png
+++ b/res/drawable-xhdpi/weather_31.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_32.png b/res/drawable-xhdpi/weather_32.png
index 409373d..ae2da2f 100644
--- a/res/drawable-xhdpi/weather_32.png
+++ b/res/drawable-xhdpi/weather_32.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_33.png b/res/drawable-xhdpi/weather_33.png
index 16f2d9f..bdf5aa2 100644
--- a/res/drawable-xhdpi/weather_33.png
+++ b/res/drawable-xhdpi/weather_33.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_34.png b/res/drawable-xhdpi/weather_34.png
index 409373d..ae2da2f 100644
--- a/res/drawable-xhdpi/weather_34.png
+++ b/res/drawable-xhdpi/weather_34.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_35.png b/res/drawable-xhdpi/weather_35.png
index 445b884..b743c0e 100644
--- a/res/drawable-xhdpi/weather_35.png
+++ b/res/drawable-xhdpi/weather_35.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_36.png b/res/drawable-xhdpi/weather_36.png
index a424ad6..d6d7344 100644
--- a/res/drawable-xhdpi/weather_36.png
+++ b/res/drawable-xhdpi/weather_36.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_37.png b/res/drawable-xhdpi/weather_37.png
index e98c8b8..2ffc605 100644
--- a/res/drawable-xhdpi/weather_37.png
+++ b/res/drawable-xhdpi/weather_37.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_38.png b/res/drawable-xhdpi/weather_38.png
index b47249c..3840663 100644
--- a/res/drawable-xhdpi/weather_38.png
+++ b/res/drawable-xhdpi/weather_38.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_39.png b/res/drawable-xhdpi/weather_39.png
index e98c8b8..2ffc605 100644
--- a/res/drawable-xhdpi/weather_39.png
+++ b/res/drawable-xhdpi/weather_39.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_4.png b/res/drawable-xhdpi/weather_4.png
index 7dda34c..a1e64e5 100644
--- a/res/drawable-xhdpi/weather_4.png
+++ b/res/drawable-xhdpi/weather_4.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_40.png b/res/drawable-xhdpi/weather_40.png
index 1505fea..d9525bc 100644
--- a/res/drawable-xhdpi/weather_40.png
+++ b/res/drawable-xhdpi/weather_40.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_41.png b/res/drawable-xhdpi/weather_41.png
index 4bad358..44efd95 100644
--- a/res/drawable-xhdpi/weather_41.png
+++ b/res/drawable-xhdpi/weather_41.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_42.png b/res/drawable-xhdpi/weather_42.png
index 196026d..e386625 100644
--- a/res/drawable-xhdpi/weather_42.png
+++ b/res/drawable-xhdpi/weather_42.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_43.png b/res/drawable-xhdpi/weather_43.png
index 4bad358..44efd95 100644
--- a/res/drawable-xhdpi/weather_43.png
+++ b/res/drawable-xhdpi/weather_43.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_44.png b/res/drawable-xhdpi/weather_44.png
index abf4096..77a535b 100644
--- a/res/drawable-xhdpi/weather_44.png
+++ b/res/drawable-xhdpi/weather_44.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_45.png b/res/drawable-xhdpi/weather_45.png
index 7dda34c..a1e64e5 100644
--- a/res/drawable-xhdpi/weather_45.png
+++ b/res/drawable-xhdpi/weather_45.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_46.png b/res/drawable-xhdpi/weather_46.png
index 3f9e500..a03b4fe 100644
--- a/res/drawable-xhdpi/weather_46.png
+++ b/res/drawable-xhdpi/weather_46.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_47.png b/res/drawable-xhdpi/weather_47.png
index b47249c..3840663 100644
--- a/res/drawable-xhdpi/weather_47.png
+++ b/res/drawable-xhdpi/weather_47.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_5.png b/res/drawable-xhdpi/weather_5.png
index aae6d11..f314bdb 100644
--- a/res/drawable-xhdpi/weather_5.png
+++ b/res/drawable-xhdpi/weather_5.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_6.png b/res/drawable-xhdpi/weather_6.png
index aae6d11..f314bdb 100644
--- a/res/drawable-xhdpi/weather_6.png
+++ b/res/drawable-xhdpi/weather_6.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_7.png b/res/drawable-xhdpi/weather_7.png
index aae6d11..f314bdb 100644
--- a/res/drawable-xhdpi/weather_7.png
+++ b/res/drawable-xhdpi/weather_7.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_8.png b/res/drawable-xhdpi/weather_8.png
index 1a7e699..4d5a64e 100644
--- a/res/drawable-xhdpi/weather_8.png
+++ b/res/drawable-xhdpi/weather_8.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_9.png b/res/drawable-xhdpi/weather_9.png
index 0da4419..7f2677a 100644
--- a/res/drawable-xhdpi/weather_9.png
+++ b/res/drawable-xhdpi/weather_9.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_0.png b/res/drawable-xhdpi/weather_color_0.png
index ebfe876..ebfe876 100644
--- a/res/drawable-xhdpi/weather2_0.png
+++ b/res/drawable-xhdpi/weather_color_0.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_1.png b/res/drawable-xhdpi/weather_color_1.png
new file mode 100644
index 0000000..0f470ee
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_1.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_10.png b/res/drawable-xhdpi/weather_color_10.png
new file mode 100644
index 0000000..225e1c4
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_10.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_11.png b/res/drawable-xhdpi/weather_color_11.png
new file mode 100644
index 0000000..8387630
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_11.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_12.png b/res/drawable-xhdpi/weather_color_12.png
new file mode 100644
index 0000000..8387630
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_12.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_13.png b/res/drawable-xhdpi/weather_color_13.png
new file mode 100644
index 0000000..55127d2
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_13.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_14.png b/res/drawable-xhdpi/weather_color_14.png
new file mode 100644
index 0000000..55127d2
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_14.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_15.png b/res/drawable-xhdpi/weather_color_15.png
new file mode 100644
index 0000000..55127d2
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_15.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_16.png b/res/drawable-xhdpi/weather_color_16.png
new file mode 100644
index 0000000..55127d2
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_16.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_17.png b/res/drawable-xhdpi/weather_color_17.png
new file mode 100644
index 0000000..11a7067
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_17.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_5.png b/res/drawable-xhdpi/weather_color_18.png
index 574fb4f..574fb4f 100644
--- a/res/drawable-xhdpi/weather2_5.png
+++ b/res/drawable-xhdpi/weather_color_18.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_19.png b/res/drawable-xhdpi/weather_color_19.png
new file mode 100644
index 0000000..c771175
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_19.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_2.png b/res/drawable-xhdpi/weather_color_2.png
new file mode 100644
index 0000000..0f470ee
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_2.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_20.png b/res/drawable-xhdpi/weather_color_20.png
new file mode 100644
index 0000000..6b5f5ce
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_20.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_20.png b/res/drawable-xhdpi/weather_color_21.png
index f32095b..f32095b 100644
--- a/res/drawable-xhdpi/weather2_20.png
+++ b/res/drawable-xhdpi/weather_color_21.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_22.png b/res/drawable-xhdpi/weather_color_22.png
new file mode 100644
index 0000000..6679f4d
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_22.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_23.png b/res/drawable-xhdpi/weather_color_23.png
new file mode 100644
index 0000000..5d0a003
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_23.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_24.png b/res/drawable-xhdpi/weather_color_24.png
new file mode 100644
index 0000000..5d0a003
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_24.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_25.png b/res/drawable-xhdpi/weather_color_25.png
new file mode 100644
index 0000000..b73f20b
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_25.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_26.png b/res/drawable-xhdpi/weather_color_26.png
new file mode 100644
index 0000000..c392d24
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_26.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_27.png b/res/drawable-xhdpi/weather_color_27.png
new file mode 100644
index 0000000..6ace407
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_27.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_30.png b/res/drawable-xhdpi/weather_color_28.png
index d740b54..aed63bd 100644
--- a/res/drawable-xhdpi/weather2_30.png
+++ b/res/drawable-xhdpi/weather_color_28.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_29.png b/res/drawable-xhdpi/weather_color_29.png
new file mode 100644
index 0000000..130c4e5
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_29.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_17.png b/res/drawable-xhdpi/weather_color_3.png
index ebfe876..ebfe876 100644
--- a/res/drawable-xhdpi/weather2_17.png
+++ b/res/drawable-xhdpi/weather_color_3.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_44.png b/res/drawable-xhdpi/weather_color_30.png
index 737fb19..737fb19 100644
--- a/res/drawable-xhdpi/weather2_44.png
+++ b/res/drawable-xhdpi/weather_color_30.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_31.png b/res/drawable-xhdpi/weather_color_31.png
new file mode 100644
index 0000000..e6fd55a
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_31.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_36.png b/res/drawable-xhdpi/weather_color_32.png
index 7304f86..3583154 100644
--- a/res/drawable-xhdpi/weather2_36.png
+++ b/res/drawable-xhdpi/weather_color_32.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_33.png b/res/drawable-xhdpi/weather_color_33.png
new file mode 100644
index 0000000..cd70b6e
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_33.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_34.png b/res/drawable-xhdpi/weather_color_34.png
index b47ca2c..b87f491 100644
--- a/res/drawable-xhdpi/weather2_34.png
+++ b/res/drawable-xhdpi/weather_color_34.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_35.png b/res/drawable-xhdpi/weather_color_35.png
new file mode 100644
index 0000000..1e697eb
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_35.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_36.png b/res/drawable-xhdpi/weather_color_36.png
new file mode 100644
index 0000000..a2b216e
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_36.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_37.png b/res/drawable-xhdpi/weather_color_37.png
index 407c894..b27da8b 100644
--- a/res/drawable-xhdpi/weather2_37.png
+++ b/res/drawable-xhdpi/weather_color_37.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_38.png b/res/drawable-xhdpi/weather_color_38.png
new file mode 100644
index 0000000..b27da8b
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_38.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_39.png b/res/drawable-xhdpi/weather_color_39.png
new file mode 100644
index 0000000..b27da8b
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_39.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_3.png b/res/drawable-xhdpi/weather_color_4.png
index ebfe876..ebfe876 100644
--- a/res/drawable-xhdpi/weather2_3.png
+++ b/res/drawable-xhdpi/weather_color_4.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_39.png b/res/drawable-xhdpi/weather_color_40.png
index b7c5761..ec8297c 100644
--- a/res/drawable-xhdpi/weather2_39.png
+++ b/res/drawable-xhdpi/weather_color_40.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather2_43.png b/res/drawable-xhdpi/weather_color_41.png
index 0f5b793..0f5b793 100644
--- a/res/drawable-xhdpi/weather2_43.png
+++ b/res/drawable-xhdpi/weather_color_41.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_42.png b/res/drawable-xhdpi/weather_color_42.png
new file mode 100644
index 0000000..55127d2
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_42.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_43.png b/res/drawable-xhdpi/weather_color_43.png
new file mode 100644
index 0000000..491b9c4
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_43.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_44.png b/res/drawable-xhdpi/weather_color_44.png
new file mode 100644
index 0000000..cd70b6e
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_44.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_45.png b/res/drawable-xhdpi/weather_color_45.png
new file mode 100644
index 0000000..fabfa36
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_45.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_46.png b/res/drawable-xhdpi/weather_color_46.png
new file mode 100644
index 0000000..aa74463
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_46.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_47.png b/res/drawable-xhdpi/weather_color_47.png
new file mode 100644
index 0000000..0184485
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_47.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_5.png b/res/drawable-xhdpi/weather_color_5.png
new file mode 100644
index 0000000..dcf205f
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_5.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_6.png b/res/drawable-xhdpi/weather_color_6.png
new file mode 100644
index 0000000..dcf205f
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_6.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_7.png b/res/drawable-xhdpi/weather_color_7.png
new file mode 100644
index 0000000..55127d2
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_7.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_8.png b/res/drawable-xhdpi/weather_color_8.png
new file mode 100644
index 0000000..c7090a3
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_8.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_9.png b/res/drawable-xhdpi/weather_color_9.png
new file mode 100644
index 0000000..20612f5
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_9.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_color_na.png b/res/drawable-xhdpi/weather_color_na.png
new file mode 100644
index 0000000..aeb3891
--- /dev/null
+++ b/res/drawable-xhdpi/weather_color_na.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_na.png b/res/drawable-xhdpi/weather_na.png
index 8125ce2..6ae00f5 100644
--- a/res/drawable-xhdpi/weather_na.png
+++ b/res/drawable-xhdpi/weather_na.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_preferences.png b/res/drawable-xhdpi/weather_preferences.png
index 82897fc..ca3d369 100644
--- a/res/drawable-xhdpi/weather_preferences.png
+++ b/res/drawable-xhdpi/weather_preferences.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_0.png b/res/drawable-xhdpi/weather_vclouds_0.png
new file mode 100644
index 0000000..b5b93b4
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_0.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_1.png b/res/drawable-xhdpi/weather_vclouds_1.png
new file mode 100644
index 0000000..b5b93b4
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_1.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_10.png b/res/drawable-xhdpi/weather_vclouds_10.png
new file mode 100644
index 0000000..23d06b6
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_10.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_11.png b/res/drawable-xhdpi/weather_vclouds_11.png
new file mode 100644
index 0000000..5493cee
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_11.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_12.png b/res/drawable-xhdpi/weather_vclouds_12.png
new file mode 100644
index 0000000..d94a8e0
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_12.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_13.png b/res/drawable-xhdpi/weather_vclouds_13.png
new file mode 100644
index 0000000..9621f9a
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_13.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_14.png b/res/drawable-xhdpi/weather_vclouds_14.png
new file mode 100644
index 0000000..f83f5fb
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_14.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_15.png b/res/drawable-xhdpi/weather_vclouds_15.png
new file mode 100644
index 0000000..d627573
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_15.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_16.png b/res/drawable-xhdpi/weather_vclouds_16.png
new file mode 100644
index 0000000..63bb6b8
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_16.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_17.png b/res/drawable-xhdpi/weather_vclouds_17.png
new file mode 100644
index 0000000..b5b93b4
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_17.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_18.png b/res/drawable-xhdpi/weather_vclouds_18.png
new file mode 100644
index 0000000..f28d8db
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_18.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_19.png b/res/drawable-xhdpi/weather_vclouds_19.png
new file mode 100644
index 0000000..3f45e6e
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_19.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_2.png b/res/drawable-xhdpi/weather_vclouds_2.png
new file mode 100644
index 0000000..b5b93b4
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_2.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_20.png b/res/drawable-xhdpi/weather_vclouds_20.png
new file mode 100644
index 0000000..93d339d
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_20.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_21.png b/res/drawable-xhdpi/weather_vclouds_21.png
new file mode 100644
index 0000000..123adfa
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_21.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_22.png b/res/drawable-xhdpi/weather_vclouds_22.png
new file mode 100644
index 0000000..7d43c65
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_22.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_23.png b/res/drawable-xhdpi/weather_vclouds_23.png
new file mode 100644
index 0000000..0f76b52
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_23.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_24.png b/res/drawable-xhdpi/weather_vclouds_24.png
new file mode 100644
index 0000000..0f76b52
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_24.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_25.png b/res/drawable-xhdpi/weather_vclouds_25.png
new file mode 100644
index 0000000..7e27da8
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_25.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_26.png b/res/drawable-xhdpi/weather_vclouds_26.png
new file mode 100644
index 0000000..6c290a1
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_26.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_27.png b/res/drawable-xhdpi/weather_vclouds_27.png
new file mode 100644
index 0000000..31a830c
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_27.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_28.png b/res/drawable-xhdpi/weather_vclouds_28.png
new file mode 100644
index 0000000..053ee79
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_28.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_29.png b/res/drawable-xhdpi/weather_vclouds_29.png
new file mode 100644
index 0000000..74935a0
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_29.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_3.png b/res/drawable-xhdpi/weather_vclouds_3.png
new file mode 100644
index 0000000..b5b93b4
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_3.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_30.png b/res/drawable-xhdpi/weather_vclouds_30.png
new file mode 100644
index 0000000..ada95ba
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_30.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_31.png b/res/drawable-xhdpi/weather_vclouds_31.png
new file mode 100644
index 0000000..ed0e538
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_31.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_32.png b/res/drawable-xhdpi/weather_vclouds_32.png
new file mode 100644
index 0000000..9ba909d
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_32.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_33.png b/res/drawable-xhdpi/weather_vclouds_33.png
new file mode 100644
index 0000000..18a1210
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_33.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_34.png b/res/drawable-xhdpi/weather_vclouds_34.png
new file mode 100644
index 0000000..29afd36
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_34.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_35.png b/res/drawable-xhdpi/weather_vclouds_35.png
new file mode 100644
index 0000000..b5b93b4
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_35.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_36.png b/res/drawable-xhdpi/weather_vclouds_36.png
new file mode 100644
index 0000000..3b4ffa4
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_36.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_37.png b/res/drawable-xhdpi/weather_vclouds_37.png
new file mode 100644
index 0000000..117dcdb
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_37.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_38.png b/res/drawable-xhdpi/weather_vclouds_38.png
new file mode 100644
index 0000000..117dcdb
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_38.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_39.png b/res/drawable-xhdpi/weather_vclouds_39.png
new file mode 100644
index 0000000..4e081d2
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_39.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_4.png b/res/drawable-xhdpi/weather_vclouds_4.png
new file mode 100644
index 0000000..b5b93b4
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_4.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_40.png b/res/drawable-xhdpi/weather_vclouds_40.png
new file mode 100644
index 0000000..d94a8e0
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_40.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_41.png b/res/drawable-xhdpi/weather_vclouds_41.png
new file mode 100644
index 0000000..bf46769
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_41.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_42.png b/res/drawable-xhdpi/weather_vclouds_42.png
new file mode 100644
index 0000000..63bb6b8
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_42.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_43.png b/res/drawable-xhdpi/weather_vclouds_43.png
new file mode 100644
index 0000000..d627573
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_43.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_44.png b/res/drawable-xhdpi/weather_vclouds_44.png
new file mode 100644
index 0000000..37592ac
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_44.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_45.png b/res/drawable-xhdpi/weather_vclouds_45.png
new file mode 100644
index 0000000..861eb7d
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_45.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_46.png b/res/drawable-xhdpi/weather_vclouds_46.png
new file mode 100644
index 0000000..af32b21
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_46.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_47.png b/res/drawable-xhdpi/weather_vclouds_47.png
new file mode 100644
index 0000000..23ee5d9
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_47.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_5.png b/res/drawable-xhdpi/weather_vclouds_5.png
new file mode 100644
index 0000000..4704482
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_5.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_6.png b/res/drawable-xhdpi/weather_vclouds_6.png
new file mode 100644
index 0000000..534c0c5
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_6.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_7.png b/res/drawable-xhdpi/weather_vclouds_7.png
new file mode 100644
index 0000000..d9dc191
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_7.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_8.png b/res/drawable-xhdpi/weather_vclouds_8.png
new file mode 100644
index 0000000..b859afc
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_8.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_9.png b/res/drawable-xhdpi/weather_vclouds_9.png
new file mode 100644
index 0000000..741335d
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_9.png
Binary files differ
diff --git a/res/drawable-xhdpi/weather_vclouds_na.png b/res/drawable-xhdpi/weather_vclouds_na.png
new file mode 100644
index 0000000..37592ac
--- /dev/null
+++ b/res/drawable-xhdpi/weather_vclouds_na.png
Binary files differ
diff --git a/res/drawable-xxhdpi/calendar_preferences.png b/res/drawable-xxhdpi/calendar_preferences.png
new file mode 100644
index 0000000..06f9c33
--- /dev/null
+++ b/res/drawable-xxhdpi/calendar_preferences.png
Binary files differ
diff --git a/res/drawable-xxhdpi/clock_preferences.png b/res/drawable-xxhdpi/clock_preferences.png
new file mode 100644
index 0000000..ecf135b
--- /dev/null
+++ b/res/drawable-xxhdpi/clock_preferences.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_done_holo_light.png b/res/drawable-xxhdpi/ic_menu_done_holo_light.png
new file mode 100644
index 0000000..fdecbe1
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_menu_done_holo_light.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_refresh_holo_dark.png b/res/drawable-xxhdpi/ic_menu_refresh_holo_dark.png
new file mode 100644
index 0000000..088d76b
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_menu_refresh_holo_dark.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_0.png b/res/drawable-xxhdpi/weather_0.png
index 3d423da..2137660 100644
--- a/res/drawable-xxhdpi/weather_0.png
+++ b/res/drawable-xxhdpi/weather_0.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_1.png b/res/drawable-xxhdpi/weather_1.png
index 3d423da..2137660 100644
--- a/res/drawable-xxhdpi/weather_1.png
+++ b/res/drawable-xxhdpi/weather_1.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_10.png b/res/drawable-xxhdpi/weather_10.png
index f3d1841..570aaaa 100644
--- a/res/drawable-xxhdpi/weather_10.png
+++ b/res/drawable-xxhdpi/weather_10.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_11.png b/res/drawable-xxhdpi/weather_11.png
index d999377..557d403 100644
--- a/res/drawable-xxhdpi/weather_11.png
+++ b/res/drawable-xxhdpi/weather_11.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_12.png b/res/drawable-xxhdpi/weather_12.png
index d999377..557d403 100644
--- a/res/drawable-xxhdpi/weather_12.png
+++ b/res/drawable-xxhdpi/weather_12.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_13.png b/res/drawable-xxhdpi/weather_13.png
index 8fe3497..d05804c 100644
--- a/res/drawable-xxhdpi/weather_13.png
+++ b/res/drawable-xxhdpi/weather_13.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_14.png b/res/drawable-xxhdpi/weather_14.png
index 8fe3497..d05804c 100644
--- a/res/drawable-xxhdpi/weather_14.png
+++ b/res/drawable-xxhdpi/weather_14.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_15.png b/res/drawable-xxhdpi/weather_15.png
index ac53d40..65aab78 100644
--- a/res/drawable-xxhdpi/weather_15.png
+++ b/res/drawable-xxhdpi/weather_15.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_16.png b/res/drawable-xxhdpi/weather_16.png
index f440617..6dde5f4 100644
--- a/res/drawable-xxhdpi/weather_16.png
+++ b/res/drawable-xxhdpi/weather_16.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_17.png b/res/drawable-xxhdpi/weather_17.png
index b99fcd8..b8fc3a0 100644
--- a/res/drawable-xxhdpi/weather_17.png
+++ b/res/drawable-xxhdpi/weather_17.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_18.png b/res/drawable-xxhdpi/weather_18.png
index 27b859d..3097b92 100644
--- a/res/drawable-xxhdpi/weather_18.png
+++ b/res/drawable-xxhdpi/weather_18.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_19.png b/res/drawable-xxhdpi/weather_19.png
index ff699ae..e6dc8dc 100644
--- a/res/drawable-xxhdpi/weather_19.png
+++ b/res/drawable-xxhdpi/weather_19.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_2.png b/res/drawable-xxhdpi/weather_2.png
index 3d423da..2137660 100644
--- a/res/drawable-xxhdpi/weather_2.png
+++ b/res/drawable-xxhdpi/weather_2.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_20.png b/res/drawable-xxhdpi/weather_20.png
index 2032a81..21af577 100644
--- a/res/drawable-xxhdpi/weather_20.png
+++ b/res/drawable-xxhdpi/weather_20.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_21.png b/res/drawable-xxhdpi/weather_21.png
index 892ec74..a7ae727 100644
--- a/res/drawable-xxhdpi/weather_21.png
+++ b/res/drawable-xxhdpi/weather_21.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_22.png b/res/drawable-xxhdpi/weather_22.png
index ff699ae..e6dc8dc 100644
--- a/res/drawable-xxhdpi/weather_22.png
+++ b/res/drawable-xxhdpi/weather_22.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_23.png b/res/drawable-xxhdpi/weather_23.png
index 66ac768..a0488d6 100644
--- a/res/drawable-xxhdpi/weather_23.png
+++ b/res/drawable-xxhdpi/weather_23.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_24.png b/res/drawable-xxhdpi/weather_24.png
index 66ac768..a0488d6 100644
--- a/res/drawable-xxhdpi/weather_24.png
+++ b/res/drawable-xxhdpi/weather_24.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_25.png b/res/drawable-xxhdpi/weather_25.png
index c0ac072..56250e2 100644
--- a/res/drawable-xxhdpi/weather_25.png
+++ b/res/drawable-xxhdpi/weather_25.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_26.png b/res/drawable-xxhdpi/weather_26.png
index 7cdcee5..73ceca3 100644
--- a/res/drawable-xxhdpi/weather_26.png
+++ b/res/drawable-xxhdpi/weather_26.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_27.png b/res/drawable-xxhdpi/weather_27.png
index 7e9e040..4a04f34 100644
--- a/res/drawable-xxhdpi/weather_27.png
+++ b/res/drawable-xxhdpi/weather_27.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_28.png b/res/drawable-xxhdpi/weather_28.png
index ebe64e9..31033a5 100644
--- a/res/drawable-xxhdpi/weather_28.png
+++ b/res/drawable-xxhdpi/weather_28.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_29.png b/res/drawable-xxhdpi/weather_29.png
index 7e9e040..4a04f34 100644
--- a/res/drawable-xxhdpi/weather_29.png
+++ b/res/drawable-xxhdpi/weather_29.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_3.png b/res/drawable-xxhdpi/weather_3.png
index 905e088..68579fd 100644
--- a/res/drawable-xxhdpi/weather_3.png
+++ b/res/drawable-xxhdpi/weather_3.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_30.png b/res/drawable-xxhdpi/weather_30.png
index ebe64e9..31033a5 100644
--- a/res/drawable-xxhdpi/weather_30.png
+++ b/res/drawable-xxhdpi/weather_30.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_31.png b/res/drawable-xxhdpi/weather_31.png
index 7c7804a..6f3ecfd 100644
--- a/res/drawable-xxhdpi/weather_31.png
+++ b/res/drawable-xxhdpi/weather_31.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_32.png b/res/drawable-xxhdpi/weather_32.png
index 106aed4..d4be584 100644
--- a/res/drawable-xxhdpi/weather_32.png
+++ b/res/drawable-xxhdpi/weather_32.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_33.png b/res/drawable-xxhdpi/weather_33.png
index 7c7804a..6f3ecfd 100644
--- a/res/drawable-xxhdpi/weather_33.png
+++ b/res/drawable-xxhdpi/weather_33.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_34.png b/res/drawable-xxhdpi/weather_34.png
index 106aed4..d4be584 100644
--- a/res/drawable-xxhdpi/weather_34.png
+++ b/res/drawable-xxhdpi/weather_34.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_35.png b/res/drawable-xxhdpi/weather_35.png
index ce6dda8..fc06e37 100644
--- a/res/drawable-xxhdpi/weather_35.png
+++ b/res/drawable-xxhdpi/weather_35.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_36.png b/res/drawable-xxhdpi/weather_36.png
index 2ceac01..421d9a1 100644
--- a/res/drawable-xxhdpi/weather_36.png
+++ b/res/drawable-xxhdpi/weather_36.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_37.png b/res/drawable-xxhdpi/weather_37.png
index 054d19b..893cf1d 100644
--- a/res/drawable-xxhdpi/weather_37.png
+++ b/res/drawable-xxhdpi/weather_37.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_38.png b/res/drawable-xxhdpi/weather_38.png
index c7aafcb..e8600fa 100644
--- a/res/drawable-xxhdpi/weather_38.png
+++ b/res/drawable-xxhdpi/weather_38.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_39.png b/res/drawable-xxhdpi/weather_39.png
index 054d19b..893cf1d 100644
--- a/res/drawable-xxhdpi/weather_39.png
+++ b/res/drawable-xxhdpi/weather_39.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_4.png b/res/drawable-xxhdpi/weather_4.png
index 905e088..68579fd 100644
--- a/res/drawable-xxhdpi/weather_4.png
+++ b/res/drawable-xxhdpi/weather_4.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_40.png b/res/drawable-xxhdpi/weather_40.png
index 7715f8e..965d731 100644
--- a/res/drawable-xxhdpi/weather_40.png
+++ b/res/drawable-xxhdpi/weather_40.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_41.png b/res/drawable-xxhdpi/weather_41.png
index f440617..6dde5f4 100644
--- a/res/drawable-xxhdpi/weather_41.png
+++ b/res/drawable-xxhdpi/weather_41.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_42.png b/res/drawable-xxhdpi/weather_42.png
index e9f8625..c6f5848 100644
--- a/res/drawable-xxhdpi/weather_42.png
+++ b/res/drawable-xxhdpi/weather_42.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_43.png b/res/drawable-xxhdpi/weather_43.png
index 5f4591b..c422d44 100644
--- a/res/drawable-xxhdpi/weather_43.png
+++ b/res/drawable-xxhdpi/weather_43.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_44.png b/res/drawable-xxhdpi/weather_44.png
index 7e9e040..4a04f34 100644
--- a/res/drawable-xxhdpi/weather_44.png
+++ b/res/drawable-xxhdpi/weather_44.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_45.png b/res/drawable-xxhdpi/weather_45.png
index 905e088..68579fd 100644
--- a/res/drawable-xxhdpi/weather_45.png
+++ b/res/drawable-xxhdpi/weather_45.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_46.png b/res/drawable-xxhdpi/weather_46.png
index 8fe3497..d05804c 100644
--- a/res/drawable-xxhdpi/weather_46.png
+++ b/res/drawable-xxhdpi/weather_46.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_47.png b/res/drawable-xxhdpi/weather_47.png
index c7aafcb..e8600fa 100644
--- a/res/drawable-xxhdpi/weather_47.png
+++ b/res/drawable-xxhdpi/weather_47.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_5.png b/res/drawable-xxhdpi/weather_5.png
index 27b859d..3097b92 100644
--- a/res/drawable-xxhdpi/weather_5.png
+++ b/res/drawable-xxhdpi/weather_5.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_6.png b/res/drawable-xxhdpi/weather_6.png
index 27b859d..3097b92 100644
--- a/res/drawable-xxhdpi/weather_6.png
+++ b/res/drawable-xxhdpi/weather_6.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_7.png b/res/drawable-xxhdpi/weather_7.png
index 27b859d..3097b92 100644
--- a/res/drawable-xxhdpi/weather_7.png
+++ b/res/drawable-xxhdpi/weather_7.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_8.png b/res/drawable-xxhdpi/weather_8.png
index 22d6c2d..2bf7566 100644
--- a/res/drawable-xxhdpi/weather_8.png
+++ b/res/drawable-xxhdpi/weather_8.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_9.png b/res/drawable-xxhdpi/weather_9.png
index cbfd5c9..5f2c826 100644
--- a/res/drawable-xxhdpi/weather_9.png
+++ b/res/drawable-xxhdpi/weather_9.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_0.png b/res/drawable-xxhdpi/weather_color_0.png
new file mode 100644
index 0000000..9c3a2ba
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_0.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_1.png b/res/drawable-xxhdpi/weather_color_1.png
new file mode 100644
index 0000000..6ada21d
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_1.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_10.png b/res/drawable-xxhdpi/weather_color_10.png
new file mode 100644
index 0000000..309bdbe
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_10.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_11.png b/res/drawable-xxhdpi/weather_color_11.png
new file mode 100644
index 0000000..2240d96
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_11.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_12.png b/res/drawable-xxhdpi/weather_color_12.png
new file mode 100644
index 0000000..2240d96
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_12.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_13.png b/res/drawable-xxhdpi/weather_color_13.png
new file mode 100644
index 0000000..a32a073
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_13.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_14.png b/res/drawable-xxhdpi/weather_color_14.png
new file mode 100644
index 0000000..a32a073
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_14.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_15.png b/res/drawable-xxhdpi/weather_color_15.png
new file mode 100644
index 0000000..a32a073
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_15.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_16.png b/res/drawable-xxhdpi/weather_color_16.png
new file mode 100644
index 0000000..a32a073
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_16.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_17.png b/res/drawable-xxhdpi/weather_color_17.png
new file mode 100644
index 0000000..e8c1045
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_17.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_18.png b/res/drawable-xxhdpi/weather_color_18.png
new file mode 100644
index 0000000..a33c8ab
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_18.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_19.png b/res/drawable-xxhdpi/weather_color_19.png
new file mode 100644
index 0000000..1d7ec89
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_19.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_2.png b/res/drawable-xxhdpi/weather_color_2.png
new file mode 100644
index 0000000..6ada21d
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_2.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_20.png b/res/drawable-xxhdpi/weather_color_20.png
new file mode 100644
index 0000000..623137d
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_20.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_21.png b/res/drawable-xxhdpi/weather_color_21.png
new file mode 100644
index 0000000..94aaa28
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_21.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_22.png b/res/drawable-xxhdpi/weather_color_22.png
new file mode 100644
index 0000000..dce0c4f
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_22.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_23.png b/res/drawable-xxhdpi/weather_color_23.png
new file mode 100644
index 0000000..6dd21e2
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_23.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_24.png b/res/drawable-xxhdpi/weather_color_24.png
new file mode 100644
index 0000000..6dd21e2
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_24.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_25.png b/res/drawable-xxhdpi/weather_color_25.png
new file mode 100644
index 0000000..b492cbb
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_25.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_26.png b/res/drawable-xxhdpi/weather_color_26.png
new file mode 100644
index 0000000..f8439c1
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_26.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_27.png b/res/drawable-xxhdpi/weather_color_27.png
new file mode 100644
index 0000000..fb4dfe5
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_27.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_28.png b/res/drawable-xxhdpi/weather_color_28.png
new file mode 100644
index 0000000..bad9233
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_28.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_29.png b/res/drawable-xxhdpi/weather_color_29.png
new file mode 100644
index 0000000..d1f0f52
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_29.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_3.png b/res/drawable-xxhdpi/weather_color_3.png
new file mode 100644
index 0000000..9c3a2ba
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_3.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_30.png b/res/drawable-xxhdpi/weather_color_30.png
new file mode 100644
index 0000000..2713632
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_30.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_31.png b/res/drawable-xxhdpi/weather_color_31.png
new file mode 100644
index 0000000..e4f59b1
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_31.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_32.png b/res/drawable-xxhdpi/weather_color_32.png
new file mode 100644
index 0000000..9415c20
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_32.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_33.png b/res/drawable-xxhdpi/weather_color_33.png
new file mode 100644
index 0000000..a45bfc9
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_33.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_34.png b/res/drawable-xxhdpi/weather_color_34.png
new file mode 100644
index 0000000..70230ce
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_34.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_35.png b/res/drawable-xxhdpi/weather_color_35.png
new file mode 100644
index 0000000..a34c5e6
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_35.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_36.png b/res/drawable-xxhdpi/weather_color_36.png
new file mode 100644
index 0000000..b218127
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_36.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_37.png b/res/drawable-xxhdpi/weather_color_37.png
new file mode 100644
index 0000000..16c5c7a
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_37.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_38.png b/res/drawable-xxhdpi/weather_color_38.png
new file mode 100644
index 0000000..16c5c7a
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_38.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_39.png b/res/drawable-xxhdpi/weather_color_39.png
new file mode 100644
index 0000000..16c5c7a
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_39.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_4.png b/res/drawable-xxhdpi/weather_color_4.png
new file mode 100644
index 0000000..9c3a2ba
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_4.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_40.png b/res/drawable-xxhdpi/weather_color_40.png
new file mode 100644
index 0000000..cae45e0
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_40.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_41.png b/res/drawable-xxhdpi/weather_color_41.png
new file mode 100644
index 0000000..3e651e1
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_41.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_42.png b/res/drawable-xxhdpi/weather_color_42.png
new file mode 100644
index 0000000..a32a073
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_42.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_43.png b/res/drawable-xxhdpi/weather_color_43.png
new file mode 100644
index 0000000..3e651e1
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_43.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_44.png b/res/drawable-xxhdpi/weather_color_44.png
new file mode 100644
index 0000000..a45bfc9
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_44.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_45.png b/res/drawable-xxhdpi/weather_color_45.png
new file mode 100644
index 0000000..bac18d2
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_45.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_46.png b/res/drawable-xxhdpi/weather_color_46.png
new file mode 100644
index 0000000..1f4d143
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_46.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_47.png b/res/drawable-xxhdpi/weather_color_47.png
new file mode 100644
index 0000000..14f28f4
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_47.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_5.png b/res/drawable-xxhdpi/weather_color_5.png
new file mode 100644
index 0000000..a33c8ab
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_5.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_6.png b/res/drawable-xxhdpi/weather_color_6.png
new file mode 100644
index 0000000..a33c8ab
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_6.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_7.png b/res/drawable-xxhdpi/weather_color_7.png
new file mode 100644
index 0000000..a32a073
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_7.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_8.png b/res/drawable-xxhdpi/weather_color_8.png
new file mode 100644
index 0000000..76ff239
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_8.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_9.png b/res/drawable-xxhdpi/weather_color_9.png
new file mode 100644
index 0000000..889745d
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_9.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_color_na.png b/res/drawable-xxhdpi/weather_color_na.png
new file mode 100644
index 0000000..990763b
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_color_na.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_na.png b/res/drawable-xxhdpi/weather_na.png
index 32d189c..10e49f1 100644
--- a/res/drawable-xxhdpi/weather_na.png
+++ b/res/drawable-xxhdpi/weather_na.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_preferences.png b/res/drawable-xxhdpi/weather_preferences.png
new file mode 100644
index 0000000..39d741f
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_preferences.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_refresh.png b/res/drawable-xxhdpi/weather_refresh.png
index 0a2faae..63c546b 100644
--- a/res/drawable-xxhdpi/weather_refresh.png
+++ b/res/drawable-xxhdpi/weather_refresh.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_0.png b/res/drawable-xxhdpi/weather_vclouds_0.png
new file mode 100644
index 0000000..3a680e4
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_0.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_1.png b/res/drawable-xxhdpi/weather_vclouds_1.png
new file mode 100644
index 0000000..3a680e4
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_1.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_10.png b/res/drawable-xxhdpi/weather_vclouds_10.png
new file mode 100644
index 0000000..89fad0f
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_10.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_11.png b/res/drawable-xxhdpi/weather_vclouds_11.png
new file mode 100644
index 0000000..b9978ee
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_11.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_12.png b/res/drawable-xxhdpi/weather_vclouds_12.png
new file mode 100644
index 0000000..a2d4f54
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_12.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_13.png b/res/drawable-xxhdpi/weather_vclouds_13.png
new file mode 100644
index 0000000..99e32c0
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_13.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_14.png b/res/drawable-xxhdpi/weather_vclouds_14.png
new file mode 100644
index 0000000..ddea4c1
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_14.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_15.png b/res/drawable-xxhdpi/weather_vclouds_15.png
new file mode 100644
index 0000000..a9db3e6
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_15.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_16.png b/res/drawable-xxhdpi/weather_vclouds_16.png
new file mode 100644
index 0000000..6f74d47
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_16.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_17.png b/res/drawable-xxhdpi/weather_vclouds_17.png
new file mode 100644
index 0000000..3a680e4
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_17.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_18.png b/res/drawable-xxhdpi/weather_vclouds_18.png
new file mode 100644
index 0000000..8c2cadc
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_18.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_19.png b/res/drawable-xxhdpi/weather_vclouds_19.png
new file mode 100644
index 0000000..cf5cd50
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_19.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_2.png b/res/drawable-xxhdpi/weather_vclouds_2.png
new file mode 100644
index 0000000..3a680e4
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_2.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_20.png b/res/drawable-xxhdpi/weather_vclouds_20.png
new file mode 100644
index 0000000..d975cb3
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_20.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_21.png b/res/drawable-xxhdpi/weather_vclouds_21.png
new file mode 100644
index 0000000..40f966d
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_21.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_22.png b/res/drawable-xxhdpi/weather_vclouds_22.png
new file mode 100644
index 0000000..59a1454
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_22.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_23.png b/res/drawable-xxhdpi/weather_vclouds_23.png
new file mode 100644
index 0000000..8fd52f9
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_23.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_24.png b/res/drawable-xxhdpi/weather_vclouds_24.png
new file mode 100644
index 0000000..8fd52f9
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_24.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_25.png b/res/drawable-xxhdpi/weather_vclouds_25.png
new file mode 100644
index 0000000..7f95159
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_25.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_26.png b/res/drawable-xxhdpi/weather_vclouds_26.png
new file mode 100644
index 0000000..5c00e15
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_26.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_27.png b/res/drawable-xxhdpi/weather_vclouds_27.png
new file mode 100644
index 0000000..689340d
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_27.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_28.png b/res/drawable-xxhdpi/weather_vclouds_28.png
new file mode 100644
index 0000000..2dd52f8
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_28.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_29.png b/res/drawable-xxhdpi/weather_vclouds_29.png
new file mode 100644
index 0000000..6a6b534
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_29.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_3.png b/res/drawable-xxhdpi/weather_vclouds_3.png
new file mode 100644
index 0000000..3a680e4
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_3.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_30.png b/res/drawable-xxhdpi/weather_vclouds_30.png
new file mode 100644
index 0000000..7c6cd81
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_30.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_31.png b/res/drawable-xxhdpi/weather_vclouds_31.png
new file mode 100644
index 0000000..665f2c8
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_31.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_32.png b/res/drawable-xxhdpi/weather_vclouds_32.png
new file mode 100644
index 0000000..9e281a4
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_32.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_33.png b/res/drawable-xxhdpi/weather_vclouds_33.png
new file mode 100644
index 0000000..1625e5f
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_33.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_34.png b/res/drawable-xxhdpi/weather_vclouds_34.png
new file mode 100644
index 0000000..8d21581
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_34.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_35.png b/res/drawable-xxhdpi/weather_vclouds_35.png
new file mode 100644
index 0000000..3a680e4
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_35.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_36.png b/res/drawable-xxhdpi/weather_vclouds_36.png
new file mode 100644
index 0000000..982cf7e
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_36.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_37.png b/res/drawable-xxhdpi/weather_vclouds_37.png
new file mode 100644
index 0000000..2e9f11e
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_37.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_38.png b/res/drawable-xxhdpi/weather_vclouds_38.png
new file mode 100644
index 0000000..2e9f11e
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_38.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_39.png b/res/drawable-xxhdpi/weather_vclouds_39.png
new file mode 100644
index 0000000..925f6a6
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_39.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_4.png b/res/drawable-xxhdpi/weather_vclouds_4.png
new file mode 100644
index 0000000..3a680e4
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_4.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_40.png b/res/drawable-xxhdpi/weather_vclouds_40.png
new file mode 100644
index 0000000..a2d4f54
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_40.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_41.png b/res/drawable-xxhdpi/weather_vclouds_41.png
new file mode 100644
index 0000000..59e71fd
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_41.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_42.png b/res/drawable-xxhdpi/weather_vclouds_42.png
new file mode 100644
index 0000000..6f74d47
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_42.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_43.png b/res/drawable-xxhdpi/weather_vclouds_43.png
new file mode 100644
index 0000000..a9db3e6
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_43.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_44.png b/res/drawable-xxhdpi/weather_vclouds_44.png
new file mode 100644
index 0000000..a841f2d
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_44.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_45.png b/res/drawable-xxhdpi/weather_vclouds_45.png
new file mode 100644
index 0000000..320a4f2
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_45.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_46.png b/res/drawable-xxhdpi/weather_vclouds_46.png
new file mode 100644
index 0000000..b42744a
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_46.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_47.png b/res/drawable-xxhdpi/weather_vclouds_47.png
new file mode 100644
index 0000000..08a3d34
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_47.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_5.png b/res/drawable-xxhdpi/weather_vclouds_5.png
new file mode 100644
index 0000000..4a18a1e
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_5.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_6.png b/res/drawable-xxhdpi/weather_vclouds_6.png
new file mode 100644
index 0000000..1df6ab6
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_6.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_7.png b/res/drawable-xxhdpi/weather_vclouds_7.png
new file mode 100644
index 0000000..2c8d68d
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_7.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_8.png b/res/drawable-xxhdpi/weather_vclouds_8.png
new file mode 100644
index 0000000..456cd09
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_8.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_9.png b/res/drawable-xxhdpi/weather_vclouds_9.png
new file mode 100644
index 0000000..cede663
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_9.png
Binary files differ
diff --git a/res/drawable-xxhdpi/weather_vclouds_na.png b/res/drawable-xxhdpi/weather_vclouds_na.png
new file mode 100644
index 0000000..a841f2d
--- /dev/null
+++ b/res/drawable-xxhdpi/weather_vclouds_na.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_0.png b/res/drawable-xxxhdpi/weather_color_0.png
new file mode 100644
index 0000000..32e7db4
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_0.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_1.png b/res/drawable-xxxhdpi/weather_color_1.png
new file mode 100644
index 0000000..d628655
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_1.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_10.png b/res/drawable-xxxhdpi/weather_color_10.png
new file mode 100644
index 0000000..75fbdd3
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_10.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_11.png b/res/drawable-xxxhdpi/weather_color_11.png
new file mode 100644
index 0000000..e8d5f90
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_11.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_12.png b/res/drawable-xxxhdpi/weather_color_12.png
new file mode 100644
index 0000000..e8d5f90
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_12.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_13.png b/res/drawable-xxxhdpi/weather_color_13.png
new file mode 100644
index 0000000..930e516
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_13.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_14.png b/res/drawable-xxxhdpi/weather_color_14.png
new file mode 100644
index 0000000..930e516
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_14.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_15.png b/res/drawable-xxxhdpi/weather_color_15.png
new file mode 100644
index 0000000..930e516
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_15.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_16.png b/res/drawable-xxxhdpi/weather_color_16.png
new file mode 100644
index 0000000..930e516
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_16.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_17.png b/res/drawable-xxxhdpi/weather_color_17.png
new file mode 100644
index 0000000..a470a5d
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_17.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_18.png b/res/drawable-xxxhdpi/weather_color_18.png
new file mode 100644
index 0000000..a6831b4
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_18.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_19.png b/res/drawable-xxxhdpi/weather_color_19.png
new file mode 100644
index 0000000..5a9f463
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_19.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_2.png b/res/drawable-xxxhdpi/weather_color_2.png
new file mode 100644
index 0000000..d628655
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_2.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_20.png b/res/drawable-xxxhdpi/weather_color_20.png
new file mode 100644
index 0000000..e9841ba
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_20.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_21.png b/res/drawable-xxxhdpi/weather_color_21.png
new file mode 100644
index 0000000..f8ec435
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_21.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_22.png b/res/drawable-xxxhdpi/weather_color_22.png
new file mode 100644
index 0000000..3eb09c4
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_22.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_23.png b/res/drawable-xxxhdpi/weather_color_23.png
new file mode 100644
index 0000000..432148a
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_23.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_24.png b/res/drawable-xxxhdpi/weather_color_24.png
new file mode 100644
index 0000000..432148a
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_24.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_25.png b/res/drawable-xxxhdpi/weather_color_25.png
new file mode 100644
index 0000000..10554e6
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_25.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_26.png b/res/drawable-xxxhdpi/weather_color_26.png
new file mode 100644
index 0000000..6407b06
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_26.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_27.png b/res/drawable-xxxhdpi/weather_color_27.png
new file mode 100644
index 0000000..5191353
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_27.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_28.png b/res/drawable-xxxhdpi/weather_color_28.png
new file mode 100644
index 0000000..1f8ac72
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_28.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_29.png b/res/drawable-xxxhdpi/weather_color_29.png
new file mode 100644
index 0000000..be06324
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_29.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_3.png b/res/drawable-xxxhdpi/weather_color_3.png
new file mode 100644
index 0000000..32e7db4
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_3.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_30.png b/res/drawable-xxxhdpi/weather_color_30.png
new file mode 100644
index 0000000..b27851d
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_30.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_31.png b/res/drawable-xxxhdpi/weather_color_31.png
new file mode 100644
index 0000000..c3d714e
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_31.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_32.png b/res/drawable-xxxhdpi/weather_color_32.png
new file mode 100644
index 0000000..52fecc2
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_32.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_33.png b/res/drawable-xxxhdpi/weather_color_33.png
new file mode 100644
index 0000000..6e9f6de
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_33.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_34.png b/res/drawable-xxxhdpi/weather_color_34.png
new file mode 100644
index 0000000..4846934
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_34.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_35.png b/res/drawable-xxxhdpi/weather_color_35.png
new file mode 100644
index 0000000..544444f
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_35.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_36.png b/res/drawable-xxxhdpi/weather_color_36.png
new file mode 100644
index 0000000..9b79c19
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_36.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_37.png b/res/drawable-xxxhdpi/weather_color_37.png
new file mode 100644
index 0000000..0dea971
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_37.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_38.png b/res/drawable-xxxhdpi/weather_color_38.png
new file mode 100644
index 0000000..0dea971
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_38.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_39.png b/res/drawable-xxxhdpi/weather_color_39.png
new file mode 100644
index 0000000..0dea971
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_39.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_4.png b/res/drawable-xxxhdpi/weather_color_4.png
new file mode 100644
index 0000000..32e7db4
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_4.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_40.png b/res/drawable-xxxhdpi/weather_color_40.png
new file mode 100644
index 0000000..64b9a0d
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_40.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_41.png b/res/drawable-xxxhdpi/weather_color_41.png
new file mode 100644
index 0000000..721c1d9
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_41.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_42.png b/res/drawable-xxxhdpi/weather_color_42.png
new file mode 100644
index 0000000..930e516
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_42.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_43.png b/res/drawable-xxxhdpi/weather_color_43.png
new file mode 100644
index 0000000..721c1d9
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_43.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_44.png b/res/drawable-xxxhdpi/weather_color_44.png
new file mode 100644
index 0000000..6e9f6de
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_44.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_45.png b/res/drawable-xxxhdpi/weather_color_45.png
new file mode 100644
index 0000000..2e35944
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_45.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_46.png b/res/drawable-xxxhdpi/weather_color_46.png
new file mode 100644
index 0000000..7d4a8e6
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_46.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_47.png b/res/drawable-xxxhdpi/weather_color_47.png
new file mode 100644
index 0000000..ac3094d
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_47.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_5.png b/res/drawable-xxxhdpi/weather_color_5.png
new file mode 100644
index 0000000..a6831b4
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_5.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_6.png b/res/drawable-xxxhdpi/weather_color_6.png
new file mode 100644
index 0000000..a6831b4
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_6.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_7.png b/res/drawable-xxxhdpi/weather_color_7.png
new file mode 100644
index 0000000..930e516
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_7.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_8.png b/res/drawable-xxxhdpi/weather_color_8.png
new file mode 100644
index 0000000..4b769e5
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_8.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_9.png b/res/drawable-xxxhdpi/weather_color_9.png
new file mode 100644
index 0000000..225ca3e
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_9.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/weather_color_na.png b/res/drawable-xxxhdpi/weather_color_na.png
new file mode 100644
index 0000000..dc48b06
--- /dev/null
+++ b/res/drawable-xxxhdpi/weather_color_na.png
Binary files differ
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;
+ }
+}