Bug 512479

Summary: android: failing to open files from file manager intent with content://
Product: [Applications] KDE Itinerary Reporter: t.schmittlauch
Component: generalAssignee: Volker Krause <vkrause>
Status: REPORTED ---    
Severity: normal    
Priority: NOR    
Version First Reported In: 25.08.3   
Target Milestone: ---   
Platform: Android   
OS: Android 14.x   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description t.schmittlauch 2025-11-22 16:51:57 UTC
SUMMARY

When using Itinerary on Android, importing a ticket pdf file from an external cloud storage integrated via the "content://" protocol fails.
I think this is a regression and used to work a few months ago.

STEPS TO REPRODUCE
1. Using the Android file manager, navigate to a PDF ticket file that is stored in an external content provider like Nextcloud or Seafile. I am using the default file manager on /e/OS (com.android.documentsui) which is closely related to the AOSP file manager.
2. Open the pdf with Itinerary in the intent choice dialogue.
3. Itinerary opens, the ticket is not imported. A message "Unknown error" appears.

Doing the same, but with the file copied to a local storage directory first, importing succeeds.

OBSERVED RESULT

The ticket is not imported.

EXPECTED RESULT

Ticket files from a content provider should be imported

SOFTWARE/OS VERSIONS

I am using KDE Itinerary on Android (/e/OS 3.2). KDE Itinerary () is installed via F-Droid from the "KDE Android Release Builds" repo.

ADDITIONAL INFORMATION

logcat excerpt:

11-22 10:55:02.624 23522 23522 I ImeTracker: org.kde.itinerary:10eed783: onRequestHide at ORIGIN_CLIENT reason HIDE_SOFT_INPUT_BY_INSETS_API fromUser false
11-22 10:55:02.625 23522 23522 I ImeTracker: org.kde.itinerary:10eed783: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
11-22 10:55:02.641  2230  2344 I DisplayDeviceRepository: Display device changed render timings: "Integrierter Bildschirm", renderFrameRate=60.000004, presentationDeadlineNanos=16666666, appVsyncOffsetNanos=1000000, frameRateOverrides=[]
11-22 10:55:02.767 23522 23539 I org.kde.itinerary: QUrl("content://com.seafile.seadroid2.documents/document/<path/to/document>.pdf")
11-22 10:55:02.767 23522 23539 I org.kde.itinerary: QUrl("content://com.seafile.seadroid2.documents/document/<path/to/document>.pdf")
11-22 10:55:02.768 23522 23522 D InsetsController: hide(ime(), fromIme=false)
11-22 10:55:02.769 23522 23522 I ImeTracker: org.kde.itinerary:bdf4879b: onRequestHide at ORIGIN_CLIENT reason HIDE_SOFT_INPUT_BY_INSETS_API fromUser false
11-22 10:55:02.769 23522 23522 I ImeTracker: org.kde.itinerary:bdf4879b: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN
11-22 10:55:02.770 23522 23539 W QtContentFileEngine: openFileDescriptor(): No permission for URI content://com.seafile.seadroid2.documents/document/<path/to/document>.pdf
11-22 10:55:02.770 23522 23539 W org.kde.itinerary: Failed to open "content://com.seafile.seadroid2.documents/document/<path/to/document>.pdf" "Unbekannter Fehler"