aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorge Ruesga <jorge@ruesga.com>2013-08-12 18:43:23 +0200
committerJorge Ruesga <jorge@ruesga.com>2013-08-12 18:43:23 +0200
commitb9e5c7590b6bf8ee55152f27d5b4d3a95e43637b (patch)
tree23e06a7a0c829702728cb2d3501e92aba238b824
parentceb28d7a768d45502a02923adf4a766f80d9aa24 (diff)
downloadandroid_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.java2
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/widgets/PicturesView.java29
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);