Files
MWClash/plugins/window_ext/lib/window_ext_manager.dart
chen08209 d89481114f Fix windows tray issues
Support setting bypassDomain

Update flutter version

Fix android service issues

Fix macos dock exit button issues

Add route address setting

Optimize provider view
2024-11-17 20:42:01 +08:00

45 lines
1.1 KiB
Dart

import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart';
import 'window_ext_listener.dart';
class WindowExtManager {
WindowExtManager._() {
_channel.setMethodCallHandler(_methodCallHandler);
}
static final WindowExtManager instance = WindowExtManager._();
final MethodChannel _channel = const MethodChannel('window_ext');
final ObserverList<WindowExtListener> _listeners =
ObserverList<WindowExtListener>();
Future<void> _methodCallHandler(MethodCall call) async {
for (final WindowExtListener listener in _listeners) {
switch (call.method) {
case "taskbarCreated":
listener.onTaskbarCreated();
break;
case "shouldTerminate":
listener.onShouldTerminate();
break;
}
}
}
bool get hasListeners {
return _listeners.isNotEmpty;
}
void addListener(WindowExtListener listener) {
_listeners.add(listener);
}
void removeListener(WindowExtListener listener) {
_listeners.remove(listener);
}
}
final windowExtManager = WindowExtManager.instance;