TF-1362: [Presentation] : Implement StoreLastTimeDismissed and show detail for spam report banner
This commit is contained in:
+2
-2
@@ -6,11 +6,11 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/data/local/share_prefer
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart';
|
||||
import 'package:tmail_ui_user/main/exceptions/exception_thrower.dart';
|
||||
|
||||
class LocalSpamReportDataSourceImpl extends SpamReportDataSource {
|
||||
class SharePreferenceSpamReportDataSourceImpl extends SpamReportDataSource {
|
||||
final SharePreferenceSpamReportDataSource _sharePreferenceSpamReportDataSource;
|
||||
final ExceptionThrower _exceptionThrower;
|
||||
|
||||
LocalSpamReportDataSourceImpl(this._sharePreferenceSpamReportDataSource, this._exceptionThrower);
|
||||
SharePreferenceSpamReportDataSourceImpl(this._sharePreferenceSpamReportDataSource, this._exceptionThrower);
|
||||
@override
|
||||
Future<DateTime> getLastTimeDismissedSpamReported() async {
|
||||
return Future.sync(() async {
|
||||
+1
-1
@@ -27,7 +27,7 @@ class SpamReportDataSourceImpl extends SpamReportDataSource {
|
||||
}
|
||||
) {
|
||||
return Future.sync(() async {
|
||||
final _unreadSpamEmailsResponse = await _spamReportApi.findNumberOfUnreadSpamEmails(
|
||||
final _unreadSpamEmailsResponse = await _spamReportApi.getUnreadSpamEmailbox(
|
||||
accountId, mailboxFilterCondition: mailboxFilterCondition, limit: limit);
|
||||
return _unreadSpamEmailsResponse;
|
||||
}).catchError((error) {
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ class SharePreferenceSpamReportDataSource extends SpamReportDataSource {
|
||||
|
||||
@override
|
||||
Future<bool> storeLastTimeDismissedSpamReported(DateTime lastTimeDismissedSpamReported) async {
|
||||
final _timeStamp = lastTimeDismissedSpamReported.microsecondsSinceEpoch;
|
||||
final _timeStamp = lastTimeDismissedSpamReported.millisecondsSinceEpoch;
|
||||
return await _sharedPreferences.setInt(MailboxDashboardConstant.keyLastTimeDismissedSpamReported,_timeStamp);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
import 'package:jmap_dart_client/http/http_client.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/request/reference_path.dart';
|
||||
@@ -12,10 +11,11 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/unread_spa
|
||||
|
||||
class SpamReportApi {
|
||||
final HttpClient _httpClient;
|
||||
static const int _deafaultLimit = 1;
|
||||
|
||||
SpamReportApi(this._httpClient);
|
||||
|
||||
Future<UnreadSpamEmailsResponse> findNumberOfUnreadSpamEmails(
|
||||
Future<UnreadSpamEmailsResponse> getUnreadSpamEmailbox(
|
||||
AccountId accountId,
|
||||
{
|
||||
MailboxFilterCondition? mailboxFilterCondition,
|
||||
@@ -24,11 +24,11 @@ class SpamReportApi {
|
||||
) async {
|
||||
final processingInvocation = ProcessingInvocation();
|
||||
final requestBuilder = JmapRequestBuilder(_httpClient, processingInvocation);
|
||||
final spamReportQueryMethod = QueryMailboxMethod(accountId)..addLimit(limit ?? UnsignedInt(_deafaultLimit));
|
||||
|
||||
final spamReportQueryMethod = QueryMailboxMethod(accountId)..addLimit(limit ?? UnsignedInt(1));
|
||||
if(mailboxFilterCondition != null) spamReportQueryMethod.addFilters(mailboxFilterCondition);
|
||||
|
||||
final spamReportQueryMethodInvocation = requestBuilder.invocation(spamReportQueryMethod);
|
||||
|
||||
final getMailBoxMethod = GetMailboxMethod(accountId)
|
||||
..addReferenceIds(processingInvocation.createResultReference(
|
||||
spamReportQueryMethodInvocation.methodCallId,
|
||||
@@ -42,11 +42,10 @@ class SpamReportApi {
|
||||
|
||||
final _mailboxResponse = result
|
||||
.parse<GetMailboxResponse>(getMailboxInvocation.methodCallId, GetMailboxResponse.deserialize);
|
||||
|
||||
final _unreadSpamEmailNumber = _mailboxResponse?.list.first.unreadEmails?.value.value.toInt();
|
||||
|
||||
return Future.sync(() async {
|
||||
return UnreadSpamEmailsResponse(unreadSpamEmailNumber: _unreadSpamEmailNumber);
|
||||
final _unreadSpamMailbox = _mailboxResponse?.list.first;
|
||||
return UnreadSpamEmailsResponse(unreadSpamMailbox: _unreadSpamMailbox);
|
||||
}).catchError((error) {
|
||||
throw error;
|
||||
});
|
||||
|
||||
@@ -27,7 +27,7 @@ class SpamReportRepositoryImpl extends SpamReportRepository {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<UnreadSpamEmailsResponse> findNumberOfUnreadSpamEmails(
|
||||
Future<UnreadSpamEmailsResponse> getUnreadSpamMailbox(
|
||||
AccountId accountId,
|
||||
{
|
||||
MailboxFilterCondition? mailboxFilterCondition,
|
||||
@@ -35,6 +35,8 @@ class SpamReportRepositoryImpl extends SpamReportRepository {
|
||||
}
|
||||
) {
|
||||
return mapDataSource[DataSourceType.network]!.findNumberOfUnreadSpamEmails(
|
||||
accountId, mailboxFilterCondition: mailboxFilterCondition, limit: limit);
|
||||
accountId,
|
||||
mailboxFilterCondition: mailboxFilterCondition,
|
||||
limit: limit);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user