diff --git a/assets/images/ic_spam_report_disable.svg b/assets/images/ic_spam_report_disable.svg
new file mode 100644
index 000000000..43638788e
--- /dev/null
+++ b/assets/images/ic_spam_report_disable.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/ic_spam_report_enable.svg b/assets/images/ic_spam_report_enable.svg
new file mode 100644
index 000000000..8ccdad2ee
--- /dev/null
+++ b/assets/images/ic_spam_report_enable.svg
@@ -0,0 +1,3 @@
+
diff --git a/configurations/env.fcm b/configurations/env.fcm
index 847e2b365..341f7206d 100644
--- a/configurations/env.fcm
+++ b/configurations/env.fcm
@@ -1,23 +1,6 @@
-FIREBASE_ANDROID_API_KEY=AIzaSyDPn3T4BMShrcedtqzA-8Lh3Fsm1EGB7S8
-FIREBASE_ANDROID_APP_ID=1:611786135906:android:6fa64d94eb8f8603e3743b
-FIREBASE_ANDROID_MESSAGING_SENDER_ID=611786135906
-FIREBASE_ANDROID_PROJECT_ID=fir-jmap-poc
-FIREBASE_ANDROID_DATABASE_URL=https://fir-jmap-poc-default-rtdb.asia-southeast1.firebasedatabase.app
-FIREBASE_ANDROID_STORAGE_BUCKET=fir-jmap-poc.appspot.com
-
-FIREBASE_IOS_API_KEY=AIzaSyA_fAC-6rVLsQtj8AXxRRYjwsOHCKPTm6w
-FIREBASE_IOS_APP_ID=1:611786135906:ios:d8b0899dc058dd2ae3743b
-FIREBASE_IOS_MESSAGING_SENDER_ID=611786135906
-FIREBASE_IOS_PROJECT_ID=fir-jmap-poc
-FIREBASE_IOS_DATABASE_URL=https://fir-jmap-poc-default-rtdb.asia-southeast1.firebasedatabase.app
-FIREBASE_IOS_STORAGE_BUCKET=fir-jmap-poc.appspot.com
-FIREBASE_IOS_CLIENT_ID=611786135906-2nqn5c537eer6c95rcujmlfmldbkqfqb.apps.googleusercontent.com
-FIREBASE_IOS_BUNDLE_ID=com.linagora.ios.teammail
-
-FIREBASE_WEB_API_KEY=AIzaSyABpxntIXA2u_uFFMT4wvHYMgVm7UZPMrM
-FIREBASE_WEB_APP_ID=1:611786135906:web:22d98cfd47b4fddde3743b
-FIREBASE_WEB_MESSAGING_SENDER_ID=611786135906
-FIREBASE_WEB_PROJECT_ID=fir-jmap-poc
-FIREBASE_WEB_DATABASE_URL=https://fir-jmap-poc-default-rtdb.asia-southeast1.firebasedatabase.app
-FIREBASE_WEB_STORAGE_BUCKET=fir-jmap-poc.appspot.com
-FIREBASE_WEB_AUTH_DOMAIN=fir-jmap-poc.firebaseapp.com
\ No newline at end of file
+FIREBASE_ANDROID_API_KEY=example
+FIREBASE_ANDROID_APP_ID=example
+FIREBASE_ANDROID_MESSAGING_SENDER_ID=example
+FIREBASE_ANDROID_PROJECT_ID=example
+FIREBASE_ANDROID_DATABASE_URL=https://example.com
+FIREBASE_ANDROID_STORAGE_BUCKET=example.com
\ No newline at end of file
diff --git a/core/lib/presentation/resources/image_paths.dart b/core/lib/presentation/resources/image_paths.dart
index 51ef0576c..b07ec2046 100644
--- a/core/lib/presentation/resources/image_paths.dart
+++ b/core/lib/presentation/resources/image_paths.dart
@@ -164,6 +164,8 @@ class ImagePaths {
String get icPageNotFound => _getImagePath('ic_page_not_found.svg');
String get icOpenInNewTab => _getImagePath('ic_open_in_new_tab.svg');
String get icInfoCircleOutline => _getImagePath('ic_info_circle_outline.svg');
+ String get icSpamReportDisable => _getImagePath('ic_spam_report_disable.svg');
+ String get icSpamReportEnable => _getImagePath('ic_spam_report_enable.svg');
String _getImagePath(String imageName) {
return AssetsPaths.images + imageName;
diff --git a/env.file b/env.file
index bed9b10e3..6c44a3be4 100644
--- a/env.file
+++ b/env.file
@@ -1,4 +1,4 @@
-SERVER_URL=https://gateway.upn.integration-open-paas.org
+SERVER_URL=http://localhost/
DOMAIN_REDIRECT_URL=http://localhost:3000
WEB_OIDC_CLIENT_ID=teammail-web
APP_GRID_AVAILABLE=supported
diff --git a/lib/features/mailbox/presentation/mailbox_controller.dart b/lib/features/mailbox/presentation/mailbox_controller.dart
index f7f3abe78..45b4dfbe2 100644
--- a/lib/features/mailbox/presentation/mailbox_controller.dart
+++ b/lib/features/mailbox/presentation/mailbox_controller.dart
@@ -57,6 +57,7 @@ import 'package:tmail_ui_user/features/mailbox_creator/domain/usecases/verify_na
import 'package:tmail_ui_user/features/mailbox_creator/presentation/extensions/validator_failure_extension.dart';
import 'package:tmail_ui_user/features/mailbox_creator/presentation/model/mailbox_creator_arguments.dart';
import 'package:tmail_ui_user/features/mailbox_creator/presentation/model/new_mailbox_arguments.dart';
+import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
@@ -1120,6 +1121,12 @@ class MailboxController extends BaseMailboxController {
case MailboxActions.openInNewTab:
openMailboxInNewTabAction(mailbox);
break;
+ case MailboxActions.disableSpamReport:
+ case MailboxActions.enableSpamReport:
+ final _currentSpamReportState = mailboxDashBoardController.enableSpamRepot;
+ final _storeSpamReportState = _currentSpamReportState ? SpamReportState.disabled : SpamReportState.enabled;
+ mailboxDashBoardController.storeSpamReportStateAction(_storeSpamReportState);
+ return;
default:
break;
}
diff --git a/lib/features/mailbox/presentation/mailbox_view_web.dart b/lib/features/mailbox/presentation/mailbox_view_web.dart
index 19f5c180c..9676df84c 100644
--- a/lib/features/mailbox/presentation/mailbox_view_web.dart
+++ b/lib/features/mailbox/presentation/mailbox_view_web.dart
@@ -408,6 +408,11 @@ class MailboxView extends GetWidget with AppLoaderMixin, Popu
MailboxActions.delete
];
+ if(mailbox.isSpam) {
+ mailboxActionsSupported.insert(1,
+ controller.mailboxDashBoardController.enableSpamRepot ? MailboxActions.disableSpamReport : MailboxActions.enableSpamReport);
+ }
+
final listContextMenuItemAction = mailboxActionsSupported
.map((action) => ContextMenuItemMailboxAction(
action,
@@ -488,7 +493,7 @@ class MailboxView extends GetWidget with AppLoaderMixin, Popu
styleName: TextStyle(
fontWeight: FontWeight.normal,
fontSize: 17,
- color: contextMenuItem.action.getColorContextMenuIcon()),
+ color: contextMenuItem.action.getColorContextMenuTitle()),
onCallbackAction: () =>
controller.handleMailboxAction(context, contextMenuItem.action, mailbox)),
),
diff --git a/lib/features/mailbox/presentation/model/mailbox_actions.dart b/lib/features/mailbox/presentation/model/mailbox_actions.dart
index 3b33869ab..9d15554f2 100644
--- a/lib/features/mailbox/presentation/model/mailbox_actions.dart
+++ b/lib/features/mailbox/presentation/model/mailbox_actions.dart
@@ -14,7 +14,9 @@ enum MailboxActions {
move,
markAsRead,
selectForRuleAction,
- openInNewTab
+ openInNewTab,
+ disableSpamReport,
+ enableSpamReport
}
extension MailboxActionsExtension on MailboxActions {
@@ -38,6 +40,10 @@ extension MailboxActionsExtension on MailboxActions {
switch(this) {
case MailboxActions.openInNewTab:
return AppLocalizations.of(context).openInNewTab;
+ case MailboxActions.disableSpamReport:
+ return AppLocalizations.of(context).disableSpamReport;
+ case MailboxActions.enableSpamReport:
+ return AppLocalizations.of(context).enableSpamReport;
case MailboxActions.markAsRead:
return AppLocalizations.of(context).mark_as_read;
case MailboxActions.move:
@@ -55,6 +61,10 @@ extension MailboxActionsExtension on MailboxActions {
switch(this) {
case MailboxActions.openInNewTab:
return imagePaths.icOpenInNewTab;
+ case MailboxActions.disableSpamReport:
+ return imagePaths.icSpamReportDisable;
+ case MailboxActions.enableSpamReport:
+ return imagePaths.icSpamReportEnable;
case MailboxActions.markAsRead:
return imagePaths.icRead;
case MailboxActions.move:
@@ -68,10 +78,22 @@ extension MailboxActionsExtension on MailboxActions {
}
}
+ Color getColorContextMenuTitle() {
+ switch(this) {
+ case MailboxActions.delete:
+ return AppColor.colorActionDeleteConfirmDialog;
+ default:
+ return Colors.black;
+ }
+ }
+
Color getColorContextMenuIcon() {
switch(this) {
case MailboxActions.delete:
return AppColor.colorActionDeleteConfirmDialog;
+ case MailboxActions.disableSpamReport:
+ case MailboxActions.enableSpamReport:
+ return AppColor.primaryColor;
default:
return Colors.black;
}
@@ -116,7 +138,9 @@ extension MailboxActionsExtension on MailboxActions {
ContextMenuItemState getContextMenuItemState(PresentationMailbox mailbox) {
switch(this) {
case MailboxActions.openInNewTab:
- return ContextMenuItemState.activated;
+ case MailboxActions.disableSpamReport:
+ case MailboxActions.enableSpamReport:
+ return ContextMenuItemState.activated;
case MailboxActions.markAsRead:
return mailbox.getCountUnReadEmails().isNotEmpty
? ContextMenuItemState.activated
diff --git a/lib/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart b/lib/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart
index 36505981e..1319a4022 100644
--- a/lib/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart
+++ b/lib/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart
@@ -23,5 +23,5 @@ abstract class SpamReportDataSource {
Future storeSpamReportState(SpamReportState spamReportState);
- Future deletestoreSpamReportState();
+ Future deleteSpamReportState();
}
\ No newline at end of file
diff --git a/lib/features/mailbox_dashboard/data/datasource_impl/share_preference_spam_report_data_source_impl.dart b/lib/features/mailbox_dashboard/data/datasource_impl/share_preference_spam_report_data_source_impl.dart
index 9d36f13e5..24f839d43 100644
--- a/lib/features/mailbox_dashboard/data/datasource_impl/share_preference_spam_report_data_source_impl.dart
+++ b/lib/features/mailbox_dashboard/data/datasource_impl/share_preference_spam_report_data_source_impl.dart
@@ -51,7 +51,7 @@ class SharePreferenceSpamReportDataSourceImpl extends SpamReportDataSource {
}
@override
- Future deletestoreSpamReportState() {
+ Future deleteSpamReportState() {
return Future.sync(() async {
return await _sharePreferenceSpamReportDataSource.deleteLastTimeDismissedSpamReported();
}).catchError((error) {
diff --git a/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart b/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart
index 9f00ce1f2..545cf5266 100644
--- a/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart
+++ b/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart
@@ -47,7 +47,7 @@ class SpamReportDataSourceImpl extends SpamReportDataSource {
}
@override
- Future deletestoreSpamReportState() {
+ Future deleteSpamReportState() {
throw UnimplementedError();
}
diff --git a/lib/features/mailbox_dashboard/data/local/share_preference_spam_report_data_source.dart b/lib/features/mailbox_dashboard/data/local/share_preference_spam_report_data_source.dart
index 7b8c8a282..9f80ce4a5 100644
--- a/lib/features/mailbox_dashboard/data/local/share_preference_spam_report_data_source.dart
+++ b/lib/features/mailbox_dashboard/data/local/share_preference_spam_report_data_source.dart
@@ -42,7 +42,7 @@ class SharePreferenceSpamReportDataSource extends SpamReportDataSource {
}
@override
- Future deletestoreSpamReportState() async {
+ Future deleteSpamReportState() async {
return await _sharedPreferences.remove(MailboxDashboardConstant.keySpamReportState);
}
diff --git a/lib/features/mailbox_dashboard/data/repository/spam_report_repository_impl.dart b/lib/features/mailbox_dashboard/data/repository/spam_report_repository_impl.dart
index a7756c487..e62408ac4 100644
--- a/lib/features/mailbox_dashboard/data/repository/spam_report_repository_impl.dart
+++ b/lib/features/mailbox_dashboard/data/repository/spam_report_repository_impl.dart
@@ -52,7 +52,7 @@ class SpamReportRepositoryImpl extends SpamReportRepository {
}
@override
- Future deletestoreSpamReportState() {
- return mapDataSource[DataSourceType.local]!.deletestoreSpamReportState();
+ Future deleteSpamReportState() {
+ return mapDataSource[DataSourceType.local]!.deleteSpamReportState();
}
}
\ No newline at end of file
diff --git a/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart b/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart
index f9cec94d3..f814a0fa0 100644
--- a/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart
+++ b/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart
@@ -23,5 +23,5 @@ abstract class SpamReportRepository {
Future storeSpamReportState(SpamReportState spamReportState);
- Future deletestoreSpamReportState();
+ Future deleteSpamReportState();
}
\ No newline at end of file
diff --git a/lib/features/mailbox_dashboard/domain/state/store_spam_report_state.dart b/lib/features/mailbox_dashboard/domain/state/store_spam_report_state.dart
index 5a2bb2390..318082d88 100644
--- a/lib/features/mailbox_dashboard/domain/state/store_spam_report_state.dart
+++ b/lib/features/mailbox_dashboard/domain/state/store_spam_report_state.dart
@@ -1,11 +1,13 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
+import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart';
class StoreSpamReportStateLoading extends UIState {}
class StoreSpamReportStateSuccess extends UIState {
-
- StoreSpamReportStateSuccess();
+ final SpamReportState spamReportState;
+
+ StoreSpamReportStateSuccess(this.spamReportState);
@override
List