⚠️ Before posting ⚠️
Steps to reproduce
- Open a multi-page PDF from the Files list (native in-app viewer, not "open with" / browser).
- Scroll down a few pages.
- While reading, tap once anywhere on the page (no drag).
- The app opens a separate full-screen view showing only that single page.
- Press back → you return to the document but the reading/scroll position is lost (back near the top).
Expected behaviour
A single tap on the page while reading should not leave the scrollable document, and the reading position must be preserved. Accidental taps are very frequent when reading a long PDF one-handed.
Actual behaviour
PreviewPdfAdapter registers an OnClickListener on the whole page view. Any click on a page calls PreviewPdfViewModel.onClickPage(), which writes the page bitmap to a temp file and launches PreviewBitmapActivity — a separate full-screen activity showing only the tapped page, outside the scrollable RecyclerView. Coming back from it drops the reading position.
Source (current master)
app/src/main/java/com/owncloud/android/ui/preview/pdf/PreviewPdfAdapter.kt L33-35 — binding.root.setOnClickListener { onClickListener(bitmap) }: whole-page click target, no gesture discrimination.
app/src/main/java/com/owncloud/android/ui/preview/pdf/PreviewPdfFragment.kt L79-92 — click → viewModel.onClickPage(page) → observer on previewImagePath starts PreviewBitmapActivity.
app/src/main/java/com/owncloud/android/ui/preview/pdf/PreviewPdfViewModel.kt L55-61 — onClickPage() saves the bitmap to cache and sets _previewImagePath.
Android version
16
Device brand and model
Xiaomi Poco X7 Pro 5G
Stock or custom OS?
Stock (Xiaomi HyperOS)
Nextcloud android app version
34.1.1
Nextcloud server version
34.0.3
Using a reverse proxy?
Yes (Traefik) — not relevant, PDF rendering is fully client-side.
Additional information
The full-screen single-page view appears intended as a "tap to zoom" feature, but bound to a plain click on the entire page it fires on every accidental tap during reading. Possible directions: require a double-tap for the zoom view, shrink the tap target, or at least preserve/restore the RecyclerView scroll position when returning from PreviewBitmapActivity.
Steps to reproduce
Expected behaviour
A single tap on the page while reading should not leave the scrollable document, and the reading position must be preserved. Accidental taps are very frequent when reading a long PDF one-handed.
Actual behaviour
PreviewPdfAdapterregisters anOnClickListeneron the whole page view. Any click on a page callsPreviewPdfViewModel.onClickPage(), which writes the page bitmap to a temp file and launchesPreviewBitmapActivity— a separate full-screen activity showing only the tapped page, outside the scrollableRecyclerView. Coming back from it drops the reading position.Source (current
master)app/src/main/java/com/owncloud/android/ui/preview/pdf/PreviewPdfAdapter.ktL33-35 —binding.root.setOnClickListener { onClickListener(bitmap) }: whole-page click target, no gesture discrimination.app/src/main/java/com/owncloud/android/ui/preview/pdf/PreviewPdfFragment.ktL79-92 — click →viewModel.onClickPage(page)→ observer onpreviewImagePathstartsPreviewBitmapActivity.app/src/main/java/com/owncloud/android/ui/preview/pdf/PreviewPdfViewModel.ktL55-61 —onClickPage()saves the bitmap to cache and sets_previewImagePath.Android version
16
Device brand and model
Xiaomi Poco X7 Pro 5G
Stock or custom OS?
Stock (Xiaomi HyperOS)
Nextcloud android app version
34.1.1
Nextcloud server version
34.0.3
Using a reverse proxy?
Yes (Traefik) — not relevant, PDF rendering is fully client-side.
Additional information
The full-screen single-page view appears intended as a "tap to zoom" feature, but bound to a plain click on the entire page it fires on every accidental tap during reading. Possible directions: require a double-tap for the zoom view, shrink the tap target, or at least preserve/restore the
RecyclerViewscroll position when returning fromPreviewBitmapActivity.