Using latest version of sdk 15.6.0, there is a crash by clicking on the new button Take a photo in the message redaction.
The device is on Android 14, here is the stack trace.
Fatal Exception: java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.google.android.GoogleCamera/com.android.camera.activity.CaptureActivity clip={text/uri-list hasLabel(0) {U(content)}} (has extras) } from ProcessRecord{31fdd92 30802:com.kiplin.app.staging/u0a483} (pid=30802, uid=10483) with revoked permission android.permission.CAMERA
at android.os.Parcel.createExceptionOrNull(Parcel.java:3057)
at android.os.Parcel.createException(Parcel.java:3041)
at android.os.Parcel.readException(Parcel.java:3024)
at android.os.Parcel.readException(Parcel.java:2966)
at android.app.IActivityTaskManager$Stub$Proxy.startActivity(IActivityTaskManager.java:2086)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1873)
at android.app.Activity.startActivityForResult(Activity.java:5615)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:780)
at androidx.core.app.ActivityCompat$Api16Impl.startActivityForResult(ActivityCompat.java:854)
at androidx.core.app.ActivityCompat.startActivityForResult(ActivityCompat.java:245)
at androidx.activity.ComponentActivity$1.onLaunch(ComponentActivity.java:239)
at androidx.activity.result.ActivityResultRegistry$3.launch(ActivityResultRegistry.java:244)
at androidx.activity.compose.ActivityResultLauncherHolder.launch(ActivityResultRegistry.kt:154)
at androidx.activity.compose.ManagedActivityResultLauncher.launch(ActivityResultRegistry.kt:143)
at androidx.activity.result.ActivityResultLauncher.launch(ActivityResultLauncher.java:47)
at io.intercom.android.sdk.m5.conversation.ui.components.composer.CameraInputButtonKt$PhotoInputButton$2.invoke(CameraInputButton.kt:47)
at io.intercom.android.sdk.m5.conversation.ui.components.composer.CameraInputButtonKt$PhotoInputButton$2.invoke(CameraInputButton.kt:41)
at androidx.compose.foundation.ClickablePointerInputNode$pointerInput$3.invoke-k-4lQ0M(Clickable.kt:895)
at androidx.compose.foundation.ClickablePointerInputNode$pointerInput$3.invoke(Clickable.kt:889)
at androidx.compose.foundation.gestures.TapGestureDetectorKt$detectTapAndPress$2$1.invokeSuspend(TapGestureDetector.kt:255)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:179)
at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:168)
at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:474)
at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl(CancellableContinuationImpl.kt:508)
at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$default(CancellableContinuationImpl.kt:497)
at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:368)
at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine.offerPointerEvent(SuspendingPointerInputFilter.kt:665)
at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.dispatchPointerEvent(SuspendingPointerInputFilter.kt:544)
at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.onPointerEvent-H0pRuoY(SuspendingPointerInputFilter.kt:566)
at androidx.compose.foundation.AbstractClickablePointerInputNode.onPointerEvent-H0pRuoY(Clickable.kt:855)
at androidx.compose.foundation.AbstractClickableNode.onPointerEvent-H0pRuoY(Clickable.kt:703)
at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:317)
at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:303)
at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:303)
at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:303)
at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:303)
at androidx.compose.ui.input.pointer.NodeParent.dispatchMainEventPass(HitPathTracker.kt:183)
at androidx.compose.ui.input.pointer.HitPathTracker.dispatchChanges(HitPathTracker.kt:102)
at androidx.compose.ui.input.pointer.PointerInputEventProcessor.process-BIzXfog(PointerInputEventProcessor.kt:96)
at androidx.compose.ui.platform.AndroidComposeView.sendMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1446)
at androidx.compose.ui.platform.AndroidComposeView.handleMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1398)
at androidx.compose.ui.platform.AndroidComposeView.dispatchTouchEvent(AndroidComposeView.android.kt:1338)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3123)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2804)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3123)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2804)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3123)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2804)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3123)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2804)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3123)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2804)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3123)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2804)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:490)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1904)
at android.app.Activity.dispatchTouchEvent(Activity.java:4403)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:70)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:448)
at android.view.View.dispatchPointerEvent(View.java:15928)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:7242)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:7032)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6435)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6492)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6458)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:6623)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6466)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:6680)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6439)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6492)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6458)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6466)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6439)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:9432)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:9383)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:9352)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:9558)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:267)
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loopOnce(Looper.java:162)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8194)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Caused by android.os.RemoteException: Remote stack trace:
at com.android.server.wm.ActivityTaskSupervisor.checkStartAnyActivityPermission(ActivityTaskSupervisor.java:1136)
at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1074)
at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:742)
at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1290)
at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1241)