app_settings 8.0.3
app_settings: ^8.0.3 copied to clipboard
A Flutter plugin for opening iOS and Android phone settings from an app.
8.0.3 #
android/build.gradlenow reads the actualandroid.builtInKotlinGradle property (inherited from the consuming app's root project) instead of guessing from the AGP major version alone.kotlin-androidis only skipped for consumers who have genuinely opted into AGP's built-in Kotlin support; it's still applied (avoiding the 8.0.1 bug) for the defaultandroid.builtInKotlin=false. Verified both branches against a real AGP 9.0.1 project: with the defaultfalse, the plugin builds correctly; withtrue, skippingkotlin-androidavoids the'org.jetbrains.kotlin.android' plugin is no longer required for Kotlin support since AGP 9.0failure that other still-unmigrated plugins in the same build hit.
8.0.2 #
- fix:
android/build.gradlenow setscompileSdk = 36/minSdk = 16(property-assignment syntax) instead of the deprecatedcompileSdkVersion 36/minSdkVersion 16method-call syntax, since the latter is unavailable under AGP 9's "new DSL" mode. Property assignment has worked since AGP 7.0, so this is backward-compatible with AGP 7.x/8.x too. Adapted from a suggestion at qeepcologne/app_settings@agp9-new-dsl.
8.0.1 #
- fix:
android/build.gradleno longer conditionally skips applying thekotlin-androidplugin on AGP 9+. That guard broke every consuming app on AGP 9 with the (default)android.builtInKotlin=false, producingerror: cannot find symbol / class AppSettingsPluginin the generated plugin registrant at build time. Root cause: Flutter's own Gradle tooling (FlutterPluginUtils.detectApplyingKotlinGradlePlugin) decides whether to auto-applykotlin-androidfor a plugin subproject by regex-matching the literalapply plugin: 'kotlin-android'text in that subproject'sbuild.gradle— it does not evaluate Groovy conditionals. So even though our runtime guard (if (!isAgp9OrAbove) { ... }) skipped applying the plugin on AGP 9, Flutter's static text-based detection still saw the line and assumed KGP was already handled, so it didn't apply it either. Net effect: nothing ever compiled this module's Kotlin source on AGP 9. Verified against a real AGP 9.0.1 / Gradle 9.1.0 project. See #270 for the original guard.
8.0.0 #
- BREAKING: Drop CocoaPods support for iOS and macOS. Consuming apps must build with Swift Package Manager (supported by Flutter 3.24+); remove
ios/app_settings.podspecandmacos/app_settings.podspec. - fix: macOS plugin now ships its real implementation (
AppSettingsPlugin.swift,AppSettingsEnums.swift) through the Swift Package ManagerSourceslayout instead of the oldClasses/CocoaPods-only source set. - fix: bundle
PrivacyInfo.xcprivacycorrectly for both iOS and macOS SPM targets (the iOSPackage.swiftpreviously pointed at a resource path Xcode rejected as "unhandled"). - Add an explicit
FlutterFrameworkpackage dependency to bothPackage.swiftfiles, per Flutter's current Swift Package Manager plugin-authoring guidance. - Example app: remove
Podfile/Podfile.lock/Pods/for iOS and macOS; Xcode projects now resolve plugins via Swift Package Manager only. - Remove dead, non-functional
getPlatformVersion()leftover from the original plugin template (lib/app_settings_method_channel.dart,lib/src/app_settings.dart) — it was never implemented on any platform and always threwMissingPluginException. - Rewrite unit tests (
test/app_settings_test.dart,test/app_settings_method_channel_test.dart) to exercise realopenAppSettings/openAppSettingsPanelbehavior instead of stale, throwing mocks. - Example app: only show the "openAppSettingsPanel() options" section on Android, since settings panels are an Android Q+ feature.
- Update Android Gradle Plugin (8.7.3 -> 8.11.1), Kotlin (2.1.0 -> 2.2.20), and the Gradle wrapper (8.12 -> 8.14) in the example app to clear Flutter's outdated-toolchain warnings; align the plugin's own
android/build.gradlekotlin_version/gradle_versionto match.
7.0.0 #
- fix: add preconcurrency annotation in swift api
- fix: no rule to process file (xcprivacy) #240
- fix: Upgrade Gradle and Kotlin versions #231
- Feature/upgrade android compile version to 35
- open notification screen on iOS 15.4-16.0
- fix: privacyInfo for SPM
- Update build.gradle
6.1.1 #
- Users can request permission to install apps
6.1.0 #
- Added openAppSettings() to access platform specific 'camera' settings (Only MacOS) .
6.0.0 #
- Fİx for AppSettingsPlugin.swift:5:43, Attribute can only be applied to declarations, not types issue #232
- Upgraded gradle from 7.5 to 8.2
5.2.0 #
- Add Swift Package Manager support.
5.1.1 #
- Fixed a build issue on iOS for the example app.
5.1.0 #
Add AppSettingsType.appLocale to open the app language settings (only available on Android 13 and higher).
5.0.0 #
-
BREAKING CHANGES
- The
openAppSettings()method now accepts a single settings type. This replaces the various individual methods. - The
callbackargument has been removed. Instead, awaitopenAppSettings(). - Flutter 3.7 is now required.
- The
-
Updated the plugin to the new plugin template, using the platform interface.
-
Fixed a typo in the application identifier.
-
Bumped the Android SDK version to 33
-
Added the
namespaceproperty to the build.gradle for compatibility with Gradle 8 -
Added support for notification settings on iOS 16
-
Added support for Android Q Settings Panels
-
Relaxes the Android Bluetooth settings (
Settings.ACTION_BLUETOOTH_SETTINGS) requirement. The Bluetooth permission is no longer required.
4.2.1 #
- Fixed the async result from
openAppSettings()returning after the app settings have been processed on the native side.
4.2.0 #
- Added the ability to provide an optional custom callback function to
openAppSettings().
4.1.9 #
- Added the ability to open APN settings.
4.1.8 #
- Increase the Dart SDK upper bound to
<3.0.0
4.1.7 #
- Added support for Flutter <=3.0.1.
4.1.6 #
- Added the ability to open personal hotspot settings.
- Added the ability to open custom intents.
4.1.5 #
- Added the ability to open the developer settings. This requires enabling the developer settings to work correctly
4.1.4 #
- Migrate from jcenter() to mavenCentral()
4.1.3 #
- Added Android Open Lock & Password settings.
4.1.2 #
- Updated Android compileSdkVersion to 31.
4.1.1 #
- Added the ability to open VPN settings.
- Added the ability to open the device settings.
4.1.0 #
- Added null-safety support.
- Added the ability to open settings as a new task on Android.
4.0.4 #
- Updated the plugin to support Android embedding v2 in Flutter 1.12.
4.0.3 #
- Fixed a bug in openNotificationSettings for Android.
4.0.2 #
- Added in NFC settings access for Android. iOS will still rely on App Settings.
4.0.1+1 #
- Updated Android compileSdkVersion to 30.
4.0.1 #
- Added Battery Optimization settings access for Android. iOS will still rely on App Settings.
4.0.0 #
- Updated Gradle wrapper distribution from 4.6 -> 6.2.2
- Updated Kotlin plugin version from 1.3.50 -> 1.3.70
- Updated Android Gradle plugin from 3.5.1 -> 3.6.1
- Updated compileSdkVersion from 28 -> 'android-R'
- Removed generated and non-essential files
- Updated .gitignore
- Fixed the example app, which was not working correctly.
3.0.1 #
- Added Internal Storage settings access for Android. iOS will still rely on App Settings.
3.0.0+1 #
- Updated plugin version in
.podspec.
3.0.0 #
- Upgraded to Swift version: 5.0.1 - This version will only work on projects running Swift 5.0.1
2.0.2 #
- Legacy Swift 4 support.
2.0.2 #
- Added Date, Display, Notification, and Sound settings access for Android. iOS will still rely on App Settings.
2.0.1+1 #
- Added Bluetooth & Data Roaming settings access for Android (more to come). iOS will still rely on App Settings.
2.0.0 #
- Updated AGP and migrate to
AndroidX.
1.0.6+2 #
- Added missing
podspecdescription.
1.0.6+1 #
iOS TIP: If using Objective-C for iOS in your project, you will need to add use_frameworks! to your Runner project podfile in order to use this Swift plugin:
- target 'Runner' do
use_frameworks!
1.0.6 #
- Added openAppSettings() to access platform specific 'app' settings menu.
1.0.5 #
- Ensure the plugin stays compatible with iOS8+.
- Declare Swift compatibility version 4.2.
1.0.4 #
- Upgraded Kotlin version from: ext.kotlin_version = '1.2.71' to ext.kotlin_version = '1.3.20'
1.0.3 #
- Added additional documentation.