diff --git a/app/src/main/java/com/example/android/sunshine/app/ForecastAdapter.java b/app/src/main/java/com/example/android/sunshine/app/ForecastAdapter.java
index 0b404e2..851167c 100644
--- a/app/src/main/java/com/example/android/sunshine/app/ForecastAdapter.java
+++ b/app/src/main/java/com/example/android/sunshine/app/ForecastAdapter.java
@@ -108,7 +108,7 @@ public class ForecastAdapter extends CursorAdapter {
break;
}
}
-
+
Glide.with(mContext)
.load(Utility.getArtUrlForWeatherCondition(mContext, weatherId))
.error(fallbackIconId)
diff --git a/app/src/main/java/com/example/android/sunshine/app/SettingsActivity.java b/app/src/main/java/com/example/android/sunshine/app/SettingsActivity.java
index 162c9a0..afd1cac 100644
--- a/app/src/main/java/com/example/android/sunshine/app/SettingsActivity.java
+++ b/app/src/main/java/com/example/android/sunshine/app/SettingsActivity.java
@@ -49,6 +49,7 @@ public class SettingsActivity extends PreferenceActivity
// updated when the preference changes.
bindPreferenceSummaryToValue(findPreference(getString(R.string.pref_location_key)));
bindPreferenceSummaryToValue(findPreference(getString(R.string.pref_units_key)));
+ bindPreferenceSummaryToValue(findPreference(getString(R.string.pref_art_pack_key)));
}
// Registers a shared preference change listener that gets notified when preferences change
@@ -142,6 +143,9 @@ public class SettingsActivity extends PreferenceActivity
// our location status has changed. Update the summary accordingly
Preference locationPreference = findPreference(getString(R.string.pref_location_key));
bindPreferenceSummaryToValue(locationPreference);
+ } else if ( key.equals(getString(R.string.pref_art_pack_key)) ) {
+ // art pack have changed. update lists of weather entries accordingly
+ getContentResolver().notifyChange(WeatherContract.WeatherEntry.CONTENT_URI, null);
}
}
diff --git a/app/src/main/java/com/example/android/sunshine/app/Utility.java b/app/src/main/java/com/example/android/sunshine/app/Utility.java
index 73f424a..bad6d0c 100644
--- a/app/src/main/java/com/example/android/sunshine/app/Utility.java
+++ b/app/src/main/java/com/example/android/sunshine/app/Utility.java
@@ -27,6 +27,7 @@ import com.example.android.sunshine.app.sync.SunshineSyncAdapter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.Locale;
public class Utility {
public static String getPreferredLocation(Context context) {
@@ -225,30 +226,34 @@ public class Utility {
* @return url for the corresponding weather artwork. null if no relation is found.
*/
public static String getArtUrlForWeatherCondition(Context context, int weatherId) {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+ String formatArtUrl = prefs.getString(context.getString(R.string.pref_art_pack_key),
+ context.getString(R.string.pref_art_pack_sunshine));
+
// Based on weather code data found at:
// http://bugs.openweathermap.org/projects/api/wiki/Weather_Condition_Codes
if (weatherId >= 200 && weatherId <= 232) {
- return context.getString(R.string.format_art_url, "storm");
+ return String.format(Locale.US, formatArtUrl, "storm");
} else if (weatherId >= 300 && weatherId <= 321) {
- return context.getString(R.string.format_art_url, "light_rain");
+ return String.format(Locale.US, formatArtUrl, "light_rain");
} else if (weatherId >= 500 && weatherId <= 504) {
- return context.getString(R.string.format_art_url, "rain");
+ return String.format(Locale.US, formatArtUrl, "rain");
} else if (weatherId == 511) {
- return context.getString(R.string.format_art_url, "snow");
+ return String.format(Locale.US, formatArtUrl, "snow");
} else if (weatherId >= 520 && weatherId <= 531) {
- return context.getString(R.string.format_art_url, "rain");
+ return String.format(Locale.US, formatArtUrl, "rain");
} else if (weatherId >= 600 && weatherId <= 622) {
- return context.getString(R.string.format_art_url, "snow");
+ return String.format(Locale.US, formatArtUrl, "snow");
} else if (weatherId >= 701 && weatherId <= 761) {
- return context.getString(R.string.format_art_url, "fog");
+ return String.format(Locale.US, formatArtUrl, "fog");
} else if (weatherId == 761 || weatherId == 781) {
- return context.getString(R.string.format_art_url, "storm");
+ return String.format(Locale.US, formatArtUrl, "storm");
} else if (weatherId == 800) {
- return context.getString(R.string.format_art_url, "clear");
+ return String.format(Locale.US, formatArtUrl, "clear");
} else if (weatherId == 801) {
- return context.getString(R.string.format_art_url, "light_clouds");
+ return String.format(Locale.US, formatArtUrl, "light_clouds");
} else if (weatherId >= 802 && weatherId <= 804) {
- return context.getString(R.string.format_art_url, "clouds");
+ return String.format(Locale.US, formatArtUrl, "clouds");
}
return null;
}
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 5aa1add..54060c0 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -25,4 +25,16 @@
- @string/pref_units_metric
- @string/pref_units_imperial
+
+
+
+ - @string/pref_art_pack_label_sunshine
+ - @string/pref_art_pack_label_cute_dogs
+
+
+
+
+ - @string/pref_art_pack_sunshine
+ - @string/pref_art_pack_cute_dogs
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f0b386a..f330d64 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -80,9 +80,23 @@
imperial
+
+ Icon Pack
-
- https://raw.githubusercontent.com/udacity/Sunshine-Version-2/sunshine_master/app/src/main/res/drawable-xxhdpi/art_%s.png
+
+ Sunshine
+
+
+ Cute dogs
+
+
+ art_pack
+
+
+ https://raw.githubusercontent.com/udacity/Sunshine-Version-2/sunshine_master/app/src/main/res/drawable-xxhdpi/art_%s.png
+
+
+ https://raw.githubusercontent.com/udacity/Sunshine-Version-2/sunshine_master/app/src/main/res/drawable-mdpi/art_%s.png
Today
diff --git a/app/src/main/res/xml/pref_general.xml b/app/src/main/res/xml/pref_general.xml
index a8b175b..34d1406 100644
--- a/app/src/main/res/xml/pref_general.xml
+++ b/app/src/main/res/xml/pref_general.xml
@@ -35,6 +35,13 @@
android:entryValues="@array/pref_units_values"
android:entries="@array/pref_units_options" />
+
+