diff options
author | Likai Ding <likaid@codeaurora.org> | 2013-08-19 15:04:18 +0800 |
---|---|---|
committer | Xiaojing Zhang <zhangx@codeaurora.org> | 2014-11-04 20:37:50 -0800 |
commit | 85963d969c149b9ba5e5681524e520b8b8afba08 (patch) | |
tree | 42fa492e598b3a6e39e7a6cd3b55b735bf201070 /src/org/codeaurora/gallery3d/video/LoopVideoHooker.java | |
parent | cecd51ead6cace89db4506df96b7419502f64b61 (diff) | |
download | android_packages_apps_Gallery2-85963d969c149b9ba5e5681524e520b8b8afba08.tar.gz android_packages_apps_Gallery2-85963d969c149b9ba5e5681524e520b8b8afba08.tar.bz2 android_packages_apps_Gallery2-85963d969c149b9ba5e5681524e520b8b8afba08.zip |
Gallery2: support loop/single video play mode
This change allows a video to be played repeatedly. It also
introduces an extension framework.
Change-Id: I5566192f138c1f0fd889b85496dd27fbf2aed10d
CRs-Fixed: 507973
Diffstat (limited to 'src/org/codeaurora/gallery3d/video/LoopVideoHooker.java')
-rw-r--r-- | src/org/codeaurora/gallery3d/video/LoopVideoHooker.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/org/codeaurora/gallery3d/video/LoopVideoHooker.java b/src/org/codeaurora/gallery3d/video/LoopVideoHooker.java new file mode 100644 index 000000000..468e8a878 --- /dev/null +++ b/src/org/codeaurora/gallery3d/video/LoopVideoHooker.java @@ -0,0 +1,60 @@ +package org.codeaurora.gallery3d.video; + +import android.view.Menu; +import android.view.MenuItem; + +import com.android.gallery3d.R; +import org.codeaurora.gallery3d.ext.MovieUtils; + +public class LoopVideoHooker extends MovieHooker { + + private static final String TAG = "LoopVideoHooker"; + private static final boolean LOG = true; + private static final int MENU_LOOP = 1; + + private MenuItem mMenuLoopButton; + + @Override + public boolean onCreateOptionsMenu(final Menu menu) { + super.onCreateOptionsMenu(menu); + mMenuLoopButton = menu.add(0, getMenuActivityId(MENU_LOOP), 0, R.string.loop); + return true; + } + + @Override + public boolean onPrepareOptionsMenu(final Menu menu) { + super.onPrepareOptionsMenu(menu); + updateLoop(); + return true; + } + + @Override + public boolean onOptionsItemSelected(final MenuItem item) { + super.onOptionsItemSelected(item); + switch (getMenuOriginalId(item.getItemId())) { + case MENU_LOOP: + getPlayer().setLoop(!getPlayer().getLoop()); + return true; + default: + return false; + } + } + + private void updateLoop() { + if (mMenuLoopButton != null) { + if (MovieUtils.isLocalFile(getMovieItem().getUri(), getMovieItem().getMimeType())) { + mMenuLoopButton.setVisible(true); + } else { + mMenuLoopButton.setVisible(false); + } + final boolean newLoop = getPlayer().getLoop(); + if (newLoop) { + mMenuLoopButton.setTitle(R.string.single); + mMenuLoopButton.setIcon(R.drawable.ic_menu_unloop); + } else { + mMenuLoopButton.setTitle(R.string.loop); + mMenuLoopButton.setIcon(R.drawable.ic_menu_loop); + } + } + } +} |