TF-1616: Fix drag and drop email to mailbox

(cherry picked from commit 324a28c958dd9b4b9f25d7ce18c6a2a4a5c18531)
This commit is contained in:
HuyNguyen
2023-03-17 15:46:04 +07:00
committed by Dat Vu
parent 9c672d4835
commit 55e9a8c8b3
3 changed files with 41 additions and 3 deletions
@@ -93,6 +93,8 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
final SubscribeMultipleMailboxInteractor _subscribeMultipleMailboxInteractor;
final currentSelectMode = SelectMode.INACTIVE.obs;
final _activeScrollTop = RxBool(false);
final _activeScrollBottom = RxBool(true);
final _openMailboxEventController = StreamController<OpenMailboxViewEvent>();
final mailboxListScrollController = ScrollController();
@@ -130,8 +132,8 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
_openMailboxEventController.stream.throttleTime(const Duration(milliseconds: 800)).listen((event) {
_handleOpenMailbox(event.buildContext, event.presentationMailbox);
});
_initCollapseMailboxCategories();
mailboxListScrollController.addListener(_mailboxListScrollControllerListener);
super.onReady();
}
@@ -1127,4 +1129,33 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
}
}
}
void _mailboxListScrollControllerListener() {
_handleScrollTop();
_handleScrollBottom();
}
void _handleScrollTop() {
if (mailboxListScrollController.position.pixels == 0) {
_activeScrollTop.value = false;
}
if (mailboxListScrollController.position.pixels > 40) {
_activeScrollTop.value = true;
}
}
void _handleScrollBottom() {
if (mailboxListScrollController.position.pixels - mailboxListScrollController.position.maxScrollExtent == 0) {
_activeScrollBottom.value = false;
}
if (mailboxListScrollController.position.maxScrollExtent - mailboxListScrollController.position.pixels > 40) {
_activeScrollBottom.value = true;
}
}
bool get activeScrollTop => _activeScrollTop.value;
bool get activeScrollBottom => _activeScrollBottom.value;
}