From 14e85727cda897d7f5ee37541a342d06de1302da Mon Sep 17 00:00:00 2001 From: Ali Shariat Date: Tue, 29 Sep 2015 08:03:44 +0330 Subject: [PATCH] - Update Glide Version - Add preview of videos --- sample/build.gradle | 2 +- sample/src/main/AndroidManifest.xml | 4 +-- ...ity.java => MultimediaPickerActivity.java} | 6 ++--- ...y2.java => MultimediaPickerActivity2.java} | 2 +- ...ent.java => MultimediaPickerFragment.java} | 27 ++++++++++++++++--- .../sample/NoNonsenseFilePicker.java | 4 +-- .../activity_no_nonsense_file_picker.xml | 2 +- 7 files changed, 33 insertions(+), 14 deletions(-) rename sample/src/main/java/com/nononsenseapps/filepicker/sample/{ImagePickerActivity.java => MultimediaPickerActivity.java} (88%) rename sample/src/main/java/com/nononsenseapps/filepicker/sample/{ImagePickerActivity2.java => MultimediaPickerActivity2.java} (91%) rename sample/src/main/java/com/nononsenseapps/filepicker/sample/{ImagePickerFragment.java => MultimediaPickerFragment.java} (78%) diff --git a/sample/build.gradle b/sample/build.gradle index 07d222b..44fe75b 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -44,5 +44,5 @@ dependencies { compile project(':library') // Image loading sample - compile 'com.github.bumptech.glide:glide:3.5.2' + compile 'com.github.bumptech.glide:glide:3.6.1' } diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml index 6aa1fb7..4f13ddf 100644 --- a/sample/src/main/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -64,7 +64,7 @@ @@ -74,7 +74,7 @@ diff --git a/sample/src/main/java/com/nononsenseapps/filepicker/sample/ImagePickerActivity.java b/sample/src/main/java/com/nononsenseapps/filepicker/sample/MultimediaPickerActivity.java similarity index 88% rename from sample/src/main/java/com/nononsenseapps/filepicker/sample/ImagePickerActivity.java rename to sample/src/main/java/com/nononsenseapps/filepicker/sample/MultimediaPickerActivity.java index 48895a3..3e63283 100644 --- a/sample/src/main/java/com/nononsenseapps/filepicker/sample/ImagePickerActivity.java +++ b/sample/src/main/java/com/nononsenseapps/filepicker/sample/MultimediaPickerActivity.java @@ -27,9 +27,9 @@ import java.io.File; /** * All this class does is return a suitable fragment. */ -public class ImagePickerActivity extends AbstractFilePickerActivity { +public class MultimediaPickerActivity extends AbstractFilePickerActivity { - public ImagePickerActivity() { + public MultimediaPickerActivity() { super(); } @@ -37,7 +37,7 @@ public class ImagePickerActivity extends AbstractFilePickerActivity { protected AbstractFilePickerFragment getFragment( final String startPath, final int mode, final boolean allowMultiple, final boolean allowCreateDir) { - AbstractFilePickerFragment fragment = new ImagePickerFragment(); + AbstractFilePickerFragment fragment = new MultimediaPickerFragment(); // startPath is allowed to be null. In that case, default folder should be SD-card and not "/" fragment.setArgs(startPath != null ? startPath : Environment.getExternalStorageDirectory().getPath(), mode, allowMultiple, allowCreateDir); diff --git a/sample/src/main/java/com/nononsenseapps/filepicker/sample/ImagePickerActivity2.java b/sample/src/main/java/com/nononsenseapps/filepicker/sample/MultimediaPickerActivity2.java similarity index 91% rename from sample/src/main/java/com/nononsenseapps/filepicker/sample/ImagePickerActivity2.java rename to sample/src/main/java/com/nononsenseapps/filepicker/sample/MultimediaPickerActivity2.java index c1a11c7..6c92ab3 100644 --- a/sample/src/main/java/com/nononsenseapps/filepicker/sample/ImagePickerActivity2.java +++ b/sample/src/main/java/com/nononsenseapps/filepicker/sample/MultimediaPickerActivity2.java @@ -20,5 +20,5 @@ package com.nononsenseapps.filepicker.sample; /** * Duplicate to allow second theme to be used. */ -public class ImagePickerActivity2 extends ImagePickerActivity { +public class MultimediaPickerActivity2 extends MultimediaPickerActivity { } diff --git a/sample/src/main/java/com/nononsenseapps/filepicker/sample/ImagePickerFragment.java b/sample/src/main/java/com/nononsenseapps/filepicker/sample/MultimediaPickerFragment.java similarity index 78% rename from sample/src/main/java/com/nononsenseapps/filepicker/sample/ImagePickerFragment.java rename to sample/src/main/java/com/nononsenseapps/filepicker/sample/MultimediaPickerFragment.java index 2040e2b..dd010b5 100644 --- a/sample/src/main/java/com/nononsenseapps/filepicker/sample/ImagePickerFragment.java +++ b/sample/src/main/java/com/nononsenseapps/filepicker/sample/MultimediaPickerFragment.java @@ -28,16 +28,16 @@ import java.io.File; /** * A sample which demonstrates how appropriate methods * can be overwritten in order to enable enhanced - * capabilities, in this case showing thumbnails of images. + * capabilities, in this case showing thumbnails of images and thumbnail of videos. *

* I am still listing all files, so I extend from the ready made * SD-card browser classes. This allows this class to focus * entirely on the image side of things. - * + *

* To load the image I am using the super great Glide library * which only requires a single line of code in this file. */ -public class ImagePickerFragment extends FilePickerFragment { +public class MultimediaPickerFragment extends FilePickerFragment { /** * An extremely simple method for identifying images. This @@ -60,7 +60,22 @@ public class ImagePickerFragment extends FilePickerFragment { } /** - * Overriding this method allows us to inject a preview image + * An extremely simple method for identifying videos. This + * could be improved, but it's good enough for this example. + * + * @param file which could be an video + * @return true if the file can be previewed, false otherwise + */ + private boolean isVideo(File file) { + if (isDir(file)) { + return false; + } + return file.getPath().endsWith(".mp4")|| + file.getPath().endsWith(".MP4"); + } + + /** + * Overriding this method allows us to inject a preview image and thumbnail of videos * in the layout * * @param vh to bind data from either a file or directory @@ -78,6 +93,10 @@ public class ImagePickerFragment extends FilePickerFragment { if (isImage(file)) { vh.icon.setVisibility(View.VISIBLE); Glide.with(this).load(file).centerCrop().into((ImageView) vh.icon); + } else if (isVideo(file)) { + vh.icon.setVisibility(View.VISIBLE); + Glide.with(this).load(file).centerCrop().into((ImageView) vh.icon); } } + } diff --git a/sample/src/main/java/com/nononsenseapps/filepicker/sample/NoNonsenseFilePicker.java b/sample/src/main/java/com/nononsenseapps/filepicker/sample/NoNonsenseFilePicker.java index 6535d78..a6fdab8 100644 --- a/sample/src/main/java/com/nononsenseapps/filepicker/sample/NoNonsenseFilePicker.java +++ b/sample/src/main/java/com/nononsenseapps/filepicker/sample/NoNonsenseFilePicker.java @@ -115,10 +115,10 @@ public class NoNonsenseFilePicker extends Activity { if (checkLightTheme.isChecked()) { i = new Intent(NoNonsenseFilePicker.this, - ImagePickerActivity2.class); + MultimediaPickerActivity2.class); } else { i = new Intent(NoNonsenseFilePicker.this, - ImagePickerActivity.class); + MultimediaPickerActivity.class); } i.setAction(Intent.ACTION_GET_CONTENT); diff --git a/sample/src/main/res/layout/activity_no_nonsense_file_picker.xml b/sample/src/main/res/layout/activity_no_nonsense_file_picker.xml index 8fbb51f..daee43a 100644 --- a/sample/src/main/res/layout/activity_no_nonsense_file_picker.xml +++ b/sample/src/main/res/layout/activity_no_nonsense_file_picker.xml @@ -125,7 +125,7 @@