• v2.0.24 89d18c8aa7

    thoralf released this 2026-10-11 23:17:52 +02:00 | 4538 commits to main since this release

    Same fixes as dev 2.0.74 — the findings of the 2026-10-11 whole-project review.

    Fixed

    • Camera capture works again. The native camera component never forwarded the
      ref that the composer clicks, so "Take photo or video" and the toolbar button
      did nothing at all — while the listing advertised the feature. The component is
      patched in place now instead of overridden, so it also produces upstream's current
      attachment shape and cannot silently drift behind upstream again.
    • No more source maps in the APK. Upstream builds them for crash-report
      symbolication, which Phandroid does not ship; Capacitor copied them into the
      assets anyway, so every APK carried its own complete unminified source. They are
      excluded now and the release verifies on the artifact that none remain.
    • Sharing into the running app works, and a share no longer repeats itself. The
      event that signals a share to an already-running app was dispatched on iOS only,
      and the share intent stayed the activity's current intent for its whole life — so
      a warm share did nothing, while every WebView reload re-opened the composer with
      the same old share (by then without its image).
    • A share into a logged-out app waits instead of vanishing. It is kept until you
      log in, and a toast says why nothing happened yet.
    • The status bar follows the theme. It was set once at startup, so a light system
      with a dark app theme gave same-coloured icons on a same-coloured header.
    • Multi-account push no longer kills the other accounts. Turning push off for one
      account unregistered the endpoint every account shares, an endpoint rotation healed
      only the current account, and logging out left the preference behind — so a later
      login silently re-enabled push.
    • Account export: a cancelled share sheet is no longer reported as "Export
      failed"
      , and the cache file is cleaned up by the next export instead of racing
      the app you shared to.
    • German F-Droid clients get a "What's New" text (English content under a German
      heading) instead of an empty update note.

    Added

    • A crash shows a recovery screen instead of a blank app, with a Reload button and
      the stack behind "Error details" — the app has no telemetry, so a screenshot of that
      screen is the only diagnostic you can send.
    • Failures you can act on now say so: camera failure, an unreadable shared image
      and failed push (re-)subscribes show a toast instead of only a console message that
      release builds strip.

    Security

    • The FileProvider no longer exposes all of external storage — only the two
      app-private roots the camera and the export actually use.
    • A shared item's name can no longer make Phandroid delete arbitrary files in its
      private directory; only names that look like the plugin's own image copy are removed.

    Changed

    • Pipeline hardening (no user-visible effect): no secrets while apt-get installs
      fdroidserver, concurrency guards so overlapping runs cannot corrupt each other, job
      timeouts, the signer fingerprint checked before publishing, failure reporting for the
      iPhanpy watcher, and correct release-note labelling.
    Downloads