added askpermission and partial startAdvertising methods

This commit is contained in:
Prerak Mann
2019-05-11 02:48:45 +05:30
parent 6ee7aba035
commit 6d4f708722
5 changed files with 141 additions and 5 deletions

View File

@@ -2,6 +2,9 @@ import 'dart:async';
import 'package:flutter/services.dart';
enum STRATEGY { P2P_CLUSTER, P2P_STAR, P2P_POINT_TO_POINT }
enum Status { NONE, SUCCESS, FAILURE, IN_PROGRESS, CANCELED }
class Nearby {
//for maintaining only 1 instance of this class
static final Nearby _instance = Nearby._();
@@ -14,4 +17,37 @@ class Nearby {
Future<bool> checkPermissions() async => await _channel.invokeMethod(
'checkPermissions',
);
Future<void> askPermission() async {
await _channel.invokeMethod(
'askPermissions',
);
}
Future<bool> startAdvertising(String userNickName, STRATEGY strategy) async {
assert(userNickName != null && strategy != null);
return await _channel.invokeMethod('startAdvertising', <String, dynamic>{
'userNickName': userNickName,
'strategy': strategy.index
});
}
Future<void> stopAdvertising() async {
await _channel.invokeMethod('stopAdvertising');
}
}
abstract class ConnectionLifecycleCallback {
void onConnectionInitiated(String s, ConnectionInfo connectionInfo);
void onConnectionResult(String s, Status status);
void onDisconnected(String s) {}
}
class ConnectionInfo {
String endPointName, authenticationToken;
bool isIncomingConnection;
ConnectionInfo(
this.endPointName, this.authenticationToken, this.isIncomingConnection);
}