TF-322 Sort default mailbox in TreeBuilder

This commit is contained in:
Dat PHAM HOANG
2022-03-18 17:06:13 +07:00
committed by Dat H. Pham
parent c2dc3b43fb
commit 71fc8a595e
6 changed files with 61 additions and 10 deletions
@@ -4,7 +4,6 @@ import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/core/state.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:tmail_ui_user/features/mailbox/data/datasource/mailbox_datasource.dart';
import 'package:tmail_ui_user/features/mailbox/data/extensions/mailbox_extension.dart';
import 'package:tmail_ui_user/features/mailbox/data/local/mailbox_cache_manager.dart';
import 'package:tmail_ui_user/features/mailbox/data/model/mailbox_change_response.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
@@ -40,7 +39,6 @@ class MailboxCacheDataSourceImpl extends MailboxDataSource {
Future<List<Mailbox>> getAllMailboxCache() {
return Future.sync(() async {
final listMailboxes = await _mailboxCacheManager.getAllMailbox();
listMailboxes.sort((mailboxA, mailboxB) => mailboxA.compareTo(mailboxB));
return listMailboxes;
}).catchError((error) {
throw error;
@@ -1,6 +1,6 @@
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:tmail_ui_user/features/mailbox/data/model/mailbox_cache.dart';
import 'package:tmail_ui_user/features/mailbox/data/extensions/mailbox_rights_extension.dart';
import 'package:tmail_ui_user/features/mailbox/data/model/mailbox_cache.dart';
extension MailboxExtension on Mailbox {
@@ -19,8 +19,4 @@ extension MailboxExtension on Mailbox {
isSubscribed: isSubscribed?.value
);
}
int compareTo(Mailbox other) {
return this.sortOrder!.value.value.compareTo(other.sortOrder!.value.value);
}
}
@@ -135,4 +135,16 @@ extension MailboxNodeExtension on MailboxNode {
selectMode: selectMode,
);
}
int compareTo(MailboxNode other) {
if (item.sortOrder == null) {
return -1;
}
if (other.item.sortOrder == null) {
return 1;
}
return item.sortOrder!.value.value.compareTo(other.item.sortOrder!.value.value);
}
}
@@ -72,6 +72,7 @@ class TreeBuilder {
}
});
defaultTree.root.childrenItems?.sort((thisMailbox, thatMailbox) => thisMailbox.compareTo(thatMailbox));
return Tuple2(defaultTree, folderTree);
}
}
@@ -1,4 +1,3 @@
import 'package:core/core.dart';
import 'package:get/get.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:tmail_ui_user/features/login/data/repository/credential_repository_impl.dart';
@@ -8,7 +7,6 @@ import 'package:tmail_ui_user/features/login/domain/usecases/get_credential_inte
class CredentialBindings extends Bindings {
void dependencies() {
log('CredentialBindings::dependencies(): dmm credential goi vao day di');
bindingsRepositoryImpl();
bindingsRepository();
bindingsInteractor();
@@ -19,7 +17,6 @@ class CredentialBindings extends Bindings {
}
void bindingsRepository() {
log('CredentialBindings::bindingsRepository(): dmm Put CredentialRepo ');
Get.put<CredentialRepository>(Get.find<CredentialRepositoryImpl>());
}