If you still keep targetSdkVersion set to 33 to not control the READ_MEDIA_VISUAL_USER_SELECTED permission, you need to add the code below to your Manifest file.
Copyright 2019 Ted Park
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.```
Whenever Picker is opened and I try to scroll down I get this exception. I am using it in Fragment
as
private fun openGallery() {
TedImagePicker.with(requireContext()).start(object : OnMultiSelectedListener {
override fun onSelected(uriList: List<Uri>) {
images.clear()
images.addAll(uriList)
thumbnailsAdapter.notifyDataSetChanged()
}
})
}
Exception:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.myAmazingApp, PID: 30823
java.lang.IllegalArgumentException: Unknown pattern character 'Y'
at java.text.SimpleDateFormat.validatePatternCharacter(SimpleDateFormat.java:314)
at java.text.SimpleDateFormat.validatePattern(SimpleDateFormat.java:296)
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:356)
at gun0912.tedimagepicker.TedImagePickerActivity$setupMediaRecyclerView$$inlined$run$lambda$1.onScrolled(TedImagePickerActivity.kt:210)
at androidx.recyclerview.widget.RecyclerView.dispatchOnScrolled(RecyclerView.java:5077)
at androidx.recyclerview.widget.RecyclerView.scrollByInternal(RecyclerView.java:1975)
at androidx.recyclerview.widget.RecyclerView.onTouchEvent(RecyclerView.java:3297)
at android.view.View.dispatchTouchEvent(View.java:8149)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2416)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2140)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2295)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1622)
at android.app.Activity.dispatchTouchEvent(Activity.java:2565)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2243)
at android.view.View.dispatchPointerEvent(View.java:8357)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4778)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4644)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4256)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4225)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4336)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4233)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4393)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4256)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4225)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4233)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202)
at android.view.ViewRootImpl.delive
Getting this issue and my app is crashing specially in xiaomi and samsung devices. giving full error log. Caused by java.lang.IllegalStateException: getString(getColumnIndex(dateTaken)) must not be null at gun0912.tedimagepicker.util.GalleryUtil$Companion.access$getAlbum(GalleryUtil.java:55) at gun0912.tedimagepicker.util.GalleryUtil$Companion.access$getAlbum(GalleryUtil.java) at gun0912.tedimagepicker.util.GalleryUtil$Companion$getMedia$1$albumList$1$totalImageList$2.invoke(GalleryUtil.java:7) at gun0912.tedimagepicker.util.GalleryUtil$Companion$getMedia$1$albumList$1$totalImageList$2.invoke(GalleryUtil.java:2) at kotlin.sequences.TransformingSequence$iterator$1.next + 12(TransformingSequence.java:12) at kotlin.sequences.SequencesKt___SequencesKt.map(SequencesKt___SequencesKt.java:20) at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(SequencesKt___SequencesKt.java:10) at kotlin.sequences.SequencesKt___SequencesKt.toList(SequencesKt___SequencesKt.java:5) at kotlin.sequences.SequencesKt.toList(SequencesKt.java) at gun0912.tedimagepicker.util.GalleryUtil$Companion$getMedia$1.subscribe(GalleryUtil.java:123) at io.reactivex.internal.operators.single.SingleCreate.subscribeActual(SingleCreate.java:10) at io.reactivex.Single.create(Single.java:14) at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run + 2(SingleSubscribeOn.java:2) at io.reactivex.Scheduler$DisposeTask.run + 9(Scheduler.java:9) at io.reactivex.internal.schedulers.ScheduledRunnable.run + 13(ScheduledRunnable.java:13) at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java) at java.util.concurrent.FutureTask.run + 266(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run + 301(ScheduledThreadPoolExecutor.java:301) at java.util.concurrent.ThreadPoolExecutor.runWorker + 1167(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run + 641(ThreadPoolExecutor.java:641) at java.lang.Thread.run + 764(Thread.java:764)
i used the tedImagePicker among with a list of images
the user should be able to modify images but what if he clear selected images the done button will be invisible so in this case the user can't clear selection
io.reactivex.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | java.lang.IllegalStateException: getString(getColumnIndex(dateTaken)) must not be null
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:704)
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:701)
at io.reactivex.internal.observers.ConsumerSingleObserver.onError(ConsumerSingleObserver.java:46)
at io.reactivex.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:79)
at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124)
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:6718)
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)
Caused by: java.lang.IllegalStateException: getString(getColumnIndex(dateTaken)) must not be null
at gun0912.tedimagepicker.util.GalleryUtil$Companion.getImage(GalleryUtil.kt:91)
at gun0912.tedimagepicker.util.GalleryUtil$Companion.access$getImage(GalleryUtil.kt:15)
at gun0912.tedimagepicker.util.GalleryUtil$Companion$getMedia$1$albumList$1$totalImageList$2.invoke(GalleryUtil.kt:44)
at gun0912.tedimagepicker.util.GalleryUtil$Companion$getMedia$1$albumList$1$totalImageList$2.invoke(GalleryUtil.kt:15)
at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:172)
at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:702)
at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:732)
at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:723)
at gun0912.tedimagepicker.util.GalleryUtil$Companion$getMedia$1.subscribe(GalleryUtil.kt:45)
at io.reactivex.internal.operators.single.SingleCreate.subscribeActual(SingleCreate.java:39)
at io.reactivex.Single.subscribe(Single.java:3603)
at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Completely removing jCenter from the project, leads to the build error of gun0912.ted:tedpermission-rx2 and gun0912.ted:tedonactivityresult-rx2 dependencies not found at mavenCentral.
Although adding jCenter() to repositories fixes the issue, but please migrate these two dependencies to the mavenCentral too, as jCenter is at EOL.
You've done a great job but it seems you forgot to check for camera permission.
Also, the camera tile does not show if there are no photos in the photo library even though showCameraTile(true) is set.
I'm using the latest TedImagePicker version 1.1.4 in my application.
I saw several crashes in the crashlytics. I'm trying to reproduce this issue but it is not success so far.
Below is the log file from crashlytics.
Hi, I have a requirement where user can only take multiple image from camera. Not gallery. So, the gallery must be disabled. How to achieve such things? I previously used your TedPicker library and I'm able to do that. But since TedPicker has an issue with cwac-camera, I must upgrade to TedImagePicker.
TedRxImagePicker.with(requireContext()) .max(10, R.string.max_10_images) .startMultiImage()
crashes the app.
dataBinding { enabled = true }
is added.
error log: java.lang.IllegalArgumentException: View is not a binding layout at androidx.databinding.DataBindingUtil.bind(DataBindingUtil.java:180) at androidx.databinding.DataBindingUtil.bind(DataBindingUtil.java:152) at gun0912.tedimagepicker.base.BaseViewHolder.<init>(BaseViewHolder.kt:15) at gun0912.tedimagepicker.adapter.AlbumAdapter$AlbumViewHolder.<init>(AlbumAdapter.kt:31) at gun0912.tedimagepicker.adapter.AlbumAdapter.getViewHolder(AlbumAdapter.kt:18) at gun0912.tedimagepicker.adapter.AlbumAdapter.getViewHolder(AlbumAdapter.kt:13) at gun0912.tedimagepicker.base.BaseRecyclerViewAdapter.onCreateViewHolder(BaseRecyclerViewAdapter.kt:55) at gun0912.tedimagepicker.base.BaseRecyclerViewAdapter.onCreateViewHolder(BaseRecyclerViewAdapter.kt:8) at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7078) at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6235) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114) at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303) at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627) at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587) at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665) at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134) at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3540) at android.view.View.measure(View.java:25086) at androidx.drawerlayout.widget.DrawerLayout.onMeasure(DrawerLayout.java:1185) at android.view.View.measure(View.java:25086) at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1676) at android.view.View.measure(View.java:25086) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6872) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552) at android.widget.LinearLayout.measureVertical(LinearLayout.java:842) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:25086) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6872) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143) at android.view.View.measure(View.java:25086) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6872) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552) at android.widget.LinearLayout.measureVertical(LinearLayout.java:842) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:25086) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6872) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:25086) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6872) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552) at android.widget.LinearLayout.measureVertical(LinearLayout.java:842) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:25086) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6872) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at com.android.internal.policy.DecorView.onMeasure(DecorView.java:742) at android.view.View.measure(View.java:25086) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3083) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1857) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2146) 2020-07-10 17:21:36.786 28220-28220/com.app.airsofter E/AndroidRuntime: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1745) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7768) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:967) at android.view.Choreographer.doCallbacks(Choreographer.java:791) at android.view.Choreographer.doFrame(Choreographer.java:726) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) }
2019-12-24 19:07:09.217 5871-9629/? E/Parcel: Class not found when unmarshalling: gun0912.tedimagepicker.builder.TedImagePicker$Builder
java.lang.ClassNotFoundException: gun0912.tedimagepicker.builder.TedImagePicker$Builder
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:454)
at android.os.Parcel.readParcelableCreator(Parcel.java:3031)
at android.os.Parcel.readParcelable(Parcel.java:2981)
at android.os.Parcel.readValue(Parcel.java:2883)
at android.os.Parcel.readArrayMapInternal(Parcel.java:3261)
at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292)
at android.os.BaseBundle.unparcel(BaseBundle.java:236)
at android.os.BaseBundle.getString(BaseBundle.java:1160)
at android.content.Intent.getStringExtra(Intent.java:8548)
at com.android.server.wm.ActivityStarter.startActivity(ActivityStarter.java:755)
at com.android.server.wm.ActivityStarter.startActivity(ActivityStarter.java:666)
at com.android.server.wm.ActivityStarter.startActivityMayWait(ActivityStarter.java:1749)
at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:597)
at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1604)
at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1501)
at com.android.server.wm.ActivityTaskManagerService.startActivity(ActivityTaskManagerService.java:1455)
at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:1658)
at android.os.Binder.execTransactInternal(Binder.java:1021)
at android.os.Binder.execTransact(Binder.java:994)
Caused by: java.lang.ClassNotFoundException: gun0912.tedimagepicker.builder.TedImagePicker$Builder
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:454)
at android.os.Parcel.readParcelableCreator(Parcel.java:3031)
at android.os.Parcel.readParcelable(Parcel.java:2981)
at android.os.Parcel.readValue(Parcel.java:2883)
at android.os.Parcel.readArrayMapInternal(Parcel.java:3261)
at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292)
at android.os.BaseBundle.unparcel(BaseBundle.java:236)
at android.os.BaseBundle.getString(BaseBundle.java:1160)
at android.content.Intent.getStringExtra(Intent.java:8548)
at com.android.server.wm.ActivityStarter.startActivity(ActivityStarter.java:755)
at com.android.server.wm.ActivityStarter.startActivity(ActivityStarter.java:666)
at com.android.server.wm.ActivityStarter.startActivityMayWait(ActivityStarter.java:1749)
at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:597)
at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1604)
at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1501)
at com.android.server.wm.ActivityTaskManagerService.startActivity(ActivityTaskManagerService.java:1455)
at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:1658)
at android.os.Binder.execTransactInternal(Binder.java:1021)
at android.os.Binder.execTransact(Binder.java:994)
07-01 15:06:17.906 422-422/com.buildonenetworks.cutalk0001 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.buildonenetworks.cutalk0001, PID: 422
a.a.c.f: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
at a.a.j.a.onError(RxJavaPlugins.java:367)
at a.a.f.d.k.onSuccess(ConsumerSingleObserver.java:65)
at a.a.f.e.g.d$a.onSuccess(SingleCreate.java:67)
at com.b.b.a.a$a$1$1.onPermissionGranted(TedRx2Permission.java:32)
at com.gun0912.tedpermission.TedPermissionActivity.a(TedPermissionActivity.java:200)
at com.gun0912.tedpermission.TedPermissionActivity.a(TedPermissionActivity.java:177)
at com.gun0912.tedpermission.TedPermissionActivity.onCreate(TedPermissionActivity.java:80)
at android.app.Activity.performCreate(Activity.java:6877)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3208)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3351)
at android.app.ActivityThread.access$1100(ActivityThread.java:222)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1796)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7230)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
at android.app.ContextImpl.startActivity(ContextImpl.java:740)
at android.app.ContextImpl.startActivity(ContextImpl.java:727)
at android.content.ContextWrapper.startActivity(ContextWrapper.java:345)
at com.gun0912.tedonactivityresult.ProxyActivity.startActivityForResult(ProxyActivity.java:31)
at com.b.a.a.a$a.startActivityForResult(TedRxOnActivityResult.java:36)
at gun0912.tedimagepicker.builder.TedImagePickerBaseBuilder.c(TedImagePickerBaseBuilder.kt:86)
at gun0912.tedimagepicker.builder.TedImagePickerBaseBuilder.access$startActivity(TedImagePickerBaseBuilder.kt:28)
at gun0912.tedimagepicker.builder.TedImagePickerBaseBuilder$d.accept(TedImagePickerBaseBuilder.kt:72)
at gun0912.tedimagepicker.builder.TedImagePickerBaseBuilder$d.accept(TedImagePickerBaseBuilder.kt:28)
at a.a.f.d.k.onSuccess(ConsumerSingleObserver.java:62)
at a.a.f.e.g.d$a.onSuccess(SingleCreate.java:67)
at com.b.b.a.a$a$1$1.onPermissionGranted(TedRx2Permission.java:32)
at com.gun0912.tedpermission.TedPermissionActivity.a(TedPermissionActivity.java:200)
at com.gun0912.tedpermission.TedPermissionActivity.a(TedPermissionActivity.java:177)
at com.gun0912.tedpermission.TedPermissionActivity.onCreate(TedPermissionActivity.java:80)
at android.app.Activity.performCreate(Activity.java:6877)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3208)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3351)
at android.app.ActivityThread.access$1100(ActivityThread.java:222)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1796)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7230)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
[/storage/emulated/0/.sketchware/libs/local_libs/tedimagepicker_V_1.0.8/res/layout/item_album.xml:59: error: Error: No resource found that matches the given name (at 'layout_constraintBottom_toTopOf' with value '@id/tv_count')., ]
I'm using constraint layout v1.1.3, and using appcompat version 1.0.0, i dont know but the error is comes from item_album.xml
This dependency is amazing and I'm using this in my project from 5-6 months.I recently made a dark theme which kind of messed with preset colours of back button,title,hamburger icon,the image folder names when hamburger pressed and current folder name.Only the image counter colour (blue) is visible for me. I want to style them to make them visible please let me know,How ?
Edit on 17 June 2020 -
I saw the source and applied the style,that fixed the title's colour,current folder colour,colour of image folders when hamburger is pressed.Now, I only need to know how can I change the drawable for back button and hamburger
i am getting following error, currently this error occured on the Android OS Version 19 & 22
java.lang.IllegalArgumentException: Unknown pattern character 'Y' at java.text.SimpleDateFormat.validatePatternCharacter(SimpleDateFormat.java:314) at java.text.SimpleDateFormat.validatePattern(SimpleDateFormat.java:296) at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:356) at gun0912.tedimagepicker.TedImagePickerActivity$setupMediaRecyclerView$$inlined$run$lambda$1.onScrolled(TedImagePickerActivity.kt:211) at androidx.recyclerview.widget.RecyclerView.dispatchOnScrolled(RecyclerView.java:5173) at androidx.recyclerview.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:5338) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:773) at android.view.Choreographer.doCallbacks(Choreographer.java:586) at android.view.Choreographer.doFrame(Choreographer.java:555) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:759) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:160) at android.app.ActivityThread.main(ActivityThread.java:5541) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)
First time only ask permissions for storage to show images and when click on camera tile it doesn't ask about camera permissions and crash with security permission exception.
I've inserted all permissions into manifest.
API LEVEL 29
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gun0912.tedonactivityresult.ProxyActivity}: java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.android.camera2/com.android.camera.CaptureActivity clip={text/uri-list U:content://media/external/images/media/42} (has extras) } from ProcessRecord{70f28f2 2912:/u0a169} (pid=2912, uid=10169) with revoked permission android.permission.CAMERA
When select large number of images and press done. Plz show loader while importing.
Error => Input dispatching timed out, waiting to send non key event because the touched window has not finished processing certain input events that were delivered to it over
안녕하세요 TedImagePicker개발자님! 다름이 아니라, 이미지 다중 선택시 이미지 우측 상단에 생기는 숫자 배경색이랑 맨 아래 전체보기 오른쪽 숫자 색을 커스텀 할 수 있도록 함수 추가해주실 수 있으신가요.. 현존하는 이미지픽커중에 가장 예쁘고 좋은 것 같습니다. 좋은 이미지피커 만들어주셔서 진심으로 감사드립니다.
I have selected 6 images then click on done.again when goes to picker with selected Url list then unselect 3 images and add new 3 images now picker just show me 6 images select but in selected url list have 9 images. please resolved this bug ASAP. Thankyou
Fatal Exception: java.lang.IllegalArgumentException
at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:184)
at gun0912.tedimagepicker.adapter.MediaAdapter$ImageViewHolder.bind(MediaAdapter.kt:99)
at gun0912.tedimagepicker.adapter.MediaAdapter$ImageViewHolder.bind(MediaAdapter.kt:73)
at gun0912.tedimagepicker.base.BaseRecyclerViewAdapter.onBindViewHolder(BaseRecyclerViewAdapter.kt:81)
at gun0912.tedimagepicker.base.BaseRecyclerViewAdapter.onBindViewHolder(BaseRecyclerViewAdapter.kt:8)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7065)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7107)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6012)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6279)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
at androidx.recyclerview.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:561)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
at androidx.recyclerview.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:170)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404)
at android.view.View.layout(View.java:23753)
at android.view.ViewGroup.layout(ViewGroup.java:7277)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23753)
at android.view.ViewGroup.layout(ViewGroup.java:7277)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:23753)
at android.view.ViewGroup.layout(ViewGroup.java:7277)
at androidx.drawerlayout.widget.DrawerLayout.onLayout(DrawerLayout.java:1263)
at android.view.View.layout(View.java:23753)
at android.view.ViewGroup.layout(ViewGroup.java:7277)
at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1762)
at android.view.View.layout(View.java:23753)
at android.view.ViewGroup.layout(ViewGroup.java:7277)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:23753)
at android.view.ViewGroup.layout(ViewGroup.java:7277)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23753)
at android.view.ViewGroup.layout(ViewGroup.java:7277)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:23753)
at android.view.ViewGroup.layout(ViewGroup.java:7277)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23753)
at android.view.ViewGroup.layout(ViewGroup.java:7277)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:23753)
at android.view.ViewGroup.layout(ViewGroup.java:7277)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:1062)
at android.view.View.layout(View.java:23753)
at android.view.ViewGroup.layout(ViewGroup.java:7277)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3679)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3139)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2200)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9065)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:999)
at android.view.Choreographer.doCallbacks(Choreographer.java:797)
at android.view.Choreographer.doFrame(Choreographer.java:732)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:984)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:8016)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1076)
Fatal Exception: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter uri
at gun0912.tedimagepicker.adapter.MediaAdapter.toggleMediaSelect(:2)
at gun0912.tedimagepicker.TedImagePickerActivity.onMultiMediaClick(TedImagePickerActivity.kt:297)
at gun0912.tedimagepicker.TedImagePickerActivity.setSelectedUriList(TedImagePickerActivity.kt:149)
at gun0912.tedimagepicker.TedImagePickerActivity.access$setSelectedUriList(TedImagePickerActivity.kt:50)
at gun0912.tedimagepicker.TedImagePickerActivity$loadMedia$1.accept(TedImagePickerActivity.kt:141)
at gun0912.tedimagepicker.TedImagePickerActivity$loadMedia$1.accept(TedImagePickerActivity.kt:50)
at io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:62)
at io.reactivex.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:81)
at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8512)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1
at java.util.ArrayList.get(ArrayList.java:439)
at gun0912.tedimagepicker.base.BaseRecyclerViewAdapter.getItem(BaseRecyclerViewAdapter.java:96)
at gun0912.tedimagepicker.adapter.SelectedMediaAdapter$MediaViewHolder$1.onClick(SelectedMediaAdapter.java:33)
at android.view.View.performClick(View.java:7448)
at android.view.View.performClickInternal(View.java:7425)
at android.view.View.access$3600(View.java:810)
at android.view.View$PerformClick.run(View.java:28305)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7660)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
I cannot figure out exactly when this happens.
Maybe we can make code defensive like below to prevent crash.
// SelectedMediaAdapter.kt
binding.ivClear.setOnClickListener {
val item = getItem(adapterPosition.takeIf { it !=NO_POSITION }
?:return@setOnClickListener)
onClearClickListener?.invoke(item)
}
and also for getItem(adapterPosition) in MediaAdapter.ImageViewHolder.init