aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/ui
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-01-20 12:38:12 +0100
committerSamuel Tardieu <sam@rfc1149.net>2014-01-20 19:16:26 +0100
commitcfa472650954977ffb05baaed5dfdb64d2a2800e (patch)
tree45c76f7ece08e3b479505988fd3000815add4438 /main/src/cgeo/geocaching/ui
parentd2be8fed38edf156700d6f9029de6fa4bd49afde (diff)
downloadcgeo-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.java15
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();
}
}