Contributing to the Flutter Permission handler plugin
# Contributing to the Flutter Permission handler plugin
=============================================
What you will need
## What you will need
------------------
* A Linux, Mac OS X, or Windows machine (note: to run and compile iOS specific parts you'll need access to a Mac OS X machine);
* A Linux, Mac OS X, or Windows machine (note: to run and compile iOS-specific parts you'll need access to a Mac OS X machine);
* git (used for source version control, installation instruction can be found [here](https://git-scm.com/));
* git (used for source version control, installation instructions can be found [here](https://git-scm.com/));
* The Flutter SDK (installation instructions can be found [here](https://flutter.io/get-started/install/));
* The Flutter SDK (installation instructions can be found [here](https://flutter.io/get-started/install/));
* A personal GitHub account (if you don't have one, you can sign-up for free [here](https://github.com/))
* A personal GitHub account (if you don't have one, you can sign up for free [here](https://github.com/))
Setting up your development environment
## Setting up your development environment
---------------------------------------
* Fork `https://github.com/Baseflow/flutter-permission-handler` into your own GitHub account. If you already have a fork and moving to a new computer, make sure you update you fork.
* Fork `https://github.com/Baseflow/flutter-permission-handler` into your own GitHub account. If you already have a fork and moving to a new computer, make sure you update your fork.
* If you haven't configured your machine with an SSH key that's known to github, then
* If you haven't configured your machine with an SSH key that's known to GitHub, then
* Clone your forked repo on your local development machine: `git clone git@github.com:<your_name_here>/flutter-permission-handler.git`
* Clone your forked repo on your local development machine: `git clone git@github.com:<your_name_here>/flutter-permission-handler.git`
* Change into the `flutter-permission-handler` directory: `cd flutter-permission-handler`
* Change into the `flutter-permission-handler` directory: `cd flutter-permission-handler`
* Add an upstream to the original repo, so that fetch from the master repository and not your clone: `git remote add upstream git@github.com:Baseflow/flutter-permission-handler.git`
* Add an upstream to the original repo, so that fetches from the master repository and not your clone: `git remote add upstream git@github.com:Baseflow/flutter-permission-handler.git`
Running the example project
## Running the example project
---------------------------
* Change into the example directory: `cd example`
* Change into the example directory: `cd example`
* Run the App: `flutter run`
* Run the App: `flutter run`
Contribute
## Contribute
----------
We really appreciate contributions via GitHub pull requests. To contribute take the following steps:
We really appreciate contributions via GitHub pull requests. To contribute take the following steps:
* Make sure you are up to date with the latest code on the master:
* Make sure you are up to date with the latest code on the master:
* Push changes to your fork: `git push origin <name_of_your_branch>`
* Push changes to your fork: `git push origin <name_of_your_branch>`
Send us your pull request:
Send us your pull request:
* Go to `https://github.com/Baseflow/flutter-permission-handler` and click the "Compare & pull request" button.
* Go to `https://github.com/Baseflow/flutter-permission-handler` and click the "Compare & pull request" button.
Please make sure you solved all warnings and errors reported by the static code analyses and that you fill in the full pull request template. Failing to do so will result in us asking you to fix it.
Please make sure you solved all warnings and errors reported by the static code analyses and that you fill in the full pull request template. Failing to do so will result in us asking you to fix it.
* Fixes missing POST_NOTIFICATIONS permission in Android example project.
* Fix missing POST_NOTIFICATIONS permission in the Android example project.
## 10.2.0
## 10.2.0
* Added support for the new Android 13 permissions: SCHEDULE_EXACT_ALARM, READ_MEDIA_IMAGES, READ_MEDIA_VIDEO and READ_MEDIA_AUDIO
* Added support for the new Android 13 permissions: SCHEDULE_EXACT_ALARM, READ_MEDIA_IMAGES, READ_MEDIA_VIDEO and READ_MEDIA_AUDIO
...
@@ -57,12 +57,12 @@
...
@@ -57,12 +57,12 @@
## 10.0.1
## 10.0.1
- Fix PermissionHandlerEnums link in the README.md
* Fix the PermissionHandlerEnums link in the README.md
## 10.0.0
## 10.0.0
*__BREAKING CHANGE__: Updated Android `compileSdkVersion` to `33` to handle the new `POST_NOTIFICATIONS` permission.
***BREAKING CHANGE**: Updated Android `compileSdkVersion` to `33` to handle the new `POST_NOTIFICATIONS` permission.
> When updating to version 10.0.0 make sure to update the `android/app/build.gradle` file and set the `compileSdkVersion` to `33`.
> When updating to version 10.0.0 make sure to update the `android/app/build.gradle` file and set the `compileSdkVersion` to `33`.
## 9.2.0
## 9.2.0
...
@@ -84,15 +84,15 @@
...
@@ -84,15 +84,15 @@
## 9.0.0
## 9.0.0
* iOS: Bluetooth permission dialog now appears when requested instead of when the app is initialized.
* iOS: Bluetooth permission dialog now appears when requested instead of when the app is initialized.
Note: Requesting Bluetooth status will also prompt the permission dialog (see issue [#591](https://github.com/Baseflow/flutter-permission-handler/issues/591)).
Note: Requesting Bluetooth status will also prompt the permission dialog (see issue [#591](https://github.com/Baseflow/flutter-permission-handler/issues/591)).
## 8.3.0
## 8.3.0
* Updated Android Gradle Plugin to 4.1.0 and Gradle Wrapper to 6.7 which is inline with the current Flutter stable version (Flutter 2.5.3).
* Updated Android Gradle Plugin to 4.1.0 and Gradle Wrapper to 6.7 which is inline with the current Flutter stable version (Flutter 2.5.3).
## 8.2.6
## 8.2.6
* Fixed broken androidx migration link in the README.md.
* Fixed broken Androidx migration link in the README.md.
## 8.2.5
## 8.2.5
...
@@ -100,11 +100,11 @@ Note: Requesting Bluetooth status will also prompt the permission dialog (see is
...
@@ -100,11 +100,11 @@ Note: Requesting Bluetooth status will also prompt the permission dialog (see is
## 8.2.4
## 8.2.4
* Solved bug where output would log that there is no permission in manifest for BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE and BLUETOOTH_CONNECT on Android 11 devices and lower(see issue [#691](https://github.com/Baseflow/flutter-permission-handler/issues/691)).
* Solved bug where output would log that there is no permission in the manifest for BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, and BLUETOOTH_CONNECT on Android 11 devices and lower(see issue [#691](https://github.com/Baseflow/flutter-permission-handler/issues/691)).
## 8.2.3
## 8.2.3
* iOS: Enhanced the `bluetooth` permission for iOS 13 and up, so the user gets prompted with the "bluetooth" permission dialog (see issue [#591](https://github.com/Baseflow/flutter-permission-handler/issues/591)).
* iOS: Enhanced the `bluetooth` permission for iOS 13 and up, so the user gets prompted with the "Bluetooth" permission dialog (see issue [#591](https://github.com/Baseflow/flutter-permission-handler/issues/591)).
## 8.2.2
## 8.2.2
...
@@ -113,23 +113,24 @@ Note: Requesting Bluetooth status will also prompt the permission dialog (see is
...
@@ -113,23 +113,24 @@ Note: Requesting Bluetooth status will also prompt the permission dialog (see is
## 8.2.1
## 8.2.1
* Resolved an issue where checking permissions on preAndroid M devices always resolved to `PermissionStatus.denied` (see issue [#60](https://github.com/Baseflow/flutter-permission-plugins/issues/60));
* Resolved an issue where checking permissions on pre-Android M devices always resolved to `PermissionStatus.denied` (see issue [#60](https://github.com/Baseflow/flutter-permission-plugins/issues/60));
* Updated the url_launcher dependency in the example App to `^6.0.12`.
* Updated the url_launcher dependency in the example App to `^6.0.12`.
## 8.2.0
## 8.2.0
> **IMPORTANT:** when updating to version 8.2.0 make sure to also set the `compileSdkVersion` in the `app/build.gradle` file to `31`.
> **IMPORTANT:** When updating to version 8.2.0 make sure to also set the `compileSdkVersion` in the `app/build.gradle` file to `31`.
* Added support for the new Android 12 Bluetooth permissions: BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE and BLUETOOTH_CONNECT.
* Added support for the new Android 12 Bluetooth permissions: BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, and BLUETOOTH_CONNECT.
* Updated Android compile and target SDK to 31 (Android 12 (S)).
* Updated Android compile and target SDK to 31 (Android 12 (S)).
* Updated Gradle and dependencies of Android project.
* Updated Gradle and dependencies of the Android project.
* Updated applicationID of example app
* Updated application of the example app
## 8.1.6
## 8.1.6
* Android: Fixed a `NullPointerException` when changing permissions in the Location Settings intent.
* Android: Fixed a `NullPointerException` when changing permissions in the Location Settings intent.
## 8.1.5
## 8.1.5
* Android: Fixed deprecation warnings/errors when `compileSdkVersion` was set to 31 (Android S/12).
* Android: Fixed deprecation warnings/errors when `compileSdkVersion` was set to 31 (Android S/12).
## 8.1.4+2
## 8.1.4+2
...
@@ -151,7 +152,7 @@ Note: Requesting Bluetooth status will also prompt the permission dialog (see is
...
@@ -151,7 +152,7 @@ Note: Requesting Bluetooth status will also prompt the permission dialog (see is
## 8.1.2
## 8.1.2
* Suppress deprecation warnings on iOS for code that specifically targets older iOS versions (see issue [#607](https://github.com/Baseflow/flutter-permission-handler/issues/607)).
* Suppress deprecation warnings on iOS for code that specifically targets older iOS versions (see issue [#607](https://github.com/Baseflow/flutter-permission-handler/issues/607)).
## 8.1.1
## 8.1.1
...
@@ -160,9 +161,9 @@ Note: Requesting Bluetooth status will also prompt the permission dialog (see is
...
@@ -160,9 +161,9 @@ Note: Requesting Bluetooth status will also prompt the permission dialog (see is
## 8.1.0
## 8.1.0
* Added support for iOS 12+ Critical Alerts permission requesting.
* Added support for iOS 12+ Critical Alerts permission requesting.
* NOTE: This requires applying to Apple and receiving a special entitlement from them inorder to work. See [this article](https://medium.com/@shashidharyamsani/implementing-ios-critical-alerts-7d82b4bb5026) for an explination on how to use Critical Alerts.
* NOTE: This requires applying to Apple and receiving a special entitlement from them in order to work. See [this article](https://medium.com/@shashidharyamsani/implementing-ios-critical-alerts-7d82b4bb5026) for an explanation of how to use Critical Alerts.
* Added support for Android M+ Access Notification Policy permission requesting (ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS).
* Added support for Android M+ Access Notification Policy permission requesting (ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS).
* Note: This opens a general page in settings, not specific to the package.
* Note: This opens a general page in settings, not specific to the package.
## 8.0.1
## 8.0.1
...
@@ -179,8 +180,9 @@ Note: Requesting Bluetooth status will also prompt the permission dialog (see is
...
@@ -179,8 +180,9 @@ Note: Requesting Bluetooth status will also prompt the permission dialog (see is
## 8.0.0
## 8.0.0
This release contains the following **breaking changes**:
This release contains the following **breaking changes**:
* Starting from this version the permissions on iOS are disabled by default. To enable a permission, specify the correct `GCC_PREPROCESSOR_DEFINITIONS` in the `ios/Podfile` file. For an example check out the [Podfile](permission_handler/example/ios/Podfile) of the example application.
* Starting from this version the permissions on iOS are disabled by default. To enable permission, specify the correct `GCC_PREPROCESSOR_DEFINITIONS` in the `ios/Podfile` file. For an example check out the [Podfile](permission_handler/example/ios/Podfile) of the example application.
* Added support for the "AppTrackingTransparency" permission on iOS.
* Added support for the "AppTrackingTransparency" permission on iOS.
## 7.2.0
## 7.2.0
...
@@ -189,7 +191,7 @@ This release contains the following **breaking changes**:
...
@@ -189,7 +191,7 @@ This release contains the following **breaking changes**:
## 7.1.1
## 7.1.1
* Improved the example app by using the Baseflow Plugin Template and move all the functionality to the `main.dart` file.
* Improved the example app by using the Baseflow Plugin Template and moving all the functionality to the `main.dart` file.
## 7.1.0
## 7.1.0
...
@@ -197,29 +199,30 @@ This release contains the following **breaking changes**:
...
@@ -197,29 +199,30 @@ This release contains the following **breaking changes**:
## 7.0.0
## 7.0.0
This release contains the following **breaking changes**:
This release contains the following **breaking changes**:
* Updated compile SDK version to 30 in the build.gradle for handling the MANAGE_EXTERNAL_STORAGE permission;
* Updated compile SDK version to 30 in the build.gradle for handling the MANAGE_EXTERNAL_STORAGE permission;
* Added the MANAGE_EXTERNAL_STORAGE permission for Android R and up;
* Added the MANAGE_EXTERNAL_STORAGE permission for Android R and up;
* Registered listeners on the plugin level to prevent memory leaks or unwanted behaviour.
* Registered listeners on the plugin level to prevent memory leaks or unwanted behavior.
## 6.1.3
## 6.1.3
* Implement equality operator on the `Permission` class;
* Implement equality operator on the `Permission` class;
* Updated the README.md with instructions on enabling/ disabling the bluetooth permissions on iOS;
* Updated the README.md with instructions on enabling/ disabling the Bluetooth permissions on iOS;
* Corrected some spelling mistakes in the `CHANGELOG.md`.
* Corrected some spelling mistakes in the `CHANGELOG.md`.
## 6.1.2
## 6.1.2
* Correctly handle the ACCESS_MEDIA_LOCATION and ACCESS_ACTIVITY_RECOGNITION permissions on pre Android Q devices (permissions should be implicitly granted on pre Android Q).
* Correctly handle the ACCESS_MEDIA_LOCATION and ACCESS_ACTIVITY_RECOGNITION permissions on pre-Android Q devices (permissions should be implicitly granted on pre-Android Q).
## 6.1.1
## 6.1.1
* Added unit-tests to guard API against breaking changes.
* Added unittests to guard API against breaking changes.
## 6.1.0
## 6.1.0
* Added support for bluetooth permissions;
* Added support for Bluetooth permissions;
* Workaround for ignore battery optimizations on pre-M Android devices (see PR [#376](https://github.com/Baseflow/flutter-permission-handler/pull/376)).
* Workaround for ignoring battery optimizations on pre-M Android devices (see PR [#376](https://github.com/Baseflow/flutter-permission-handler/pull/376)).
## 6.0.1+1
## 6.0.1+1
...
@@ -227,26 +230,27 @@ This release contains the following **breaking changes**:
...
@@ -227,26 +230,27 @@ This release contains the following **breaking changes**:
## 6.0.1
## 6.0.1
* Fixed deprecation warning when building Android project.
* Fixed deprecation warning when building Android projects.
## 6.0.0
## 6.0.0
This release includes the following **breaking changes**:
This release includes the following **breaking changes**:
* Migrated to null safety
* Migrated to null safety
* Removed PermissionStatus.undetermined, PermissionStatus.denied will be used instead (see our "[Changes in 6.0.0](https://github.com/Baseflow/flutter-permission-handler/wiki/Changes-in-6.0.0)" wiki page for more details).
* Removed PermissionStatus.undetermined, PermissionStatus.denied will be used instead (see our "[Changes in 6.0.0](https://github.com/Baseflow/flutter-permission-handler/wiki/Changes-in-6.0.0)" wiki page for more details).
## 5.1.0+2
## 5.1.0+2
* Solve mismatch with permission constants between Dart and Android (due to addition of permission on iOS);
* Solve mismatch with permission constants between Dart and Android (due to the addition of permission on iOS);
* Fix compile error which occurred when on iOS the "PERMISSION_PHOTOS" macro is deactivated (meaning code dealing with the `PHPhotoLibrary` library is removed from the code base).
* Fix the compile error that occurred when on iOS the "PERMISSION_PHOTOS" macro is deactivated (meaning code dealing with the `PHPhotoLibrary` library is removed from the code base).
## 5.1.0+1
## 5.1.0+1
* Recreate the iOS part of the example project based on the Flutter stable channel (previous version was accidentally created with the Flutter beta channel).
* Recreate the iOS part of the example project based on the Flutter stable channel (the previous version was accidentally created with the Flutter beta channel).
## 5.1.0
## 5.1.0
* Added support for the limited photos permission available on iOS 14 and up;
* Added support for the limited photo permission available on iOS 14 and up;
* Fixed deprecated warning on iOS;
* Fixed deprecated warning on iOS;
* Added support for the "READ_PHONE_NUMBERS" permission on Android;
* Added support for the "READ_PHONE_NUMBERS" permission on Android;
* Fix a link to the contribution guide in the README.md.
* Fix a link to the contribution guide in the README.md.
...
@@ -258,7 +262,7 @@ This release includes the following **breaking changes**:
...
@@ -258,7 +262,7 @@ This release includes the following **breaking changes**:
## 5.0.1+1
## 5.0.1+1
* Fixes Typo
* Fixes Typo
* Issue #233 - on 5.0: Solved a bug that prevented Android applications running in the background to check the permission status.
* Issue #233 * on 5.0: Solved a bug that prevented Android applications running in the background to check the permission status.
## 5.0.1
## 5.0.1
...
@@ -286,7 +290,7 @@ This release includes the following **breaking changes**:
...
@@ -286,7 +290,7 @@ This release includes the following **breaking changes**:
## 5.0.0+hotfix.5
## 5.0.0+hotfix.5
* Remove use of the deprecated pre iOS 8 API causing users compile issues (see issue [#277](https://github.com/Baseflow/flutter-permission-handler/issues/277)).
* Remove the use of the deprecated pre-iOS 8 API causing users to compile issues (see issue [#277](https://github.com/Baseflow/flutter-permission-handler/issues/277)).
## 5.0.0+hotfix.4
## 5.0.0+hotfix.4
...
@@ -294,7 +298,7 @@ This release includes the following **breaking changes**:
...
@@ -294,7 +298,7 @@ This release includes the following **breaking changes**:
## 5.0.0+hotfix.3
## 5.0.0+hotfix.3
* Includes the changes of 4.4.0+hotfix.4 (which was released to be backwards compatible).
* Includes the changes of 4.4.0+hotfix.4 (which was released to be backward compatible).
## 5.0.0+hotfix.2
## 5.0.0+hotfix.2
...
@@ -318,19 +322,19 @@ IGNORE THIS VERSION, it was released by accident and contains the same code as 4
...
@@ -318,19 +322,19 @@ IGNORE THIS VERSION, it was released by accident and contains the same code as 4
## 4.4.0+hotfix.2
## 4.4.0+hotfix.2
* Issue #235: Solved a bug which made it impossible to request service status on Android 7;
* Issue #235: Solved a bug that made it impossible to request service status on Android 7;
* Issue #237: Solved a bug which crashes the application when cancelling the "Ignore battery optimizations" request for permissions.
* Issue #237: Solved a bug that crashes the application when canceling the "Ignore battery optimizations" request for permissions.
## 4.4.0+hotfix.1
## 4.4.0+hotfix.1
* Issue #233: Solved a bug that prevented Android applications running in the background to check the permission status.
* Issue #233: Solved a bug that prevented Android applications from running in the background to check the permission status.
## 4.4.0
## 4.4.0
* Updated plugin structure to confirm to the Flutter federated plugin architecture. This will make it easier to add new platform implementations (see: https://medium.com/flutter/how-to-write-a-flutter-web-plugin-part-2-afdddb69ece6);
* Updated plugin structure to conform to the Flutter federated plugin architecture. This will make it easier to add new platform implementations (see: https://medium.com/flutter/how-to-write-a-flutter-web-plugin-part-2-afdddb69ece6);
* Android: Migrate to FlutterPlugin Android API (better support for Add-to-App);
* Android: Migrate to FlutterPlugin Android API (better support for Add-to-App);
* Android: Suppress JAVA warnings which are generated to old platform code (only executes on older platforms);
* Android: Suppress JAVA warnings which are generated to old platform code (only executes on older platforms);
* Android: Fixed issue which sometimes resulting in illegal cast exception.
* Android: Fixed issue which sometimes results in illegal cast exception.
## 4.3.0
## 4.3.0
...
@@ -348,14 +352,13 @@ IGNORE THIS VERSION, it was released by accident and contains the same code as 4
...
@@ -348,14 +352,13 @@ IGNORE THIS VERSION, it was released by accident and contains the same code as 4
* Android: Fixes a bug where permissions are reported as `neverAskAgain` incorrectly after calling `requestPermissions` method.
* Android: Fixes a bug where permissions are reported as `neverAskAgain` incorrectly after calling `requestPermissions` method.
## 4.2.0+hotfix.1
## 4.2.0+hotfix.1
* Android: Fixes a bug where permissions are reported as `neverAskAgain` incorrectly.
* Android: Fixes a bug where permissions are reported as `neverAskAgain` incorrectly.
## 4.2.0
## 4.2.0
* Android: Methods `checkPermissionStatus` and `requestPermissions` now support addition`neverAskAgain` status.
* Android: Methods `checkPermissionStatus` and `requestPermissions` now support the additional`neverAskAgain` status.
## 4.1.0
## 4.1.0
...
@@ -372,7 +375,7 @@ IGNORE THIS VERSION, it was released by accident and contains the same code as 4
...
@@ -372,7 +375,7 @@ IGNORE THIS VERSION, it was released by accident and contains the same code as 4
## 3.3.0
## 3.3.0
* Android: Add support for requesting the background location permission within the `locationAlways` group.
* Android: Add support for requesting the background location permission within the `locationAlways` group.
* Android: Update AGP, Gradle and AndroidX dependencies
* Android: Update AGP, Gradle, and AndroidX dependencies
## 3.2.2
## 3.2.2
...
@@ -384,7 +387,7 @@ IGNORE THIS VERSION, it was released by accident and contains the same code as 4
...
@@ -384,7 +387,7 @@ IGNORE THIS VERSION, it was released by accident and contains the same code as 4
## 3.2.1
## 3.2.1
* Updated dependency on 'meta' to latest version.
* Updated dependency on 'meta' to the latest version.
## 3.2.0
## 3.2.0
...
@@ -399,7 +402,7 @@ IGNORE THIS VERSION, it was released by accident and contains the same code as 4
...
@@ -399,7 +402,7 @@ IGNORE THIS VERSION, it was released by accident and contains the same code as 4
## 3.0.2
## 3.0.2
* Fixed bug when rapidly requesting permissions (#23);
* Fixed bug when rapidly requesting permissions (#23);
* Rename Enums.h to PermissionHandlerEnums.h to prevent conflicts with geolocator (#104);
* Rename Enums.h to PermissionHandlerEnums.h to prevent conflicts with the geolocator (#104);
* Update the Android permission request code to prevent conflicts with geolocator (#111);
* Update the Android permission request code to prevent conflicts with geolocator (#111);
* Update Gradle infrastructure.
* Update Gradle infrastructure.
...
@@ -418,14 +421,14 @@ IGNORE THIS VERSION, it was released by accident and contains the same code as 4
...
@@ -418,14 +421,14 @@ IGNORE THIS VERSION, it was released by accident and contains the same code as 4
## 2.1.3
## 2.1.3
* Fixed bug on iOS where result of the `openAppSettings` call always returned `false`;
* Fixed bug on iOS where the result of the `openAppSettings` call always returned `false`;
* Upgrade Android plugin to support AndroidX and latest Gradle and Kotlin versions;
* Upgrade the Android plugin to support AndroidX and the latest Gradle and Kotlin versions;
* Added Swift version number to the Podfile of the plugin;
* Added Swift version number to the Podfile of the plugin;
* Updated flutter static analyzes to conform to latest recommendations.
* Updated flutter static analyses to conform to the latest recommendations.
## 2.1.2
## 2.1.2
* Make sure the Permission Handler compiles with latest iOS SDK
* Make sure the Permission Handler compiles with the latest iOS SDK
## 2.1.1
## 2.1.1
...
@@ -444,12 +447,12 @@ IGNORE THIS VERSION, it was released by accident and contains the same code as 4
...
@@ -444,12 +447,12 @@ IGNORE THIS VERSION, it was released by accident and contains the same code as 4
## 2.0.0
## 2.0.0
* Make methods nonstatic so users can create an instance or override
* Make methods non-static so users can create an instance or override
## 1.0.1
## 1.0.1
* Converted the plugin into a library so that developers don't have to import additional files;
* Converted the plugin into a library so that developers don't have to import additional files;
@@ -11,7 +11,7 @@ See the [FAQ](#faq) section for more information on common questions when using
...
@@ -11,7 +11,7 @@ See the [FAQ](#faq) section for more information on common questions when using
## Setup
## Setup
While the permissions are being requested during runtime, you'll still need to tell the OS which permissions your app might potentially use. That requires adding permission configuration to Android- and iOS-specific files.
While the permissions are being requested during runtime, you'll still need to tell the OS which permissions your app might potentially use. That requires adding permission configuration to Android* and iOS-specific files.
@@ -12,12 +12,12 @@ More detailed instructions on using the API can be found in the [README.md](../p
...
@@ -12,12 +12,12 @@ More detailed instructions on using the API can be found in the [README.md](../p
## Issues
## Issues
Please file any issues, bugs or feature requests as an issue on our [GitHub](https://github.com/Baseflow/flutter-permission-handler/issues) page. Commercial support is available, you can contact us at <hello@baseflow.com>.
Please file any issues, bugs, or feature requests as an issue on our [GitHub](https://github.com/Baseflow/flutter-permission-handler/issues) page. Commercial support is available, you can contact us at <hello@baseflow.com>.
## Want to contribute
## Want to contribute
If you would like to contribute to the plugin (e.g. by improving the documentation, solving a bug or adding a cool new feature), please carefully review our [contribution guide](../CONTRIBUTING.md) and send us your [pull request](https://github.com/Baseflow/flutter-permission-handler/pulls).
If you would like to contribute to the plugin (e.g. by improving the documentation, solving a bug, or adding a cool new feature), please carefully review our [contribution guide](../CONTRIBUTING.md) and send us your [pull request](https://github.com/Baseflow/flutter-permission-handler/pulls).
## Author
## Author
This permission_handler plugin for Flutter is developed by [Baseflow](https://baseflow.com).
This permission_handler plugin for Flutter is developed by [Baseflow](https://baseflow.com).
* Adds flag inside `UserDefaults` to save whether locationAlways has already been requested and prevent further requests, which would be left unanswered by the system.
* Adds flag inside `UserDefaults` to save whether `locationAlways` has already been requested and prevent further requests, which would be left unanswered by the system.
## 9.0.3
## 9.0.3
* Ensures a request for `locationAlways` permission returns a result unblocking the permission request and preventing the `ERROR_ALREADY_REQUESTING_PERMISSIONS` error for subsequent permission request.
* Ensures a request for `locationAlways` permission returns a result unblocking the permission request and preventing the `ERROR_ALREADY_REQUESTING_PERMISSIONS` error for subsequent permission requests.
@@ -12,12 +12,12 @@ More detailed instructions on using the API can be found in the [README.md](../p
...
@@ -12,12 +12,12 @@ More detailed instructions on using the API can be found in the [README.md](../p
## Issues
## Issues
Please file any issues, bugs or feature requests as an issue on our [GitHub](https://github.com/Baseflow/flutter-permission-handler/issues) page. Commercial support is available, you can contact us at <hello@baseflow.com>.
Please file any issues, bugs, or feature requests as an issue on our [GitHub](https://github.com/Baseflow/flutter-permission-handler/issues) page. Commercial support is available, you can contact us at <hello@baseflow.com>.
## Want to contribute
## Want to contribute
If you would like to contribute to the plugin (e.g. by improving the documentation, solving a bug or adding a cool new feature), please carefully review our [contribution guide](../CONTRIBUTING.md) and send us your [pull request](https://github.com/Baseflow/flutter-permission-handler/pulls).
If you would like to contribute to the plugin (e.g. by improving the documentation, solving a bug, or adding a cool new feature), please carefully review our [contribution guide](../CONTRIBUTING.md) and send us your [pull request](https://github.com/Baseflow/flutter-permission-handler/pulls).
## Author
## Author
This permission_handler plugin for Flutter is developed by [Baseflow](https://baseflow.com).
This permission_handler plugin for Flutter is developed by [Baseflow](https://baseflow.com).
* Clarifies the documentation on requesting background location permission
* Clarifies the documentation on requesting background location permission
through `Permission.locationAlways` on Android 10+ (API 29+).
through `Permission.locationAlways` on Android 10+ (API 29+).
## 3.11.3
## 3.11.3
...
@@ -58,7 +58,7 @@ through `Permission.locationAlways` on Android 10+ (API 29+).
...
@@ -58,7 +58,7 @@ through `Permission.locationAlways` on Android 10+ (API 29+).
## 3.7.0
## 3.7.0
* Adds support for the new Android 12 Bluetooth permissions: BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE and BLUETOOTH_CONNECT.
* Adds support for the new Android 12 Bluetooth permissions: BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, and BLUETOOTH_CONNECT.
## 3.6.2
## 3.6.2
...
@@ -71,7 +71,7 @@ through `Permission.locationAlways` on Android 10+ (API 29+).
...
@@ -71,7 +71,7 @@ through `Permission.locationAlways` on Android 10+ (API 29+).
## 3.6.0
## 3.6.0
* Adds support for iOS Critical alerts and Android Access Notification Policy.
* Adds support for iOS Critical Alerts and Android Access Notification Policy.
## 3.5.1
## 3.5.1
...
@@ -91,25 +91,25 @@ through `Permission.locationAlways` on Android 10+ (API 29+).
...
@@ -91,25 +91,25 @@ through `Permission.locationAlways` on Android 10+ (API 29+).
## 3.2.0
## 3.2.0
* Adds support for manage external storage permission available on Android 10 and up.
* Adds support for managing external storage permission available on Android 10 and up.
## 3.1.3
## 3.1.3
* Implements the equality operator for `Permission` class;
* Implements the equality operator for the `Permission` class;
* Reverts the services status check for notification permission. Turns out implementation does not fit with idea's of permission_handler plugin.
* Reverts the status of the services check for notification permission. Turns out the implementation does not fit with the ideas of the permission_handler plugin.
## 3.1.2
## 3.1.2
* Allows checking serviceStatus for notification permission.
* Allows checking service status for notification permission.
## 3.1.1
## 3.1.1
* Fixes conversion issue where `PermissionStatus.denied` was not translated to the correct index.
* Fixes conversion issue where `PermissionStatus.denied` was not translated to the correct index.
* Adds unit-tests to guard API against breaking changes.
* Adds unittests to guard API against breaking changes.
## 3.1.0
## 3.1.0
* Adds support for bluetooth permissions.
* Adds support for Bluetooth permissions.
## 3.0.0+1
## 3.0.0+1
...
@@ -121,17 +121,17 @@ through `Permission.locationAlways` on Android 10+ (API 29+).
...
@@ -121,17 +121,17 @@ through `Permission.locationAlways` on Android 10+ (API 29+).
## 2.0.2
## 2.0.2
* Adds support for the limited photos permission available on iOS 14 and up.
* Adds support for the limited photo permission available on iOS 14 and up.
## 2.0.1
## 2.0.1
* Updates to `platform_interface 1.0.2`
* Updates to `platform_interface 1.0.2`
* Fixes bug which allows requesting is the device has phone capabilities.
* Fixes bug that allows requesting if the device has phone capabilities.
## 2.0.0
## 2.0.0
-**BREAKING**: Creates a much more intuitive API using Dart's new extension methods ([#230](https://github.com/Baseflow/flutter-permission-handler/issues/230)). Big thank you to [@marcelgarus](https://github.com/marcelgarus) for the idea and doing all the grunt work.
***BREAKING**: Creates a much more intuitive API using Dart's new extension methods ([#230](https://github.com/Baseflow/flutter-permission-handler/issues/230)). Big thank you to [@marcelgarus](https://github.com/marcelgarus) for the idea and for doing all the grunt work.
Please file any issues, bugs or feature request as an issue on our [GitHub](https://github.com/Baseflow/flutter-permission-handler/issues) page.
Please file any issues, bugs, or feature requests as an issue on our [GitHub](https://github.com/Baseflow/flutter-permission-handler/issues) page.
# Want to contribute
# Want to contribute
If you would like to contribute to the plugin (e.g. by improving the documentation, solving a bug or adding a cool new feature), please carefully review our [contribution guide](../CONTRIBUTING.md) and send us your [pull request](https://github.com/Baseflow/flutter-permission-handler/pulls).
If you would like to contribute to the plugin (e.g. by improving the documentation, solving a bug, or adding a cool new feature), please carefully review our [contribution guide](../CONTRIBUTING.md) and send us your [pull request](https://github.com/Baseflow/flutter-permission-handler/pulls).
## Note on breaking changes
## Note on breaking changes
...
@@ -30,11 +30,11 @@ Strongly prefer non-breaking changes (such as adding a method to the interface)
...
@@ -30,11 +30,11 @@ Strongly prefer non-breaking changes (such as adding a method to the interface)
over breaking changes for this package.
over breaking changes for this package.
See https://flutter.dev/go/platform-interface-breaking-changes for a discussion
See https://flutter.dev/go/platform-interface-breaking-changes for a discussion
on why a less-clean interface is preferable to a breaking change.
on why a lessclean interface is preferable to a breaking change.
# Author
# Author
This Permission handler plugin for Flutter is developed by [Baseflow](https://baseflow.com). You can contact us at <hello@baseflow.com>
This Permission handler plugin for Flutter is developed by [Baseflow](https://baseflow.com). You can contact us at <hello@baseflow.com>
@@ -12,12 +12,12 @@ More detailed instructions on using the API can be found in the [README.md](../p
...
@@ -12,12 +12,12 @@ More detailed instructions on using the API can be found in the [README.md](../p
## Issues
## Issues
Please file any issues, bugs or feature requests as an issue on our [GitHub](https://github.com/Baseflow/flutter-permission-handler/issues) page. Commercial support is available, you can contact us at <hello@baseflow.com>.
Please file any issues, bugs, or feature requests as an issue on our [GitHub](https://github.com/Baseflow/flutter-permission-handler/issues) page. Commercial support is available, you can contact us at <hello@baseflow.com>.
## Want to contribute
## Want to contribute
If you would like to contribute to the plugin (e.g. by improving the documentation, solving a bug or adding a cool new feature), please carefully review our [contribution guide](../CONTRIBUTING.md) and send us your [pull request](https://github.com/Baseflow/flutter-permission-handler/pulls).
If you would like to contribute to the plugin (e.g. by improving the documentation, solving a bug, or adding a cool new feature), please carefully review our [contribution guide](../CONTRIBUTING.md) and send us your [pull request](https://github.com/Baseflow/flutter-permission-handler/pulls).
## Author
## Author
This permission_handler plugin for Flutter is developed by [Baseflow](https://baseflow.com).
This permission_handler plugin for Flutter is developed by [Baseflow](https://baseflow.com).