diff options
Diffstat (limited to 'src/com/android/gallery3d/ui/FilmStripView.java')
-rw-r--r-- | src/com/android/gallery3d/ui/FilmStripView.java | 59 |
1 files changed, 44 insertions, 15 deletions
diff --git a/src/com/android/gallery3d/ui/FilmStripView.java b/src/com/android/gallery3d/ui/FilmStripView.java index 6a80564d9..eaf041ead 100644 --- a/src/com/android/gallery3d/ui/FilmStripView.java +++ b/src/com/android/gallery3d/ui/FilmStripView.java @@ -20,14 +20,16 @@ import com.android.gallery3d.R; import com.android.gallery3d.anim.AlphaAnimation; import com.android.gallery3d.app.AlbumDataAdapter; import com.android.gallery3d.app.GalleryActivity; +import com.android.gallery3d.data.MediaItem; import com.android.gallery3d.data.MediaSet; +import com.android.gallery3d.data.Path; import android.content.Context; import android.view.MotionEvent; import android.view.View.MeasureSpec; -public class FilmStripView extends GLView implements SlotView.Listener, - ScrollBarView.Listener, UserInteractionListener { +public class FilmStripView extends GLView implements ScrollBarView.Listener, + UserInteractionListener { @SuppressWarnings("unused") private static final String TAG = "FilmStripView"; @@ -79,7 +81,28 @@ public class FilmStripView extends GLView implements SlotView.Listener, mAlbumView = new AlbumView(activity, spec, thumbSize); mAlbumView.setOverscrollEffect(SlotView.OVERSCROLL_SYSTEM); mAlbumView.setSelectionDrawer(mStripDrawer); - mAlbumView.setListener(this); + mAlbumView.setListener(new SlotView.SimpleListener() { + @Override + public void onDown(int index) { + FilmStripView.this.onDown(index); + } + @Override + public void onUp() { + FilmStripView.this.onUp(); + } + @Override + public void onSingleTapUp(int slotIndex) { + FilmStripView.this.onSingleTapUp(slotIndex); + } + @Override + public void onLongTap(int slotIndex) { + FilmStripView.this.onLongTap(slotIndex); + } + @Override + public void onScrollPositionChanged(int position, int total) { + FilmStripView.this.onScrollPositionChanged(position, total); + } + }); mAlbumView.setUserInteractionListener(this); mAlbumDataAdapter = new AlbumDataAdapter(activity, mediaSet); addComponent(mAlbumView); @@ -172,20 +195,32 @@ public class FilmStripView extends GLView implements SlotView.Listener, super.render(canvas); } - // Called by AlbumView - @Override - public void onSingleTapUp(int slotIndex) { + private void onDown(int index) { + MediaItem item = mAlbumDataAdapter.get(index); + Path path = (item == null) ? null : item.getPath(); + mStripDrawer.setPressedPath(path); + mAlbumView.invalidate(); + } + + private void onUp() { + mStripDrawer.setPressedPath(null); + mAlbumView.invalidate(); + } + + private void onSingleTapUp(int slotIndex) { if (mListener.onSlotSelected(slotIndex)) { mAlbumView.setFocusIndex(slotIndex); } } - // Called by AlbumView - @Override - public void onLongTap(int slotIndex) { + private void onLongTap(int slotIndex) { onSingleTapUp(slotIndex); } + private void onScrollPositionChanged(int position, int total) { + mScrollBarView.setContentPosition(position, total); + } + // Called by AlbumView @Override public void onUserInteractionBegin() { @@ -204,12 +239,6 @@ public class FilmStripView extends GLView implements SlotView.Listener, 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) { |