Commit Graph

4908 Commits

Author SHA1 Message Date
Théo Poizat 245dfc714d Display sparkle button in mobile app bar to launch AI Scribe
- Same icon than for desktop
- Displayed only if AI Scribe is enabled
2026-03-25 11:52:35 +07:00
Théo Poizat 089eb7b75f Fix correct grammar icon not present in submenu getIcon 2026-03-25 11:52:35 +07:00
Théo Poizat b28dea732a Fix AI Scribe overlay button display in iOS
The button was never displayed because the selectionchange event listener was loaded when the WebView was not entirely loaded so selectionchange event were never fired.

Now we setup selection listener when the WebView is loaded instead of created.
2026-03-25 11:52:35 +07:00
Théo Poizat 03c70922a0 Fix selection coordinates in mobile
Because the HTML editor is different, we need a different selector to get the editable element.

We also need to add a small offset to the coordinates to avoid positionning the overlay icon above native selection UI in mobile. For example, Android adds a marker at the beginning and the end of the selection and we do not want to display the Scribe overlay icon above this marker.
2026-03-25 11:52:35 +07:00
Théo Poizat 9e601caa86 Enable AI scribe in mobile 2026-03-25 11:52:35 +07:00
Théo Poizat 0f4ed4537e Remove unused localizations arguments in Scribe suggestion 2026-03-25 11:52:35 +07:00
Théo Poizat 5abce414d4 Guard Scribe suggestion loading if interactor is null 2026-03-25 11:52:35 +07:00
Théo Poizat 5bdcff5aba Extract Scribe menu item text and icons in components 2026-03-25 11:52:35 +07:00
Théo Poizat d5a3400bb4 Allow boxShadow to be changed in AIScribeBar
We will need a custom boxShadow for mobile version.
2026-03-25 11:52:35 +07:00
Théo Poizat 4c75ec863d Extract AI Scribe menu item component
Scribe is always composed of menu (aka category) and submenu (aka action) :
- submenu item UI was already in an UI only component. I moved it to items folder.
- menu item UI was mixed in a component with desktop related UX. So I extract the UI to create an UI only component. I moved it also to items folder.
2026-03-25 11:52:35 +07:00
Théo Poizat 08899b1598 Extract AI Scribe suggestion logic
In Scribe desktop, the suggestion is displayed in a popup.
In Scribe mobile, it will be displayed in a full screen modal.

But it share the same logic about loading, success and error.

So here I extract this logic and use it in the AI Scribe desktop to be able to use it later in AI Scribe mobile.
2026-03-25 11:52:35 +07:00
Dat H. Pham 16b1de1b48 Bump version to v0.26.6 2026-03-24 22:19:31 +07:00
Dat Vu 8fff83a735 [HOT-FIX] Download attachment is failed on iOS (#4405) 2026-03-24 22:16:43 +07:00
Dat H. Pham 6a34e27340 Bump version to v0.26.5 2026-03-23 14:02:53 +07:00
Dat Vu 4899002b87 TF-4394 Fix TXT preview is broken (#4396) 2026-03-23 13:47:44 +07:00
Dat Vu 8a9901a0a4 TF-4384 Fix page not found 404 error when refreshing label views (#4390) 2026-03-21 17:23:18 +07:00
Dat H. Pham 8d82eac16f Bump version to v0.26.4-rc01 2026-03-20 10:15:13 +07:00
dab246 651115c304 TF-4368 Auto trigger load more when get all email return < 20 emails 2026-03-20 10:15:13 +07:00
Dat H. Pham 7907df3140 Bump version to v0.26.3-rc01 2026-03-20 10:15:13 +07:00
dab246 2d19bc908d TF-4368 Add more log trace for getAllEmail & forceQueryAllEmailsForWeb 2026-03-20 10:15:13 +07:00
dab246 9854592a4c TF-4368 Add more log trace for load more email 2026-03-20 10:15:13 +07:00
Dat H. Pham 7ecf5d8e53 bump version to v0.26.2-rc01 2026-03-20 10:15:13 +07:00
dab246 cdc7d711f5 TF-4368 Add log to tracing refresh change emails on Sentry 2026-03-20 10:15:13 +07:00
dab246 80c368be62 TF-4368 Add verifying actual merged email IDs, not just count. 2026-03-20 10:15:13 +07:00
dab246 bf1bab478c TF-4368 Add the delete/shrink regression case and assert the requested limit. 2026-03-20 10:15:13 +07:00
dab246 72aceff481 TF-4368 Add named parameters to mock setup for consistency. 2026-03-20 10:15:13 +07:00
dab246 2d45909ad1 TF-4368 Add tearDown for consistency with other test groups. 2026-03-20 10:15:13 +07:00
dab246 23a3e9243e TF-4368 Add unit test for refreshChanges method 2026-03-20 10:15:13 +07:00
dab246 a28d5b3527 TF-4368 Fix cannot scroll in email list 2026-03-20 10:15:13 +07:00
Dat Vu eecdf75f5e TF-4384 Add ADR-0074 Resolve label refresh 404 by introducing explicit labelId (#4387) 2026-03-19 17:13:31 +07:00
dab246 e2c158d633 TF-4373 Add E2E test for test case delete thread to trash on mobile 2026-03-12 15:15:03 +07:00
dab246 bb9dca10de TF-4373 Fix deletion is not working when thread is enabled 2026-03-12 15:15:03 +07:00
dab246 a838912f5c TF-4367 Add test case for Emails with Re\u00A0: / Tr\u00A0:. 2026-03-11 13:33:28 +07:00
dab246 a8e0bf6167 TF-4367 Remove the duplicated closeEmailDetailedView helper from this mixin. 2026-03-11 13:33:28 +07:00
dab246 9e9e666518 TF-4367 Add E2E test for test case forward email is forwarded when change language on mobile 2026-03-11 13:33:28 +07:00
dab246 12b9ad4a40 TF-4367 Add E2E test for test case reply email is replied when change language on mobile 2026-03-11 13:33:28 +07:00
dab246 b7287d4b5c TF-4367 Add E2E test for test case forward email when change language on mobile 2026-03-11 13:33:28 +07:00
dab246 8246dd66fd TF-4367 Add E2E test for test case reply email when change language on mobile 2026-03-11 13:33:28 +07:00
dab246 88f9643072 TF-4367 Add unit test for apply Reply/Forward prefix for subject when compose email 2026-03-11 13:33:28 +07:00
dab246 d256b5ca52 TF-4367 Update logic apply Reply/Forward prefix for subject when compose email 2026-03-11 13:33:28 +07:00
dab246 4a94f088d5 TF-4367 Fix duplicated Re: prefix when reply email with French locale 2026-03-11 13:33:28 +07:00
Dat H. Pham edaa094f62 Bump version to v0.26.1 2026-03-10 11:10:26 +07:00
dab246 b7594a4adb fix: The message field in UnknownRemoteException is typed as String? and the condition will always be false. 2026-03-10 11:06:16 +07:00
dab246 572bf6ba81 fix: The code parameter must be propagated through the inheritance chain. 2026-03-10 11:06:16 +07:00
dab246 8a21e35d1e fix: Prefer reusing AppBaseException instead of redefining the exception contract CacheException and RemoteException 2026-03-10 11:06:16 +07:00
Dat H. Pham 236ad5f075 Override props method for CacheException 2026-03-10 11:06:16 +07:00
Dat H. Pham 3e39f59f20 Fixup Constant some token exception 2026-03-10 11:06:16 +07:00
dab246 437c46f5ff fix(sentry): resolve minified exception types on web release 2026-03-10 11:06:16 +07:00
dab246 2e8a11e7eb refactor(sentry): standardize exceptions to prevent Sentry minification 2026-03-10 11:06:16 +07:00
dab246 296548a781 fix(sentry): sync dist parameter to resolve minified stack traces 2026-03-10 11:06:16 +07:00