Skip to content

Commit 0ac8761

Browse files
committed
update example app
1 parent c00cbca commit 0ac8761

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(
@@ -110,9 +106,7 @@ class _HomePageState extends State<HomePage> {
110106
const SizedBox(height: 20.0),
111107
TextButton(
112108
onPressed: () {
113-
homePort ??=
114-
IsolateNameServer.lookupPortByName(_kPortNameOverlay);
115-
homePort?.send('Send to overlay: ${DateTime.now()}');
109+
FlutterOverlayWindow.shareData('Send to overlay: ${DateTime.now()}');
116110
},
117111
child: const Text("Send message to overlay"),
118112
),

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(
@@ -80,10 +75,7 @@ class _MessangerChatHeadState extends State<MessangerChatHead> {
8075
backgroundColor: Colors.black,
8176
),
8277
onPressed: () {
83-
homePort ??= IsolateNameServer.lookupPortByName(
84-
_kPortNameHome,
85-
);
86-
homePort?.send('Date: ${DateTime.now()}');
78+
FlutterOverlayWindow.shareData('Date: ${DateTime.now()}');
8779
},
8880
child: const Text("Send message to UI"),
8981
),

0 commit comments

Comments
 (0)