Skip to content

fix(media): use the full landscape canvas in the photo viewer #194

Description

@veryCrunchy

Problems

Landscape media canvas

The full-screen photo viewer applies fixed vertical padding before fitting media. In landscape this unnecessarily shrinks a 3:2 photo to a narrow centered rectangle and creates very large side gaps, while previous/next controls remain attached to the outer screen edges.

A live Android UI hierarchy confirmed that the media canvas was reduced substantially even though the top controls already render as an overlay.

Portrait header

The source selector is nested inside the weighted title column of a single horizontal header row. In portrait, RAW/JPEG choices are squeezed until their labels wrap vertically. A live Android UI hierarchy measured the header at more than half the screen height, with action buttons vertically centered far below the status bar.

Expected behavior

  • Let photos and native video use the full viewer canvas behind overlay chrome.
  • Preserve ContentScale.Fit at the default zoom so the complete photo remains visible.
  • Keep status-bar-safe controls without reserving duplicate fixed media padding.
  • Use a fixed, bounded top action row in portrait and landscape.
  • Render RAW/JPEG source choices in a separate bounded, horizontally scrollable or equivalently compact non-wrapping control.
  • Keep source labels single-line with ellipsis and preserve accessible touch targets.
  • Keep zoom, pan, full-quality loading, RAW/JPEG switching, editing, keyboard navigation, and portrait behavior intact.
  • Ensure previous/next controls remain reachable and visually associated with the media.
  • Add deterministic layout/semantics coverage for portrait and landscape sizes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:photosPhotos, Memories, RAW, people, albums, tags, and editingbugSomething isn't workingplatform:androidAndroid-specific implementation or validationpriority:P1Required for the pre-release product experience

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions