summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/app/MuteVideo.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/app/MuteVideo.java')
-rwxr-xr-x[-rw-r--r--]src/com/android/gallery3d/app/MuteVideo.java53
1 files changed, 50 insertions, 3 deletions
diff --git a/src/com/android/gallery3d/app/MuteVideo.java b/src/com/android/gallery3d/app/MuteVideo.java
index d3f3aa594..dd05397d2 100644..100755
--- 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
@@ -62,9 +87,19 @@ public class MuteVideo {
VideoUtils.startMute(mFilePath, mDstFileInfo);
SaveVideoFileUtils.insertContent(
mDstFileInfo, mActivity.getContentResolver(), mUri);
- } catch (IOException e) {
- Toast.makeText(mActivity, mActivity.getString(R.string.video_mute_err),
- Toast.LENGTH_SHORT).show();
+ } catch (Exception e) {
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ Toast.makeText(mActivity, mActivity.getString(R.string.video_mute_err),
+ Toast.LENGTH_SHORT).show();
+ if (mMuteProgress != null) {
+ mMuteProgress.dismiss();
+ mMuteProgress = null;
+ }
+ }
+ });
+ return;
}
// After muting is done, trigger the UI changed.
mHandler.post(new Runnable() {
@@ -101,4 +136,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;
+ }
+ }
}