重构
This commit is contained in:
@@ -4,23 +4,22 @@
|
||||
/// 最新变化: 新增 NetworkEventType.search 与 sendSearchEvent,供诗词搜索页通知
|
||||
|
||||
import 'dart:async';
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
/// 网络状态枚举
|
||||
enum NetworkStatus {
|
||||
idle, // 空闲
|
||||
loading, // 加载中
|
||||
success, // 成功
|
||||
error, // 错误
|
||||
idle, // 空闲
|
||||
loading, // 加载中
|
||||
success, // 成功
|
||||
error, // 错误
|
||||
}
|
||||
|
||||
/// 网络事件类型
|
||||
enum NetworkEventType {
|
||||
like, // 点赞操作
|
||||
unlike, // 取消点赞
|
||||
refresh, // 刷新操作
|
||||
load, // 加载操作
|
||||
search, // 诗词搜索完成
|
||||
like, // 点赞操作
|
||||
unlike, // 取消点赞
|
||||
refresh, // 刷新操作
|
||||
load, // 加载操作
|
||||
search, // 诗词搜索完成
|
||||
noteUpdate, // 笔记更新(新建/编辑/删除)
|
||||
}
|
||||
|
||||
@@ -41,20 +40,21 @@ class NetworkEvent {
|
||||
|
||||
/// 网络监听服务
|
||||
class NetworkListenerService {
|
||||
static final NetworkListenerService _instance = NetworkListenerService._internal();
|
||||
static final NetworkListenerService _instance =
|
||||
NetworkListenerService._internal();
|
||||
factory NetworkListenerService() => _instance;
|
||||
NetworkListenerService._internal();
|
||||
|
||||
// 状态管理
|
||||
NetworkStatus _status = NetworkStatus.idle;
|
||||
final Map<String, bool> _loadingStates = {};
|
||||
|
||||
|
||||
// 事件流控制器
|
||||
final StreamController<NetworkEvent> _eventController =
|
||||
final StreamController<NetworkEvent> _eventController =
|
||||
StreamController<NetworkEvent>.broadcast();
|
||||
|
||||
|
||||
// 状态流控制器
|
||||
final StreamController<NetworkStatus> _statusController =
|
||||
final StreamController<NetworkStatus> _statusController =
|
||||
StreamController<NetworkStatus>.broadcast();
|
||||
|
||||
// 公开流
|
||||
@@ -89,10 +89,7 @@ class NetworkListenerService {
|
||||
/// 发送错误事件
|
||||
void sendErrorEvent(NetworkEventType type, {String? errorMessage}) {
|
||||
_updateStatus(NetworkStatus.error);
|
||||
_eventController.add(NetworkEvent(
|
||||
type: type,
|
||||
errorMessage: errorMessage,
|
||||
));
|
||||
_eventController.add(NetworkEvent(type: type, errorMessage: errorMessage));
|
||||
}
|
||||
|
||||
/// 发送点赞事件
|
||||
@@ -131,7 +128,7 @@ class NetworkListenerService {
|
||||
/// 方便其他类使用网络监听功能
|
||||
mixin NetworkListenerMixin {
|
||||
final NetworkListenerService _networkService = NetworkListenerService();
|
||||
|
||||
|
||||
Stream<NetworkEvent> get networkEvents => _networkService.eventStream;
|
||||
Stream<NetworkStatus> get networkStatus => _networkService.statusStream;
|
||||
NetworkStatus get currentNetworkStatus => _networkService.currentStatus;
|
||||
|
||||
Reference in New Issue
Block a user