AI_Drawing/lib/common/EventBusUtil.dart
2024-06-03 15:30:15 +08:00

74 lines
1.3 KiB
Dart

import 'dart:async';
import 'package:event_bus/event_bus.dart';
class EventBusUtil {
static EventBus? _eventBus;
//获取单例
static EventBus getInstance() {
_eventBus ??= EventBus();
return _eventBus!;
}
//返回某事件的订阅者
static StreamSubscription<T> listen<T extends Event>(Function(T event) onData) {
_eventBus ??= EventBus();
//内部流属于广播模式,可以有多个订阅者
return _eventBus!.on<T>().listen(onData);
}
//发送事件
static void fire<T extends Event>(T e) {
_eventBus ??= EventBus();
_eventBus!.fire(e);
}
}
abstract class Event {}
class LoginEvent extends Event {
static int eventIn = 1;
static int eventOut = 0;
final int status;
LoginEvent(this.status);
}
class OrderStatusEvent extends Event {}
class PushStatusEvent extends Event {}
//导航切换
class TabBarEvent extends Event {
final int Tab;
TabBarEvent(this.Tab);
}
class PhoneLoginBackEvent extends Event {
PhoneLoginBackEvent();
}
//导航跳转
class TabBarJumpEvent extends Event {
int index;
TabBarJumpEvent(this.index);
}
//画同款
class CopyDrawingEvent extends Event {
CopyDrawingEvent();
}
//登录完成
class LoginSuccess extends Event {
LoginSuccess();
}
//刷新用户信息
class RefreshUserdata extends Event {
RefreshUserdata();
}