summaryrefslogtreecommitdiffstats
path: root/src/org/codeaurora/gallery3d/video/LoopVideoHooker.java
diff options
context:
space:
mode:
authorLikai Ding <likaid@codeaurora.org>2013-08-19 15:04:18 +0800
committerXiaojing Zhang <zhangx@codeaurora.org>2014-11-04 20:37:50 -0800
commit85963d969c149b9ba5e5681524e520b8b8afba08 (patch)
tree42fa492e598b3a6e39e7a6cd3b55b735bf201070 /src/org/codeaurora/gallery3d/video/LoopVideoHooker.java
parentcecd51ead6cace89db4506df96b7419502f64b61 (diff)
downloadandroid_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.java60
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);
+ }
+ }
+ }
+}