summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/values/strings.xml3
-rw-r--r--src/com/android/gallery3d/app/MuteVideo.java37
2 files changed, 40 insertions, 0 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 570014e3e..13027efd7 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -522,6 +522,9 @@
<!-- Toast if the trimmed video is too short to trim. [CHAR LIMIT=80] -->
<string name="trim_too_short">Can not trim : target video is too short</string>
+ <!-- Toast if the muted video is not supported. [CHAR LIMIT=80] -->
+ <string name="mute_nosupport">Can not mute : not supported video</string>
+
<!-- Text to show with progress bar while stitching in Gallery -->
<string name="pano_progress_text">Rendering panorama</string>
diff --git a/src/com/android/gallery3d/app/MuteVideo.java b/src/com/android/gallery3d/app/MuteVideo.java
index d3f3aa594..a385fbb9f 100644
--- a/src/com/android/gallery3d/app/MuteVideo.java
+++ b/src/com/android/gallery3d/app/MuteVideo.java
@@ -16,6 +16,8 @@
package com.android.gallery3d.app;
+import java.util.ArrayList;
+
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
@@ -40,6 +42,13 @@ public class MuteVideo {
private SaveVideoFileInfo mDstFileInfo = null;
private Activity mActivity = null;
private final Handler mHandler = new Handler();
+ private String mMimeType;
+ ArrayList<String> mUnsupportedMuteFileTypes = new ArrayList<String>();
+ private final String FILE_TYPE_DIVX = "video/divx";
+ private final String FILE_TYPE_AVI = "video/avi";
+ private final String FILE_TYPE_WMV = "video/x-ms-wmv";
+ private final String FILE_TYPE_ASF = "video/x-ms-asf";
+ private final String FILE_TYPE_WEBM = "video/webm";
final String TIME_STAMP_NAME = "'MUTE'_yyyyMMdd_HHmmss";
@@ -47,6 +56,13 @@ public class MuteVideo {
mUri = uri;
mFilePath = filePath;
mActivity = activity;
+ if (mUnsupportedMuteFileTypes != null) {
+ mUnsupportedMuteFileTypes.add(FILE_TYPE_DIVX);
+ mUnsupportedMuteFileTypes.add(FILE_TYPE_AVI);
+ mUnsupportedMuteFileTypes.add(FILE_TYPE_WMV);
+ mUnsupportedMuteFileTypes.add(FILE_TYPE_ASF);
+ mUnsupportedMuteFileTypes.add(FILE_TYPE_WEBM);
+ }
}
public void muteInBackground() {
@@ -54,6 +70,15 @@ public class MuteVideo {
mActivity.getContentResolver(), mUri,
mActivity.getString(R.string.folder_download));
+ mMimeType = mActivity.getContentResolver().getType(mUri);
+ if(!isValidFileForMute(mMimeType)) {
+ Toast.makeText(mActivity.getApplicationContext(),
+ mActivity.getString(R.string.mute_nosupport),
+ Toast.LENGTH_SHORT)
+ .show();
+ return;
+ }
+
showProgressDialog();
new Thread(new Runnable() {
@Override
@@ -101,4 +126,16 @@ public class MuteVideo {
mMuteProgress.setCanceledOnTouchOutside(false);
mMuteProgress.show();
}
+ private boolean isValidFileForMute(String mimeType) {
+ if (mimeType != null) {
+ for (String fileType : mUnsupportedMuteFileTypes) {
+ if (mimeType.equals(fileType)) {
+ return false;
+ }
+ }
+ return true;
+ } else {
+ return false;
+ }
+ }
}