Skip to content

feat(android): accept shared files as Nextcloud uploads #384

Description

@veryCrunchy

User problem

Nextcloud Native does not appear as an Android Share target, so files from camera, gallery, document, and editor apps cannot be uploaded directly into a chosen Nextcloud folder.

Acceptance criteria

  • Register narrowly scoped Android ACTION_SEND and ACTION_SEND_MULTIPLE entry points for supported content URIs.
  • Open a native account and remote-folder destination picker before upload.
  • Resolve display name, MIME type, and size defensively without trusting the sending application.
  • Persist URI access when permitted or stage an app-private durable snapshot before temporary permission expires.
  • Stream large uploads without loading complete files into memory.
  • Use the existing durable transfer queue with progress, cancellation, retry, and process-death recovery.
  • Preserve the original source; never mutate or delete content owned by the sending application.
  • Handle unavailable URIs, revoked grants, unknown sizes, multiple files, duplicate names, quota failures, and authentication expiry with useful recovery states.
  • Never expose account credentials, server endpoints, or private content in intent data, logs, diagnostics, or notifications.
  • Add deterministic unit and Android integration coverage for single and multiple shares, large streams, permission expiry, cancellation, and activity recreation.

Relationships

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:files-syncFiles, offline storage, transfer, and synchronizationarea:platformAndroid, desktop, iOS, Windows, macOS, and Linux platform workarea:uxNavigation, accessibility, responsive design, and interactionin-progressImplementation is currently activeneeds-designRequires interaction or visual design before completionplatform: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