Commit Graph
100 Commits
Author SHA1 Message Date
Dat Vu bfe51749aa docs: add ADRs for Patrol web integration test — setup, architecture, migration (#4452) 2026-04-17 17:38:35 +07:00
dab246 cb41b5690b TF-4308 Add E2E tests for ChooseLabelModal and NoLabelYetWidget
Signed-off-by: dab246 <tdvu@linagora.com>
2026-04-17 17:09:24 +07:00
Dat Vu a693ceb456 [Part 2] TF-4308 Add Create new label button in ChooseLabelModal (#4457) 2026-04-17 16:51:49 +07:00
dab246 a80de79537 TF-4301 Deduping before append label to list
Signed-off-by: dab246 <tdvu@linagora.com>
2026-04-17 11:58:53 +07:00
dab246 5938df395c TF-4301 Ensure that CreateNewLabelInteractor and EditLabelInteractor are always non-null before using them.
Signed-off-by: dab246 <tdvu@linagora.com>
2026-04-17 11:58:53 +07:00
dab246 8ac68ed1a5 TF-4301 Replace LabelModalMixin with direct methods in LabelController 2026-04-17 11:58:53 +07:00
dab246 2fd890f488 TF-4301 Block barrier dismissal while label creation is in progress
Wrap CreateNewLabelModal with PopScope(canPop: false) while the
creation request is in flight so that tapping the barrier
(barrierDismissible: true) cannot dispose the modal and cancel
the stream subscription before the result is delivered.
2026-04-17 11:58:53 +07:00
dab246 660c4f40e2 TF-4301 Address code review comments on label feature
- Make LabelModalMixin interactor getters non-nullable; remove force-unwraps at call sites
- Show positiveLabel and add semanticLabel in progressing button for accessibility
- Use timestamp-based label name in E2E scenario to prevent flakiness on reused accounts
- Guard labelAs action with isLabelAvailable check in SingleEmailController
- Don't pop back on label creation failure so users can retry without losing context
- Block modal dismissal while label creation request is in flight
- Null-guard email.id before toggling label in ThreadView::onCreateANewLabelAction
- Log stackTrace and rethrow in DialogRouter to distinguish errors from user cancel
2026-04-17 11:58:53 +07:00
dab246 232987ae0c TF-4301 Extract onMoreActionClick callback into dedicated method in ThreadView 2026-04-17 11:58:53 +07:00
dab246 1b62990f28 TF-4301 Add E2E tests for label creation and tagging from email view 2026-04-17 11:58:53 +07:00
dab246 190ccc7bc3 TF-4301 Add "Create a new label" button in Label As menus and wire up tagging in email view 2026-04-17 11:58:53 +07:00
dab246 061793846e fixup! TF-4308 Add NoLabelYetWidget for choose label modal
Signed-off-by: dab246 <tdvu@linagora.com>
2026-04-17 10:22:32 +07:00
dab246 35b46ff21b TF-4308 Add NoLabelYetWidget for choose label modal
Signed-off-by: dab246 <tdvu@linagora.com>
2026-04-17 10:22:32 +07:00
Dat Vu c5eb4a011d Cherry pick commit fix issue #4292 to master (#4454)
* Add folder info when open mail list from Label

(cherry picked from commit de0bb4ee02030ca90126766a8713a6826d791acd)

* Add unit test for `hasMailboxLabel` function in BaseEmailItemTile mixin

(cherry picked from commit 18f8d1847acccd6f95006b93903f0caa6c0408df)

* TF-4292 Add E2E test for test case `Add folder info when open mail list from Label` on mobile

(cherry picked from commit 1c209e333510db161522e4449ad7fb2e5d28399f)
2026-04-16 15:45:45 +07:00
Dat Vu 1d594804b5 TF-4268 Automate Sentry symbol upload for Android release builds (#4442) 2026-04-14 12:32:03 +07:00
Dat Vu 16376fccb4 TF-4343 Fix load Sentry from Sentry CDN (#4348) 2026-04-14 11:59:27 +07:00
dab246 eeaab49e93 TF-4268 Cache Sentry config and user for FCM background re-initialization
Signed-off-by: dab246 <tdvu@linagora.com>
2026-04-10 16:05:02 +07:00
Dat Vu cb5d43630a TF-4284 Fix refreshing causes "virtual mailboxes" to be hidden (#4290) 2026-04-10 15:29:04 +07:00
Dat Vu c9e2e5db80 TF-4358 Remove mail in trash by default in search result (#4361) 2026-04-10 15:15:53 +07:00
Dat Vu bc707b2612 fix: Update pubspec.lock to resolve stale worker_manager git ref (#4447)
Signed-off-by: dab246 <tdvu@linagora.com>
2026-04-10 12:42:24 +07:00
dab246 dd77b2d53a fixup! TF-4268 Initialize Sentry from Linagora Ecosystem configuration
Signed-off-by: dab246 <tdvu@linagora.com>
2026-04-09 14:16:41 +07:00
dab246 d2566dd9aa TF-4268 Initialize Sentry from Linagora Ecosystem configuration 2026-04-09 14:16:41 +07:00
dab246 c9ec1c2820 TF-4268 Improve SentryConfig and SentryManager: sampling, frames tracking, non-blocking capture 2026-04-09 14:16:41 +07:00
dab246 2a666056c2 TF-4268 Refactor app runner: split web/mobile runners, add platform error handlers 2026-04-09 14:16:41 +07:00
Dat Vu 78e76b5aac docs: ADR-0076 - Reduce Sentry Noise with Targeted Error Reporting (#4433) 2026-04-09 09:18:45 +07:00
Dat Vu c6b83d7a09 ADR-0072: Prevent notification storm on Android (#4381) 2026-04-09 09:18:09 +07:00
Dat Vu 20f59da386 TF-4425 Fix load more not triggered on iOS 18 when fast scrolling to bottom (#4428) 2026-04-08 10:06:49 +07:00
dab246 2a3325ab7a TF-4265 Add integration test for attachment reminder on mobile 2026-04-07 13:20:25 +07:00
dab246 74c0c75023 TF-4265 Refactor: Move Regex pattern generation to Main Thread to leverage static caching and reduce Isolate initialization overhead. 2026-04-07 13:20:25 +07:00
dab246 55e27c78ed TF-4265 Additional config for include and exclude keywords 2026-04-07 13:20:25 +07:00
dab246 42fb24e6e5 TF-4265 Add include list to support custom keywords detection 2026-04-07 13:20:25 +07:00
dab246 1071bb49cf TF-4265 Add exclude list support to AttachmentTextDetector 2026-04-07 13:20:25 +07:00
dab246 772a5e3219 TF-4265 Update logic matchedKeywordsUnique method and add some keywords file, files, file., file?, .... 2026-04-07 13:20:25 +07:00
dab246 5e1d99125e TF-4265 Exclude our signature by add removeTMailSignature option to extractPlainText method 2026-04-07 13:20:25 +07:00
dab246 c5401561ca Add Keyboard shortcuts dictionary for close email detail view in Setting 2026-04-06 15:29:16 +07:00
Dat Vu 7cf61ac2f0 Add docs setup chrome devtool MCP (#4399) 2026-04-03 07:34:32 +02:00
Dat Vu bc0f6a4ac6 TF-4356 Add filter event mail in search (#4357)
* Add `Events` filter checkbox in Advanced Search form
* Perform search email by `Events` filter in Advanced Search form
* Add `Event` quick search button in Search view
* Use `keywords` replace to `headers` for search event filter
2026-04-03 07:16:03 +02:00
dab246 82eb6b7d06 fixup! TF-4392 [Team Mailbox] Hide Recover deleted messages and Archive message in team mailbox 2026-04-01 18:08:12 +07:00
dab246 7cc9cd82fa TF-4392 [Team Mailbox] Hide Recover deleted messages and Archive message in team mailbox 2026-04-01 18:08:12 +07:00
dab246 beb323874b TF-4392 [Team Mailbox] Auto save draft email team mailbox when edit 2026-04-01 18:08:12 +07:00
dab246 9feef8da99 TF-4392 [Team Mailbox] Edit email in Drafts folder as new in the composer 2026-04-01 18:08:12 +07:00
dab246 c4b091f396 TF-4392 [Team Mailbox] Edit email in Template folder as new in the composer 2026-04-01 18:08:12 +07:00
dab246 1c87c3178b TF-4392 [Team Mailbox] Allow delete folder according to my rights. 2026-04-01 18:08:12 +07:00
dab246 afeec2ca17 TF-4392 [Team Mailbox] Allow rename folder according to my rights. 2026-04-01 18:08:12 +07:00
dab246 6eb62347f1 TF-4392 [Team Mailbox] Allow create subfolder according to my rights. 2026-04-01 18:08:12 +07:00
dab246 a702d44f96 TF-4392 [Team Mailbox] Move multiple emails to trash 2026-04-01 18:08:12 +07:00
dab246 c2772e7ab5 TF-4392 [Team Mailbox] Move email to trash on delete in Email Detailed View 2026-04-01 18:08:12 +07:00
dab246 db8ae35c9d TF-4392 [Team Mailbox] Move email to trash on delete in Email List View 2026-04-01 18:08:12 +07:00
dab246 865940450e TF-4392 [Team Mailbox] Empty the team mailbox trash 2026-04-01 18:08:12 +07:00
dab246 405501bd40 TF-4392 [Team Mailbox] Delete emails within the team mailbox trash 2026-04-01 18:08:12 +07:00
dab246 1c1b16ded1 fixup! fixup! fixup! TF-4385 Fix spam banner show it once per day 2026-03-30 13:39:46 +07:00
dab246 38fc79d8e5 fixup! fixup! TF-4385 Fix spam banner show it once per day 2026-03-30 13:39:46 +07:00
dab246 6f1bf82f02 fixup! TF-4385 Fix spam banner show it once per day 2026-03-30 13:39:46 +07:00
dab246 e4107c7363 TF-4385 Fix spam banner show it once per day 2026-03-30 13:39:46 +07:00
dab246 cee2dd9d14 feat: Separate in method: _syncLabelForOpenedEmail & add const for LabelKeywordIsNull 2026-03-27 14:07:21 +07:00
dab246 2a58247b2b feat: Use the displayed email id here, not only _currentEmailId. 2026-03-27 14:07:21 +07:00
dab246 432c482155 feat: Re-use AddLabelToEmailMixin for logic add label to email in EmailView 2026-03-27 14:07:21 +07:00
dab246 f4ae94d47b feat: Apply EmailMoreActionContextMenu mixin for ThreadView and SearchEmailView 2026-03-27 14:07:21 +07:00
dab246 0d0efdcf96 feat: Add EmailMoreActionContextMenu mixin to handle action email 2026-03-27 14:07:21 +07:00
dab246 ff4515c26a feat: Add Label as to context menu for each email item in list 2026-03-27 14:07:21 +07:00
dab246 0a88a8f109 TF-4404 Keep automation keys stable across enum renames. 2026-03-27 10:36:23 +07:00
dab246 b97abfbf69 TF-4404 Add e2e test for Mail to attendees action on mobile 2026-03-27 10:36:23 +07:00
dab246 6a245f228a TF-4404 Fix missing subject when perform Mail to attendees action in event email 2026-03-27 10:36:23 +07:00
dab246 6d0246de20 TF-4391 Fix last menu item inaccessible due to system navigation bar overlap 2026-03-26 17:25:55 +07:00
dab246 eb017b54b1 TF-4383 Handle read only labels 2026-03-26 17:06:13 +07:00
dab246 fdae057837 TF-4370 Fix selector/key wiring: modal instantiation does not pass the key the test expects 2026-03-25 19:45:46 +07:00
dab246 0f9ea3c778 TF-4370 Add E2E test for test case create new a tag 2026-03-25 19:45:46 +07:00
dab246 7df25c5f5a TF-4370 Handle create new a label with description 2026-03-25 19:45:46 +07:00
dab246 90ddbf5824 TF-4370 Add description field to Label object 2026-03-25 19:45:46 +07:00
dab246 4c837ed9cf TF-4370 Add Description field to Create new Label modal 2026-03-25 19:45:46 +07:00
dab246 28d5036667 TF-4378 Migrate scribe-mobile branch to master branch 2026-03-25 11:52:35 +07:00
dab246 b64aa4e4c7 feat(scribe-mobile):Fix sometimes the top part is cut off 2026-03-25 11:52:35 +07:00
dab246 5937055789 feat(scribe-mobile): Display the result prompt modal in the correct position relative to the inline scribe button on tablet 2026-03-25 11:52:35 +07:00
Dat Vu 8fff83a735 [HOT-FIX] Download attachment is failed on iOS (#4405) 2026-03-24 22:16:43 +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
dab246 651115c304 TF-4368 Auto trigger load more when get all email return < 20 emails 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
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
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