diff options
author | Jorge Ruesga <jorge@ruesga.com> | 2013-08-12 18:43:23 +0200 |
---|---|---|
committer | Jorge Ruesga <jorge@ruesga.com> | 2013-08-12 18:43:23 +0200 |
commit | b9e5c7590b6bf8ee55152f27d5b4d3a95e43637b (patch) | |
tree | 23e06a7a0c829702728cb2d3501e92aba238b824 | |
parent | ceb28d7a768d45502a02923adf4a766f80d9aa24 (diff) | |
download | android_packages_wallpapers_PhotoPhase-b9e5c7590b6bf8ee55152f27d5b4d3a95e43637b.tar.gz android_packages_wallpapers_PhotoPhase-b9e5c7590b6bf8ee55152f27d5b4d3a95e43637b.tar.bz2 android_packages_wallpapers_PhotoPhase-b9e5c7590b6bf8ee55152f27d5b4d3a95e43637b.zip |
Improve responsiveness of PicturesView
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
-rw-r--r-- | src/org/cyanogenmod/wallpapers/photophase/widgets/AlbumPictures.java | 2 | ||||
-rw-r--r-- | src/org/cyanogenmod/wallpapers/photophase/widgets/PicturesView.java | 29 |
2 files changed, 28 insertions, 3 deletions
diff --git a/src/org/cyanogenmod/wallpapers/photophase/widgets/AlbumPictures.java b/src/org/cyanogenmod/wallpapers/photophase/widgets/AlbumPictures.java index 18bc5db..f0b3946 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/widgets/AlbumPictures.java +++ b/src/org/cyanogenmod/wallpapers/photophase/widgets/AlbumPictures.java @@ -283,7 +283,7 @@ public class AlbumPictures extends RelativeLayout * Method invoked when the view is displayed */ public void onShow() { - mScroller.requestLoadOfPendingPictures(); + mScroller.onShow(); } /** diff --git a/src/org/cyanogenmod/wallpapers/photophase/widgets/PicturesView.java b/src/org/cyanogenmod/wallpapers/photophase/widgets/PicturesView.java index bb9332c..9408a9d 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/widgets/PicturesView.java +++ b/src/org/cyanogenmod/wallpapers/photophase/widgets/PicturesView.java @@ -19,6 +19,7 @@ package org.cyanogenmod.wallpapers.photophase.widgets; import android.content.Context; import android.graphics.Rect; import android.os.AsyncTask.Status; +import android.os.Handler; import android.util.AttributeSet; import android.view.ViewGroup; import android.widget.HorizontalScrollView; @@ -37,6 +38,7 @@ import java.util.Iterator; public class PicturesView extends HorizontalScrollView { private HashMap<File, AsyncPictureLoaderTask> mTasks; + private Handler mHandler; /** * Constructor of <code>PicturesView</code>. @@ -79,6 +81,7 @@ public class PicturesView extends HorizontalScrollView { */ private void init() { mTasks = new HashMap<File, AsyncPictureLoaderTask>(); + mHandler = new Handler(); } /** @@ -111,13 +114,35 @@ public class PicturesView extends HorizontalScrollView { @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); - requestLoadOfPendingPictures(); + // Estimated velocity (in some moment we must obtain some scrolling with an estimated + // velocity below of 3) + int velocity = Math.abs(l - oldl); + if (velocity <= 3) { + mHandler.post(new Runnable() { + @Override + public void run() { + requestLoadOfPendingPictures(); + } + }); + } + } + + /** + * Method invoked when the view is displayed + */ + public void onShow() { + mHandler.post(new Runnable() { + @Override + public void run() { + requestLoadOfPendingPictures(); + } + }); } /** * Method that load in background all visible and pending pictures */ - public void requestLoadOfPendingPictures() { + private void requestLoadOfPendingPictures() { // Get the visible rect Rect r = new Rect(); getHitRect(r); |