Skip to content
This repository has been archived by the owner on May 30, 2021. It is now read-only.

Commit

Permalink
Merge branch 'develop' into fixExceptionWithVideoPicker
Browse files Browse the repository at this point in the history
  • Loading branch information
alhazmy13 authored Dec 6, 2017
2 parents 6356392 + 65a3a58 commit aea75b3
Show file tree
Hide file tree
Showing 9 changed files with 41 additions and 39 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<p align="left">
<img src="https://cloud.githubusercontent.com/assets/4659608/12700433/4276edc0-c7f3-11e5-9f2c-de6bcbb9416d.png" width="600">
</p>
# Media Picker

# Media Picker
![](https://img.shields.io/badge/Platform-Android-brightgreen.svg)
![](https://img.shields.io/hexpm/l/plug.svg)
![](https://img.shields.io/badge/version-2.3.2-blue.svg)
![](https://img.shields.io/badge/version-2.3.3-blue.svg)
[![ghit.me](https://ghit.me/badge.svg?repo=Alhazmy13/MediaPicker)](https://ghit.me/repo/Alhazmy13/MediaPicker)

**[Please let me know if your application go to production via this link](https://docs.google.com/forms/d/e/1FAIpQLSe4Y5Fwn1mlEoD4RxjXQzTvL4mofhESuBlTkAPQhI7J_WqMDQ/viewform?c=0&w=1)**
Expand All @@ -24,7 +24,7 @@ This build `2.x.x` will break backward compatibility and there are a lot of chan
<dependency>
<groupId>net.alhazmy13.MediaPicker</groupId>
<artifactId>libary</artifactId>
<version>2.3.2</version>
<version>2.3.3</version>
</dependency>
```

Expand All @@ -33,7 +33,7 @@ This build `2.x.x` will break backward compatibility and there are a lot of chan

```gradle
dependencies {
compile 'net.alhazmy13.MediaPicker:libary:2.3.2'
compile 'net.alhazmy13.MediaPicker:libary:2.3.3'
}
```

Expand Down
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ android {
defaultConfig {
minSdkVersion 14
targetSdkVersion 25
applicationId 'net.alhazmy13.mediapicker'
applicationId 'net.alhazmy13.mediapickerexample'
versionCode 1
versionName "1.0"
}
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.alhazmy13.mediapickerexample" >
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,16 +72,18 @@ private void pickVideo() {
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

Log.d(TAG, "onActivityResult() called with: requestCode = [" + requestCode + "], resultCode = [" + resultCode + "], data = [" + data + "]");
if (requestCode == VideoPicker.VIDEO_PICKER_REQUEST_CODE && resultCode == RESULT_OK) {
mPath = (List<String>) data.getSerializableExtra(VideoPicker.EXTRA_VIDEO_PATH);

Log.d(TAG, "onActivityResult: ");
loadVideo();
}
}

private void loadVideo() {
Log.d(TAG, "loadVideo: "+ (mPath == null));
if (mPath != null && mPath.size() > 0) {
Log.d(TAG, "loadVideo: ");
Log.d(TAG, "loadImage: " + mPath.size());
path.setText(mPath.get(0));
videoView.setVideoURI(Uri.parse(mPath.get(0)));
Expand Down
2 changes: 1 addition & 1 deletion libary/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ apply plugin: 'com.android.library'
// groupId = 'net.alhazmy13.MediaPicker'
// artifactId = 'libary'
// uploadName = 'MediaPicker'
// publishVersion = '2.3.2'
// publishVersion = '2.3.3'
// desc = 'MediaPickerRx'
// dryRun = false
// website = 'https://github.com/alhzmy13/MediaPicker'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ public void onCancel(DialogInterface dialogInterface) {
private void startActivityFromGallery() {
mImgConfig.isImgFromCamera = false;
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
// photoPickerIntent.putExtra(Intent.EXTRA_LOCAL_ONLY, !mImgConfig.allowOnlineImages);
photoPickerIntent.putExtra(Intent.EXTRA_LOCAL_ONLY, !mImgConfig.allowOnlineImages);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, ImageTags.IntentCode.REQUEST_CODE_SELECT_PHOTO);
if (mImgConfig.debug)
Expand All @@ -141,7 +141,7 @@ private void startActivityFromGallery() {
private void startActivityFromGalleryMultiImg() {
mImgConfig.isImgFromCamera = false;
Intent photoPickerIntent = new Intent();
// photoPickerIntent.putExtra(Intent.EXTRA_LOCAL_ONLY, !mImgConfig.allowOnlineImages);
photoPickerIntent.putExtra(Intent.EXTRA_LOCAL_ONLY, !mImgConfig.allowOnlineImages);
photoPickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
photoPickerIntent.setAction(Intent.ACTION_GET_CONTENT);
photoPickerIntent.setType("image/*");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@

import net.alhazmy13.camerapicker.R;
import net.alhazmy13.mediapicker.FileProcessing;
import net.alhazmy13.mediapicker.Image.ImagePicker;
import net.alhazmy13.mediapicker.Utility;

import java.io.File;
Expand All @@ -40,9 +39,9 @@ public class VideoActivity extends AppCompatActivity {
private static final String TAG = "VideoActivity";

private File destination;
private Uri mImageUri;
private Uri mVideoUri;
private VideoConfig mVideoConfig;
private List<String> listOfImgs;
private List<String> mListOfVideos;

public static Intent getCallingIntent(Context activity, VideoConfig videoConfig) {
Intent intent = new Intent(activity, VideoActivity.class);
Expand All @@ -60,14 +59,14 @@ protected void onCreate(Bundle savedInstanceState) {
}

if (savedInstanceState == null) {
pickImageWrapper();
listOfImgs = new ArrayList<>();
pickVideoWrapper();
mListOfVideos = new ArrayList<>();
}
if (mVideoConfig.debug)
Log.d(VideoTags.Tags.TAG, mVideoConfig.toString());
}

private void pickImage() {
private void pickVideo() {
Utility.createFolder(mVideoConfig.directory);
destination = new File(mVideoConfig.directory, Utility.getRandomString() + mVideoConfig.extension.getValue());
switch (mVideoConfig.mode) {
Expand Down Expand Up @@ -121,12 +120,12 @@ public void onCancel(DialogInterface dialogInterface) {

private void startActivityFromGallery() {
mVideoConfig.isImgFromCamera = false;
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
photoPickerIntent.setType("video/*");
startActivityForResult(photoPickerIntent, VideoTags.IntentCode.REQUEST_CODE_SELECT_PHOTO);
if (mVideoConfig.debug)
Log.d(VideoTags.Tags.TAG, "Gallery Start with Single Image mode");
Log.d(VideoTags.Tags.TAG, "Gallery Start with Single video mode");
}

@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
Expand All @@ -139,14 +138,14 @@ private void startActivityFromGalleryMultiImg() {
photoPickerIntent.setType("video/*");
startActivityForResult(Intent.createChooser(photoPickerIntent, "Select Picture"), VideoTags.IntentCode.REQUEST_CODE_SELECT_MULTI_PHOTO);
if (mVideoConfig.debug)
Log.d(VideoTags.Tags.TAG, "Gallery Start with Multiple Images mode");
Log.d(VideoTags.Tags.TAG, "Gallery Start with Multiple videos mode");
}

private void startActivityFromCamera() {
mVideoConfig.isImgFromCamera = true;
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
mImageUri = FileProvider.getUriForFile(this, this.getApplicationContext().getPackageName() + ".provider", destination);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
mVideoUri = FileProvider.getUriForFile(this, this.getApplicationContext().getPackageName() + ".provider", destination);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mVideoUri);
startActivityForResult(Intent.createChooser(intent, "Select Video"), VideoTags.IntentCode.CAMERA_REQUEST);
if (mVideoConfig.debug)
Log.d(VideoTags.Tags.TAG, "Camera Start");
Expand All @@ -155,8 +154,8 @@ private void startActivityFromCamera() {
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if (mImageUri != null) {
outState.putString(VideoTags.Tags.CAMERA_IMAGE_URI, mImageUri.toString());
if (mVideoUri != null) {
outState.putString(VideoTags.Tags.CAMERA_IMAGE_URI, mVideoUri.toString());
outState.putSerializable(VideoTags.Tags.IMG_CONFIG, mVideoConfig);
}
}
Expand All @@ -165,13 +164,12 @@ protected void onSaveInstanceState(Bundle outState) {
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
if (savedInstanceState.containsKey(VideoTags.Tags.CAMERA_IMAGE_URI)) {
mImageUri = Uri.parse(savedInstanceState.getString(VideoTags.Tags.CAMERA_IMAGE_URI));
destination = new File(mImageUri.getPath());
mVideoUri = Uri.parse(savedInstanceState.getString(VideoTags.Tags.CAMERA_IMAGE_URI));
destination = new File(mVideoUri.getPath());
mVideoConfig = (VideoConfig) savedInstanceState.getSerializable(VideoTags.Tags.IMG_CONFIG);
}
}

@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (mVideoConfig.debug)
Expand Down Expand Up @@ -208,11 +206,11 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}
}

private void processOneImage(Intent data) {
private void processOneVideo(Intent data) {
try {
Uri selectedImage = data.getData();
String path = FileProcessing.getVideoPath(selectedImage, VideoActivity.this);
new VideoActivity.CompressImageTask(path,
Uri selectedVideo = data.getData();
String path = FileProcessing.getVideoPath(selectedVideo, VideoActivity.this);
new VideoActivity.CompresVideoTask(path,
mVideoConfig, VideoActivity.this).execute();

} catch (Exception ex) {
Expand All @@ -238,7 +236,7 @@ private void finishActivity(List<String> path) {
finish();
}

private void pickImageWrapper() {
private void pickVideoWrapper() {
if (Build.VERSION.SDK_INT >= 23) {
List<String> permissionsNeeded = new ArrayList<String>();

Expand Down Expand Up @@ -269,9 +267,9 @@ public void onClick(DialogInterface dialog, int which) {
return;
}

pickImage();
pickVideo();
} else {
pickImage();
pickVideo();
}
}

Expand Down Expand Up @@ -309,7 +307,7 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis
if (perms.get(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED
&& perms.get(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
// All Permissions Granted
pickImage();
pickVideo();
} else {
// Permission Denied
Toast.makeText(VideoActivity.this, getString(R.string.media_picker_some_permission_is_denied), Toast.LENGTH_SHORT)
Expand All @@ -322,22 +320,22 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis
}
}

private static class CompressImageTask extends AsyncTask<Void, Void, Void> {
private static class CompresVideoTask extends AsyncTask<Void, Void, Void> {

private final VideoConfig mVideoConfig;
private final List<String> listOfImgs;
private List<String> destinationPaths;
private WeakReference<VideoActivity> mContext;


public CompressImageTask(List<String> listOfImgs, VideoConfig videoConfig, VideoActivity context) {
public CompresVideoTask(List<String> listOfImgs, VideoConfig videoConfig, VideoActivity context) {
this.listOfImgs = listOfImgs;
this.mContext = new WeakReference<>(context);
this.mVideoConfig = videoConfig;
this.destinationPaths = new ArrayList<>();
}

public CompressImageTask(String absolutePath, VideoConfig videoConfig, VideoActivity context) {
public CompresVideoTask(String absolutePath, VideoConfig videoConfig, VideoActivity context) {
List<String> list = new ArrayList<>();
list.add(absolutePath);
this.listOfImgs = list;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class VideoProcessing {
private static final String TAG = "ImageProcessing";

@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
static List<String> processMultiImage(Context context, Intent data) {
static List<String> processMultiVideos(Context context, Intent data) {
List<String> listOfImgs = new ArrayList<>();
if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) && (null == data.getData())) {
ClipData clipdata = data.getClipData();
Expand Down
2 changes: 1 addition & 1 deletion rxjava/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ publish {
groupId = 'net.alhazmy13.MediaPicker'
artifactId = 'rxjava'
uploadName = 'MediaPickerRx'
publishVersion = '2.3.2'
publishVersion = '2.3.3'
desc = 'MediaPickerRx'
dryRun = false
website = 'https://github.com/alhzmy13/MediaPicker'
Expand Down

0 comments on commit aea75b3

Please sign in to comment.