App crashes on Android 14 when long pressing images inside article
cemrich opened this issue · 3 comments
cemrich commented
Steps to Reproduce:
- Open an article with any image on Android 14
- Long press the image
Expected:
A dialog with the images alt text should pop up.
Actual:
The app crashes with following message:
java.lang.SecurityException: de.luhmer.owncloudnewsreader.dev: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts
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.IActivityManager$Stub$Proxy.registerReceiverWithFeature(IActivityManager.java:5684)
at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1852)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1792)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1780)
at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:755)
at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:755)
at de.luhmer.owncloudnewsreader.NewsDetailImageDialogFragment.registerImageDownloadReceiver(NewsDetailImageDialogFragment.java:486)
at de.luhmer.owncloudnewsreader.NewsDetailImageDialogFragment.onCreateView(NewsDetailImageDialogFragment.java:206)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:3114)
at androidx.fragment.app.DialogFragment.performCreateView(DialogFragment.java:775)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:557)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:272)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1943)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1839)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1782)
at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:565)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
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.am.ActivityManagerService.registerReceiverWithFeature(ActivityManagerService.java:13908)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2570)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2720)
at android.os.Binder.execTransactInternal(Binder.java:1339)
at android.os.Binder.execTransact(Binder.java:1275)
Fix
The offending line can be replaced with
ActivityCompat.registerReceiver(
requireContext(),
downloadCompleteReceiver,
intentFilter,
ActivityCompat.RECEIVER_NOT_EXPORTED
);
(documenation) which will make the popup work again. However, the download button remains broken on newer versions of Android.
David-Development commented
Just fixed the crash for now - but I agree that we should consider dropping it entirely.
Ionshard commented
Dropping the alt text pop-up entirely? That's a pretty important feature to me. I'm here to check on this exact issue (thanks for fixing it) because I absolutely NEED to see the XKCD alt text 😆
David-Development commented