Skip to content

[Feature] Open supported journey files through OS file handling #482

Description

@chdenat

Context

Studio currently imports local journey files through the file picker or drag-and-drop. Users cannot open supported journey files directly from the operating system file manager.

Requested behavior

Allow the installed Studio PWA to receive supported journey files through the operating system file handling mechanism.

  • When Studio is not running, opening a supported file starts Studio and imports it.
  • When Studio is already running, opening a supported file imports it as one additional journey without replacing or resetting existing journeys.
  • Supported formats are GPX, KML, GeoJSON, and JSON.

Acceptance criteria

  • The PWA declares file handlers for GPX, KML, GeoJSON, and JSON files.
  • Opening a supported file when Studio is closed starts the application and imports one journey.
  • Opening a supported file when Studio is already running adds one journey to the existing journeys.
  • Existing journeys remain unchanged.
  • The existing validation, duplicate detection, status display, notifications, and error diagnostics are reused.
  • Unsupported files are rejected using the existing import error behavior.
  • Automated tests cover both application-start and already-running scenarios.

Notes or questions

  • File handling depends on browser and installed-PWA support for the File Handling API.
  • The implementation should reuse the existing local-file import pipeline.

Technical notes

  • Add the appropriate file_handlers declaration to the web app manifest.
  • Register a launchQueue consumer during application startup.
  • Convert received FileSystemFileHandle objects to File objects and pass them to the existing file-processing logic.

Activity

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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions