Skip to content

Support Android / iOS “Share / Open with” — Share files directly into Sharezone #2183

Description

@nilsreichardt

Problem

Currently, files cannot be shared into Sharezone from other apps (e.g. Gallery, Files, Downloads, Google Photos, Scanner apps, etc.).

On Android and iOS, users naturally expect the system share sheet to work:

Open file → tap Share → choose Sharezone

Right now this is impossible.
If a user already spent time finding a file in another app (for example scrolling through the photo gallery), they must redo the entire search inside Sharezone.

Current workaround

A user has to:

  1. Open Sharezone
  2. Navigate to the target (file storage / chat / homework)
  3. Tap “add file”
  4. Search the file again in the Android / iOS file picker
  5. Select the file

This is frustrating and unintuitive and breaks the standard Android / iOS UX mental model.


Why this matters

This is actually a core platform integration feature, not a “nice to have”.

Android & iOS apps — especially communication and school/productivity apps — are expected to appear in the OS share sheet. Users already rely on this behavior for apps like WhatsApp, Drive, Discord, Slack, Teams, etc.

Without this, Sharezone feels:

  • harder to use
  • slower
  • “non-native”
  • and students often send files via other messengers instead

User Stories / Use-Cases

1. Save to course file storage

User:

Finds a worksheet in Downloads → Share → Sharezone → Select course → File is uploaded

2. Create a new homework with the file as an attachment

User:

Scans homework with a scanner app → Share → Sharezone → Create new homework → Add file

3. Add file to existing homework

User:

Scans homework with a scanner app → Share → Sharezone → Select existing homework → Add file

Point 2 & 3 also applies to information sheets (create new or add to existing).


Expected Behavior

Sharezone should appear in the Android & iOS system share sheet when a user shares:

  • images (jpg/png/heic)
  • PDFs
  • documents
  • videos (optional but desirable)
  • generic files

The user should then be guided inside Sharezone to choose the target:

Sharezone
   → Upload file to "Dateiablage" (file sharing system), if yes -> select course
   → Create new homework with file as attachment
   → Add file to existing homework
   → Create new information sheet with file as attachment
   → Add file to existing information sheet

UX Flow Proposal

  1. User taps Share → Sharezone
  2. Sharezone opens in a special “incoming share” flow
  3. App asks:
    • Where do you want to send this?
      • Course files
      • Homework
      • Information sheet
  4. User selects target
  5. Upload starts immediately
  6. Confirmation screen

Important:
The user must not have to manually locate the file again.


Technical Notes (Android)

This requires implementing an Android Share Target via Intent.ACTION_SEND and Intent.ACTION_SEND_MULTIPLE.

Required intent filters

Support at least:

image/*
application/pdf
application/*
*/*

Handle:

  • content:// URIs
  • multiple files
  • temporary read permissions
  • large files (stream upload!)

Critical:
Do NOT copy files fully into memory — must stream.


Edge Cases

  • App not logged in → display "Please log in to use this feature"
  • App killed in background → still process share
  • Multiple files shared
  • Large video
  • Revoked URI permission
  • Upload progress feedback

Success Criteria

After implementation:

A user can:

Open Gallery → Share → Sharezone → Send

without ever manually searching for the file again.


Future Extensions (Optional)

  • “Recent targets” suggestions
  • Background upload

Screenshots / Context

Android share sheet example where Sharezone should appear:

Image

Old GitLab ticket: https://gitlab.com/codingbrain/sharezone/sharezone-app/-/issues/327

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew functionality that we agreed on to add in the future.feature: file-sharingFiles can be shared inside Sharezone e.g. by uploading them in a file-sharing folder of a course.feature: homeworkfeature: information sheetInformation sheets are posted to courses as a way to announce information.good agent issueThis is a good issue for an AI coding agent to work on.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Needs triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions