diff options
Diffstat (limited to 'src/com/android/gallery3d/ui')
-rw-r--r-- | src/com/android/gallery3d/ui/AlbumSlidingWindow.java | 7 | ||||
-rw-r--r-- | src/com/android/gallery3d/ui/FilmStripView.java | 59 | ||||
-rw-r--r-- | src/com/android/gallery3d/ui/GLView.java | 7 |
3 files changed, 23 insertions, 50 deletions
diff --git a/src/com/android/gallery3d/ui/AlbumSlidingWindow.java b/src/com/android/gallery3d/ui/AlbumSlidingWindow.java index 9e44bd1d2..9b410e9a8 100644 --- a/src/com/android/gallery3d/ui/AlbumSlidingWindow.java +++ b/src/com/android/gallery3d/ui/AlbumSlidingWindow.java @@ -24,7 +24,7 @@ import com.android.gallery3d.data.MediaItem; import com.android.gallery3d.data.Path; import com.android.gallery3d.util.Future; import com.android.gallery3d.util.FutureListener; -import com.android.gallery3d.util.ThreadPool; +import com.android.gallery3d.util.JobLimiter; import com.android.gallery3d.util.ThreadPool.Job; import com.android.gallery3d.util.ThreadPool.JobContext; @@ -39,6 +39,7 @@ public class AlbumSlidingWindow implements AlbumView.ModelListener { private static final int MSG_LOAD_BITMAP_DONE = 0; private static final int MSG_UPDATE_SLOT = 1; private static final int MIN_THUMB_SIZE = 100; + private static final int JOB_LIMIT = 2; public static interface Listener { public void onSizeChanged(int size); @@ -64,7 +65,7 @@ public class AlbumSlidingWindow implements AlbumView.ModelListener { private SelectionDrawer mSelectionDrawer; private SynchronizedHandler mHandler; - private ThreadPool mThreadPool; + private JobLimiter mThreadPool; private int mSlotWidth, mSlotHeight; private int mActiveRequestCount = 0; @@ -103,7 +104,7 @@ public class AlbumSlidingWindow implements AlbumView.ModelListener { } }; - mThreadPool = activity.getThreadPool(); + mThreadPool = new JobLimiter(activity.getThreadPool(), JOB_LIMIT); } public void setSelectionDrawer(SelectionDrawer drawer) { diff --git a/src/com/android/gallery3d/ui/FilmStripView.java b/src/com/android/gallery3d/ui/FilmStripView.java index 8d28f2c7b..c53e1aedf 100644 --- a/src/com/android/gallery3d/ui/FilmStripView.java +++ b/src/com/android/gallery3d/ui/FilmStripView.java @@ -18,7 +18,6 @@ package com.android.gallery3d.ui; import com.android.gallery3d.R; import com.android.gallery3d.anim.AlphaAnimation; -import com.android.gallery3d.anim.CanvasAnimation; import com.android.gallery3d.app.AlbumDataAdapter; import com.android.gallery3d.app.GalleryActivity; import com.android.gallery3d.data.MediaSet; @@ -46,8 +45,6 @@ public class FilmStripView extends GLView implements SlotView.Listener, private StripDrawer mStripDrawer; private Listener mListener; private UserInteractionListener mUIListener; - private boolean mFilmStripVisible; - private CanvasAnimation mFilmStripAnimation; private NinePatchTexture mBackgroundTexture; // The layout of FileStripView is @@ -90,7 +87,6 @@ public class FilmStripView extends GLView implements SlotView.Listener, mAlbumView.setModel(mAlbumDataAdapter); mBackgroundTexture = new NinePatchTexture(activity.getAndroidContext(), R.drawable.navstrip_translucent); - mFilmStripVisible = true; } public void setListener(Listener listener) { @@ -101,25 +97,18 @@ public class FilmStripView extends GLView implements SlotView.Listener, mUIListener = listener; } - private void setFilmStripVisible(boolean visible) { - if (mFilmStripVisible == visible) return; - mFilmStripVisible = visible; - if (!visible) { - mFilmStripAnimation = new AlphaAnimation(1, 0); - mFilmStripAnimation.setDuration(HIDE_ANIMATION_DURATION); - mFilmStripAnimation.start(); - } else { - mFilmStripAnimation = null; - } - invalidate(); - } - public void show() { - setFilmStripVisible(true); + if (getVisibility() == GLView.VISIBLE) return; + startAnimation(null); + setVisibility(GLView.VISIBLE); } public void hide() { - setFilmStripVisible(false); + if (getVisibility() == GLView.INVISIBLE) return; + AlphaAnimation animation = new AlphaAnimation(1, 0); + animation.setDuration(HIDE_ANIMATION_DURATION); + startAnimation(animation); + setVisibility(GLView.INVISIBLE); } @Override @@ -159,10 +148,6 @@ public class FilmStripView extends GLView implements SlotView.Listener, @Override protected boolean dispatchTouchEvent(MotionEvent event) { - if (!mFilmStripVisible && mFilmStripAnimation == null) { - return false; - } - switch (event.getAction()) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_MOVE: @@ -179,63 +164,49 @@ public class FilmStripView extends GLView implements SlotView.Listener, @Override protected void render(GLCanvas canvas) { - CanvasAnimation anim = mFilmStripAnimation; - if (anim == null && !mFilmStripVisible) return; - - boolean needRestore = false; - if (anim != null) { - needRestore = true; - canvas.save(anim.getCanvasSaveFlags()); - long now = canvas.currentAnimationTimeMillis(); - boolean more = anim.calculate(now); - anim.apply(canvas); - if (more) { - invalidate(); - } else { - mFilmStripAnimation = null; - } - } - mBackgroundTexture.draw(canvas, 0, 0, getWidth(), getHeight()); super.render(canvas); - - if (needRestore) { - canvas.restore(); - } } // Called by AlbumView + @Override public void onSingleTapUp(int slotIndex) { mAlbumView.setFocusIndex(slotIndex); mListener.onSlotSelected(slotIndex); } // Called by AlbumView + @Override public void onLongTap(int slotIndex) { onSingleTapUp(slotIndex); } // Called by AlbumView + @Override public void onUserInteractionBegin() { mUIListener.onUserInteractionBegin(); } // Called by AlbumView + @Override public void onUserInteractionEnd() { mUIListener.onUserInteractionEnd(); } // Called by AlbumView + @Override public void onUserInteraction() { mUIListener.onUserInteraction(); } // Called by AlbumView + @Override public void onScrollPositionChanged(int position, int total) { mScrollBarView.setContentPosition(position, total); } // Called by ScrollBarView + @Override public void onScrollBarPositionChanged(int position) { mAlbumView.setScrollPosition(position); } diff --git a/src/com/android/gallery3d/ui/GLView.java b/src/com/android/gallery3d/ui/GLView.java index c59327831..7491a6ffb 100644 --- a/src/com/android/gallery3d/ui/GLView.java +++ b/src/com/android/gallery3d/ui/GLView.java @@ -76,10 +76,11 @@ public class GLView { public void startAnimation(CanvasAnimation animation) { GLRoot root = getGLRoot(); if (root == null) throw new IllegalStateException(); - mAnimation = animation; - mAnimation.start(); - root.registerLaunchedAnimation(mAnimation); + if (mAnimation != null) { + mAnimation.start(); + root.registerLaunchedAnimation(mAnimation); + } invalidate(); } |