From a43b21a99b5e058debdbbc1c608c1d1805e0f7dd Mon Sep 17 00:00:00 2001 From: Schoumi Date: Thu, 2 Feb 2017 17:46:42 +0100 Subject: [PATCH] Allow multi pick from gallery on android api >= 18 --- .../goblim/activity/UploadActivity.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/mobdev/goblim/activity/UploadActivity.java b/app/src/main/java/fr/mobdev/goblim/activity/UploadActivity.java index 9caed1f..ab42759 100644 --- a/app/src/main/java/fr/mobdev/goblim/activity/UploadActivity.java +++ b/app/src/main/java/fr/mobdev/goblim/activity/UploadActivity.java @@ -19,6 +19,7 @@ package fr.mobdev.goblim.activity; import android.app.ProgressDialog; +import android.content.ClipData; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.ActivityInfo; @@ -26,6 +27,7 @@ import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.provider.OpenableColumns; import android.support.v7.app.AlertDialog; @@ -512,6 +514,8 @@ public class UploadActivity extends AppCompatActivity { //ask for image file Intent requestFileIntent = new Intent(Intent.ACTION_PICK); requestFileIntent.setType("image/*"); + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) + requestFileIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE,true); startActivityForResult(requestFileIntent, 0); } @@ -520,10 +524,20 @@ public class UploadActivity extends AppCompatActivity { public void onActivityResult(int requestCode, int resultCode,Intent returnIntent) { if(resultCode == RESULT_OK){ //retrieve uri from the request image activity and prepare - Uri imageUri = returnIntent.getData(); - uris.add(imageUri); - updateSpanCount(); - adapter.addUri(this,imageUri); + if(Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) { + Uri imageUri = returnIntent.getData(); + uris.add(imageUri); + updateSpanCount(); + adapter.addUri(this,imageUri); + } else { + ClipData clip = returnIntent.getClipData(); + for(int i = 0; i < clip.getItemCount(); i++) { + Uri imageUri = clip.getItemAt(i).getUri(); + uris.add(imageUri); + updateSpanCount(); + adapter.addUri(this,imageUri); + } + } Button uploadBt = (Button) findViewById(R.id.upload_button); uploadBt.setEnabled(false);