Skip to content

[RELEASE-008] Notify APK users when a selected update channel has a new build #237

Description

@veryCrunchy

User problem

People who install Nextcloud Native directly from an APK need a clear, trustworthy signal when a newer build is available. The app already distinguishes release channels, but availability should be visible in the app and through an Android notification without repeatedly alerting for the same build.

Requirements

  • Check the currently selected update channel: alpha or nightly for now, with room for beta and stable later.
  • Compare versions using immutable release metadata rather than display text or publication time alone.
  • Show a clear in-app state for up to date, update available, checking, unavailable, and failed checks.
  • Notify once for each newly discovered version and allow the user to open the trusted download/update flow.
  • Respect notification permission, user update preferences, metered-network policy, and direct-APK install-source eligibility.
  • Do not prompt Play Store or F-Droid installs to sideload an APK.
  • Persist the last notified version per account-independent device channel so restarts do not repeat notifications.
  • Never download or install an APK silently.

Acceptance criteria

  • Alpha and nightly channel selection drives the manifest URL and comparison logic.
  • A newer compatible build produces an in-app update-available state.
  • Android posts at most one notification per discovered version after permission is granted.
  • Tapping the notification opens the same reviewed update details used in the app.
  • Up-to-date, offline, malformed-manifest, incompatible, and store-installed cases are tested.
  • Notification channels and copy are understandable without exposing internal release mechanics.
  • No background check blocks startup, navigation, sync, or transfer UI.

Relationships

Part of #16. The Android nightly publication blocker is tracked separately in #232.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:releaseBuilds, CI, security, packaging, and releasesarea:uxNavigation, accessibility, responsive design, and interactionplatform:androidAndroid-specific implementation or validationpriority:P1Required for the pre-release product experiencetype:featureNew product capabilitytype:reliabilityCorrectness, crash prevention, recovery, and data safety

    Type

    No type

    Projects

    Status
    In Progress

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions