diff --git a/example/lib/main.dart b/example/lib/main.dart
index b54c5c4..254cd73 100644
--- a/example/lib/main.dart
+++ b/example/lib/main.dart
@@ -1,3 +1,5 @@
+import 'dart:math';
+
import 'package:flutter/material.dart';
import 'dart:async';
@@ -31,6 +33,9 @@ class Body extends StatefulWidget {
}
class _MyBodyState extends State
{
+ final String userName = Random().nextInt(1000).toString();
+ final Strategy strategy = Strategy.P2P_STAR;
+
@override
Widget build(BuildContext context) {
// TODO: implement build
@@ -55,19 +60,54 @@ class _MyBodyState extends State {
await Nearby().askPermission();
},
),
+ Text("UserName: " + userName),
RaisedButton(
child: Text("Start Advertising"),
onPressed: () async {
try {
bool a = await Nearby().startAdvertising(
- "pkmn",
- STRATEGY.P2P_STAR,
+ userName,
+ strategy,
+ onConnectionInitiated: (id, info) {
+ showModalBottomSheet(
+ context: context,
+ builder: (builder) {
+ return Center(
+ child: Column(
+ children: [
+ Text("id: " + id),
+ Text("Token: " + info.authenticationToken),
+ Text("Name" + info.endpointName),
+ Text("Incoming: " +
+ info.isIncomingConnection.toString()),
+ RaisedButton(
+ child: Text("Accept Connection"),
+ onPressed: () {
+ Nearby().acceptConnection(id);
+ },
+ ),
+ RaisedButton(
+ child: Text("Reject Connection"),
+ onPressed: () {
+ Nearby().rejectConnection(id);
+ },
+ ),
+ ],
+ ),
+ );
+ },
+ );
+ },
+ onConnectionResult: (id, status) {
+ showSnackbar(status);
+ },
+ onDisconnected: (id) {
+ showSnackbar(id);
+ },
);
- Scaffold.of(context)
- .showSnackBar(SnackBar(content: Text(a.toString())));
+ showSnackbar(a);
} catch (exception) {
- Scaffold.of(context).showSnackBar(
- SnackBar(content: Text(exception.toString())));
+ showSnackbar(exception);
}
},
),
@@ -77,9 +117,103 @@ class _MyBodyState extends State {
await Nearby().stopAdvertising();
},
),
+ RaisedButton(
+ child: Text("Start Discovery"),
+ onPressed: () async {
+ await Nearby().startDiscovery(
+ userName,
+ strategy,
+ onEndpointFound: (id, name, serviceId) {
+ showModalBottomSheet(
+ context: context,
+ builder: (builder) {
+ return Center(
+ child: Column(
+ children: [
+ Text("id: " + id),
+ Text("Name: " + name),
+ Text("ServiceId: " + serviceId),
+ RaisedButton(
+ child: Text("Request Connection"),
+ onPressed: () {
+ Nearby().requestConnection(
+ userName,
+ id,
+ onConnectionInitiated: (id, info) {
+ showModalBottomSheet(
+ context: context,
+ builder: (builder) {
+ return Center(
+ child: Column(
+ children: [
+ Text("id: " + id),
+ Text("Token: " +
+ info.authenticationToken),
+ Text("Name" + info.endpointName),
+ Text("Incoming: " +
+ info.isIncomingConnection
+ .toString()),
+ RaisedButton(
+ child:
+ Text("Accept Connection"),
+ onPressed: () {
+ Nearby().acceptConnection(id);
+ },
+ ),
+ RaisedButton(
+ child:
+ Text("Reject Connection"),
+ onPressed: () {
+ Nearby().rejectConnection(id);
+ },
+ ),
+ ],
+ ),
+ );
+ },
+ );
+ },
+ onConnectionResult: (id, status) {
+ showSnackbar(status);
+ },
+ onDisconnected: (id) {
+ showSnackbar(id);
+ },
+ );
+ },
+ ),
+ ],
+ ),
+ );
+ },
+ );
+ },
+ onEndpointLost: (id) {
+ showSnackbar(id);
+ },
+ );
+ },
+ ),
+ RaisedButton(
+ child: Text("Stop Discovery"),
+ onPressed: () async {
+ await Nearby().stopDiscovery();
+ },
+ ),
+ RaisedButton(
+ child: Text("Stop All Endpoints"),
+ onPressed: () async {
+ await Nearby().stopAllEndpoints();
+ },
+ ),
],
),
);
}
-}
+ void showSnackbar(dynamic a) {
+ Scaffold.of(context).showSnackBar(SnackBar(
+ content: Text(a.toString()),
+ ));
+ }
+}
diff --git a/lib/nearby_connections.dart b/lib/nearby_connections.dart
index 67d06e5..8750343 100644
--- a/lib/nearby_connections.dart
+++ b/lib/nearby_connections.dart
@@ -3,7 +3,7 @@ import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart';
-enum STRATEGY { P2P_CLUSTER, P2P_STAR, P2P_POINT_TO_POINT }
+enum Strategy { P2P_CLUSTER, P2P_STAR, P2P_POINT_TO_POINT }
enum Status { CONNECTED, REJECTED, ERROR }
typedef void OnConnctionInitiated(
@@ -130,7 +130,7 @@ class Nearby {
Future startAdvertising(
String userNickName,
- STRATEGY strategy, {
+ Strategy strategy, {
@required OnConnctionInitiated onConnectionInitiated,
@required OnConnectionResult onConnectionResult,
@required OnDisconnected onDisconnected,
@@ -153,9 +153,9 @@ class Nearby {
Future startDiscovery(
String userNickName,
- STRATEGY strategy, {
- OnEndpointFound onEndpointFound,
- OnEndpointLost onEndpointLost,
+ Strategy strategy, {
+ @required OnEndpointFound onEndpointFound,
+ @required OnEndpointLost onEndpointLost,
}) async {
assert(userNickName != null && strategy != null);