app-starlock/lib/mine/message/messageList/messageList_logic.dart
2024-05-18 09:37:50 +08:00

82 lines
2.2 KiB
Dart
Executable File

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';
typedef BlockDeletSuccssCallback = void Function();
class MessageListLogic extends BaseGetXController {
final MessageListState state = MessageListState();
//请求消息列表
Future<MessageListEntity> messageListDataRequest() async {
MessageListEntity entity = await ApiRepository.to.messageListLoadData(
pageNo:pageNo.toString(),
pageSize:pageSize);
if (entity.errorCode!.codeIsSuccessful) {
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;
}
// 删除消息
void deletMessageDataRequest(String messageId, BlockDeletSuccssCallback blockDeletSuccssCallback) async {
MessageListEntity entity = await ApiRepository.to.deletMessageLoadData(messageId:messageId);
if (entity.errorCode!.codeIsSuccessful) {
blockDeletSuccssCallback();
}
}
// 清空消息
void deletAllMessageDataRequest() async {
MessageListEntity entity = await ApiRepository.to.deletAllMessageLoadData();
if (entity.errorCode!.codeIsSuccessful) {
pageNo = 1;
messageListDataRequest();
}
}
// 刷新消息列表
StreamSubscription? _readMessageRefreshUIEvent;
void _readMessageRefreshUIAction() {
// 蓝牙协议通知传输跟蓝牙之外的数据传输类不一样 eventBus
_readMessageRefreshUIEvent = eventBus.on<ReadMessageRefreshUI>().listen((event) {
pageNo = 1;
messageListDataRequest();
});
}
@override
void onReady() {
// TODO: implement onReady
super.onReady();
// messageListDataRequest();
_readMessageRefreshUIAction();
}
@override
void onInit() {
// TODO: implement onInit
super.onInit();
}
@override
void onClose() {
// TODO: implement onClose
super.onClose();
_readMessageRefreshUIEvent?.cancel();
}
}