Giter Site home page Giter Site logo

multipleimageselect's People

Contributors

bassday avatar darsh2 avatar windsekirun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

multipleimageselect's Issues

Change color of toolbar icons

How can I change the color of the toolbar icons? I want to have a white toolbar, but now the icons are invisible because they're also white.

ava.lang.NoSuchMethodError

java.lang.NoSuchMethodError: No virtual method load(Ljava/lang/String;)Lcom/bumptech/glide/DrawableTypeRequest; in class Lcom/bumptech/glide/RequestManager; or its super classes (declaration of 'com.bumptech.glide.RequestManager' appears in /data/app/xx.xxx.xx-OJFhWIjQX9_LdfytqTJqEQ==/split_lib_dependencies_apk.apk)
at com.darsh.multipleimageselect.adapters.CustomAlbumSelectAdapter.getView(CustomAlbumSelectAdapter.java:44)
at android.widget.AbsListView.obtainView(AbsListView.java:3189)
at android.widget.GridView.onMeasure(GridView.java:1102)
at android.view.View.measure(View.java:23296)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:23296)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:141)
at android.view.View.measure(View.java:23296)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:23296)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:23296)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:806)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:685)
at android.view.View.measure(View.java:23296)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:899)
at android.view.View.measure(View.java:23296)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2886)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1916)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2171)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1785)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7833)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
at android.view.Choreographer.doCallbacks(Choreographer.java:723)
at android.view.Choreographer.doFrame(Choreographer.java:658)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

Better remove app_name from the library

The library shouldn't really have an app_name.
If the main app has an app_name defined (with the same string in the default values), it is overwritten for the other languages by the library.

Bug in toolbar

For some reason the MultiSelect Activity is automatically setting mycustom actionbar as its actionbar, which i dont want

Is it possible to stop user to select images more than limit

Hi darsh,

For now, we have an option to set a limit for user image selection. In this case, user can select no of images more than limit but toast show to user to unselect images that are more than limit but I want to make user unable to select images more than limit. Is it possible?

thanks..

java.lang.IllegalArgumentException: the bind value at index 1 is null

java.lang.IllegalArgumentException: the bind value at index 1 is null
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:172)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:472)
at android.content.ContentResolver.query(ContentResolver.java:1201)
at android.content.ContentResolver.query(ContentResolver.java:1127)
at android.content.ContentResolver.query(ContentResolver.java:1083)
at com.darsh.multipleimageselect.activities.ImageSelectActivity$ImageLoaderRunnable.run(ImageSelectActivity.java:439)
at java.lang.Thread.run(Thread.java:923)

Bunch of Null Pointer Exceptions

Good afternoon.

We're getting more feedback from our users. Can you please have a look at those?

  1. NPE in AlbumSelectActivity, line 218

java.lang.NullPointerException
com.darsh.multipleimageselect.activities.AlbumSelectActivity$AlbumLoaderRunnable.run(AlbumSelectActivity.java:218)
java.lang.Thread.run(Thread.java:838)

  1. NPE in AlbumSelectActivity, line 253

java.lang.NullPointerException
com.darsh.multipleimageselect.activities.AlbumSelectActivity$AlbumLoaderRunnable.run(AlbumSelectActivity.java:253)
java.lang.Thread.run(Thread.java:848)

  1. NPE in AlbumSelectActivity, line 144

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.darsh.multipleimageselect.adapters.CustomAlbumSelectAdapter.setLayoutParams(int)' on a null object reference
com.darsh.multipleimageselect.activities.AlbumSelectActivity.orientationBasedUI(AlbumSelectActivity.java:144)
com.darsh.multipleimageselect.activities.AlbumSelectActivity.onConfigurationChanged(AlbumSelectActivity.java:135)
android.app.ActivityThread.performConfigurationChanged(ActivityThread.java:4170)
android.app.ActivityThread.handleConfigurationChanged(ActivityThread.java:4248)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1458)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:135)
android.app.ActivityThread.main(ActivityThread.java:5422)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:914)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707)

com.darsh.multipleimageselect.activities.ImageSelectActivity$ImageLoaderRunnable.run (ImageSelectActivity.java:439) java.lang.Thread.run (Thread.java:818)

This is an error that i am getting again and again, please let me know how can i resolve it

Exception java.lang.NullPointerException: Attempt to invoke interface method 'int android.database.Cursor.getCount()' on a null object reference
com.darsh.multipleimageselect.activities.ImageSelectActivity$ImageLoaderRunnable.run (ImageSelectActivity.java:439)
java.lang.Thread.run (Thread.java:818)

Thanks

Adding more than 10 images

When I have set number numberOfImagesToSelect to 50, Even though I can not be able to select more than 10 ima
Untitled
ges.

Grant Permission not working

Hello Please add read external storage permission for all device version.i cant read images from device when sdk build it below ics,.

Crashing

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xfactory.in/com.darsh.multipleimageselect.activities.AlbumSelectActivity}: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.support.v7.widget.Toolbar
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2449)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2509)
at android.app.ActivityThread.access$1000(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:5523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
Caused by: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.support.v7.widget.Toolbar
at com.darsh.multipleimageselect.activities.AlbumSelectActivity.onCreate(AlbumSelectActivity.java:69)
at android.app.Activity.performCreate(Activity.java:6303)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2402)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2509) 
at android.app.ActivityThread.access$1000(ActivityThread.java:153) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:5523) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629) 

Size restriction

How to restrict the user and say the image size is greater than 5MB ..Please choose the file with lower size

Bug when orientation is changed

Steps to reproduce:

  1. Select any album
  2. Select any image(s)
  3. Change orientation from portrait to landscape or vice versa
  4. Press ADD

A new instance of AlbumSelectActivity opens. This is one of a few ways of reproducing this bug. It occurs only when there is an orientation change on using the library. Log reads:

Duplicate finish request for ActivityRecord{1579d8c u0 com.darsh.example.sample/com.darsh.multipleimageselect.activities.AlbumSelectActivity t1162 f}

Bug occured in commit 09bf41c on altering permission request logic.

Temporary fix: Use any of the released versions of library or any commit on or before commit 088585b.

onActivityResult is not called after selection of images

Yesterday it was working fine but today when I check then onActivityResult is not called.
I'm using this on fragment.
Here is my code:


 Intent intent = new Intent(getContext(), AlbumSelectActivity.class);
                intent.putExtra(Constants.INTENT_EXTRA_LIMIT, 3);
                getActivity().startActivityForResult(intent, Constants.REQUEST_CODE);

Crash in Android 6

I am getting this crash in Android 6 users.

Fatal Exception: java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:requestPermissions:, request=23, result=0, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS (has extras) }} to activity {com.haraj.app/com.darsh.multipleimageselect.activities.AlbumSelectActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Message android.os.Handler.obtainMessage()' on a null object reference
       at android.app.ActivityThread.deliverResults(ActivityThread.java:4921)
       at android.app.ActivityThread.handleSendResult(ActivityThread.java:4964)
       at android.app.ActivityThread.access$1600(ActivityThread.java:221)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1848)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:158)
       at android.app.ActivityThread.main(ActivityThread.java:7225)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Message android.os.Handler.obtainMessage()' on a null object reference
       at com.darsh.multipleimageselect.activities.AlbumSelectActivity.onRequestPermissionsResult(AlbumSelectActivity.java:207)
       at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:7263)
       at android.app.Activity.dispatchActivityResult(Activity.java:7141)
       at android.app.ActivityThread.deliverResults(ActivityThread.java:4917)
       at android.app.ActivityThread.handleSendResult(ActivityThread.java:4964)
       at android.app.ActivityThread.access$1600(ActivityThread.java:221)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1848)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:158)
       at android.app.ActivityThread.main(ActivityThread.java:7225)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

Cannot cast appbarlayout to toolbar

  <include
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        layout="@layout/toolbar"/>

id/toolbar should be used in <android.support.v7.widget.Toolbar/> instead of include tag

Crashes when used with Glide version 4x

I am using Glide in my project, if I use version 3x then it works fine but if I use version 4x then the app gets crashed as soon as the image selector activity is launched.
This is the line which shows the error:-
Glide.with(this.context).load(((Album)this.arrayList.get(position)).cover).placeholder(drawable.image_placeholder).centerCrop().into(viewHolder.imageView);

java.lang.NoSuchMethodError: No virtual method load(Ljava/lang/String;)Lcom/bumptech/glide/DrawableTypeRequest; in class Lcom/bumptech/glide/RequestManager; or its super classes (declaration of 'com.bumptech.glide.RequestManager' appears in /data/app/com.parag.sopr-2/base.apk:classes58.dex)
                                                                          at com.darsh.multipleimageselect.adapters.CustomAlbumSelectAdapter.getView(CustomAlbumSelectAdapter.java:44)
                                                                          at android.widget.AbsListView.obtainView(AbsListView.java:2367)
                                                                          at android.widget.GridView.onMeasure(GridView.java:1065)
                                                                          at android.view.View.measure(View.java:19758)
                                                                          at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
                                                                          at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
                                                                          at android.view.View.measure(View.java:19758)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
                                                                          at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                          at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
                                                                          at android.view.View.measure(View.java:19758)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
                                                                          at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                          at android.view.View.measure(View.java:19758)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
                                                                          at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                          at android.view.View.measure(View.java:19758)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
                                                                          at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
                                                                          at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
                                                                          at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
                                                                          at android.view.View.measure(View.java:19758)
                                                                          at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
                                                                          at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
                                                                          at com.android.internal.policy.DecorView.onMeasure(DecorView.java:687)
                                                                          at android.view.View.measure(View.java:19758)
                                                                          at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2271)
                                                                          at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1358)
                                                                          at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1607)
                                                                          at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
                                                                          at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6325)
                                                                          at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
                                                                          at android.view.Choreographer.doCallbacks(Choreographer.java:683)
                                                                          at android.view.Choreographer.doFrame(Choreographer.java:619)
                                                                          at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
                                                                          at android.os.Handler.handleCallback(Handler.java:751)
                                                                          at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                          at android.os.Looper.loop(Looper.java:154)
                                                                          at android.app.ActivityThread.main(ActivityThread.java:6111)
                                                                          at java.lang.reflect.Method.invoke(Native Method)
                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

Image is deleted

Sometimes ,after selecting a photo in the album, the photo in the phone will be deleted. What is the situation?

Null Pointer Exception on Runnable

Hello,
Thank you for the accepted pull request.

We are not sure how to reproduce this error, but sometimes we get the following stack trace from our users devices:

java.lang.NullPointerException
com.darsh.multipleimageselect.activities.ImageSelectActivity$ImageLoaderRunnable.run(ImageSelectActivity.java:327)
java.lang.Thread.run(Thread.java:841)

Could you please look in this one too?

Remove unnecessary resources which overrides client application resources

Hi!

I used version compile 'com.github.darsh2:MultipleImageSelect:28c6d56' which fixes the NPE (#39). But this version has resources which overrides my application resources (string/app_name and mipmap/ic_launcher). It happens because resources in your library has more specific qualifiers (values-ru and mipmap-hdpi-v4) than my application (values and mipmap-hdpi). These resources not very important for library, but very important for application. I can override these resources by more specific qualifiers, but it is not very good decision. Many client applications should do it instead of simple adding dependency.
Can you remove these resources from library?

permission error if all are permission Granted from setting

Hello,

Good work

I have some trouble in your library when i OS version 6 or more with integrate other library like Hockey app.
The issues is here when i add Hockey app. your library gives permission error is all are permission Granted from setting.

library dead?

so this library is dead? Please remove it from github then.

Your app badly needs library upgrades:

+--- com.github.darsh2:MultipleImageSelect:v0.0.4
| +--- com.github.bumptech.glide:glide:3.6.0 -> 4.11.0
| | +--- com.github.bumptech.glide:gifdecoder:4.11.0
| | | --- androidx.annotation:annotation:1.0.0 -> 1.1.0
| | +--- com.github.bumptech.glide:disklrucache:4.11.0
| | +--- com.github.bumptech.glide:annotations:4.11.0
| | +--- androidx.fragment:fragment:1.0.0 -> 1.1.0 ()
| | +--- androidx.vectordrawable:vectordrawable-animated:1.0.0 -> 1.1.0 (
)
| | --- androidx.exifinterface:exifinterface:1.0.0
| | --- androidx.annotation:annotation:1.0.0 -> 1.1.0
| --- androidx.appcompat:appcompat:1.0.0 -> 1.1.0 (*)

especially Glide should be using version 4.11 by now.
Thanks.

Permission denial error

Hey guys,

Im getting this error ... Ive tried setting android:exported = true in my manifest as well, but it doesn't work. And I've also provided the read/write permissions.

10-05 12:15:21.611 28063-28171/com.sand5.giflab E/AndroidRuntime: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=28063, uid=10151 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()

Please help me out...
Thanks

Can not move back-and-forth in image picker

There is no back button on the actionBar.
If by mistake i have selected a wrong album i have to go back entirely and open the image picker again.
Is there any way to avoid this.

NullPointerException on fast tapping

Hello. We hope you still provide support for MultipleImageSelect.

We've met some issues while using your image picker, which you can reproduce as follows:

  1. Open Gallery
  2. Perform a fast tap on the "Photos" folder
  3. Perform a fast tap on an image which thumbnail wasn't yet loaded
  4. Perform a fast tap on "Add" button

As the result, the activity reloads, and then, when you try to choose any of available images and hit the "Add" button, you'll get a crash with the following stack trace:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.Handler.removeCallbacksAndMessages(java.lang.Object)' on a null object reference
android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3656)
android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3710)
android.app.ActivityThread.access$1400(ActivityThread.java:147)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:135)
android.app.ActivityThread.main(ActivityThread.java:5260)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.Handler.removeCallbacksAndMessages(java.lang.Object)' on a null object reference
com.darsh.multipleimageselect.activities.ImageSelectActivity.onStop(ImageSelectActivity.java:150)
android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1261)
android.app.Activity.performStop(Activity.java:6127)
android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3651)
android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3710)
android.app.ActivityThread.access$1400(ActivityThread.java:147)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:135)
android.app.ActivityThread.main(ActivityThread.java:5260)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

We have suceeded to reproduce this on following devices:

Dalvik/2.1.0 (Linux; U; Android 6.0; Nexus 5X Build/MDA89E)
Dalvik/2.1.0 (Linux; U; Android 5.0; K016 Build/LRX21V)

User image selection sequence is not remembered.

User image selection sequence is not remembered. If user picks 4,6 and 2 image from picker.
Returned list contains 2,4 and 6 (chronological order). This will help in cases where single piece of info fragmented into different images. User can pic multiple information to make full piece of info.

Another Null Pointer Exception on Runnable

I am not sure if it is related with issue #14 and I got this error. (My android version is - 6.0.1 and I am using v.0.0.4 of multiple image select library)

java.lang.NullPointerException: Attempt to invoke virtual method 'char[] java.lang.String.toCharArray()' on a null object reference
                                                                                 at java.io.File.fixSlashes(File.java:183)
                                                                                 at java.io.File.<init>(File.java:130)
                                                                                 at com.darsh.multipleimageselect.activities.AlbumSelectActivity$AlbumLoaderRunnable.run(AlbumSelectActivity.java:353)
                                                                                 at java.lang.Thread.run(Thread.java:818)

OutOfMemory coming from Glide

Hello,

This one is not really related to your code, but it would be extremely nice if you can have a look at this one too.

And another question: is there any way to disable GIF indexing in your module? Our app doesn't support GIFs anyway, so it would be nice to remove them from user's point of view.

java.lang.OutOfMemoryError
com.bumptech.glide.gifdecoder.GifDecoder.setData(GifDecoder.java:379)
com.bumptech.glide.load.resource.gif.GifDrawable.(GifDrawable.java:85)
com.bumptech.glide.load.resource.gif.GifDrawable$GifState.newDrawable(GifDrawable.java:360)
com.bumptech.glide.load.resource.drawable.DrawableResource.get(DrawableResource.java:32)
com.bumptech.glide.load.resource.drawable.DrawableResource.get(DrawableResource.java:16)
com.bumptech.glide.load.engine.EngineResource.get(EngineResource.java:44)
com.bumptech.glide.request.GenericRequest.onResourceReady(GenericRequest.java:487)
com.bumptech.glide.load.engine.Engine.load(Engine.java:155)
com.bumptech.glide.request.GenericRequest.onSizeReady(GenericRequest.java:449)
com.bumptech.glide.request.target.ViewTarget$SizeDeterminer.getSize(ViewTarget.java:211)
com.bumptech.glide.request.target.ViewTarget.getSize(ViewTarget.java:100)
com.bumptech.glide.request.GenericRequest.begin(GenericRequest.java:272)
com.bumptech.glide.manager.RequestTracker.runRequest(RequestTracker.java:37)
com.bumptech.glide.GenericRequestBuilder.into(GenericRequestBuilder.java:661)
com.bumptech.glide.GenericRequestBuilder.into(GenericRequestBuilder.java:697)
com.bumptech.glide.DrawableRequestBuilder.into(DrawableRequestBuilder.java:448)
com.darsh.multipleimageselect.adapters.CustomImageSelectAdapter.getView(CustomImageSelectAdapter.java:51)
android.widget.AbsListView.obtainView(AbsListView.java:2250)
android.widget.GridView.makeAndAddView(GridView.java:1345)
android.widget.GridView.makeRow(GridView.java:345)
android.widget.GridView.fillSpecific(GridView.java:547)
android.widget.GridView.layoutChildren(GridView.java:1244)
android.widget.AbsListView.onLayout(AbsListView.java:2101)
android.view.View.layout(View.java:14832)
android.view.ViewGroup.layout(ViewGroup.java:4640)
android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
android.view.View.layout(View.java:14832)
android.view.ViewGroup.layout(ViewGroup.java:4640)
android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
android.widget.FrameLayout.onLayout(FrameLayout.java:388)
android.view.View.layout(View.java:14832)
android.view.ViewGroup.layout(ViewGroup.java:4640)
android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
android.widget.FrameLayout.onLayout(FrameLayout.java:388)
android.view.View.layout(View.java:14832)
android.view.ViewGroup.layout(ViewGroup.java:4640)
android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
android.widget.FrameLayout.onLayout(FrameLayout.java:388)
android.view.View.layout(View.java:14832)
android.view.ViewGroup.layout(ViewGroup.java:4640)
android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
android.widget.FrameLayout.onLayout(FrameLayout.java:388)
android.view.View.layout(View.java:14832)
android.view.ViewGroup.layout(ViewGroup.java:4640)
android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
android.widget.FrameLayout.onLayout(FrameLayout.java:388)
android.view.View.layout(View.java:14832)
android.view.ViewGroup.layout(ViewGroup.java:4640)
android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1996)
android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1753)
android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004)
android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5739)
android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
android.view.Choreographer.doCallbacks(Choreographer.java:574)
android.view.Choreographer.doFrame(Choreographer.java:544)
android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
android.os.Handler.handleCallback(Handler.java:733)
android.os.Handler.dispatchMessage(Handler.java:95)
android.os.Looper.loop(Looper.java:136)
android.app.ActivityThread.main(ActivityThread.java:5372)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:970)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:786)
dalvik.system.NativeStart.main(Native Method)

Could use some performance improvements

The library is really slow on phones with photos in thousands (not very unusual!). After digging a bit into the Content Resolver code, I found the culprit. It's the ArrayList.contains() you're doing for each content row, for checking if to add a new album into the ArrayList.

This can be done in a simpler, efficient way, by passing MediaStore.Images.Media.BUCKET_ID for orderBy of Cursor, and then just comparing adjacent IDs instead, to know if it's a new album.

FishBun does it this way and it works great. https://github.com/sangcomz/FishBun/blob/master/FishBun/src/main/java/com/sangcomz/fishbun/ui/album/AlbumActivity.java#L163

Thanks for the nice library!

How to set limit for minimum images.

Hey Darsh,
thanks for great example code.
I want to set minimum count of images, like please select atleast 5 images. something like this.
please help.

thanks in advance

App Crash in Android 9

Process: com.globaldream.property, PID: 12742
java.lang.NoSuchMethodError: No virtual method load(Ljava/lang/String;)Lcom/bumptech/glide/DrawableTypeRequest; in class Lcom/bumptech/glide/RequestManager; or its super classes (declaration of 'com.bumptech.glide.RequestManager' appears in /data/app/com.globaldream.property-zdeA40596EJysgc7gxpvCQ==/split_lib_dependencies_apk.apk)
at com.darsh.multipleimageselect.adapters.CustomAlbumSelectAdapter.getView(CustomAlbumSelectAdapter.java:44)
at android.widget.AbsListView.obtainView(AbsListView.java:2399)
at android.widget.GridView.onMeasure(GridView.java:1070)
at android.view.View.measure(View.java:23181)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:23181)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6749)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
at android.view.View.measure(View.java:23181)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6749)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:23181)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6749)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:23181)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6749)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1535)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:825)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:704)
at android.view.View.measure(View.java:23181)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6749)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:716)
at android.view.View.measure(View.java:23181)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2727)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1580)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1864)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1468)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7208)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1004)
at android.view.Choreographer.doCallbacks(Choreographer.java:816)
at android.view.Choreographer.doFrame(Choreographer.java:751)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:990)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6762)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
201

Out of bound

Fatal Exception: java.lang.IndexOutOfBoundsException: Invalid index 18, size is 18
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at com.darsh.multipleimageselect.adapters.CustomImageSelectAdapter.getView(CustomImageSelectAdapter.java:46)
at android.widget.AbsListView.obtainView(AbsListView.java:2467)
at android.widget.GridView.makeAndAddView(GridView.java:1438)
at android.widget.GridView.makeRow(GridView.java:366)
at android.widget.GridView.fillDown(GridView.java:307)
at android.widget.GridView.fillSpecific(GridView.java:587)
at android.widget.GridView.layoutChildren(GridView.java:1292)
at android.widget.AbsListView.onLayout(AbsListView.java:2230)
at android.view.View.layout(View.java:16017)
at android.view.ViewGroup.layout(ViewGroup.java:5181)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1195)
at android.view.View.layout(View.java:16017)
at android.view.ViewGroup.layout(ViewGroup.java:5181)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639)
at android.widget.FrameLayout.onLayout(FrameLayout.java:574)
at android.view.View.layout(View.java:16017)
at android.view.ViewGroup.layout(ViewGroup.java:5181)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639)
at android.widget.FrameLayout.onLayout(FrameLayout.java:574)
at android.view.View.layout(View.java:16017)
at android.view.ViewGroup.layout(ViewGroup.java:5181)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639)
at android.widget.FrameLayout.onLayout(FrameLayout.java:574)
at android.view.View.layout(View.java:16017)
at android.view.ViewGroup.layout(ViewGroup.java:5181)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1959)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1813)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1722)
at android.view.View.layout(View.java:16017)
at android.view.ViewGroup.layout(ViewGroup.java:5181)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639)
at android.widget.FrameLayout.onLayout(FrameLayout.java:574)
at android.view.View.layout(View.java:16017)
at android.view.ViewGroup.layout(ViewGroup.java:5181)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2483)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2180)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1292)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6598)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:800)
at android.view.Choreographer.doCallbacks(Choreographer.java:603)
at android.view.Choreographer.doFrame(Choreographer.java:572)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:786)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5631)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.