diff --git a/example/lib/main.dart b/example/lib/main.dart index 06d2504..7c8fd5a 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -40,8 +40,8 @@ class _MyBodyState extends State { super.initState(); WidgetsBinding.instance!.addPostFrameCallback((_) { // _userName = await FlutterUdid.consistentUdid; - startAdver(); - startDisco(); + startAdvertising(); + startDiscovery(); }); } @@ -54,69 +54,6 @@ class _MyBodyState extends State { Map map = Map(); //store filename mapped to corresponding payloadId - void startAdver() async { - try { - bool a = await Nearby().startAdvertising( - "adv" + userName, - strategy, - onConnectionInitiated: discoverOnConnectionInit, - onConnectionResult: (id, status) { - print("userName = $userName"); - print("id = $id"); - showSnackbar(status); - }, - onDisconnected: (id) { - showSnackbar( - "Disconnected: ${endpointMap[id]!.endpointName}, id $id"); - setState(() { - endpointMap.remove(id); - }); - }, - ); - showSnackbar("ADVERTISING: " + a.toString()); - } catch (exception) { - showSnackbar(exception); - } - } - - void startDisco() async { - try { - bool a = await Nearby().startDiscovery( - "dis" + userName, - strategy, - onEndpointFound: (id, name, serviceId) { - print("userName = $userName"); - print("id = $id"); - - Nearby().requestConnection( - userName, - id, - onConnectionInitiated: (id, info) { - discoverOnConnectionInit(id, info); - }, - onConnectionResult: (id, status) { - showSnackbar(status); - }, - onDisconnected: (id) { - setState(() { - endpointMap.remove(id); - }); - showSnackbar( - "Disconnected from: ${endpointMap[id]!.endpointName}, id $id"); - }, - ); - }, - onEndpointLost: (id) { - showSnackbar( - "Lost discovered Endpoint: ${endpointMap[id]!.endpointName}, id $id"); - }, - ); - showSnackbar("DISCOVERING: " + a.toString()); - } catch (e) { - showSnackbar(e); - } - } - @override Widget build(BuildContext context) { return Center( @@ -128,86 +65,21 @@ class _MyBodyState extends State { Wrap( children: [ ElevatedButton( - child: Text("Start Advertising"), - onPressed: () async { - // try { - // bool a = await Nearby().startAdvertising( - // "adv" + userName, - // strategy, - // onConnectionInitiated: discoverOnConnectionInit, - // onConnectionResult: (id, status) { - // print("userName = $userName"); - // print("id = $id"); - // showSnackbar(status); - // }, - // onDisconnected: (id) { - // showSnackbar( - // "Disconnected: ${endpointMap[id]!.endpointName}, id $id"); - // setState(() { - // endpointMap.remove(id); - // }); - // }, - // ); - // showSnackbar("ADVERTISING: " + a.toString()); - // } catch (exception) { - // showSnackbar(exception); - // } - }, - ), - ElevatedButton( - child: Text("Stop Advertising"), - onPressed: () async { - await Nearby().stopAdvertising(); - }, - ), - ], - ), - Wrap( - children: [ - ElevatedButton( - child: Text("Start Discovery"), + child: Text("Restart"), onPressed: () async { try { - bool a = await Nearby().startDiscovery( - "dis" + userName, - strategy, - onEndpointFound: (id, name, serviceId) { - print("userName = $userName"); - print("id = $id"); - - Nearby().requestConnection( - userName, - id, - onConnectionInitiated: (id, info) { - discoverOnConnectionInit(id, info); - }, - onConnectionResult: (id, status) { - showSnackbar(status); - }, - onDisconnected: (id) { - setState(() { - endpointMap.remove(id); - }); - showSnackbar( - "Disconnected from: ${endpointMap[id]!.endpointName}, id $id"); - }, - ); - }, - onEndpointLost: (id) { - showSnackbar( - "Lost discovered Endpoint: ${endpointMap[id]!.endpointName}, id $id"); - }, - ); - showSnackbar("DISCOVERING: " + a.toString()); - } catch (e) { - showSnackbar(e); + stopAll(); + startAdvertising(); + startDiscovery(); + } catch (exception) { + showSnackbar(exception); } }, ), ElevatedButton( - child: Text("Stop Discovery"), + child: Text("Stop"), onPressed: () async { - await Nearby().stopDiscovery(); + stopAll(); }, ), ], @@ -271,6 +143,78 @@ class _MyBodyState extends State { )); } + void stopAll() async { + await Nearby().stopAllEndpoints(); + await Nearby().stopAdvertising(); + await Nearby().stopDiscovery(); + setState(() {}); + } + + void startDiscovery() async { + try { + bool a = await Nearby().startDiscovery( + "dis" + userName, + strategy, + onEndpointFound: (id, name, serviceId) { + print("userName = $userName"); + print("id = $id"); + + Nearby().requestConnection( + userName, + id, + onConnectionInitiated: (id, info) { + discoverOnConnectionInit(id, info); + }, + onConnectionResult: (id, status) { + showSnackbar(status); + }, + onDisconnected: (id) { + setState(() { + endpointMap.remove(id); + }); + showSnackbar( + "Disconnected from: ${endpointMap[id]!.endpointName}, id $id"); + }, + ); + }, + onEndpointLost: (id) { + showSnackbar( + "Lost discovered Endpoint: ${endpointMap[id]!.endpointName}, id $id"); + }, + ); + showSnackbar("DISCOVERING: " + a.toString()); + } catch (e) { + showSnackbar(e); + } + setState(() {}); + } + + void startAdvertising() async { + try { + bool a = await Nearby().startAdvertising( + "adv" + userName, + strategy, + onConnectionInitiated: discoverOnConnectionInit, + onConnectionResult: (id, status) { + print("userName = $userName"); + print("id = $id"); + showSnackbar(status); + }, + onDisconnected: (id) { + showSnackbar( + "Disconnected: ${endpointMap[id]!.endpointName}, id $id"); + setState(() { + endpointMap.remove(id); + }); + }, + ); + showSnackbar("ADVERTISING: " + a.toString()); + } catch (exception) { + showSnackbar(exception); + } + setState(() {}); + } + /// Called upon Connection request (on both devices) /// Both need to accept connection to start sending/receiving void discoverOnConnectionInit(String id, ConnectionInfo info) {