TF-1363: [Presentation] Implement disable and enable spam report
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M20.2407 15.4042C19.906 15.7389 19.906 16.2816 20.2407 16.6164C20.5754 16.9511 21.1182 16.9511 21.4529 16.6164L21.6581 16.4112C22.0599 16.0093 22.2857 15.4643 22.2857 14.896V9.10394C22.2857 8.53562 22.0599 7.99057 21.6581 7.58871L16.4112 2.34186C16.0094 1.94 15.4643 1.71423 14.896 1.71423H9.10398C8.53566 1.71423 7.99062 1.94 7.58875 2.34186L7.38356 2.54705C7.04883 2.88179 7.04883 3.4245 7.38356 3.75924C7.7183 4.09397 8.26101 4.09397 8.59575 3.75924L8.80094 3.55404C8.88131 3.47367 8.99032 3.42852 9.10398 3.42852H14.896C15.0097 3.42852 15.1187 3.47367 15.1991 3.55404L20.4459 8.80089C20.5263 8.88126 20.5714 8.99027 20.5714 9.10394V14.896C20.5714 15.0096 20.5263 15.1186 20.4459 15.199L20.2407 15.4042Z" fill="#007AFF"/>
|
||||||
|
<path d="M12.1052 14.4053L11.9999 14.4C11.4319 14.4 10.9715 14.8605 10.9715 15.4285C10.9715 15.961 11.3762 16.399 11.8948 16.4517L12 16.457C12.5681 16.457 13.0285 15.9965 13.0285 15.4285C13.0285 14.896 12.6238 14.458 12.1052 14.4053Z" fill="#007AFF"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.35925 5.57136L2.34191 7.58871C1.94004 7.99057 1.71428 8.53562 1.71428 9.10394V14.896C1.71428 15.4643 1.94004 16.0093 2.34191 16.4112L7.58875 21.658C7.99062 22.0599 8.53566 22.2857 9.10398 22.2857H14.896C15.4643 22.2857 16.0094 22.0599 16.4112 21.658L18.4286 19.6407L19.2731 20.4852C19.6079 20.82 20.1506 20.82 20.4853 20.4852C20.82 20.1505 20.82 19.6078 20.4853 19.2731L12.8571 11.6448V7.71423C12.8571 7.24085 12.4733 6.85709 11.9999 6.85709C11.5266 6.85709 11.1428 7.24085 11.1428 7.71423V9.93055L4.72692 3.51467C4.39219 3.17994 3.84948 3.17994 3.51474 3.51467C3.18001 3.84941 3.18001 4.39212 3.51474 4.72685L4.35925 5.57136ZM5.57143 6.78355L17.2164 18.4285L15.1991 20.4459C15.1187 20.5262 15.0097 20.5714 14.896 20.5714H9.10398C8.99032 20.5714 8.88131 20.5262 8.80094 20.4459L3.55409 15.199C3.47372 15.1186 3.42857 15.0096 3.42857 14.896V9.10394C3.42857 8.99027 3.47372 8.88126 3.55409 8.80089L5.57143 6.78355Z" fill="#007AFF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M14.896 1.71423C15.4643 1.71423 16.0093 1.94 16.4112 2.34186L21.658 7.58871C22.0599 7.99057 22.2857 8.53562 22.2857 9.10394V14.896C22.2857 15.4643 22.0599 16.0093 21.658 16.4112L16.4112 21.658C16.0093 22.0599 15.4643 22.2857 14.896 22.2857H9.10394C8.53562 22.2857 7.99057 22.0599 7.58871 21.658L2.34186 16.4112C1.94 16.0093 1.71423 15.4643 1.71423 14.896V9.10394C1.71423 8.53562 1.94 7.99057 2.34186 7.58871L7.58871 2.34186C7.99057 1.94 8.53562 1.71423 9.10394 1.71423H14.896ZM14.896 3.42852H9.10394C8.99027 3.42852 8.88126 3.47367 8.80089 3.55404L3.55404 8.80089C3.47367 8.88126 3.42852 8.99027 3.42852 9.10394V14.896C3.42852 15.0096 3.47367 15.1186 3.55404 15.199L8.80089 20.4459C8.88126 20.5262 8.99027 20.5714 9.10394 20.5714H14.896C15.0096 20.5714 15.1186 20.5262 15.199 20.4459L20.4459 15.199C20.5262 15.1186 20.5714 15.0096 20.5714 14.896V9.10394C20.5714 8.99027 20.5262 8.88126 20.4459 8.80089L15.199 3.55404C15.1186 3.47367 15.0096 3.42852 14.896 3.42852ZM11.9999 14.4L12.1052 14.4053C12.6238 14.458 13.0285 14.896 13.0285 15.4285C13.0285 15.9965 12.5681 16.457 12 16.457L11.8948 16.4517C11.3762 16.399 10.9715 15.961 10.9715 15.4285C10.9715 14.8605 11.4319 14.4 11.9999 14.4ZM11.9999 6.85709C12.4733 6.85709 12.8571 7.24085 12.8571 7.71423V11.9999C12.8571 12.4733 12.4733 12.8571 11.9999 12.8571C11.5266 12.8571 11.1428 12.4733 11.1428 11.9999V7.71423C11.1428 7.24085 11.5266 6.85709 11.9999 6.85709Z" fill="#007AFF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.5 KiB |
+6
-23
@@ -1,23 +1,6 @@
|
|||||||
FIREBASE_ANDROID_API_KEY=AIzaSyDPn3T4BMShrcedtqzA-8Lh3Fsm1EGB7S8
|
FIREBASE_ANDROID_API_KEY=example
|
||||||
FIREBASE_ANDROID_APP_ID=1:611786135906:android:6fa64d94eb8f8603e3743b
|
FIREBASE_ANDROID_APP_ID=example
|
||||||
FIREBASE_ANDROID_MESSAGING_SENDER_ID=611786135906
|
FIREBASE_ANDROID_MESSAGING_SENDER_ID=example
|
||||||
FIREBASE_ANDROID_PROJECT_ID=fir-jmap-poc
|
FIREBASE_ANDROID_PROJECT_ID=example
|
||||||
FIREBASE_ANDROID_DATABASE_URL=https://fir-jmap-poc-default-rtdb.asia-southeast1.firebasedatabase.app
|
FIREBASE_ANDROID_DATABASE_URL=https://example.com
|
||||||
FIREBASE_ANDROID_STORAGE_BUCKET=fir-jmap-poc.appspot.com
|
FIREBASE_ANDROID_STORAGE_BUCKET=example.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
|
|
||||||
@@ -164,6 +164,8 @@ class ImagePaths {
|
|||||||
String get icPageNotFound => _getImagePath('ic_page_not_found.svg');
|
String get icPageNotFound => _getImagePath('ic_page_not_found.svg');
|
||||||
String get icOpenInNewTab => _getImagePath('ic_open_in_new_tab.svg');
|
String get icOpenInNewTab => _getImagePath('ic_open_in_new_tab.svg');
|
||||||
String get icInfoCircleOutline => _getImagePath('ic_info_circle_outline.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) {
|
String _getImagePath(String imageName) {
|
||||||
return AssetsPaths.images + imageName;
|
return AssetsPaths.images + imageName;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
SERVER_URL=https://gateway.upn.integration-open-paas.org
|
SERVER_URL=http://localhost/
|
||||||
DOMAIN_REDIRECT_URL=http://localhost:3000
|
DOMAIN_REDIRECT_URL=http://localhost:3000
|
||||||
WEB_OIDC_CLIENT_ID=teammail-web
|
WEB_OIDC_CLIENT_ID=teammail-web
|
||||||
APP_GRID_AVAILABLE=supported
|
APP_GRID_AVAILABLE=supported
|
||||||
|
|||||||
@@ -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/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/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_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/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/action/dashboard_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.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:
|
case MailboxActions.openInNewTab:
|
||||||
openMailboxInNewTabAction(mailbox);
|
openMailboxInNewTabAction(mailbox);
|
||||||
break;
|
break;
|
||||||
|
case MailboxActions.disableSpamReport:
|
||||||
|
case MailboxActions.enableSpamReport:
|
||||||
|
final _currentSpamReportState = mailboxDashBoardController.enableSpamRepot;
|
||||||
|
final _storeSpamReportState = _currentSpamReportState ? SpamReportState.disabled : SpamReportState.enabled;
|
||||||
|
mailboxDashBoardController.storeSpamReportStateAction(_storeSpamReportState);
|
||||||
|
return;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -408,6 +408,11 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
|
|||||||
MailboxActions.delete
|
MailboxActions.delete
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if(mailbox.isSpam) {
|
||||||
|
mailboxActionsSupported.insert(1,
|
||||||
|
controller.mailboxDashBoardController.enableSpamRepot ? MailboxActions.disableSpamReport : MailboxActions.enableSpamReport);
|
||||||
|
}
|
||||||
|
|
||||||
final listContextMenuItemAction = mailboxActionsSupported
|
final listContextMenuItemAction = mailboxActionsSupported
|
||||||
.map((action) => ContextMenuItemMailboxAction(
|
.map((action) => ContextMenuItemMailboxAction(
|
||||||
action,
|
action,
|
||||||
@@ -488,7 +493,7 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
|
|||||||
styleName: TextStyle(
|
styleName: TextStyle(
|
||||||
fontWeight: FontWeight.normal,
|
fontWeight: FontWeight.normal,
|
||||||
fontSize: 17,
|
fontSize: 17,
|
||||||
color: contextMenuItem.action.getColorContextMenuIcon()),
|
color: contextMenuItem.action.getColorContextMenuTitle()),
|
||||||
onCallbackAction: () =>
|
onCallbackAction: () =>
|
||||||
controller.handleMailboxAction(context, contextMenuItem.action, mailbox)),
|
controller.handleMailboxAction(context, contextMenuItem.action, mailbox)),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -14,7 +14,9 @@ enum MailboxActions {
|
|||||||
move,
|
move,
|
||||||
markAsRead,
|
markAsRead,
|
||||||
selectForRuleAction,
|
selectForRuleAction,
|
||||||
openInNewTab
|
openInNewTab,
|
||||||
|
disableSpamReport,
|
||||||
|
enableSpamReport
|
||||||
}
|
}
|
||||||
|
|
||||||
extension MailboxActionsExtension on MailboxActions {
|
extension MailboxActionsExtension on MailboxActions {
|
||||||
@@ -38,6 +40,10 @@ extension MailboxActionsExtension on MailboxActions {
|
|||||||
switch(this) {
|
switch(this) {
|
||||||
case MailboxActions.openInNewTab:
|
case MailboxActions.openInNewTab:
|
||||||
return AppLocalizations.of(context).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:
|
case MailboxActions.markAsRead:
|
||||||
return AppLocalizations.of(context).mark_as_read;
|
return AppLocalizations.of(context).mark_as_read;
|
||||||
case MailboxActions.move:
|
case MailboxActions.move:
|
||||||
@@ -55,6 +61,10 @@ extension MailboxActionsExtension on MailboxActions {
|
|||||||
switch(this) {
|
switch(this) {
|
||||||
case MailboxActions.openInNewTab:
|
case MailboxActions.openInNewTab:
|
||||||
return imagePaths.icOpenInNewTab;
|
return imagePaths.icOpenInNewTab;
|
||||||
|
case MailboxActions.disableSpamReport:
|
||||||
|
return imagePaths.icSpamReportDisable;
|
||||||
|
case MailboxActions.enableSpamReport:
|
||||||
|
return imagePaths.icSpamReportEnable;
|
||||||
case MailboxActions.markAsRead:
|
case MailboxActions.markAsRead:
|
||||||
return imagePaths.icRead;
|
return imagePaths.icRead;
|
||||||
case MailboxActions.move:
|
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() {
|
Color getColorContextMenuIcon() {
|
||||||
switch(this) {
|
switch(this) {
|
||||||
case MailboxActions.delete:
|
case MailboxActions.delete:
|
||||||
return AppColor.colorActionDeleteConfirmDialog;
|
return AppColor.colorActionDeleteConfirmDialog;
|
||||||
|
case MailboxActions.disableSpamReport:
|
||||||
|
case MailboxActions.enableSpamReport:
|
||||||
|
return AppColor.primaryColor;
|
||||||
default:
|
default:
|
||||||
return Colors.black;
|
return Colors.black;
|
||||||
}
|
}
|
||||||
@@ -116,7 +138,9 @@ extension MailboxActionsExtension on MailboxActions {
|
|||||||
ContextMenuItemState getContextMenuItemState(PresentationMailbox mailbox) {
|
ContextMenuItemState getContextMenuItemState(PresentationMailbox mailbox) {
|
||||||
switch(this) {
|
switch(this) {
|
||||||
case MailboxActions.openInNewTab:
|
case MailboxActions.openInNewTab:
|
||||||
return ContextMenuItemState.activated;
|
case MailboxActions.disableSpamReport:
|
||||||
|
case MailboxActions.enableSpamReport:
|
||||||
|
return ContextMenuItemState.activated;
|
||||||
case MailboxActions.markAsRead:
|
case MailboxActions.markAsRead:
|
||||||
return mailbox.getCountUnReadEmails().isNotEmpty
|
return mailbox.getCountUnReadEmails().isNotEmpty
|
||||||
? ContextMenuItemState.activated
|
? ContextMenuItemState.activated
|
||||||
|
|||||||
@@ -23,5 +23,5 @@ abstract class SpamReportDataSource {
|
|||||||
|
|
||||||
Future<void> storeSpamReportState(SpamReportState spamReportState);
|
Future<void> storeSpamReportState(SpamReportState spamReportState);
|
||||||
|
|
||||||
Future<void> deletestoreSpamReportState();
|
Future<void> deleteSpamReportState();
|
||||||
}
|
}
|
||||||
+1
-1
@@ -51,7 +51,7 @@ class SharePreferenceSpamReportDataSourceImpl extends SpamReportDataSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> deletestoreSpamReportState() {
|
Future<void> deleteSpamReportState() {
|
||||||
return Future.sync(() async {
|
return Future.sync(() async {
|
||||||
return await _sharePreferenceSpamReportDataSource.deleteLastTimeDismissedSpamReported();
|
return await _sharePreferenceSpamReportDataSource.deleteLastTimeDismissedSpamReported();
|
||||||
}).catchError((error) {
|
}).catchError((error) {
|
||||||
|
|||||||
+1
-1
@@ -47,7 +47,7 @@ class SpamReportDataSourceImpl extends SpamReportDataSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> deletestoreSpamReportState() {
|
Future<void> deleteSpamReportState() {
|
||||||
throw UnimplementedError();
|
throw UnimplementedError();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -42,7 +42,7 @@ class SharePreferenceSpamReportDataSource extends SpamReportDataSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<bool> deletestoreSpamReportState() async {
|
Future<bool> deleteSpamReportState() async {
|
||||||
return await _sharedPreferences.remove(MailboxDashboardConstant.keySpamReportState);
|
return await _sharedPreferences.remove(MailboxDashboardConstant.keySpamReportState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ class SpamReportRepositoryImpl extends SpamReportRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> deletestoreSpamReportState() {
|
Future<void> deleteSpamReportState() {
|
||||||
return mapDataSource[DataSourceType.local]!.deletestoreSpamReportState();
|
return mapDataSource[DataSourceType.local]!.deleteSpamReportState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -23,5 +23,5 @@ abstract class SpamReportRepository {
|
|||||||
|
|
||||||
Future<void> storeSpamReportState(SpamReportState spamReportState);
|
Future<void> storeSpamReportState(SpamReportState spamReportState);
|
||||||
|
|
||||||
Future<void> deletestoreSpamReportState();
|
Future<void> deleteSpamReportState();
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
import 'package:core/presentation/state/failure.dart';
|
import 'package:core/presentation/state/failure.dart';
|
||||||
import 'package:core/presentation/state/success.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 StoreSpamReportStateLoading extends UIState {}
|
||||||
|
|
||||||
class StoreSpamReportStateSuccess extends UIState {
|
class StoreSpamReportStateSuccess extends UIState {
|
||||||
|
final SpamReportState spamReportState;
|
||||||
StoreSpamReportStateSuccess();
|
|
||||||
|
StoreSpamReportStateSuccess(this.spamReportState);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [];
|
List<Object> get props => [];
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ class DeleteSpamReportStateInteractor {
|
|||||||
Stream<Either<Failure, Success>> execute() async* {
|
Stream<Either<Failure, Success>> execute() async* {
|
||||||
try {
|
try {
|
||||||
yield Right<Failure, Success>(DeleteSpamReportStateLoading());
|
yield Right<Failure, Success>(DeleteSpamReportStateLoading());
|
||||||
await _spamReportRepository.deletestoreSpamReportState();
|
await _spamReportRepository.deleteSpamReportState();
|
||||||
yield Right<Failure, Success>(DeleteSpamReportStateSuccess());
|
yield Right<Failure, Success>(DeleteSpamReportStateSuccess());
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
yield Left<Failure, Success>(DeleteSpamReportStateFailure(e));
|
yield Left<Failure, Success>(DeleteSpamReportStateFailure(e));
|
||||||
|
|||||||
+2
-4
@@ -1,15 +1,13 @@
|
|||||||
|
|
||||||
|
|
||||||
import 'package:core/presentation/state/failure.dart';
|
import 'package:core/presentation/state/failure.dart';
|
||||||
import 'package:core/presentation/state/success.dart';
|
import 'package:core/presentation/state/success.dart';
|
||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_report_repository.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_report_repository.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_spam_report_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_spam_report_state.dart';
|
||||||
|
|
||||||
class StoreSpamReportStateInteractor {
|
class GetSpamReportStateInteractor {
|
||||||
final SpamReportRepository _spamReportRepository;
|
final SpamReportRepository _spamReportRepository;
|
||||||
|
|
||||||
StoreSpamReportStateInteractor(this._spamReportRepository);
|
GetSpamReportStateInteractor(this._spamReportRepository);
|
||||||
|
|
||||||
Stream<Either<Failure, Success>> execute() async* {
|
Stream<Either<Failure, Success>> execute() async* {
|
||||||
try {
|
try {
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@ class GetUnreadSpamMailboxInteractor {
|
|||||||
|
|
||||||
final _checkTimeCondition = (_timeLast.inHours > 0) && (_timeLast.inHours > conditionsForDisplayingSpamReportBanner);
|
final _checkTimeCondition = (_timeLast.inHours > 0) && (_timeLast.inHours > conditionsForDisplayingSpamReportBanner);
|
||||||
|
|
||||||
if (_checkTimeCondition) {
|
if (true) {
|
||||||
final _response = await _spamReportRepository.getUnreadSpamMailbox(accountId, mailboxFilterCondition: mailboxFilterCondition, limit: limit);
|
final _response = await _spamReportRepository.getUnreadSpamMailbox(accountId, mailboxFilterCondition: mailboxFilterCondition, limit: limit);
|
||||||
final _unreadSpamMailbox = _response.unreadSpamMailbox;
|
final _unreadSpamMailbox = _response.unreadSpamMailbox;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@ class StoreSpamReportStateInteractor {
|
|||||||
try {
|
try {
|
||||||
yield Right<Failure, Success>(StoreSpamReportStateLoading());
|
yield Right<Failure, Success>(StoreSpamReportStateLoading());
|
||||||
await _spamReportRepository.storeSpamReportState(spamReportState);
|
await _spamReportRepository.storeSpamReportState(spamReportState);
|
||||||
yield Right<Failure, Success>(StoreSpamReportStateSuccess());
|
yield Right<Failure, Success>(StoreSpamReportStateSuccess(spamReportState));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
yield Left<Failure, Success>(StoreSpamReportStateFailure(e));
|
yield Left<Failure, Success>(StoreSpamReportStateFailure(e));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_
|
|||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_all_recent_search_latest_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_all_recent_search_latest_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_app_dashboard_configuration_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_app_dashboard_configuration_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_spam_report_state_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_unread_spam_mailbox_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_unread_spam_mailbox_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/quick_search_email_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/quick_search_email_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web_interactor.dart';
|
||||||
@@ -80,6 +81,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_
|
|||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_recent_search_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_recent_search_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/store_last_time_dismissed_spam_reported_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/store_last_time_dismissed_spam_reported_interactor.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/store_spam_report_state_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/app_grid_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/app_grid_dashboard_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/download/download_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/download/download_controller.dart';
|
||||||
@@ -135,6 +137,8 @@ class MailboxDashBoardBindings extends BaseBindings {
|
|||||||
Get.put(SpamReportController(
|
Get.put(SpamReportController(
|
||||||
Get.find<StoreSpamReportInteractor>(),
|
Get.find<StoreSpamReportInteractor>(),
|
||||||
Get.find<GetUnreadSpamMailboxInteractor>(),
|
Get.find<GetUnreadSpamMailboxInteractor>(),
|
||||||
|
Get.find<StoreSpamReportStateInteractor>(),
|
||||||
|
Get.find<GetSpamReportStateInteractor>()
|
||||||
));
|
));
|
||||||
Get.put(MailboxDashBoardController(
|
Get.put(MailboxDashBoardController(
|
||||||
Get.find<LogoutOidcInteractor>(),
|
Get.find<LogoutOidcInteractor>(),
|
||||||
@@ -287,6 +291,10 @@ class MailboxDashBoardBindings extends BaseBindings {
|
|||||||
Get.find<SpamReportRepository>()));
|
Get.find<SpamReportRepository>()));
|
||||||
Get.lazyPut(() => GetUnreadSpamMailboxInteractor(
|
Get.lazyPut(() => GetUnreadSpamMailboxInteractor(
|
||||||
Get.find<SpamReportRepository>()));
|
Get.find<SpamReportRepository>()));
|
||||||
|
Get.lazyPut(() => StoreSpamReportStateInteractor(
|
||||||
|
Get.find<SpamReportRepository>()));
|
||||||
|
Get.lazyPut(() => GetSpamReportStateInteractor(
|
||||||
|
Get.find<SpamReportRepository>()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
+14
-1
@@ -47,6 +47,7 @@ import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read
|
|||||||
import 'package:tmail_ui_user/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.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/get_app_dashboard_configuration_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_app_dashboard_configuration_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_composer_cache_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_composer_cache_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/domain/state/remove_email_drafts_state.dart';
|
||||||
@@ -416,7 +417,7 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
} else {
|
} else {
|
||||||
dispatchRoute(DashboardRoutes.thread);
|
dispatchRoute(DashboardRoutes.thread);
|
||||||
}
|
}
|
||||||
spamReportController.getUnreadSpamMailboxAction(accountId.value!);
|
_showSpamReportbanner();
|
||||||
} else {
|
} else {
|
||||||
dispatchRoute(DashboardRoutes.thread);
|
dispatchRoute(DashboardRoutes.thread);
|
||||||
reload();
|
reload();
|
||||||
@@ -1526,6 +1527,18 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
dispatchAction(OpenSpamMailboxAction(context, presentationMailbox));
|
dispatchAction(OpenSpamMailboxAction(context, presentationMailbox));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool get enableSpamRepot => spamReportController.enableSpamReport;
|
||||||
|
|
||||||
|
void _showSpamReportbanner() {
|
||||||
|
if (spamReportController.enableSpamReport) {
|
||||||
|
spamReportController.getUnreadSpamMailboxAction(accountId.value!);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void storeSpamReportStateAction(SpamReportState spamReportState) {
|
||||||
|
spamReportController.storeSpamReportStateAction(spamReportState);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onClose() {
|
void onClose() {
|
||||||
_emailReceiveManager.closeEmailReceiveManagerStream();
|
_emailReceiveManager.closeEmailReceiveManagerStream();
|
||||||
|
|||||||
@@ -7,19 +7,31 @@ import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart
|
|||||||
import 'package:model/extensions/mailbox_extension.dart';
|
import 'package:model/extensions/mailbox_extension.dart';
|
||||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
import 'package:tmail_ui_user/features/base/base_controller.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/get_number_of_unread_spam_emails_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_spam_report_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/store_last_time_dismissed_spam_reported_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/store_last_time_dismissed_spam_reported_state.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/store_spam_report_state.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_spam_report_state_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_unread_spam_mailbox_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_unread_spam_mailbox_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/store_last_time_dismissed_spam_reported_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/store_last_time_dismissed_spam_reported_interactor.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/store_spam_report_state_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||||
|
|
||||||
class SpamReportController extends BaseController {
|
class SpamReportController extends BaseController {
|
||||||
final StoreSpamReportInteractor _storeSpamReportInteractor;
|
final StoreSpamReportInteractor _storeSpamReportInteractor;
|
||||||
final GetUnreadSpamMailboxInteractor _getNumberOfUnreadSpamEmailsInteractor;
|
final GetUnreadSpamMailboxInteractor _getNumberOfUnreadSpamEmailsInteractor;
|
||||||
|
final StoreSpamReportStateInteractor _storeSpamReportStateInteractor;
|
||||||
|
final GetSpamReportStateInteractor _getSpamReportStateInteractor;
|
||||||
|
|
||||||
final _presentationSpamMailbox = Rxn<PresentationMailbox>();
|
final _presentationSpamMailbox = Rxn<PresentationMailbox>();
|
||||||
|
final _spamReportState = Rxn<SpamReportState>(SpamReportState.enabled);
|
||||||
|
|
||||||
SpamReportController(this._storeSpamReportInteractor, this._getNumberOfUnreadSpamEmailsInteractor);
|
SpamReportController(
|
||||||
|
this._storeSpamReportInteractor,
|
||||||
|
this._getNumberOfUnreadSpamEmailsInteractor,
|
||||||
|
this._storeSpamReportStateInteractor,
|
||||||
|
this._getSpamReportStateInteractor);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onDone() {
|
void onDone() {
|
||||||
@@ -31,9 +43,15 @@ class SpamReportController extends BaseController {
|
|||||||
if(success is GetUnreadSpamMailboxSuccess){
|
if(success is GetUnreadSpamMailboxSuccess){
|
||||||
_presentationSpamMailbox.value = success.unreadSpamMailbox.toPresentationMailbox();
|
_presentationSpamMailbox.value = success.unreadSpamMailbox.toPresentationMailbox();
|
||||||
log('SpamReportController::GetNumberOfUnreadSpamEmailsSuccess():success $success');
|
log('SpamReportController::GetNumberOfUnreadSpamEmailsSuccess():success $success');
|
||||||
} else if(success is StoreLastTimeDismissedSpamReportSuccess){
|
} else if (success is StoreLastTimeDismissedSpamReportSuccess) {
|
||||||
_presentationSpamMailbox.value = null;
|
_presentationSpamMailbox.value = null;
|
||||||
log('SpamReportController::StoreLastTimeDismissedSpamReportSuccess():success $success');
|
log('SpamReportController::StoreLastTimeDismissedSpamReportSuccess():success $success');
|
||||||
|
} else if (success is GetSpamReportStateSuccess) {
|
||||||
|
_spamReportState.value = success.spamReportState;
|
||||||
|
log('SpamReportController::GetSpamReportStateSuccess():success $success');
|
||||||
|
} else if (success is StoreSpamReportStateSuccess) {
|
||||||
|
_spamReportState.value = success.spamReportState;
|
||||||
|
log('SpamReportController::StoreSpamReportStateSuccess():success $success');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@@ -43,8 +61,9 @@ class SpamReportController extends BaseController {
|
|||||||
_storeLastTimeDismissedSpamReportedAction();
|
_storeLastTimeDismissedSpamReportedAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
void getUnreadSpamMailboxAction(AccountId accountId){
|
void getUnreadSpamMailboxAction(AccountId accountId) {
|
||||||
final _mailboxFilterCondition = MailboxFilterCondition(role: Role('Spam'));
|
final _mailboxFilterCondition = MailboxFilterCondition(role: Role('Spam'));
|
||||||
|
getSpamReportStateAction();
|
||||||
consumeState(_getNumberOfUnreadSpamEmailsInteractor.execute(accountId,mailboxFilterCondition: _mailboxFilterCondition));
|
consumeState(_getNumberOfUnreadSpamEmailsInteractor.execute(accountId,mailboxFilterCondition: _mailboxFilterCondition));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,9 +75,19 @@ class SpamReportController extends BaseController {
|
|||||||
|
|
||||||
int get numberOfUnreadSpamEmails => (_presentationSpamMailbox.value?.unreadEmails?.value.value ?? 0).toInt();
|
int get numberOfUnreadSpamEmails => (_presentationSpamMailbox.value?.unreadEmails?.value.value ?? 0).toInt();
|
||||||
|
|
||||||
|
bool get enableSpamReport => _spamReportState.value == SpamReportState.enabled;
|
||||||
|
|
||||||
void openMailbox(BuildContext context) {
|
void openMailbox(BuildContext context) {
|
||||||
final _mailboxDashBoardController = Get.find<MailboxDashBoardController>();
|
final _mailboxDashBoardController = Get.find<MailboxDashBoardController>();
|
||||||
dismissSpamReportAction();
|
dismissSpamReportAction();
|
||||||
_mailboxDashBoardController.openSpamMailboxAction(context, _presentationSpamMailbox.value!);
|
_mailboxDashBoardController.openSpamMailboxAction(context, _presentationSpamMailbox.value!);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void storeSpamReportStateAction(SpamReportState spamReportState) {
|
||||||
|
consumeState(_storeSpamReportStateInteractor.execute(spamReportState));
|
||||||
|
}
|
||||||
|
|
||||||
|
void getSpamReportStateAction() {
|
||||||
|
consumeState(_getSpamReportStateInteractor.execute());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@ class SpamReportBannerWebWidget extends StatelessWidget {
|
|||||||
final _spamReportController = Get.find<SpamReportController>();
|
final _spamReportController = Get.find<SpamReportController>();
|
||||||
final _imagePaths = Get.find<ImagePaths>();
|
final _imagePaths = Get.find<ImagePaths>();
|
||||||
return Obx(() {
|
return Obx(() {
|
||||||
if (_spamReportController.notShowSpamReportBanner) {
|
if (!_spamReportController.enableSpamReport || _spamReportController.notShowSpamReportBanner) {
|
||||||
return const SizedBox(
|
return const SizedBox(
|
||||||
height: 8,
|
height: 8,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class SpamReportBannerWidget extends StatelessWidget {
|
|||||||
final _imagePaths = Get.find<ImagePaths>();
|
final _imagePaths = Get.find<ImagePaths>();
|
||||||
|
|
||||||
return Obx(() {
|
return Obx(() {
|
||||||
if (_spamReportController.notShowSpamReportBanner) {
|
if (!_spamReportController.enableSpamReport || _spamReportController.notShowSpamReportBanner) {
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
}
|
}
|
||||||
return Container(
|
return Container(
|
||||||
|
|||||||
@@ -2669,4 +2669,18 @@ class AppLocalizations {
|
|||||||
name: 'dismiss',
|
name: 'dismiss',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String get disableSpamReport {
|
||||||
|
return Intl.message(
|
||||||
|
'Disable Spam report',
|
||||||
|
name: 'disableSpamReport',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get enableSpamReport {
|
||||||
|
return Intl.message(
|
||||||
|
'Enable Spam report',
|
||||||
|
name: 'enableSpamReport',
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+123
-75
@@ -3,25 +3,26 @@
|
|||||||
// Do not manually edit this file.
|
// Do not manually edit this file.
|
||||||
|
|
||||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||||
import 'dart:async' as _i3;
|
import 'dart:async' as _i4;
|
||||||
|
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart' as _i5;
|
import 'package:jmap_dart_client/jmap/account_id.dart' as _i6;
|
||||||
import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i13;
|
import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i14;
|
||||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i9;
|
import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i10;
|
||||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i7;
|
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i8;
|
||||||
import 'package:jmap_dart_client/jmap/core/state.dart' as _i10;
|
import 'package:jmap_dart_client/jmap/core/state.dart' as _i11;
|
||||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart' as _i6;
|
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart' as _i7;
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart' as _i12;
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart' as _i13;
|
||||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart' as _i14;
|
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart' as _i15;
|
||||||
import 'package:mockito/mockito.dart' as _i1;
|
import 'package:mockito/mockito.dart' as _i1;
|
||||||
|
import 'package:model/email/presentation_email.dart' as _i2;
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/email_filter.dart'
|
import 'package:tmail_ui_user/features/thread/domain/model/email_filter.dart'
|
||||||
as _i8;
|
as _i9;
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart'
|
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart'
|
||||||
as _i4;
|
as _i5;
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dart'
|
import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dart'
|
||||||
as _i11;
|
as _i12;
|
||||||
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart'
|
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart'
|
||||||
as _i2;
|
as _i3;
|
||||||
|
|
||||||
// ignore_for_file: type=lint
|
// ignore_for_file: type=lint
|
||||||
// ignore_for_file: avoid_redundant_argument_values
|
// ignore_for_file: avoid_redundant_argument_values
|
||||||
@@ -33,80 +34,127 @@ import 'package:tmail_ui_user/features/thread/domain/repository/thread_repositor
|
|||||||
// ignore_for_file: unnecessary_parenthesis
|
// ignore_for_file: unnecessary_parenthesis
|
||||||
// ignore_for_file: camel_case_types
|
// ignore_for_file: camel_case_types
|
||||||
|
|
||||||
|
class _FakePresentationEmail_0 extends _i1.Fake
|
||||||
|
implements _i2.PresentationEmail {}
|
||||||
|
|
||||||
/// A class which mocks [ThreadRepository].
|
/// A class which mocks [ThreadRepository].
|
||||||
///
|
///
|
||||||
/// See the documentation for Mockito's code generation for more information.
|
/// See the documentation for Mockito's code generation for more information.
|
||||||
class MockThreadRepository extends _i1.Mock implements _i2.ThreadRepository {
|
class MockThreadRepository extends _i1.Mock implements _i3.ThreadRepository {
|
||||||
MockThreadRepository() {
|
MockThreadRepository() {
|
||||||
_i1.throwOnMissingStub(this);
|
_i1.throwOnMissingStub(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_i3.Stream<_i4.EmailsResponse> getAllEmail(_i5.AccountId? accountId,
|
_i4.Stream<_i5.EmailsResponse> getAllEmail(
|
||||||
{_i6.UnsignedInt? limit,
|
_i6.AccountId? accountId, {
|
||||||
Set<_i7.Comparator>? sort,
|
_i7.UnsignedInt? limit,
|
||||||
_i8.EmailFilter? emailFilter,
|
Set<_i8.Comparator>? sort,
|
||||||
_i9.Properties? propertiesCreated,
|
_i9.EmailFilter? emailFilter,
|
||||||
_i9.Properties? propertiesUpdated}) =>
|
_i10.Properties? propertiesCreated,
|
||||||
|
_i10.Properties? propertiesUpdated,
|
||||||
|
}) =>
|
||||||
(super.noSuchMethod(
|
(super.noSuchMethod(
|
||||||
Invocation.method(#getAllEmail, [
|
Invocation.method(
|
||||||
accountId
|
#getAllEmail,
|
||||||
], {
|
[accountId],
|
||||||
#limit: limit,
|
{
|
||||||
#sort: sort,
|
#limit: limit,
|
||||||
#emailFilter: emailFilter,
|
#sort: sort,
|
||||||
#propertiesCreated: propertiesCreated,
|
#emailFilter: emailFilter,
|
||||||
#propertiesUpdated: propertiesUpdated
|
#propertiesCreated: propertiesCreated,
|
||||||
}),
|
#propertiesUpdated: propertiesUpdated,
|
||||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
},
|
||||||
as _i3.Stream<_i4.EmailsResponse>);
|
),
|
||||||
|
returnValue: Stream<_i5.EmailsResponse>.empty(),
|
||||||
|
) as _i4.Stream<_i5.EmailsResponse>);
|
||||||
@override
|
@override
|
||||||
_i3.Stream<_i4.EmailsResponse> refreshChanges(
|
_i4.Stream<_i5.EmailsResponse> refreshChanges(
|
||||||
_i5.AccountId? accountId, _i10.State? currentState,
|
_i6.AccountId? accountId,
|
||||||
{Set<_i7.Comparator>? sort,
|
_i11.State? currentState, {
|
||||||
_i8.EmailFilter? emailFilter,
|
Set<_i8.Comparator>? sort,
|
||||||
_i9.Properties? propertiesCreated,
|
_i9.EmailFilter? emailFilter,
|
||||||
_i9.Properties? propertiesUpdated}) =>
|
_i10.Properties? propertiesCreated,
|
||||||
|
_i10.Properties? propertiesUpdated,
|
||||||
|
}) =>
|
||||||
(super.noSuchMethod(
|
(super.noSuchMethod(
|
||||||
Invocation.method(#refreshChanges, [
|
Invocation.method(
|
||||||
accountId,
|
#refreshChanges,
|
||||||
currentState
|
[
|
||||||
], {
|
accountId,
|
||||||
#sort: sort,
|
currentState,
|
||||||
#emailFilter: emailFilter,
|
],
|
||||||
#propertiesCreated: propertiesCreated,
|
{
|
||||||
#propertiesUpdated: propertiesUpdated
|
#sort: sort,
|
||||||
}),
|
#emailFilter: emailFilter,
|
||||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
#propertiesCreated: propertiesCreated,
|
||||||
as _i3.Stream<_i4.EmailsResponse>);
|
#propertiesUpdated: propertiesUpdated,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
returnValue: Stream<_i5.EmailsResponse>.empty(),
|
||||||
|
) as _i4.Stream<_i5.EmailsResponse>);
|
||||||
@override
|
@override
|
||||||
_i3.Stream<_i4.EmailsResponse> loadMoreEmails(
|
_i4.Stream<_i5.EmailsResponse> loadMoreEmails(
|
||||||
_i11.GetEmailRequest? emailRequest) =>
|
_i12.GetEmailRequest? emailRequest) =>
|
||||||
(super.noSuchMethod(Invocation.method(#loadMoreEmails, [emailRequest]),
|
|
||||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
|
||||||
as _i3.Stream<_i4.EmailsResponse>);
|
|
||||||
@override
|
|
||||||
_i3.Future<List<_i12.Email>> searchEmails(_i5.AccountId? accountId,
|
|
||||||
{_i6.UnsignedInt? limit,
|
|
||||||
Set<_i7.Comparator>? sort,
|
|
||||||
_i13.Filter? filter,
|
|
||||||
_i9.Properties? properties}) =>
|
|
||||||
(super.noSuchMethod(
|
(super.noSuchMethod(
|
||||||
Invocation.method(#searchEmails, [
|
Invocation.method(
|
||||||
accountId
|
#loadMoreEmails,
|
||||||
], {
|
[emailRequest],
|
||||||
#limit: limit,
|
),
|
||||||
#sort: sort,
|
returnValue: Stream<_i5.EmailsResponse>.empty(),
|
||||||
#filter: filter,
|
) as _i4.Stream<_i5.EmailsResponse>);
|
||||||
#properties: properties
|
|
||||||
}),
|
|
||||||
returnValue: Future<List<_i12.Email>>.value(<_i12.Email>[]))
|
|
||||||
as _i3.Future<List<_i12.Email>>);
|
|
||||||
@override
|
@override
|
||||||
_i3.Future<List<_i12.EmailId>> emptyTrashFolder(
|
_i4.Future<List<_i13.Email>> searchEmails(
|
||||||
_i5.AccountId? accountId, _i14.MailboxId? trashMailboxId) =>
|
_i6.AccountId? accountId, {
|
||||||
|
_i7.UnsignedInt? limit,
|
||||||
|
Set<_i8.Comparator>? sort,
|
||||||
|
_i14.Filter? filter,
|
||||||
|
_i10.Properties? properties,
|
||||||
|
}) =>
|
||||||
(super.noSuchMethod(
|
(super.noSuchMethod(
|
||||||
Invocation.method(#emptyTrashFolder, [accountId, trashMailboxId]),
|
Invocation.method(
|
||||||
returnValue: Future<List<_i12.EmailId>>.value(<_i12.EmailId>[]))
|
#searchEmails,
|
||||||
as _i3.Future<List<_i12.EmailId>>);
|
[accountId],
|
||||||
}
|
{
|
||||||
|
#limit: limit,
|
||||||
|
#sort: sort,
|
||||||
|
#filter: filter,
|
||||||
|
#properties: properties,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
returnValue: Future<List<_i13.Email>>.value(<_i13.Email>[]),
|
||||||
|
) as _i4.Future<List<_i13.Email>>);
|
||||||
|
@override
|
||||||
|
_i4.Future<List<_i13.EmailId>> emptyTrashFolder(
|
||||||
|
_i6.AccountId? accountId,
|
||||||
|
_i15.MailboxId? trashMailboxId,
|
||||||
|
) =>
|
||||||
|
(super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#emptyTrashFolder,
|
||||||
|
[
|
||||||
|
accountId,
|
||||||
|
trashMailboxId,
|
||||||
|
],
|
||||||
|
),
|
||||||
|
returnValue: Future<List<_i13.EmailId>>.value(<_i13.EmailId>[]),
|
||||||
|
) as _i4.Future<List<_i13.EmailId>>);
|
||||||
|
@override
|
||||||
|
_i4.Future<_i2.PresentationEmail> getEmailById(
|
||||||
|
_i6.AccountId? accountId,
|
||||||
|
_i13.EmailId? emailId, {
|
||||||
|
_i10.Properties? properties,
|
||||||
|
}) =>
|
||||||
|
(super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#getEmailById,
|
||||||
|
[
|
||||||
|
accountId,
|
||||||
|
emailId,
|
||||||
|
],
|
||||||
|
{#properties: properties},
|
||||||
|
),
|
||||||
|
returnValue:
|
||||||
|
Future<_i2.PresentationEmail>.value(_FakePresentationEmail_0()),
|
||||||
|
) as _i4.Future<_i2.PresentationEmail>);
|
||||||
|
}
|
||||||
|
|||||||
+123
-75
@@ -3,25 +3,26 @@
|
|||||||
// Do not manually edit this file.
|
// Do not manually edit this file.
|
||||||
|
|
||||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||||
import 'dart:async' as _i3;
|
import 'dart:async' as _i4;
|
||||||
|
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart' as _i5;
|
import 'package:jmap_dart_client/jmap/account_id.dart' as _i6;
|
||||||
import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i13;
|
import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i14;
|
||||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i9;
|
import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i10;
|
||||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i7;
|
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i8;
|
||||||
import 'package:jmap_dart_client/jmap/core/state.dart' as _i10;
|
import 'package:jmap_dart_client/jmap/core/state.dart' as _i11;
|
||||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart' as _i6;
|
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart' as _i7;
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart' as _i12;
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart' as _i13;
|
||||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart' as _i14;
|
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart' as _i15;
|
||||||
import 'package:mockito/mockito.dart' as _i1;
|
import 'package:mockito/mockito.dart' as _i1;
|
||||||
|
import 'package:model/email/presentation_email.dart' as _i2;
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/email_filter.dart'
|
import 'package:tmail_ui_user/features/thread/domain/model/email_filter.dart'
|
||||||
as _i8;
|
as _i9;
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart'
|
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart'
|
||||||
as _i4;
|
as _i5;
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dart'
|
import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dart'
|
||||||
as _i11;
|
as _i12;
|
||||||
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart'
|
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart'
|
||||||
as _i2;
|
as _i3;
|
||||||
|
|
||||||
// ignore_for_file: type=lint
|
// ignore_for_file: type=lint
|
||||||
// ignore_for_file: avoid_redundant_argument_values
|
// ignore_for_file: avoid_redundant_argument_values
|
||||||
@@ -33,80 +34,127 @@ import 'package:tmail_ui_user/features/thread/domain/repository/thread_repositor
|
|||||||
// ignore_for_file: unnecessary_parenthesis
|
// ignore_for_file: unnecessary_parenthesis
|
||||||
// ignore_for_file: camel_case_types
|
// ignore_for_file: camel_case_types
|
||||||
|
|
||||||
|
class _FakePresentationEmail_0 extends _i1.Fake
|
||||||
|
implements _i2.PresentationEmail {}
|
||||||
|
|
||||||
/// A class which mocks [ThreadRepository].
|
/// A class which mocks [ThreadRepository].
|
||||||
///
|
///
|
||||||
/// See the documentation for Mockito's code generation for more information.
|
/// See the documentation for Mockito's code generation for more information.
|
||||||
class MockThreadRepository extends _i1.Mock implements _i2.ThreadRepository {
|
class MockThreadRepository extends _i1.Mock implements _i3.ThreadRepository {
|
||||||
MockThreadRepository() {
|
MockThreadRepository() {
|
||||||
_i1.throwOnMissingStub(this);
|
_i1.throwOnMissingStub(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_i3.Stream<_i4.EmailsResponse> getAllEmail(_i5.AccountId? accountId,
|
_i4.Stream<_i5.EmailsResponse> getAllEmail(
|
||||||
{_i6.UnsignedInt? limit,
|
_i6.AccountId? accountId, {
|
||||||
Set<_i7.Comparator>? sort,
|
_i7.UnsignedInt? limit,
|
||||||
_i8.EmailFilter? emailFilter,
|
Set<_i8.Comparator>? sort,
|
||||||
_i9.Properties? propertiesCreated,
|
_i9.EmailFilter? emailFilter,
|
||||||
_i9.Properties? propertiesUpdated}) =>
|
_i10.Properties? propertiesCreated,
|
||||||
|
_i10.Properties? propertiesUpdated,
|
||||||
|
}) =>
|
||||||
(super.noSuchMethod(
|
(super.noSuchMethod(
|
||||||
Invocation.method(#getAllEmail, [
|
Invocation.method(
|
||||||
accountId
|
#getAllEmail,
|
||||||
], {
|
[accountId],
|
||||||
#limit: limit,
|
{
|
||||||
#sort: sort,
|
#limit: limit,
|
||||||
#emailFilter: emailFilter,
|
#sort: sort,
|
||||||
#propertiesCreated: propertiesCreated,
|
#emailFilter: emailFilter,
|
||||||
#propertiesUpdated: propertiesUpdated
|
#propertiesCreated: propertiesCreated,
|
||||||
}),
|
#propertiesUpdated: propertiesUpdated,
|
||||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
},
|
||||||
as _i3.Stream<_i4.EmailsResponse>);
|
),
|
||||||
|
returnValue: Stream<_i5.EmailsResponse>.empty(),
|
||||||
|
) as _i4.Stream<_i5.EmailsResponse>);
|
||||||
@override
|
@override
|
||||||
_i3.Stream<_i4.EmailsResponse> refreshChanges(
|
_i4.Stream<_i5.EmailsResponse> refreshChanges(
|
||||||
_i5.AccountId? accountId, _i10.State? currentState,
|
_i6.AccountId? accountId,
|
||||||
{Set<_i7.Comparator>? sort,
|
_i11.State? currentState, {
|
||||||
_i8.EmailFilter? emailFilter,
|
Set<_i8.Comparator>? sort,
|
||||||
_i9.Properties? propertiesCreated,
|
_i9.EmailFilter? emailFilter,
|
||||||
_i9.Properties? propertiesUpdated}) =>
|
_i10.Properties? propertiesCreated,
|
||||||
|
_i10.Properties? propertiesUpdated,
|
||||||
|
}) =>
|
||||||
(super.noSuchMethod(
|
(super.noSuchMethod(
|
||||||
Invocation.method(#refreshChanges, [
|
Invocation.method(
|
||||||
accountId,
|
#refreshChanges,
|
||||||
currentState
|
[
|
||||||
], {
|
accountId,
|
||||||
#sort: sort,
|
currentState,
|
||||||
#emailFilter: emailFilter,
|
],
|
||||||
#propertiesCreated: propertiesCreated,
|
{
|
||||||
#propertiesUpdated: propertiesUpdated
|
#sort: sort,
|
||||||
}),
|
#emailFilter: emailFilter,
|
||||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
#propertiesCreated: propertiesCreated,
|
||||||
as _i3.Stream<_i4.EmailsResponse>);
|
#propertiesUpdated: propertiesUpdated,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
returnValue: Stream<_i5.EmailsResponse>.empty(),
|
||||||
|
) as _i4.Stream<_i5.EmailsResponse>);
|
||||||
@override
|
@override
|
||||||
_i3.Stream<_i4.EmailsResponse> loadMoreEmails(
|
_i4.Stream<_i5.EmailsResponse> loadMoreEmails(
|
||||||
_i11.GetEmailRequest? emailRequest) =>
|
_i12.GetEmailRequest? emailRequest) =>
|
||||||
(super.noSuchMethod(Invocation.method(#loadMoreEmails, [emailRequest]),
|
|
||||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
|
||||||
as _i3.Stream<_i4.EmailsResponse>);
|
|
||||||
@override
|
|
||||||
_i3.Future<List<_i12.Email>> searchEmails(_i5.AccountId? accountId,
|
|
||||||
{_i6.UnsignedInt? limit,
|
|
||||||
Set<_i7.Comparator>? sort,
|
|
||||||
_i13.Filter? filter,
|
|
||||||
_i9.Properties? properties}) =>
|
|
||||||
(super.noSuchMethod(
|
(super.noSuchMethod(
|
||||||
Invocation.method(#searchEmails, [
|
Invocation.method(
|
||||||
accountId
|
#loadMoreEmails,
|
||||||
], {
|
[emailRequest],
|
||||||
#limit: limit,
|
),
|
||||||
#sort: sort,
|
returnValue: Stream<_i5.EmailsResponse>.empty(),
|
||||||
#filter: filter,
|
) as _i4.Stream<_i5.EmailsResponse>);
|
||||||
#properties: properties
|
|
||||||
}),
|
|
||||||
returnValue: Future<List<_i12.Email>>.value(<_i12.Email>[]))
|
|
||||||
as _i3.Future<List<_i12.Email>>);
|
|
||||||
@override
|
@override
|
||||||
_i3.Future<List<_i12.EmailId>> emptyTrashFolder(
|
_i4.Future<List<_i13.Email>> searchEmails(
|
||||||
_i5.AccountId? accountId, _i14.MailboxId? trashMailboxId) =>
|
_i6.AccountId? accountId, {
|
||||||
|
_i7.UnsignedInt? limit,
|
||||||
|
Set<_i8.Comparator>? sort,
|
||||||
|
_i14.Filter? filter,
|
||||||
|
_i10.Properties? properties,
|
||||||
|
}) =>
|
||||||
(super.noSuchMethod(
|
(super.noSuchMethod(
|
||||||
Invocation.method(#emptyTrashFolder, [accountId, trashMailboxId]),
|
Invocation.method(
|
||||||
returnValue: Future<List<_i12.EmailId>>.value(<_i12.EmailId>[]))
|
#searchEmails,
|
||||||
as _i3.Future<List<_i12.EmailId>>);
|
[accountId],
|
||||||
}
|
{
|
||||||
|
#limit: limit,
|
||||||
|
#sort: sort,
|
||||||
|
#filter: filter,
|
||||||
|
#properties: properties,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
returnValue: Future<List<_i13.Email>>.value(<_i13.Email>[]),
|
||||||
|
) as _i4.Future<List<_i13.Email>>);
|
||||||
|
@override
|
||||||
|
_i4.Future<List<_i13.EmailId>> emptyTrashFolder(
|
||||||
|
_i6.AccountId? accountId,
|
||||||
|
_i15.MailboxId? trashMailboxId,
|
||||||
|
) =>
|
||||||
|
(super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#emptyTrashFolder,
|
||||||
|
[
|
||||||
|
accountId,
|
||||||
|
trashMailboxId,
|
||||||
|
],
|
||||||
|
),
|
||||||
|
returnValue: Future<List<_i13.EmailId>>.value(<_i13.EmailId>[]),
|
||||||
|
) as _i4.Future<List<_i13.EmailId>>);
|
||||||
|
@override
|
||||||
|
_i4.Future<_i2.PresentationEmail> getEmailById(
|
||||||
|
_i6.AccountId? accountId,
|
||||||
|
_i13.EmailId? emailId, {
|
||||||
|
_i10.Properties? properties,
|
||||||
|
}) =>
|
||||||
|
(super.noSuchMethod(
|
||||||
|
Invocation.method(
|
||||||
|
#getEmailById,
|
||||||
|
[
|
||||||
|
accountId,
|
||||||
|
emailId,
|
||||||
|
],
|
||||||
|
{#properties: properties},
|
||||||
|
),
|
||||||
|
returnValue:
|
||||||
|
Future<_i2.PresentationEmail>.value(_FakePresentationEmail_0()),
|
||||||
|
) as _i4.Future<_i2.PresentationEmail>);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user