From 854b19eee6b44698f5e76acdd283d99393773599 Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Tue, 11 Apr 2017 12:37:22 +1000 Subject: [PATCH] Correct handling of localized metadata representing images. Previously, it assumed that featureGraphic et al. were always present if the localised entry was present. This is not the case, so we only return a URL if we can actually find the entry we are looking for. --- app/src/main/java/org/fdroid/fdroid/data/App.java | 8 ++++++-- .../java/org/fdroid/fdroid/views/apps/FeatureImage.java | 1 + .../fdroid/views/categories/CategoryController.java | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/data/App.java b/app/src/main/java/org/fdroid/fdroid/data/App.java index f869db5c0..236b3f9af 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/App.java +++ b/app/src/main/java/org/fdroid/fdroid/data/App.java @@ -432,8 +432,12 @@ public class App extends ValueObject implements Comparable, Parcelable { Set locales, String key) { try { for (String locale : locales) { - if (localized.containsKey(locale)) { - return locale + "/" + localized.get(locale).get(key); + Map entry = localized.get(locale); + if (entry != null) { + Object value = entry.get(key); + if (value != null && value.toString().length() > 0) { + return locale + "/" + value; + } } } } catch (ClassCastException e) { diff --git a/app/src/main/java/org/fdroid/fdroid/views/apps/FeatureImage.java b/app/src/main/java/org/fdroid/fdroid/views/apps/FeatureImage.java index 376586f60..bc0d820c3 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/apps/FeatureImage.java +++ b/app/src/main/java/org/fdroid/fdroid/views/apps/FeatureImage.java @@ -254,6 +254,7 @@ public class FeatureImage extends AppCompatImageView { } public void loadImageAndDisplay(@NonNull ImageLoader loader, @NonNull DisplayImageOptions imageOptions, @Nullable String featureImageToShow, @Nullable String fallbackImageToExtractColours) { + setColour(ContextCompat.getColor(getContext(), R.color.fdroid_blue)); if (!TextUtils.isEmpty(featureImageToShow)) { loadImageAndDisplay(loader, imageOptions, featureImageToShow); } else if (!TextUtils.isEmpty(fallbackImageToExtractColours)) { diff --git a/app/src/main/java/org/fdroid/fdroid/views/categories/CategoryController.java b/app/src/main/java/org/fdroid/fdroid/views/categories/CategoryController.java index 10e99162a..50d02e3ee 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/categories/CategoryController.java +++ b/app/src/main/java/org/fdroid/fdroid/views/categories/CategoryController.java @@ -94,7 +94,7 @@ public class CategoryController extends RecyclerView.ViewHolder implements Loade image.setColour(backgroundColour); image.setImageDrawable(null); } else { - image.setColour(0); + image.setColour(ContextCompat.getColor(activity, R.color.fdroid_blue)); ImageLoader.getInstance().displayImage("drawable://" + categoryImageId, image, displayImageOptions); } }