36 lines
1.0 KiB
Dart
36 lines
1.0 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'dart:async';
|
|
|
|
// Event untuk memberitahu bahwa jadwal telah diperbarui
|
|
class ScheduleUpdatedEvent {
|
|
final bool success;
|
|
|
|
ScheduleUpdatedEvent({this.success = true});
|
|
}
|
|
|
|
// Event bus sederhana untuk komunikasi antar widget
|
|
class AppEventBus {
|
|
static final AppEventBus _instance = AppEventBus._internal();
|
|
|
|
factory AppEventBus() {
|
|
return _instance;
|
|
}
|
|
|
|
AppEventBus._internal();
|
|
|
|
// Stream controller untuk event ScheduleUpdated
|
|
final _scheduleUpdatedController = StreamController<ScheduleUpdatedEvent>.broadcast();
|
|
|
|
// Stream untuk mendengarkan event ScheduleUpdated
|
|
Stream<ScheduleUpdatedEvent> get onScheduleUpdated => _scheduleUpdatedController.stream;
|
|
|
|
// Method untuk memicu event ScheduleUpdated
|
|
void fireScheduleUpdated({bool success = true}) {
|
|
_scheduleUpdatedController.add(ScheduleUpdatedEvent(success: success));
|
|
}
|
|
|
|
// Method untuk dispose stream controller
|
|
void dispose() {
|
|
_scheduleUpdatedController.close();
|
|
}
|
|
} |