Commit Graph
24 Commits
Author SHA1 Message Date
Tomás Romero 2abd27fd65 feat: new-mail notifications on Windows, macOS and Linux 2026-11-08 17:40:10 +01:00
Tomás Romero 708ae78ad7 chore: merge main 2026-11-04 04:00:23 +01:00
Tomás Romero b9b63202c5 feat: keep iOS account secrets in the Keychain 2026-11-03 22:38:20 +01:00
Tomás Romero ab3442502b chore: merge main
# Conflicts:
#	platform/ohos/mail/src/lib.rs
2026-11-03 22:29:13 +01:00
Tomás Romero a4f894d823 ohos: share one font fallback policy 2026-11-03 19:56:57 +01:00
Tomás Romero 4ad26bd508 fix: retry notifications the host could not raise 2026-11-03 16:48:59 +01: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 e2842fb5ca chore: merge main 2026-11-02 15:28:31 +01:00
Tomás Romero dabdb1b87f docs: list the OpenHarmony port 2026-11-01 13:40:57 +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 6b2076977e feat: add a notification publisher seam
Sync already records chime-worthy arrivals in the notification outbox. This adds the shared dispatcher that applies the Important/All/tabs scope, waits for pending AI routing, and hands raw sender/subject/thread ids to a host publisher. Hosts format and translate the notification and attach the platform action (slot type, wantAgent); the default publisher keeps the whole path a no-op.
2026-10-25 20:55:21 +08:00
springmin 5c88d455f9 ohos: move privacy and notification seams out of the port
Remove the bundled policy, first-launch consent screen, bridge URL interception and Settings/onboarding rows; Flectar hosts the policy at https://flectar.com/mail/privacy/. Remove the notification publisher seam and the permission request so they can be reviewed separately.
2026-10-25 20:26:35 +08:00
Tomás Romero 95ff8882eb Merge branch 'main' into ohos-alias 2026-10-24 23:01:38 +02:00
Tomás Romero 795ebace35 feat: choose the app icon in settings 2026-10-24 19:06:22 +02:00
springmin 4b510307f4 ohos: wheel scrolling, notification permission timing, asset recovery
- Register the XComponent UI input callback for axis events and translate
  wheel/touchpad deltas into Slint's PointerScrolled (50 logical pixels per
  wheel notch, the same step the desktop backend uses), so Slint flickables
  scroll under the mouse without application-side changes.
- Request notification permission from EntryAbility after loadContent: the
  page's aboutToAppear runs too early, the system rejects the request with
  1600013 and never shows the prompt. Publishing logs the outcome and the
  failure code through hilog.
- When OH_Asset_Add fails with ASSET_CRYPTO_ERROR (a stale row from an
  earlier signing identity, for example after reinstalling the hap), remove
  the alias and retry: deletion does not need the old secret, so sign-in and
  reconnect recover instead of failing with 'asset add failed: 24000009'.
- Document wheel input and notification behaviour in platform/ohos/README,
  and restore the notification_publisher and email_font_dir rows in the
  PlatformContext contract table.
2026-10-23 08:42:43 +08:00
Tomás Romero b236c44acc Merge pull request #84 from springmin/pr-document-provider
documents: route attachments, backups and snapshots through the host provider
2026-10-18 15:37:22 +02:00
Tomás Romero d4aeff813c refactor: route document requests through one helper 2026-10-18 14:31:41 +02:00
Tomás Romero decaaa0900 fix: guard document exports and cap mobile snapshots 2026-10-18 03:46:11 +02:00
Tomás Romero 3ffe140c4d docs: note document export staging 2026-10-18 03:36:22 +02:00
Tomás Romero efd1554208 chore: harden URL opening 2026-10-17 23:33:07 +02:00
springmin 21169095e6 documents: route attachments, backups and snapshots through the host provider
Compose attachments, account-backup export/import and database-snapshot
export still opened desktop file dialogs directly, so on mobile they
reported "no picker" even though the host provides a DocumentProvider.

- DocumentProvider::import_many() imports several documents for one action
  (default: repeat import() until the picker is cancelled; the desktop
  provider uses one multi-select dialog). Imported documents stay alive in
  the composer until Core has staged the attachments.
- Compose attachments use import_many() instead of rfd::FileDialog.
- Backup export/import stage one app-private file and hand it to the
  provider; the existing import logic keeps its synchronous shape on the UI
  thread executor.
- Database snapshots keep Core's verified snapshot, archive it as one zip
  (hosts export files, not folders) and pass it to the provider. Staging
  stays outside the data/cache roots Core requires.
- Desktop behavior is unchanged: same dialogs and file names.
2026-10-18 00:51:57 +08:00
Tomás Romero 08425af402 chore: document the platform architecture 2026-10-16 17:19:00 +02:00