Skip to content

Commit dfdfcd3

Browse files
committed
update example app
1 parent 8329914 commit dfdfcd3

File tree

2 files changed

+22
-36
lines changed

2 files changed

+22
-36
lines changed

example/lib/home_page.dart

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1+
import 'dart:async';
12
import 'dart:developer';
2-
import 'dart:isolate';
3-
import 'dart:ui';
43

54
import 'package:flutter/material.dart';
65
import 'package:flutter_overlay_window/flutter_overlay_window.dart';
@@ -13,29 +12,26 @@ class HomePage extends StatefulWidget {
1312
}
1413

1514
class _HomePageState extends State<HomePage> {
16-
static const String _kPortNameOverlay = 'OVERLAY';
17-
static const String _kPortNameHome = 'UI';
18-
final _receivePort = ReceivePort();
19-
SendPort? homePort;
15+
StreamSubscription<dynamic>? _overlaySubscription;
2016
String? latestMessageFromOverlay;
2117

2218
@override
2319
void initState() {
2420
super.initState();
25-
if (homePort != null) return;
26-
final res = IsolateNameServer.registerPortWithName(
27-
_receivePort.sendPort,
28-
_kPortNameHome,
29-
);
30-
log("$res: OVERLAY");
31-
_receivePort.listen((message) {
32-
log("message from OVERLAY: $message");
21+
_overlaySubscription = FlutterOverlayWindow.overlayListener.listen((message) {
22+
if(!mounted) return;
3323
setState(() {
3424
latestMessageFromOverlay = 'Latest Message From Overlay: $message';
3525
});
3626
});
3727
}
3828

29+
@override
30+
void dispose() {
31+
_overlaySubscription?.cancel();
32+
super.dispose();
33+
}
34+
3935
@override
4036
Widget build(BuildContext context) {
4137
return Scaffold(
@@ -105,9 +101,7 @@ class _HomePageState extends State<HomePage> {
105101
const SizedBox(height: 20.0),
106102
TextButton(
107103
onPressed: () {
108-
homePort ??=
109-
IsolateNameServer.lookupPortByName(_kPortNameOverlay);
110-
homePort?.send('Send to overlay: ${DateTime.now()}');
104+
FlutterOverlayWindow.shareData('Send to overlay: ${DateTime.now()}');
111105
},
112106
child: const Text("Send message to overlay"),
113107
),

example/lib/overlays/messanger_chathead.dart

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import 'dart:developer';
2-
import 'dart:isolate';
3-
import 'dart:ui';
1+
import 'dart:async';
42

53
import 'package:flutter/material.dart';
64
import 'package:flutter_overlay_window/flutter_overlay_window.dart';
@@ -13,31 +11,28 @@ class MessangerChatHead extends StatefulWidget {
1311
}
1412

1513
class _MessangerChatHeadState extends State<MessangerChatHead> {
14+
StreamSubscription<dynamic>? _overlaySubscription;
1615
Color color = const Color(0xFFFFFFFF);
1716
BoxShape _currentShape = BoxShape.circle;
18-
static const String _kPortNameOverlay = 'OVERLAY';
19-
static const String _kPortNameHome = 'UI';
20-
final _receivePort = ReceivePort();
21-
SendPort? homePort;
2217
String? messageFromOverlay;
2318

2419
@override
2520
void initState() {
2621
super.initState();
27-
if (homePort != null) return;
28-
final res = IsolateNameServer.registerPortWithName(
29-
_receivePort.sendPort,
30-
_kPortNameOverlay,
31-
);
32-
log("$res : HOME");
33-
_receivePort.listen((message) {
34-
log("message from UI: $message");
22+
_overlaySubscription = FlutterOverlayWindow.overlayListener.listen((message) {
23+
if(!mounted) return;
3524
setState(() {
3625
messageFromOverlay = 'message from UI: $message';
3726
});
3827
});
3928
}
4029

30+
@override
31+
void dispose() {
32+
_overlaySubscription?.cancel();
33+
super.dispose();
34+
}
35+
4136
@override
4237
Widget build(BuildContext context) {
4338
return Material(
@@ -79,10 +74,7 @@ class _MessangerChatHeadState extends State<MessangerChatHead> {
7974
backgroundColor: Colors.black,
8075
),
8176
onPressed: () {
82-
homePort ??= IsolateNameServer.lookupPortByName(
83-
_kPortNameHome,
84-
);
85-
homePort?.send('Date: ${DateTime.now()}');
77+
FlutterOverlayWindow.shareData('Date: ${DateTime.now()}');
8678
},
8779
child: const Text("Send message to UI"),
8880
),

0 commit comments

Comments
 (0)