diff options
author | Yuli Huang <yuli@google.com> | 2012-04-24 15:20:28 +0800 |
---|---|---|
committer | Yuli Huang <yuli@google.com> | 2012-04-24 15:20:28 +0800 |
commit | 4072ab93a57bcb2ad9fab6f42edf3805420080ec (patch) | |
tree | f7c4f04f8a0011319f85357851a6f469093bde36 /src/com/android/gallery3d/ui/AlbumSetSlotRenderer.java | |
parent | 85c9ea40b0026befe79c4ba866a73f5d58ee5555 (diff) | |
download | android_packages_apps_Snap-4072ab93a57bcb2ad9fab6f42edf3805420080ec.tar.gz android_packages_apps_Snap-4072ab93a57bcb2ad9fab6f42edf3805420080ec.tar.bz2 android_packages_apps_Snap-4072ab93a57bcb2ad9fab6f42edf3805420080ec.zip |
Add prominent highlights for touch feedback.
Mimic the system UI to fade out highlights on touch releases.
bug:6145331
bug:5379176
Change-Id: I44c9245a926b2c5eb46b28d494c6393ba7f0c30c
Diffstat (limited to 'src/com/android/gallery3d/ui/AlbumSetSlotRenderer.java')
-rw-r--r-- | src/com/android/gallery3d/ui/AlbumSetSlotRenderer.java | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/com/android/gallery3d/ui/AlbumSetSlotRenderer.java b/src/com/android/gallery3d/ui/AlbumSetSlotRenderer.java index d20c387ae..b0e615392 100644 --- a/src/com/android/gallery3d/ui/AlbumSetSlotRenderer.java +++ b/src/com/android/gallery3d/ui/AlbumSetSlotRenderer.java @@ -39,6 +39,7 @@ public class AlbumSetSlotRenderer extends AbstractSlotRenderer { private SlotView mSlotView; private int mPressedIndex = -1; + private boolean mAnimatePressedUp; private Path mHighlightItemPath = null; private boolean mInSelectionMode; @@ -72,6 +73,12 @@ public class AlbumSetSlotRenderer extends AbstractSlotRenderer { mSlotView.invalidate(); } + public void setPressedUp() { + if (mPressedIndex == -1) return; + mAnimatePressedUp = true; + mSlotView.invalidate(); + } + public void setHighlightItemPath(Path path) { if (mHighlightItemPath == path) return; mHighlightItemPath = path; @@ -111,15 +118,24 @@ public class AlbumSetSlotRenderer extends AbstractSlotRenderer { protected int renderOverlay( GLCanvas canvas, int index, AlbumSetEntry entry, int width, int height) { - Path path = entry.setPath; + int renderRequestFlags = 0; if (mPressedIndex == index) { - drawPressedFrame(canvas, width, height); - } else if ((path != null) && (mHighlightItemPath == path)) { + if (mAnimatePressedUp) { + drawPressedUpFrame(canvas, width, height); + renderRequestFlags |= SlotView.RENDER_MORE_FRAME; + if (isPressedUpFrameFinished()) { + mAnimatePressedUp = false; + mPressedIndex = -1; + } + } else { + drawPressedFrame(canvas, width, height); + } + } else if ((mHighlightItemPath != null) && (mHighlightItemPath == entry.setPath)) { drawSelectedFrame(canvas, width, height); - } else if (mInSelectionMode && mSelectionManager.isItemSelected(path)) { + } else if (mInSelectionMode && mSelectionManager.isItemSelected(entry.setPath)) { drawSelectedFrame(canvas, width, height); } - return 0; + return renderRequestFlags; } protected int renderContent( |