From e7edb9865bf710faf5f5c2aab3cfddfc6927bffd Mon Sep 17 00:00:00 2001 From: Gourav Saini Date: Sat, 15 Aug 2020 18:02:14 +0530 Subject: [PATCH] Update enableLocationService method (#19) * enableLocationService return type changed to Future * callback added to enableLocationService * typos fixes #15 * fix #15 added to changelog and bug fixes --- CHANGELOG.md | 12 +- README.md | 9 +- android/build.gradle | 4 + android/src/main/AndroidManifest.xml | 5 +- .../nearby_connections/LocationEnabler.java | 110 +++++++++++++ .../NearbyConnectionsPlugin.java | 147 +++++++++++++----- android/src/main/res/values/strings.xml | 1 + example/android/build.gradle | 2 +- example/lib/main.dart | 10 +- example/pubspec.lock | 35 ++--- lib/src/classes.dart | 2 +- lib/src/defs.dart | 2 +- lib/src/nearby.dart | 36 ++--- pubspec.lock | 33 ++-- pubspec.yaml | 2 +- 15 files changed, 295 insertions(+), 115 deletions(-) create mode 100644 android/src/main/java/com/pkmnapps/nearby_connections/LocationEnabler.java create mode 100644 android/src/main/res/values/strings.xml diff --git a/CHANGELOG.md b/CHANGELOG.md index 768b2d5..527394b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 2.0.0-dev +* enableLocationService return type changed to Future +* Updated Example accordingly +* Readme Fixes +* Typos Fixed + ## 1.1.1+1 * Corrected supported platforms in pubpsec @@ -5,7 +11,7 @@ * Updated Android Nearby version from 16.0.0 to 17.0.0 * Updated Example * **Location/GPS service must be turned on** or devices may disconnect -more often, some devices may disconnect immediately. 2 convinience methods are added +more often, some devices may disconnect immediately. 2 convenience methods are added `enableLocationServices` and `checkLocationEnabled` ## 1.0.3 @@ -24,7 +30,7 @@ more often, some devices may disconnect immediately. 2 convinience methods are a ## 1.0.1 -* Changed convinience methods for asking permissions(location+storage) +* Changed convenience methods for asking permissions(location+storage) * Updated example ## 1.0.0 @@ -43,7 +49,7 @@ more often, some devices may disconnect immediately. 2 convinience methods are a ## 0.1.0 -* Added pub maintanence suggestions +* Added pub maintenance suggestions ## 0.0.2 diff --git a/README.md b/README.md index 0fb077b..bb1b1e9 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ Add these to AndroidManifest.xml ``` Since ACCESS_FINE_LOCATION and READ_EXTERNAL_STORAGE is considered to be dangerous system permissions, in addition to adding them to your manifest, you must request these permissions at runtime. -#### As a **convinience** this library provides methods to check and request location and external read/write permissions +#### As a **convenience** this library provides methods to check and request location and external read/write permissions ```dart // returns true/false asynchronously bool a = await Nearby().checkLocationPermissions() @@ -68,12 +68,13 @@ The work flow is similar to the [Android Nearby Connections library](https://dev **Location/GPS service must be turned on** or devices may disconnect more often, some devices may disconnect immediately. -For convinience this library provides methods to check and enable location +For convenience this library provides methods to check and enable location ```dart bool b = await Nearby().checkLocationEnabled(); -// opens settings where user can enable it -Nearby().enableLocationServices(); +// opens dialogue to enable location service +// returns true/false if the location service is turned on/off resp. +bool b = await Nearby().enableLocationServices(); ``` ### Advertise for connection ```dart diff --git a/android/build.gradle b/android/build.gradle index 47ecd1f..8e04063 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -35,3 +35,7 @@ android { api 'com.google.android.gms:play-services-nearby:17.0.0' } } + +dependencies { + implementation 'com.google.android.gms:play-services-location:17.0.0' +} diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 7fb5089..6bcd104 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -1,3 +1,6 @@ + package="com.pkmnapps.nearby_connections"> + + + diff --git a/android/src/main/java/com/pkmnapps/nearby_connections/LocationEnabler.java b/android/src/main/java/com/pkmnapps/nearby_connections/LocationEnabler.java new file mode 100644 index 0000000..67cc8a4 --- /dev/null +++ b/android/src/main/java/com/pkmnapps/nearby_connections/LocationEnabler.java @@ -0,0 +1,110 @@ +package com.pkmnapps.nearby_connections; + +import android.app.Activity; +import android.content.Intent; +import android.content.IntentSender; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.google.android.gms.common.api.ApiException; +import com.google.android.gms.common.api.ResolvableApiException; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.location.LocationSettingsRequest; +import com.google.android.gms.location.LocationSettingsResponse; +import com.google.android.gms.location.LocationSettingsStatusCodes; +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.Task; + +import io.flutter.plugin.common.MethodChannel.Result; +import io.flutter.plugin.common.PluginRegistry; + +class LocationEnabler implements PluginRegistry.ActivityResultListener { + + @Nullable + private Activity activity; + + private static final int LOCATION_ENABLE_REQUEST = 777; + + private LocationSettingsRequest mLocationSettingsRequest; + private Result pendingResult; + + private LocationEnabler(@Nullable Activity activity) { + this.activity = activity; + } + + LocationEnabler(PluginRegistry.Registrar registrar) { + this(registrar.activity()); + } + + LocationEnabler() { + this.activity = null; + } + + void setActivity(@Nullable Activity activity) { + this.activity = activity; + initiateLocationServiceRequest(); + } + + @Override + public boolean onActivityResult(int requestCode, int resultCode, Intent data) { + if (pendingResult == null) { + return false; + } + if (requestCode == LOCATION_ENABLE_REQUEST) { + if (resultCode == Activity.RESULT_OK) { + pendingResult.success(true); + } else { + pendingResult.success(false); + } + pendingResult = null; + return true; + } + return false; + } + + private void initiateLocationServiceRequest() { + LocationRequest mLocationRequest = LocationRequest.create(); + LocationSettingsRequest.Builder builder = new LocationSettingsRequest + .Builder() + .addLocationRequest(mLocationRequest) + .setAlwaysShow(true); + mLocationSettingsRequest = builder.build(); + } + + void requestLocationEnable(final Result result) { + this.pendingResult = result; + Task task = LocationServices.getSettingsClient(activity) + .checkLocationSettings(mLocationSettingsRequest); + + task.addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + try { + task.getResult(ApiException.class); + result.success(true); + } catch (ApiException ex) { + switch (ex.getStatusCode()) { + case LocationSettingsStatusCodes.SUCCESS: + result.success(true); + break; + case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: + try { + ResolvableApiException resolvableApiException = + (ResolvableApiException) ex; + resolvableApiException + .startResolutionForResult(activity, LOCATION_ENABLE_REQUEST); + } catch (IntentSender.SendIntentException e) { + result.error("LOCATION_SERVICE_ERROR", e.getMessage(), null); + } + break; + default: + result.success(false); + } + } + } + }); + } + +} \ No newline at end of file diff --git a/android/src/main/java/com/pkmnapps/nearby_connections/NearbyConnectionsPlugin.java b/android/src/main/java/com/pkmnapps/nearby_connections/NearbyConnectionsPlugin.java index 82fb683..44cc790 100644 --- a/android/src/main/java/com/pkmnapps/nearby_connections/NearbyConnectionsPlugin.java +++ b/android/src/main/java/com/pkmnapps/nearby_connections/NearbyConnectionsPlugin.java @@ -2,10 +2,9 @@ package com.pkmnapps.nearby_connections; import android.Manifest; import android.app.Activity; -import android.content.Intent; -import android.location.LocationManager; import android.content.pm.PackageManager; -import android.provider.Settings; +import android.location.LocationManager; +import android.util.Log; import androidx.annotation.NonNull; import androidx.core.app.ActivityCompat; @@ -32,31 +31,41 @@ import java.io.FileNotFoundException; import java.util.HashMap; import java.util.Map; +import io.flutter.embedding.engine.plugins.FlutterPlugin; +import io.flutter.embedding.engine.plugins.activity.ActivityAware; +import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; import io.flutter.plugin.common.MethodChannel.MethodCallHandler; import io.flutter.plugin.common.MethodChannel.Result; +import io.flutter.plugin.common.PluginRegistry; import io.flutter.plugin.common.PluginRegistry.Registrar; -import android.util.Log; - /** * NearbyConnectionsPlugin */ -public class NearbyConnectionsPlugin implements MethodCallHandler { +public class NearbyConnectionsPlugin implements MethodCallHandler, FlutterPlugin, ActivityAware { private Activity activity; private static final String SERVICE_ID = "com.pkmnapps.nearby_connections"; private static MethodChannel channel; + private static LocationEnabler locationEnabler; + private static ActivityPluginBinding activityBinding; + private static PluginRegistry.Registrar pluginRegistrar; private NearbyConnectionsPlugin(Activity activity) { this.activity = activity; } + /** * Plugin registration. */ public static void registerWith(Registrar registrar) { + pluginRegistrar = registrar; + locationEnabler = new LocationEnabler(registrar); + locationEnabler.setActivity(registrar.activity()); + initiate(); channel = new MethodChannel(registrar.messenger(), "nearby_connections"); channel.setMethodCallHandler(new NearbyConnectionsPlugin(registrar.activity())); } @@ -69,15 +78,15 @@ public class NearbyConnectionsPlugin implements MethodCallHandler { if (ContextCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(activity, - Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { result.success(true); } else { result.success(false); } break; case "askLocationPermission": - ActivityCompat.requestPermissions(activity, new String[] { Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.ACCESS_COARSE_LOCATION }, 0); + ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_COARSE_LOCATION}, 0); Log.d("nearby_connections", "askLocationPermission"); result.success(null); break; @@ -96,29 +105,29 @@ public class NearbyConnectionsPlugin implements MethodCallHandler { result.success(gps_enabled || network_enabled); break; case "enableLocationServices": - activity.startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)); + locationEnabler.requestLocationEnable(result); break; case "checkExternalStoragePermission": if (ContextCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(activity, - Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { + Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { result.success(true); } else { result.success(false); } break; case "askExternalStoragePermission": - ActivityCompat.requestPermissions(activity, new String[] { Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1); + ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); Log.d("nearby_connections", "askExternalStoragePermission"); result.success(null); break; case "askLocationAndExternalStoragePermission": ActivityCompat.requestPermissions(activity, - new String[] { Manifest.permission.ACCESS_FINE_LOCATION, + new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE }, + Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); Log.d("nearby_connections", "askExternalStoragePermission"); result.success(null); @@ -154,11 +163,11 @@ public class NearbyConnectionsPlugin implements MethodCallHandler { result.success(true); } }).addOnFailureListener(new OnFailureListener() { - @Override - public void onFailure(@NonNull Exception e) { - result.error("Failure", e.getMessage(), null); - } - }); + @Override + public void onFailure(@NonNull Exception e) { + result.error("Failure", e.getMessage(), null); + } + }); break; } case "startDiscovery": { @@ -181,11 +190,11 @@ public class NearbyConnectionsPlugin implements MethodCallHandler { result.success(true); } }).addOnFailureListener(new OnFailureListener() { - @Override - public void onFailure(@NonNull Exception e) { - result.error("Failure", e.getMessage(), null); - } - }); + @Override + public void onFailure(@NonNull Exception e) { + result.error("Failure", e.getMessage(), null); + } + }); break; } case "stopAllEndpoints": @@ -216,11 +225,11 @@ public class NearbyConnectionsPlugin implements MethodCallHandler { result.success(true); } }).addOnFailureListener(new OnFailureListener() { - @Override - public void onFailure(@NonNull Exception e) { - result.error("Failure", e.getMessage(), null); - } - }); + @Override + public void onFailure(@NonNull Exception e) { + result.error("Failure", e.getMessage(), null); + } + }); break; } case "acceptConnection": { @@ -234,11 +243,11 @@ public class NearbyConnectionsPlugin implements MethodCallHandler { result.success(true); } }).addOnFailureListener(new OnFailureListener() { - @Override - public void onFailure(@NonNull Exception e) { - result.error("Failure", e.getMessage(), null); - } - }); + @Override + public void onFailure(@NonNull Exception e) { + result.error("Failure", e.getMessage(), null); + } + }); break; } case "rejectConnection": { @@ -252,11 +261,11 @@ public class NearbyConnectionsPlugin implements MethodCallHandler { result.success(true); } }).addOnFailureListener(new OnFailureListener() { - @Override - public void onFailure(@NonNull Exception e) { - result.error("Failure", e.getMessage(), null); - } - }); + @Override + public void onFailure(@NonNull Exception e) { + result.error("Failure", e.getMessage(), null); + } + }); break; } case "sendPayload": { @@ -420,7 +429,7 @@ public class NearbyConnectionsPlugin implements MethodCallHandler { @Override public void onPayloadTransferUpdate(@NonNull String endpointId, - @NonNull PayloadTransferUpdate payloadTransferUpdate) { + @NonNull PayloadTransferUpdate payloadTransferUpdate) { // required for files and streams Log.d("nearby_connections", "onPayloadTransferUpdate"); @@ -438,7 +447,7 @@ public class NearbyConnectionsPlugin implements MethodCallHandler { private final EndpointDiscoveryCallback endpointDiscoveryCallback = new EndpointDiscoveryCallback() { @Override public void onEndpointFound(@NonNull String endpointId, - @NonNull DiscoveredEndpointInfo discoveredEndpointInfo) { + @NonNull DiscoveredEndpointInfo discoveredEndpointInfo) { Log.d("nearby_connections", "onEndpointFound"); Map args = new HashMap<>(); args.put("endpointId", endpointId); @@ -468,4 +477,58 @@ public class NearbyConnectionsPlugin implements MethodCallHandler { return Strategy.P2P_CLUSTER; } } + + @Override + public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { + locationEnabler = new LocationEnabler(); + } + + @Override + public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { + locationEnabler = null; + } + + private static void attachToActivity(ActivityPluginBinding binding) { + activityBinding = binding; + try { + locationEnabler.setActivity(binding.getActivity()); + initiate(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private void detachActivity() { + activityBinding.removeActivityResultListener(locationEnabler); + activityBinding = null; + } + + @Override + public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) { + attachToActivity(binding); + } + + @Override + public void onDetachedFromActivity() { + this.detachActivity(); + } + + @Override + public void onDetachedFromActivityForConfigChanges() { + this.detachActivity(); + } + + @Override + public void onReattachedToActivityForConfigChanges(@NonNull ActivityPluginBinding binding) { + attachToActivity(binding); + } + + private static void initiate() { + if (pluginRegistrar != null) { + pluginRegistrar.addActivityResultListener(locationEnabler); + } else { + activityBinding.addActivityResultListener(locationEnabler); + } + } + } diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml new file mode 100644 index 0000000..7abc06d --- /dev/null +++ b/android/src/main/res/values/strings.xml @@ -0,0 +1 @@ + diff --git a/example/android/build.gradle b/example/android/build.gradle index 013d33b..73683bf 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -11,7 +11,7 @@ buildscript { project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'androidx.core' - && !details.requested.name.contains('androidx') ) { + && !details.requested.name.contains('androidx')) { details.useVersion "1.0.1" } } diff --git a/example/lib/main.dart b/example/lib/main.dart index f26d2ce..d933ad3 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -112,8 +112,14 @@ class _MyBodyState extends State { ), RaisedButton( child: Text("enableLocationServices"), - onPressed: () { - Nearby().enableLocationServices(); + onPressed: () async { + if (await Nearby().enableLocationServices()) { + Scaffold.of(context).showSnackBar( + SnackBar(content: Text("Location Service Enabled :)"))); + } else { + Scaffold.of(context).showSnackBar( + SnackBar(content: Text("Enabling Location Service Failed :("))); + } }, ), ], diff --git a/example/pubspec.lock b/example/pubspec.lock index cf391c0..c2cf637 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -7,42 +7,42 @@ packages: name: archive url: "https://pub.dartlang.org" source: hosted - version: "2.0.11" + version: "2.0.13" args: dependency: transitive description: name: args url: "https://pub.dartlang.org" source: hosted - version: "1.5.2" + version: "1.6.0" async: dependency: transitive description: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.4.0" + version: "2.4.1" boolean_selector: dependency: transitive description: name: boolean_selector url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "2.0.0" charcode: dependency: transitive description: name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.1.2" + version: "1.1.3" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.14.11" + version: "1.14.12" convert: dependency: transitive description: @@ -56,7 +56,7 @@ packages: name: crypto url: "https://pub.dartlang.org" source: hosted - version: "2.1.3" + version: "2.1.4" cupertino_icons: dependency: "direct main" description: @@ -80,7 +80,7 @@ packages: name: image url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" + version: "2.1.12" image_picker: dependency: "direct main" description: @@ -108,7 +108,7 @@ packages: path: ".." relative: true source: path - version: "1.1.1+1" + version: "2.0.0-dev" path: dependency: transitive description: @@ -116,13 +116,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.6.4" - pedantic: - dependency: transitive - description: - name: pedantic - url: "https://pub.dartlang.org" - source: hosted - version: "1.8.0+1" petitparser: dependency: transitive description: @@ -136,7 +129,7 @@ packages: name: quiver url: "https://pub.dartlang.org" source: hosted - version: "2.0.5" + version: "2.1.3" sky_engine: dependency: transitive description: flutter @@ -148,7 +141,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.5.5" + version: "1.7.0" stack_trace: dependency: transitive description: @@ -183,7 +176,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.11" + version: "0.2.15" typed_data: dependency: transitive description: @@ -204,7 +197,7 @@ packages: name: xml url: "https://pub.dartlang.org" source: hosted - version: "3.5.0" + version: "3.6.1" sdks: - dart: ">=2.4.0 <3.0.0" + dart: ">=2.6.0 <3.0.0" flutter: ">=1.5.0 <2.0.0" diff --git a/lib/src/classes.dart b/lib/src/classes.dart index bbff1b7..103cb93 100644 --- a/lib/src/classes.dart +++ b/lib/src/classes.dart @@ -41,7 +41,7 @@ class PayloadTransferUpdate { /// ConnectionInfo class /// -/// Its a parameter in [OnConnctionInitiated] +/// Its a parameter in [OnConnectionInitiated] /// /// [endPointName] is userNickName of requester /// diff --git a/lib/src/defs.dart b/lib/src/defs.dart index 7b3e063..c548f22 100644 --- a/lib/src/defs.dart +++ b/lib/src/defs.dart @@ -17,7 +17,7 @@ enum PayloadType { NONE, BYTES, FILE, STREAM } // // Advertising lifecycle callbacks // -typedef void OnConnctionInitiated( +typedef void OnConnectionInitiated( String endpointId, ConnectionInfo connectionInfo); typedef void OnConnectionResult(String endpointId, Status status); typedef void OnDisconnected(String endpointId); diff --git a/lib/src/nearby.dart b/lib/src/nearby.dart index 6adf9e1..03b9bce 100644 --- a/lib/src/nearby.dart +++ b/lib/src/nearby.dart @@ -1,6 +1,5 @@ import 'dart:async'; import 'dart:typed_data'; - import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:nearby_connections/src/defs.dart'; @@ -15,6 +14,7 @@ import 'package:nearby_connections/src/classes.dart'; class Nearby { //Singleton pattern for maintaining only 1 instance of this class static Nearby _instance; + factory Nearby() { if (_instance == null) { _instance = Nearby._(); @@ -130,7 +130,7 @@ class Nearby { } //for advertisers - OnConnctionInitiated _advertConnectionInitiated, _discoverConnectionInitiated; + OnConnectionInitiated _advertConnectionInitiated, _discoverConnectionInitiated; OnConnectionResult _advertConnectionResult, _discoverConnectionResult; OnDisconnected _advertDisconnected, _discoverDisconnected; @@ -145,27 +145,27 @@ class Nearby { static const MethodChannel _channel = const MethodChannel('nearby_connections'); - /// Convinience method + /// convenience method /// - /// retruns true/false based on location permissions. + /// returns true/false based on location permissions. /// Discovery cannot be started with insufficient permission Future checkLocationPermission() async => await _channel.invokeMethod( 'checkLocationPermission', ); - /// Convinience method + /// convenience method /// /// Asks location permission void askLocationPermission() => _channel.invokeMethod('askLocationPermission'); - /// Convinience method + /// convenience method /// - /// retruns true/false based on external storage permissions. + /// returns true/false based on external storage permissions. Future checkExternalStoragePermission() async => await _channel.invokeMethod('checkExternalStoragePermission'); - /// Convinience method + /// convenience method /// /// Checks if Location/GPS is enabled /// @@ -174,19 +174,19 @@ class Nearby { Future checkLocationEnabled() async => await _channel.invokeMethod('checkLocationEnabled'); - /// Convinience method + /// convenience method /// /// directs user to Location Settings, so they can turn on their Location/GPS - void enableLocationServices() => - _channel.invokeMethod('enableLocationServices'); + Future enableLocationServices() async => + await _channel.invokeMethod('enableLocationServices'); - /// Convinience method + /// convenience method /// /// Asks external storage permission, required for file void askExternalStoragePermission() => _channel.invokeMethod('askExternalStoragePermission'); - /// Convinience method + /// convenience method /// /// Use this instead of calling both [askLocationPermission()] and [askExternalStoragePermission()] void askLocationAndExternalStoragePermission() => @@ -199,7 +199,7 @@ class Nearby { Future startAdvertising( String userNickName, Strategy strategy, { - @required OnConnctionInitiated onConnectionInitiated, + @required OnConnectionInitiated onConnectionInitiated, @required OnConnectionResult onConnectionResult, @required OnDisconnected onDisconnected, String serviceId = "com.pkmnapps.nearby_connections", @@ -286,12 +286,12 @@ class Nearby { /// Call this method when Discoverer calls the /// [OnEndpointFound] method /// - /// This will call the [OnConnctionInitiated] method on + /// This will call the [OnConnectionInitiated] method on /// both the endPoint and this Future requestConnection( String userNickName, String endpointId, { - @required OnConnctionInitiated onConnectionInitiated, + @required OnConnectionInitiated onConnectionInitiated, @required OnConnectionResult onConnectionResult, @required OnDisconnected onDisconnected, }) async { @@ -314,7 +314,7 @@ class Nearby { /// Needs be called by both discoverer and advertiser /// to connect /// - /// Call this in [OnConnctionInitiated] + /// Call this in [OnConnectionInitiated] /// to accept an incoming connection /// /// [OnConnectionResult] is called on both @@ -341,7 +341,7 @@ class Nearby { /// /// To be called by both discoverer and advertiser /// - /// Call this in [OnConnctionInitiated] + /// Call this in [OnConnectionInitiated] /// to reject an incoming connection /// /// [OnConnectionResult] is called on both diff --git a/pubspec.lock b/pubspec.lock index 67a7df1..97283e8 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -7,42 +7,42 @@ packages: name: archive url: "https://pub.dartlang.org" source: hosted - version: "2.0.11" + version: "2.0.13" args: dependency: transitive description: name: args url: "https://pub.dartlang.org" source: hosted - version: "1.5.2" + version: "1.6.0" async: dependency: transitive description: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.4.0" + version: "2.4.1" boolean_selector: dependency: transitive description: name: boolean_selector url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "2.0.0" charcode: dependency: transitive description: name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.1.2" + version: "1.1.3" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.14.11" + version: "1.14.12" convert: dependency: transitive description: @@ -56,7 +56,7 @@ packages: name: crypto url: "https://pub.dartlang.org" source: hosted - version: "2.1.3" + version: "2.1.4" flutter: dependency: "direct main" description: flutter @@ -73,7 +73,7 @@ packages: name: image url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" + version: "2.1.12" matcher: dependency: transitive description: @@ -95,13 +95,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.6.4" - pedantic: - dependency: transitive - description: - name: pedantic - url: "https://pub.dartlang.org" - source: hosted - version: "1.8.0+1" petitparser: dependency: transitive description: @@ -115,7 +108,7 @@ packages: name: quiver url: "https://pub.dartlang.org" source: hosted - version: "2.0.5" + version: "2.1.3" sky_engine: dependency: transitive description: flutter @@ -127,7 +120,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.5.5" + version: "1.7.0" stack_trace: dependency: transitive description: @@ -162,7 +155,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.11" + version: "0.2.15" typed_data: dependency: transitive description: @@ -183,6 +176,6 @@ packages: name: xml url: "https://pub.dartlang.org" source: hosted - version: "3.5.0" + version: "3.6.1" sdks: - dart: ">=2.4.0 <3.0.0" + dart: ">=2.6.0 <3.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 39f9663..a24b288 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: nearby_connections description: Plugin for the android NearbyConnections API. Bytes and Files Supported. -version: 1.1.1+1 +version: 2.0.0-dev homepage: https://github.com/mannprerak2/nearby_connections environment: