Commit Graph
194 Commits
Author SHA1 Message Date
Tomás Romero 3d16373c64 chore: merge main 2026-11-03 19:54:03 +01:00
Tomás Romero 137bf96364 ohos: open this app from notifications 2026-11-03 16:48:59 +01:00
Tomás Romero 4ad26bd508 fix: retry notifications the host could not raise 2026-11-03 16:48:59 +01:00
springmin 0681283a13 ohos: publish new-mail notifications through NotificationKit
Reconnect the OHOS host publisher to the core notification dispatcher: forward the raw sender, subject, thread and message ids, use NotificationKit with localized fallback text and a START_ABILITY wantAgent, and request notification permission after the page loads.
2026-11-03 12:25:07 +08:00
Tomás Romero ebf94128f0 fix: dispatch notifications on their own task 2026-11-03 03:18:54 +01:00
Tomás Romero 413af66801 chore: merge main 2026-11-03 03:06:58 +01:00
Tomás Romero 63aa12e56c chore: update async-executor 2026-11-02 21:28:15 +01:00
Tomás Romero 3da1da329f chore: merge main 2026-11-02 17:09:57 +01:00
Tomás Romero ec1db861de Merge pull request #160 from flectar/iamdarkle/keyring
fix: handle a missing Linux keyring
2026-11-02 17:04:37 +01:00
Tomás Romero fe61a6a539 fix: declare local network use on macOS 2026-11-02 15:37:16 +01:00
Tomás Romero 79815c3e3e fix: update pulldown-cmark for RUSTSEC-2026-0433 2026-11-02 15:33:04 +01:00
Tomás Romero e25337ce40 chore: update the OpenHarmony lockfile 2026-11-02 15:29:03 +01:00
Tomás Romero e2842fb5ca chore: merge main 2026-11-02 15:28:31 +01:00
springmin 751b83e716 ohos: use the timer deadline helper for the idle sleep
duration_until_next_timer_update saturates an already-expired deadline instead of subtracting two Slint instants directly, which could underflow in debug builds when a timer was due.
2026-11-02 15:35:50 +08:00
springmin ab8446c594 ohos: stop waking the idle loop for unpainted frames
The 16 ms frame throttle was applied to every timeout, including when no redraw was pending, so the loop still woke at ~60 Hz after the timer change. Gate the throttle on a pending redraw and on a visible surface so an idle window sleeps until the next Slint timer or the one-second fallback.
2026-11-02 15:32:28 +08:00
springmin 1bdb351eff ohos: measure font setup and guard fallback lists
Log system-font registration time so startup work can be attributed, and add a CI check that the Slint UI and mail-renderer fallback script lists stay identical. The two collections are separate, so this catches a script being added to only one side.
2026-11-02 15:30:42 +08:00
springmin aba63868d3 ohos: bound acquire-fence waits
A stalled compositor could keep the Slint thread blocked in poll() for a full second. Cap the wait at 250 ms, abort the unready buffer, and drop the frame so the next redraw can retry instead of writing into a buffer whose fence never signalled.
2026-11-02 15:29:23 +08:00
springmin 0641a6f6eb ohos: wake for timers instead of polling every 100ms
Use SlintContext::next_timer_timeout to compute the next deadline; use a one-second fallback only when there is no timer or animation. This removes the fixed 100 ms idle wake-up while keeping timers accurate.
2026-11-02 15:28:29 +08:00
springmin 17410f4290 ohos: refresh the IME cursor offset with the window
The caret rectangle is relative to the XComponent, but the cached window origin was only read when the page appeared. After maximizing a floating 2-in-1 window, the old floating origin was still added to every cursor update, so the IME candidate stayed at the previous window position. Listen for window rect/status changes and use a zero origin for maximized or full-screen windows.
2026-11-02 14:23:49 +08:00
springmin 1f58ef3c29 ohos: polish document picker limits and naming
Raise the mail-import selection and file-size limits, use a one-hour picker timeout, prefer FileUri.name for the display name, and align the bridge result argument order with the native signature.
2026-11-02 13:48:53 +08:00
Tomás Romero dabdb1b87f docs: list the OpenHarmony port 2026-11-01 13:40:57 +01:00
Tomás Romero c7c633264a Merge pull request #85 from springmin/ohos-alias
ohos: add the OpenHarmony platform host
2026-11-01 02:59:31 +01:00
Tomás Romero 3ec99b3369 fix: explain why the system keyring is unavailable 2026-10-31 19:25:53 +01:00
Tomás Romero b07038b024 ohos: hide the app icon choice 2026-10-31 16:43:15 +01:00
springmin f9ace0e1b1 ohos: support multi-select in the document picker
Expose pickOpenMany on the bridge, stage selected files as one JSON result, and implement DocumentProvider::import_many so compose attachments can import several files in one picker action.
2026-10-31 09:05:32 +08:00
Tomás Romero 2ed589680e ohos: alias the picker reply type 2026-10-31 01:48:16 +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 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 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
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 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 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
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
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