Skip to content
This repository has been archived by the owner on Jan 1, 2025. It is now read-only.

Commit

Permalink
fix: stream already listening
Browse files Browse the repository at this point in the history
  • Loading branch information
RossComputerGuy committed May 9, 2024
1 parent e3cfe9d commit f45918b
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 10 deletions.
10 changes: 5 additions & 5 deletions lib/logic/display.dart
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,10 @@ class DisplayManager extends ChangeNotifier {
List<DisplayServer> _servers = [];

StreamController<DisplayServer> _serverStartedCtrl = StreamController();
Stream<DisplayServer> get serverStarted => _serverStartedCtrl.stream;
Stream<DisplayServer> get serverStarted => _serverStartedCtrl.stream.asBroadcastStream();

StreamController<DisplayServer> _serverStoppedCtrl = StreamController();
Stream<DisplayServer> get serverStopped => _serverStoppedCtrl.stream;
Stream<DisplayServer> get serverStopped => _serverStoppedCtrl.stream.asBroadcastStream();

DisplayServer? find(String name) {
for (final server in _servers) {
Expand Down Expand Up @@ -144,10 +144,10 @@ class DisplayServer extends ChangeNotifier {
UnmodifiableListView<DisplayServerToplevel> get toplevels => UnmodifiableListView(_toplevels);

StreamController<DisplayServerToplevel> _toplevelAddedCtrl = StreamController();
Stream<DisplayServerToplevel> get toplevelAdded => _toplevelAddedCtrl.stream;
Stream<DisplayServerToplevel> get toplevelAdded => _toplevelAddedCtrl.stream.asBroadcastStream();

StreamController<DisplayServerToplevel> _toplevelRemovedCtrl = StreamController();
Stream<DisplayServerToplevel> get toplevelRemoved => _toplevelRemovedCtrl.stream;
Stream<DisplayServerToplevel> get toplevelRemoved => _toplevelRemovedCtrl.stream.asBroadcastStream();

Future<void> stop() async {
await DisplayManager.channel.invokeMethod('stop', name);
Expand Down Expand Up @@ -213,7 +213,7 @@ class DisplayServerToplevel extends ChangeNotifier {
final int id;

StreamController<DisplayServerToplevelNotify> _notifyCtrl = StreamController();
Stream<DisplayServerToplevelNotify> get notify => _notifyCtrl.stream;
Stream<DisplayServerToplevelNotify> get notify => _notifyCtrl.stream.asBroadcastStream();

StreamController<String> _reqCtrl = StreamController();
Stream<String> get req => _reqCtrl.stream;
Expand Down
13 changes: 11 additions & 2 deletions lib/views/desktop.dart
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,8 @@ class _DesktopViewState extends State<DesktopView> {
}

@override
Widget build(BuildContext context) =>
SystemLayout(
Widget build(BuildContext context) {
Widget value = SystemLayout(
key: _key,
userMode: true,
userName: widget.userName,
Expand All @@ -124,4 +124,13 @@ class _DesktopViewState extends State<DesktopView> {
bottomNavigationBar: Breakpoints.small.isActive(context)
? SystemNavbar() : null,
);

if (_displayServer != null) {
value = ChangeNotifierProvider<DisplayServer>.value(
value: _displayServer!,
child: value,
);
}
return value;
}
}
15 changes: 12 additions & 3 deletions lib/widgets/user_drawer.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
import 'package:libtokyo_flutter/libtokyo.dart' hide ColorScheme;
import 'package:libtokyo/libtokyo.dart' hide TokyoApp, Scaffold;
import 'package:provider/provider.dart';

import '../logic/display.dart';

class UserDrawer extends StatelessWidget {
const UserDrawer({ super.key });
const UserDrawer({
super.key,
});

@override
Widget build(BuildContext context) =>
ListView();
Widget build(BuildContext context) {
print(context.watch<DisplayServer>());
return ListView(
children: [],
);
}
}

0 comments on commit f45918b

Please sign in to comment.