WebView drops the <a download> name of page-made files, so downloads such as
the Verificar entrega Odoo CSV were saved as downloadfile.csv. The download
hook now records the name when the link is clicked and the app asks the page
for it. After saving, a dialog shows the file name and offers Abrir, which
uses the registered viewer or, for types nothing opens (CSV on the
scanners), launches the app set in AppConfig.FILE_OPEN_FALLBACK_APPS.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Image file inputs went straight to the gallery picker when the camera was
hidden by the system chooser or its permission was missing. They now show a
Tomar foto / Elegir de la galería dialog (capture fields open the camera
directly), and a denied camera permission explains how to enable it in
Settings instead of silently falling back to the picker.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Downloads (https on allowed hosts, data: and blob: URLs) are saved to the
Downloads folder, with a toast when they finish
- Image upload fields offer the camera; photos are kept in Pictures/Joykoo
- In-page camera (getUserMedia) is granted to allowed hosts only
- Camera and storage (Android 9 and below) permissions are requested at
first launch and again on demand
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>