74 lines
1.3 KiB
Dart
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();
|
|
}
|