TF-1362: [Presentation] Create UI for all device and Add Action dismiss

This commit is contained in:
HuyNguyen
2023-01-10 00:25:21 +07:00
committed by Dat Vu
parent 6030aec159
commit db5cc6a47b
18 changed files with 264 additions and 36 deletions
@@ -1,4 +1,4 @@
abstract class SpamReportRepository {
abstract class StoreLastTimeDismissedSpamReportInteractor {
Future<void> storeLastTimeDismissedSpamReported(DateTime lastTimeDismissedSpamReported);
Future<DateTime> getLastTimeDismissedSpamReported();
@@ -0,0 +1,21 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
class StoreLastTimeDismissedSpamReportLoading extends UIState {}
class StoreLastTimeDismissedSpamReportSuccess extends UIState {
StoreLastTimeDismissedSpamReportSuccess();
@override
List<Object> get props => [];
}
class StoreLastTimeDismissedSpamReportFailure extends FeatureFailure {
final dynamic exception;
StoreLastTimeDismissedSpamReportFailure(this.exception);
@override
List<Object> get props => [exception];
}
@@ -1,21 +0,0 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
class StoreSpamReportLoading extends UIState {}
class StoreSpamReportSuccess extends UIState {
StoreSpamReportSuccess();
@override
List<Object> get props => [];
}
class StoreSpamReportFailure extends FeatureFailure {
final dynamic exception;
StoreSpamReportFailure(this.exception);
@override
List<Object> get props => [exception];
}
@@ -5,10 +5,10 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_last_time_dismissed_spam_reported_state.dart';
class GetSpamReportInteractor {
final SpamReportRepository _spamReportRepository;
class GetLastTimeDismissedSpamReportInteractor {
final StoreLastTimeDismissedSpamReportInteractor _spamReportRepository;
GetSpamReportInteractor(this._spamReportRepository);
GetLastTimeDismissedSpamReportInteractor(this._spamReportRepository);
Stream<Either<Failure, Success>> execute() async* {
try {
@@ -2,20 +2,20 @@ import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.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/state/store_spam_report_state.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/store_last_time_dismissed_spam_reported_state.dart';
class StoreSpamReportInteractor {
final SpamReportRepository _spamReportRepository;
final StoreLastTimeDismissedSpamReportInteractor _spamReportRepository;
StoreSpamReportInteractor(this._spamReportRepository);
Stream<Either<Failure, Success>> execute(DateTime lastTimeDismissedSpamReported) async* {
try {
yield Right<Failure, Success>(StoreSpamReportLoading());
yield Right<Failure, Success>(StoreLastTimeDismissedSpamReportLoading());
await _spamReportRepository.storeLastTimeDismissedSpamReported(lastTimeDismissedSpamReported);
yield Right<Failure, Success>(StoreSpamReportSuccess());
yield Right<Failure, Success>(StoreLastTimeDismissedSpamReportSuccess());
} catch (e) {
yield Left<Failure, Success>(StoreSpamReportFailure(e));
yield Left<Failure, Success>(StoreLastTimeDismissedSpamReportFailure(e));
}
}
}