published 1.0.2

added cancelPayload and assertions
This commit is contained in:
Prerak Mann 2019-08-16 17:08:20 +05:30
parent 38dc0080d0
commit 9d150de814
7 changed files with 50 additions and 11 deletions

View File

@ -1,3 +1,7 @@
## 1.0.2
* Added payload cancellation and other assertions
## 1.0.1 ## 1.0.1
* Changed convinience methods for asking permissions(location+storage) * Changed convinience methods for asking permissions(location+storage)

View File

@ -1,6 +1,6 @@
# nearby_connections # nearby_connections
An **android** flutter plugin for the Nearby Connections API An **android** flutter plugin for the [Nearby Connections API]((https://developers.google.com/nearby/connections/overview))
Currently supports Bytes and Files. Currently supports Bytes and Files.
[![pub package](https://img.shields.io/pub/v/nearby_connections.svg)](https://pub.dartlang.org/packages/nearby_connections) [![pub package](https://img.shields.io/pub/v/nearby_connections.svg)](https://pub.dartlang.org/packages/nearby_connections)

View File

@ -88,7 +88,7 @@ public class NearbyConnectionsPlugin implements MethodCallHandler {
break; break;
case "askExternalStoragePermission": case "askExternalStoragePermission":
ActivityCompat.requestPermissions(activity, ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE}, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE},
0); 0);
result.success(null); result.success(null);
break; break;
@ -255,11 +255,19 @@ public class NearbyConnectionsPlugin implements MethodCallHandler {
result.success(filePayload.getId()); //return payload id to dart result.success(filePayload.getId()); //return payload id to dart
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
Log.e("nearby_connections", "File not found", e); Log.e("nearby_connections", "File not found", e);
result.error("Failure", "File Not found", null); result.error("Failure", e.getMessage(), null);
return; return;
} }
break; break;
} }
case "cancelPayload": {
String payloadId = (String) call.argument("payloadId");
assert payloadId != null;
Nearby.getConnectionsClient(activity).cancelPayload(Long.parseLong(payloadId));
result.success(null);
break;
}
default: default:
result.notImplemented(); result.notImplemented();
} }
@ -367,13 +375,12 @@ public class NearbyConnectionsPlugin implements MethodCallHandler {
args.put("endpointId", endpointId); args.put("endpointId", endpointId);
args.put("payloadId", payload.getId()); args.put("payloadId", payload.getId());
args.put("type", payload.getType()); args.put("type", payload.getType());
if (payload.getType() == Payload.Type.BYTES) { if (payload.getType() == Payload.Type.BYTES) {
byte[] bytes = payload.asBytes(); byte[] bytes = payload.asBytes();
assert bytes != null; assert bytes != null;
args.put("bytes", bytes); args.put("bytes", bytes);
} } else if (payload.getType() == Payload.Type.FILE) {
else if (payload.getType() == Payload.Type.FILE) {
args.put("filePath", payload.asFile().asJavaFile().getAbsolutePath()); args.put("filePath", payload.asFile().asJavaFile().getAbsolutePath());
} }

View File

@ -73,7 +73,7 @@ packages:
path: ".." path: ".."
relative: true relative: true
source: path source: path
version: "1.0.1" version: "1.0.2"
path: path:
dependency: transitive dependency: transitive
description: description:

View File

@ -25,6 +25,8 @@ class Payload {
}); });
} }
/// Gives payload status (SUCCESS, FAILURE, IN_PROGRESS)
/// bytes transferred and total bytes
class PayloadTransferUpdate { class PayloadTransferUpdate {
int id, bytesTransferred, totalBytes; int id, bytesTransferred, totalBytes;
PayloadStatus status; PayloadStatus status;

View File

@ -159,18 +159,20 @@ class Nearby {
Future<void> askLocationPermission() async => await _channel.invokeMethod( Future<void> askLocationPermission() async => await _channel.invokeMethod(
'askLocationPermission', 'askLocationPermission',
); );
/// Convinience method /// Convinience method
/// ///
/// retruns true/false based on external storage permissions. /// retruns true/false based on external storage permissions.
Future<bool> checkExternalStoragePermission() async => await _channel.invokeMethod( Future<bool> checkExternalStoragePermission() async =>
await _channel.invokeMethod(
'checkExternalStoragePermission', 'checkExternalStoragePermission',
); );
/// Convinience method /// Convinience method
/// ///
/// Asks external storage permission, required for file /// Asks external storage permission, required for file
Future<void> askExternalStoragePermission() async => await _channel.invokeMethod( Future<void> askExternalStoragePermission() async =>
await _channel.invokeMethod(
'askExternalStoragePermission', 'askExternalStoragePermission',
); );
@ -252,6 +254,7 @@ class Nearby {
/// this will call the onDisconnected method on callbacks of /// this will call the onDisconnected method on callbacks of
/// connected endPoint /// connected endPoint
Future<void> disconnectFromEndpoint(String endpointId) async { Future<void> disconnectFromEndpoint(String endpointId) async {
assert(endpointId != null);
await _channel.invokeMethod( await _channel.invokeMethod(
'disconnectFromEndpoint', <String, dynamic>{'endpointId': endpointId}); 'disconnectFromEndpoint', <String, dynamic>{'endpointId': endpointId});
} }
@ -274,6 +277,9 @@ class Nearby {
this._discoverConnectionResult = onConnectionResult; this._discoverConnectionResult = onConnectionResult;
this._discoverDisconnected = onDisconnected; this._discoverDisconnected = onDisconnected;
assert(endpointId != null);
assert(userNickName != null);
return await _channel.invokeMethod( return await _channel.invokeMethod(
'requestConnection', 'requestConnection',
<String, dynamic>{ <String, dynamic>{
@ -298,6 +304,9 @@ class Nearby {
}) async { }) async {
this._onPayloadReceived = onPayLoadRecieved; this._onPayloadReceived = onPayLoadRecieved;
this._onPayloadTransferUpdate = onPayloadTransferUpdate; this._onPayloadTransferUpdate = onPayloadTransferUpdate;
assert(endpointId != null);
return await _channel.invokeMethod( return await _channel.invokeMethod(
'acceptConnection', 'acceptConnection',
<String, dynamic>{ <String, dynamic>{
@ -316,6 +325,8 @@ class Nearby {
/// [OnConnectionResult] is called on both /// [OnConnectionResult] is called on both
/// even if one of them rejects the connection /// even if one of them rejects the connection
Future<bool> rejectConnection(String endpointId) async { Future<bool> rejectConnection(String endpointId) async {
assert(endpointId != null);
return await _channel.invokeMethod( return await _channel.invokeMethod(
'rejectConnection', 'rejectConnection',
<String, dynamic>{ <String, dynamic>{
@ -333,6 +344,8 @@ class Nearby {
/// Uint8List bytes = Uint8List.fromList(a.codeUnits); /// Uint8List bytes = Uint8List.fromList(a.codeUnits);
/// ``` /// ```
Future<void> sendBytesPayload(String endpointId, Uint8List bytes) async { Future<void> sendBytesPayload(String endpointId, Uint8List bytes) async {
assert(endpointId != null);
return await _channel.invokeMethod( return await _channel.invokeMethod(
'sendPayload', 'sendPayload',
<String, dynamic>{ <String, dynamic>{
@ -350,6 +363,8 @@ class Nearby {
/// so that receiver can rename the file accordingly /// so that receiver can rename the file accordingly
/// Send the payloadID and filename to receiver as bytes payload /// Send the payloadID and filename to receiver as bytes payload
Future<int> sendFilePayload(String endpointId, String filePath) async { Future<int> sendFilePayload(String endpointId, String filePath) async {
assert(endpointId != null);
return await _channel.invokeMethod( return await _channel.invokeMethod(
'sendFilePayload', 'sendFilePayload',
<String, dynamic>{ <String, dynamic>{
@ -358,4 +373,15 @@ class Nearby {
}, },
); );
} }
Future<void> cancelPayload(int payloadId) async {
assert(payloadId != null);
return await _channel.invokeMethod(
'cancelPayload',
<String, dynamic>{
'payloadId': payloadId.toString(),
},
);
}
} }

View File

@ -1,6 +1,6 @@
name: nearby_connections name: nearby_connections
description: Plugin for the android NearbyConnections API. Bytes and Files Supported. description: Plugin for the android NearbyConnections API. Bytes and Files Supported.
version: 1.0.1 version: 1.0.2
author: Prerak Mann <mannprerak2@gmail.com> author: Prerak Mann <mannprerak2@gmail.com>
homepage: https://github.com/mannprerak2/nearby_connections homepage: https://github.com/mannprerak2/nearby_connections