From 8854996bcb79d4c5260924390268cf45079d457c Mon Sep 17 00:00:00 2001 From: Christopher Eby Date: Mon, 1 Mar 2010 19:29:19 -0600 Subject: [PATCH] Prevent CoverView interaction before all covers are loaded --- src/org/kreed/vanilla/CoverView.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/org/kreed/vanilla/CoverView.java b/src/org/kreed/vanilla/CoverView.java index ed07251c..b1422bf6 100644 --- a/src/org/kreed/vanilla/CoverView.java +++ b/src/org/kreed/vanilla/CoverView.java @@ -49,6 +49,7 @@ public class CoverView extends View { private float mStartX; private float mStartY; private IPlaybackService mService; + private boolean loaded; Song[] mSongs = new Song[3]; private Bitmap[] mBitmaps = new Bitmap[3]; @@ -279,7 +280,8 @@ public class CoverView extends View { { if (mService == null) throw new RemoteException(); - + if (delta != 0 && !loaded) + return; mHandler.sendMessage(mHandler.obtainMessage(GO, delta, 0)); } @@ -354,7 +356,7 @@ public class CoverView extends View { if (availableToScroll > 0) scrollBy(Math.max(-availableToScroll, deltaX), 0); } else if (deltaX > 0) { - int availableToScroll = getWidth() * 2 - scrollX; + int availableToScroll = getWidth() * (mBitmaps[0] == null ? 1 : 2) - scrollX; if (availableToScroll > 0) scrollBy(Math.min(availableToScroll, deltaX), 0); } @@ -368,7 +370,7 @@ public class CoverView extends View { int velocity = (int) velocityTracker.getXVelocity(); int min = mBitmaps[0] == null ? 1 : 0; - int max = 2; + int max = mBitmaps[2] == null ? 1 : 2; int nearestCover = (scrollX + width / 2) / width; int whichCover = Math.max(min, Math.min(nearestCover, max)); @@ -443,6 +445,7 @@ public class CoverView extends View { private IMusicPlayerWatcher mWatcher = new IMusicPlayerWatcher.Stub() { public void loaded() { + loaded = true; refreshSongs(); }