diff --git a/app/build.gradle b/app/build.gradle
index 38bae3c1..e59bb07f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -43,7 +43,7 @@ dependencies {
compile 'com.crystal:crystalrangeseekbar:1.1.3'
compile 'commons-io:commons-io:2.5'
compile group: 'com.google.guava', name: 'guava', version: '20.0'
- compile 'com.github.codekidX:storage-chooser:2.0.3'
+ compile 'com.nononsenseapps:filepicker:4.2.1'
implementation group: 'org.javatuples', name: 'javatuples', version: '1.2'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.8.11.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f573001f..b79f1f68 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -25,8 +25,17 @@
+
+
+
+
+
+
@@ -34,6 +43,15 @@
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_provider_paths"/>
+
+
+
BASIC_SETTINGS_IDS = Collections.unmodifiableList(Arrays.asList(
R.id.basicSettingsText,
R.id.basicSettingsTopDivider,
@@ -483,30 +488,37 @@ public void onClick(DialogInterface dialog, int which)
}
/**
- * Opening gallery for uploading video
+ * Opening gallery for selecting video file
*/
private void selectVideo()
{
- final StorageChooser fileChooser = new StorageChooser.Builder()
- .withActivity(MainActivity.this)
- .withFragmentManager(getFragmentManager())
- .allowCustomPath(true)
- .setType(StorageChooser.FILE_PICKER)
- .disableMultiSelect()
- .build();
+ Intent i = new Intent(this, FilePickerActivity.class);
+
+ i.putExtra(FilePickerActivity.EXTRA_ALLOW_MULTIPLE, false);
+ i.putExtra(FilePickerActivity.EXTRA_ALLOW_CREATE_DIR, false);
+ i.putExtra(FilePickerActivity.EXTRA_MODE, FilePickerActivity.MODE_FILE);
+
+ i.putExtra(FilePickerActivity.EXTRA_START_PATH, Environment.getExternalStorageDirectory().getPath());
- // get path that the user has chosen
- fileChooser.setOnSelectListener(new StorageChooser.OnSelectListener()
+ startActivityForResult(i, SELECT_FILE_REQUEST);
+ }
+
+ protected void onActivityResult(int requestCode, int resultCode, Intent intent)
+ {
+ if (requestCode == SELECT_FILE_REQUEST && resultCode == Activity.RESULT_OK)
{
- @Override
- public void onSelect(String filePath)
+ // Use the provided utility method to parse the result
+ List files = Utils.getSelectedFilesFromResult(intent);
+
+ // There should be at most once result
+ if(files.size() > 0)
{
- Log.i(TAG, "Selected file: " + filePath);
- setSelectMediaFile(filePath);
- }
- });
+ File file = Utils.getFileForUri(files.get(0));
- fileChooser.show();
+ Log.i(TAG, "Selected file: " + file.getAbsolutePath());
+ setSelectMediaFile(file.getAbsolutePath());
+ }
+ }
}
private List getFfmpegEncodingArgs(String inputFilePath, Integer startTimeSec, Integer endTimeSec,
@@ -1394,7 +1406,7 @@ private void displayAboutDialog()
.put("FFmpeg Android", "https://github.com/bravobit/FFmpeg-Android")
.put("Guava", "https://github.com/google/guava")
.put("Crystal Range Seekbar", "https://github.com/syedowaisali/crystal-range-seekbar")
- .put("Storage Chooser", "https://github.com/codekidX/storage-chooser")
+ .put("NoNonsense-FilePicker", "https://github.com/spacecowboy/NoNonsense-FilePicker")
.put("javatuples", "https://www.javatuples.org/")
.put("jackson-databind", "https://github.com/FasterXML/jackson-databind")
.build();
diff --git a/app/src/main/java/protect/videotranscoder/provider/ExportFileProvider.java b/app/src/main/java/protect/videotranscoder/provider/ExportFileProvider.java
new file mode 100644
index 00000000..f3fc206a
--- /dev/null
+++ b/app/src/main/java/protect/videotranscoder/provider/ExportFileProvider.java
@@ -0,0 +1,11 @@
+package protect.videotranscoder.provider;
+
+import android.support.v4.content.FileProvider;
+
+/**
+ * This file picker exists only to avoid a name conflict with
+ * a used package that uses the FileProvider directly.
+ */
+public class ExportFileProvider extends FileProvider
+{
+}
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 3f11058a..ca6c9691 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -7,4 +7,27 @@
- @color/colorPrimaryDark
- @color/colorAccent
+
+
+
+
+
diff --git a/app/src/test/shell/test.py b/app/src/test/shell/test.py
index 98046ef7..37224cca 100644
--- a/app/src/test/shell/test.py
+++ b/app/src/test/shell/test.py
@@ -185,7 +185,7 @@ def ffprobe(filename):
stdout, stderr = p.communicate()
rc = p.wait()
if rc != 0:
- raise Exception("ffprobe failed with " + str(rc) + " on " + filename + ":\n" + stderr)
+ raise Exception("ffprobe failed with " + str(rc) + " on " + filename + ":\n" + stdout + "\n" + stderr)
data = json.loads(stdout)
return data