Skip to content

PDF viewer: a single tap while reading exits the document to a full-screen single-page view #17531

Description

@IoSonoPiero

⚠️ Before posting ⚠️

  • This is a bug, not a question or an enhancement.
  • I've searched for similar issues and didn't find a duplicate.
  • I've written a clear and descriptive title for this issue.
  • I agree to follow Nextcloud's Code of Conduct.

Steps to reproduce

  1. Open a multi-page PDF from the Files list (native in-app viewer, not "open with" / browser).
  2. Scroll down a few pages.
  3. While reading, tap once anywhere on the page (no drag).
  4. The app opens a separate full-screen view showing only that single page.
  5. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions