2024-01-24 18:44:34 +08:00
|
|
|
import 'dart:async';
|
|
|
|
|
|
|
|
|
|
import 'package:star_lock/tools/baseGetXController.dart';
|
|
|
|
|
import '../../../network/api_repository.dart';
|
|
|
|
|
import '../../../tools/eventBusEventManage.dart';
|
|
|
|
|
import 'messageList_entity.dart';
|
|
|
|
|
import 'messageList_state.dart';
|
|
|
|
|
|
2024-03-09 17:17:38 +08:00
|
|
|
typedef BlockDeletSuccssCallback = void Function();
|
2024-11-21 18:11:11 +08:00
|
|
|
|
2024-01-24 18:44:34 +08:00
|
|
|
class MessageListLogic extends BaseGetXController {
|
|
|
|
|
final MessageListState state = MessageListState();
|
|
|
|
|
|
2024-01-25 17:40:41 +08:00
|
|
|
//请求消息列表
|
|
|
|
|
Future<MessageListEntity> messageListDataRequest() async {
|
2024-11-21 18:11:11 +08:00
|
|
|
final MessageListEntity entity = await ApiRepository.to
|
|
|
|
|
.messageListLoadData(pageNo: pageNo.toString(), pageSize: pageSize);
|
2024-01-24 18:44:34 +08:00
|
|
|
if (entity.errorCode!.codeIsSuccessful) {
|
2024-01-25 17:40:41 +08:00
|
|
|
if (pageNo == 1) {
|
|
|
|
|
state.itemDataList.value = entity.data!.list!;
|
|
|
|
|
pageNo++;
|
|
|
|
|
} else {
|
|
|
|
|
if (entity.data!.list!.isNotEmpty) {
|
|
|
|
|
state.itemDataList.value.addAll(entity.data!.list!);
|
|
|
|
|
pageNo++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return entity;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 删除消息
|
2024-11-21 18:11:11 +08:00
|
|
|
Future<void> deletMessageDataRequest(String messageId,
|
|
|
|
|
BlockDeletSuccssCallback blockDeletSuccssCallback) async {
|
|
|
|
|
final MessageListEntity entity =
|
|
|
|
|
await ApiRepository.to.deletMessageLoadData(messageId: messageId);
|
2024-01-25 17:40:41 +08:00
|
|
|
if (entity.errorCode!.codeIsSuccessful) {
|
2024-03-09 17:17:38 +08:00
|
|
|
blockDeletSuccssCallback();
|
2024-01-24 18:44:34 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-04-16 17:44:38 +08:00
|
|
|
// 清空消息
|
2024-08-21 14:12:15 +08:00
|
|
|
Future<void> deletAllMessageDataRequest() async {
|
2024-11-21 18:11:11 +08:00
|
|
|
final MessageListEntity entity =
|
|
|
|
|
await ApiRepository.to.deletAllMessageLoadData();
|
2024-04-16 17:44:38 +08:00
|
|
|
if (entity.errorCode!.codeIsSuccessful) {
|
|
|
|
|
pageNo = 1;
|
|
|
|
|
messageListDataRequest();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 刷新消息列表
|
2024-01-24 18:44:34 +08:00
|
|
|
StreamSubscription? _readMessageRefreshUIEvent;
|
2024-11-21 18:11:11 +08:00
|
|
|
|
2024-01-24 18:44:34 +08:00
|
|
|
void _readMessageRefreshUIAction() {
|
|
|
|
|
// 蓝牙协议通知传输跟蓝牙之外的数据传输类不一样 eventBus
|
2024-11-21 18:11:11 +08:00
|
|
|
_readMessageRefreshUIEvent =
|
|
|
|
|
eventBus.on<ReadMessageRefreshUI>().listen((event) {
|
2024-04-16 17:44:38 +08:00
|
|
|
pageNo = 1;
|
2024-01-24 18:44:34 +08:00
|
|
|
messageListDataRequest();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void onReady() {
|
|
|
|
|
super.onReady();
|
2024-01-25 17:40:41 +08:00
|
|
|
// messageListDataRequest();
|
2024-01-24 18:44:34 +08:00
|
|
|
|
|
|
|
|
_readMessageRefreshUIAction();
|
2024-11-21 18:11:11 +08:00
|
|
|
|
|
|
|
|
// 收到切换语言消息,重新拉取一下列表
|
|
|
|
|
eventBus
|
|
|
|
|
.on<ChangeLanguageBlockLastLanguageEvent>()
|
|
|
|
|
.listen((ChangeLanguageBlockLastLanguageEvent event) {
|
|
|
|
|
pageNo = 1;
|
|
|
|
|
messageListDataRequest();
|
|
|
|
|
});
|
2024-01-24 18:44:34 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void onClose() {
|
|
|
|
|
super.onClose();
|
|
|
|
|
_readMessageRefreshUIEvent?.cancel();
|
|
|
|
|
}
|
2024-11-21 18:11:11 +08:00
|
|
|
}
|