Commit Graph
1166 Commits
Author SHA1 Message Date
Tomás Romero 82589c6f07 chore: require every JNI callback export 2026-10-31 01:35:34 +01:00
Tomás Romero b50039c0d4 fix: keep picked names that contain slashes 2026-10-31 01:35:34 +01:00
Tomás Romero ec698c3e5f fix: store picked files under generated names 2026-10-31 01:35:34 +01:00
springmin 8335f7852e ohos: pass the original picker name through the attachment bridge
Carry the staged path and display name together from the ArkTS picker through the NAPI bridge. Keep the cache name random and only use the decoded original name as attachment metadata.
2026-10-31 06:50:22 +08:00
springmin 2f8dcb233c Merge remote-tracking branch 'origin/main' into ohos-alias 2026-10-31 06:50:12 +08:00
Tomás Romero 03ed0d3fb6 Merge pull request #151 from springmin/attachment-display-name
fix: keep picked file names
2026-10-30 23:45:19 +01:00
springmin 4845e4fbe4 ohos: address final platform review fixes
Keep the wheel axis step from cancelling the system scroll setting, validate present buffer stride and bounds before copying, and harden the PDFium source workflow with dispatch-only triggers, pinned actions and a checksum-verified SDK download.
2026-10-31 06:45:13 +08:00
springmin 4d883dcd75 Merge remote-tracking branch 'origin/main' into ohos-alias 2026-10-31 06:28:38 +08:00
Tomás Romero 9d0b5c61c2 fix: name imported mail after the picked files 2026-10-30 22:59:30 +01:00
Tomás Romero 1b73fa004e fix: upload files under the picked name 2026-10-30 22:59:30 +01:00
Tomás Romero d8c80ddb8f fix: validate picked file names 2026-10-30 22:46:06 +01:00
Tomás Romero 1e1b7ca2ae Merge pull request #150 from springmin/certificate-document-provider
fix: import certificates through the document provider
2026-10-30 22:08:25 +01:00
Tomás Romero 4f6db624d8 Merge pull request #157 from flectar/iamdarkle/bug-error-downloading-attachments
fix: save files on filesystems without no-replace renames
2026-10-30 22:00:41 +01:00
Tomás Romero ef18e68e34 chore: drop the unused certificate paste message 2026-10-30 21:17:31 +01:00
Tomás Romero dcf21990c9 fix: save files on filesystems without no-replace renames 2026-10-30 21:09:48 +01:00
springmin da290d3232 chore: sync the OHOS lockfile with pulldown-cmark 0.13.5
Keep the nested OpenHarmony workspace on the patched dependency version after merging the root security update.
2026-10-29 11:15:30 +08:00
springmin 5d1e7b3053 Merge remote-tracking branch 'origin/main' into ohos-alias 2026-10-29 11:03:43 +08:00
springmin 9ad67dd572 fix: preserve the original picked attachment name
Hosts that stage imports under a random cache path can now attach the picker's display name without exposing the local path.
2026-10-29 05:53:59 +08:00
springmin bbec1d1d59 fix: import certificates through the document provider
Restore the shared provider flow so desktop, Android, iOS and OHOS all use the host document picker and read the staged certificate before its guard is dropped.
2026-10-29 05:53:39 +08:00
Tomás Romero ab8447ee99 Merge pull request #152 from springmin/security-pulldown-cmark
fix: update pulldown-cmark for RUSTSEC-2026-0414
2026-10-28 17:46:39 +01:00
springmin a00fcdaa48 pdfium: document the C++ runtime and compatibility layer
Ship the LLVM libc++ license, document why the OpenHarmony PDFium component bundles libc++_shared.so, and record the pinned source-build compatibility patch and CI workflow.
2026-10-28 22:43:28 +08:00
springmin 94e8470503 pdfium: cover the remaining optional pdfium-render symbols
Add compatibility entries for the annotation, catalog, font-name, page-object and text-object APIs that the pinned source no longer exports. These are not used by the preview renderer, but all dynamic bindings must resolve before the library can load.
2026-10-28 22:43:28 +08:00
springmin 349569f794 pdfium: export compatibility symbols from component builds
Define FPDF_IMPLEMENTATION before the PDFium headers so FPDF_EXPORT applies default visibility; without it the compatibility functions were compiled hidden and dlsym still failed.
2026-10-28 22:43:28 +08:00
springmin 0a37f86c7b pdfium: define the legacy struct-attribute value type
The compatibility translation unit uses FPDF_STRUCTELEMENT_ATTR_VALUE, which pdfium-render expects but the pinned OHOS header no longer declares. Add the opaque typedef locally.
2026-10-28 22:43:28 +08:00
springmin 6a3bee9252 pdfium: add compatibility symbols required by pdfium-render
pdfium-render 0.9.4 dynamically binds several optional struct-tree, text, font-map and page-move APIs that the pinned OHOS source no longer exports. Add a compatibility translation unit for the missing symbols so the library can load; the preview path only uses the core render APIs.
2026-10-28 22:43:28 +08:00
springmin 6914dc2040 pdfium: add the user-permissions compatibility symbol
The source port exposes FPDF_GetDocPermissions with user semantics but no separate FPDF_GetDocUserPermissions symbol required by pdfium-render 0.9.4. Apply a pinned source patch that adds the compatibility entry point, and rebuild the CI artifact.
2026-10-28 22:43:28 +08:00
springmin d1437f211d pdfium: surface load errors and bundle the C++ runtime
Report the underlying pdfium-render load error instead of discarding it. Component PDFium builds require libc++_shared.so; stage the matching SDK runtime beside libpdfium.so because the OHOS app namespace does not search /system/lib64 for it.
2026-10-28 22:43:28 +08:00
springmin dfcc2d780f ci: package PDFium component-build libraries
The OHOS port's default GN configuration is a component build and emits libpdfium.cr.so plus sibling .cr.so dependencies. Stage all component libraries beside a stable libpdfium.so and upload/checksum the complete set.
2026-10-28 22:43:28 +08:00
springmin 70b0c9dbf7 ci: default the PDFium revision on push events
workflow_dispatch inputs are empty for the temporary push trigger; fall back to the pinned source revision instead of passing an empty pathspec to git fetch.
2026-10-28 22:43:28 +08:00
springmin 54097b8f78 ci: allow the fork PDFium build to run from its feature branch
GitHub registers workflow_dispatch only on the default branch. Add a narrow push trigger for the PDFium source branch so the first build can run from the fork before promoting the workflow.
2026-10-28 22:43:28 +08:00
springmin cce49a7723 ci: build OHOS PDFium from a pinned source revision
Add a fork-only manual workflow that runs on a Linux x86_64 GitHub-hosted runner, installs the public OHOS SDK, builds the pinned OHOS PDFium source tree, strips the library and uploads the artifact with its license and checksum. No signing material is used.
2026-10-28 22:43:28 +08:00
springmin 180f61084c ohos: add a pinned PDFium source-build path
Add build-pdfium-source.sh for the OHOS PDFium port at a pinned source revision, using the local SDK through the port's ohos_sdk/18 path and staging a stripped libpdfium.so plus its license. Keep the checksum-pinned prebuilt as an offline fallback and package the source license when present.
2026-10-28 22:43:28 +08:00
springmin 9bc4b814bd chore: sync lockfiles and Flatpak sources for pulldown-cmark
Update the Android nested lockfile and Flatpak offline source metadata to match the patched pulldown-cmark 0.13.5.
2026-10-28 22:31:05 +08:00
springmin 0f242e26d8 fix: update pulldown-cmark for RUSTSEC-2026-0414
Upgrade pulldown-cmark 0.13.4 to 0.13.5, which fixes exponential event growth with ENABLE_WIKILINKS.
2026-10-28 22:28:05 +08:00
springmin 197eb1e0f0 build: drop the vendored fontique patch
fontique 0.11.1 already supports fontconfig-dlopen, which leaves an empty system collection when Fontconfig is absent. OHOS registers /system/fonts explicitly, so the local fontique copy, patch queue and quality verification are no longer needed; use the crates.io package and keep the lockfile pinned.
2026-10-28 19:17:59 +08:00
springmin 90f87c2d0a ohos: read the clipboard on the ArkTS UI thread
Cache plain text from the page's pasteboard listener and let Slint read that cache, so a cross-device pasteboard read cannot stall the Slint thread. Writes keep the cache coherent, and permission grants trigger a fresh read.
2026-10-28 19:08:26 +08:00
springmin 9463ab674b ohos: place IME candidates at the focused caret
Slint reports the initial caret rectangle with InputMethodRequest::Enable, not a separate Update. Forward it too, cache cursor updates while attach/showTextInput is pending, and replay the latest rectangle after the IME becomes editable.\n\nOnly mark a rectangle as applied after updateCursor succeeds, retry transient 12800016 errors, and ignore late completions for an older caret.
2026-10-28 18:44:19 +08:00
Alfirus Ahmad 9978fe33d7 fix(setup): explain iCloud app-specific passwords on IMAP sign-in rejection
Apple answers password sign-ins with a bare AUTHENTICATIONFAILED.
2026-10-27 22:02:47 +08:00
Alfirus Ahmad 7f31143698 fix(compose): let To/Cc/Bcc rows wrap and grow with long recipient lists
Recipient rows are fixed 40px single-line fields, so a list longer
than the field width can neither expand nor be reviewed before sending.
2026-10-27 21:52:09 +08:00
Alfirus Ahmad ee9fb661bd perf(mail): cache folder sort keys when ordering the sidebar tree
append_mailboxes sorted folders with sort_by_key on a freshly lowercased name, re-allocating the key on every comparison (O(n log n) allocations). sort_by_cached_key computes each key once (O(n)) with identical ordering.
2026-10-27 21:07:47 +08:00
springmin dc26e3df49 ci: make the OHOS workflow build-only
Remove the signing input and the GITHUB_ENV/command-line secret path. CI now always builds an unsigned hap; release signing remains a local explicit step.
2026-10-27 09:16:49 +08:00
springmin bbd89a33f0 ohos: strip PDFium and ship third-party notices in the hap
Strip the staged native libraries for release builds (PDFium 62 MB -> 22 MB), package THIRD_PARTY_NOTICES.md plus the repository license texts under resources/rawfile, and document the pinned OHOS PDFium archive and its remaining reproducible-build limitation.
2026-10-27 09:16:49 +08:00
springmin 178b37a176 ohos: honour the build profile and keep demo off the mail bundle
Pass the selected PROFILE to hvigor instead of always building debug. Default APP=demo to com.flectar.demo so it can coexist with the signed mail app; BUNDLE still overrides both.
2026-10-27 09:16:48 +08:00
springmin d36cfce06c ohos: serialize surface attach with teardown
Hold the surface gate while attaching, so a destroy callback cannot invalidate the window between the epoch check and gpu::set_surface. This closes the remaining attach race beyond queued stale events.
2026-10-26 20:40:31 +08:00
Tomás Romero cb3c353036 Merge pull request #140 from flectar/iamdarkle/import-saved-mail-from-mbox-eml-files-and-thunde
feat: import saved mail
2026-10-26 13:38:46 +01:00
springmin 43a032aa02 ohos: fail fast when the Slint thread panics
Catch unwinding panics on the Slint thread, log the payload, and abort instead of leaving a frozen window backed by a dead event loop. Slint's thread-local platform cannot be safely reinitialized.
2026-10-26 20:35:06 +08:00
springmin 3435fa0237 ohos: keep the Han face out of the generic sans fallback
Latin text that asks for sans-serif must not be rendered by a CJK face. Prefer Roboto/Noto Sans/other non-Han families for generic sans and retain Han as the final fallback.
2026-10-26 20:35:05 +08:00
springmin 8dbcb76907 ohos: reject surface events from a torn-down generation
Tag surface events with a gate epoch, invalidate it in OnSurfaceDestroyed, and ignore queued Surface/Destroyed events that cross the 500ms teardown timeout. A stale acknowledgement can no longer detach a newer surface.
2026-10-26 20:35:05 +08:00
springmin 6f657eb748 ohos: keep readable asset secrets on a failed overwrite
A crypto error can mean the row belongs to a previous signing identity, but deleting it before verifying loses a readable secret if the overwrite fails for another reason. Query the existing value first; only remove a confirmed stale entry.
2026-10-26 20:35:05 +08:00
springmin a0061c948e ohos: clarify the picker cache guard
The 50 MiB constant only keeps an accidental huge selection out of the app cache; the shared core still enforces the 25 MiB total compose/draft attachment limit.
2026-10-26 10:57:46 +08:00