diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-01-20 12:38:12 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-01-20 19:16:26 +0100 |
| commit | cfa472650954977ffb05baaed5dfdb64d2a2800e (patch) | |
| tree | 45c76f7ece08e3b479505988fd3000815add4438 /main/src/cgeo/geocaching/ui | |
| parent | d2be8fed38edf156700d6f9029de6fa4bd49afde (diff) | |
| download | cgeo-cfa472650954977ffb05baaed5dfdb64d2a2800e.zip cgeo-cfa472650954977ffb05baaed5dfdb64d2a2800e.tar.gz cgeo-cfa472650954977ffb05baaed5dfdb64d2a2800e.tar.bz2 | |
When we have a cached image, return it before checking its validity
When image lists are displayed, we now return the cached image even if
it might no longer be valid, then replace it with the valid one if it
proves necessary.
Diffstat (limited to 'main/src/cgeo/geocaching/ui')
| -rw-r--r-- | main/src/cgeo/geocaching/ui/ImagesList.java | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/main/src/cgeo/geocaching/ui/ImagesList.java b/main/src/cgeo/geocaching/ui/ImagesList.java index 1cd5a48..4058e15 100644 --- a/main/src/cgeo/geocaching/ui/ImagesList.java +++ b/main/src/cgeo/geocaching/ui/ImagesList.java @@ -27,7 +27,6 @@ import android.view.ContextMenu; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; -import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -97,22 +96,23 @@ public class ImagesList { descView.setVisibility(View.VISIBLE); } + final ImageView imageView = (ImageView) inflater.inflate(R.layout.image_item, null); + assert(imageView != null); subscriptions.add(AndroidObservable.fromActivity(activity, imgGetter.fetchDrawable(img.getUrl())) .subscribe(new Action1<BitmapDrawable>() { @Override public void call(final BitmapDrawable image) { - display(image, img, rowView); + display(imageView, image, img, rowView); } })); + rowView.addView(imageView); imagesView.addView(rowView); } } - private void display(final BitmapDrawable image, final Image img, final LinearLayout view) { + private void display(final ImageView imageView, final BitmapDrawable image, final Image img, final LinearLayout view) { if (image != null) { bitmaps.add(image.getBitmap()); - final ImageView imageView = (ImageView) inflater.inflate(R.layout.image_item, null); - assert(imageView != null); final Rect bounds = image.getBounds(); @@ -127,13 +127,14 @@ public class ImagesList { activity.registerForContextMenu(imageView); imageView.setImageDrawable(image); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); - imageView.setLayoutParams(new LayoutParams(bounds.width(), bounds.height())); + imageView.setLayoutParams(new LinearLayout.LayoutParams(bounds.width(), bounds.height())); view.findViewById(R.id.progress_bar).setVisibility(View.GONE); - view.addView(imageView); imageView.setId(image.hashCode()); images.put(imageView.getId(), img); + + view.invalidate(); } } |
