From 8ce26df3f1598a9d6e6c8f60932aabc3db244dd4 Mon Sep 17 00:00:00 2001
From: Alireza Hajebrahimi <6937697+iarata@users.noreply.github.com>
Date: Tue, 18 Aug 2026 00:23:38 +0200
Subject: [PATCH 1/2] noise_meter v6.0.0
---
packages/noise_meter/CHANGELOG.md | 8 ++
packages/noise_meter/README.md | 30 ++++-
.../example/android/app/build.gradle | 68 -----------
.../android/app/src/debug/AndroidManifest.xml | 3 +-
.../android/app/src/main/AndroidManifest.xml | 3 +-
.../com/example/example/MainActivity.kt | 12 --
.../noise_meter/example/android/build.gradle | 31 -----
.../example/android/gradle.properties | 7 +-
.../gradle/wrapper/gradle-wrapper.properties | 3 +-
.../example/android/settings.gradle | 25 ----
.../ios/Flutter/AppFrameworkInfo.plist | 2 -
.../example/ios/Flutter/Debug.xcconfig | 1 -
.../example/ios/Flutter/Release.xcconfig | 1 -
packages/noise_meter/example/ios/Podfile | 47 --------
.../ios/Runner.xcodeproj/project.pbxproj | 113 ++++--------------
.../xcshareddata/xcschemes/Runner.xcscheme | 18 +++
.../contents.xcworkspacedata | 3 -
.../example/ios/Runner/AppDelegate.swift | 9 +-
.../noise_meter/example/ios/Runner/Info.plist | 23 +++-
packages/noise_meter/example/pubspec.yaml | 6 +-
packages/noise_meter/pubspec.yaml | 8 +-
21 files changed, 123 insertions(+), 298 deletions(-)
delete mode 100644 packages/noise_meter/example/android/app/build.gradle
delete mode 100644 packages/noise_meter/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt
delete mode 100644 packages/noise_meter/example/android/build.gradle
delete mode 100644 packages/noise_meter/example/android/settings.gradle
delete mode 100644 packages/noise_meter/example/ios/Podfile
diff --git a/packages/noise_meter/CHANGELOG.md b/packages/noise_meter/CHANGELOG.md
index a915464c4..a711b9e15 100644
--- a/packages/noise_meter/CHANGELOG.md
+++ b/packages/noise_meter/CHANGELOG.md
@@ -1,3 +1,11 @@
+## 6.0.0
+
+- **Breaking:** requires Flutter `>=3.44.0`
+- Updated the example app to AGP 9.0.1, Kotlin 2.3.20, Gradle 9.1.0, Java 17 and `compileSdk 37`
+- Updated the example app to `permission_handler: ^13.0.1`
+- Updated to `audio_streamer: ^5.0.0`
+- Updated documentation
+
## 5.1.0
- update to `audio_streamer: ^4.2.0`
diff --git a/packages/noise_meter/README.md b/packages/noise_meter/README.md
index 75e99c37b..c5e42e91f 100644
--- a/packages/noise_meter/README.md
+++ b/packages/noise_meter/README.md
@@ -7,18 +7,29 @@ A noise meter plugin for iOS and Android.
Add `noise_meter` as a dependency in `pubspec.yaml`.
For help on adding as a dependency, view the [documentation](https://flutter.io/using-packages/).
-On **Android** you need to add a permission to `AndroidManifest.xml`:
+### Requirements
+
+This plugin builds on [`audio_streamer`](https://pub.dev/packages/audio_streamer) and inherits its
+platform requirements: Flutter 3.44 or later, iOS 16.0 or later, and Android `minSdk` 24 or later.
+
+### Android
+
+Add the microphone permission to `AndroidManifest.xml`:
```xml
-
```
-On **iOS** enable the following in XCode:
+### iOS
+
+Enable the following in Xcode:
- Capabilities > Background Modes > _Audio, AirPlay and Picture in Picture_
- In the Runner Xcode project edit the _Info.plist_ file. Add an entry for _'Privacy - Microphone Usage Description'_
-- Edit the `Podfile` to include the permission for the microphone:
+
+If your app requests the permission with [`permission_handler`](https://pub.dev/packages/permission_handler)
+**and still integrates iOS dependencies with CocoaPods**, edit the `Podfile` to enable the
+microphone permission:
```ruby
post_install do |installer|
@@ -34,6 +45,17 @@ post_install do |installer|
end
```
+This step is not needed with Swift Package Manager — `permission_handler_apple` enables the
+microphone permission automatically when `NSMicrophoneUsageDescription` is present in
+`Info.plist`.
+
+## Swift Package Manager
+
+iOS dependencies are resolved with
+[Swift Package Manager](https://docs.flutter.dev/packages-and-plugins/swift-package-manager/for-app-developers)
+on Flutter 3.44 and later; no configuration is needed. CocoaPods remains supported for apps that
+have not migrated. The example app is integrated with SPM only and has no `Podfile`.
+
## Usage
See the example app for how to use the plugin. This app also illustrated how to obtain permission to access the microphone.
diff --git a/packages/noise_meter/example/android/app/build.gradle b/packages/noise_meter/example/android/app/build.gradle
deleted file mode 100644
index 61c61ca50..000000000
--- a/packages/noise_meter/example/android/app/build.gradle
+++ /dev/null
@@ -1,68 +0,0 @@
-plugins {
- id "com.android.application"
- id "kotlin-android"
- id "dev.flutter.flutter-gradle-plugin"
-}
-
-def localProperties = new Properties()
-def localPropertiesFile = rootProject.file('local.properties')
-if (localPropertiesFile.exists()) {
- localPropertiesFile.withReader('UTF-8') { reader ->
- localProperties.load(reader)
- }
-}
-
-def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
-if (flutterVersionCode == null) {
- flutterVersionCode = '1'
-}
-
-def flutterVersionName = localProperties.getProperty('flutter.versionName')
-if (flutterVersionName == null) {
- flutterVersionName = '1.0'
-}
-
-android {
- compileSdkVersion flutter.compileSdkVersion
- namespace "com.noise_meter.example"
-
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
-
- sourceSets {
- main.java.srcDirs += 'src/main/kotlin'
- }
-
- kotlinOptions {
- jvmTarget = '1.8'
- }
-
- lintOptions {
- disable 'InvalidPackage'
- }
-
- defaultConfig {
- // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
- applicationId "com.noise_meter.example"
- minSdkVersion flutter.minSdkVersion
- targetSdkVersion flutter.targetSdkVersion
- versionCode flutterVersionCode.toInteger()
- versionName flutterVersionName
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- }
-
- buildTypes {
- release {
- // TODO: Add your own signing config for the release build.
- // Signing with the debug keys for now, so `flutter run --release` works.
- signingConfig signingConfigs.debug
- }
- }
-}
-
-flutter {
- source '../..'
-}
-
diff --git a/packages/noise_meter/example/android/app/src/debug/AndroidManifest.xml b/packages/noise_meter/example/android/app/src/debug/AndroidManifest.xml
index c3baaa2d6..f880684a6 100644
--- a/packages/noise_meter/example/android/app/src/debug/AndroidManifest.xml
+++ b/packages/noise_meter/example/android/app/src/debug/AndroidManifest.xml
@@ -1,7 +1,6 @@
-
+
-
diff --git a/packages/noise_meter/example/android/app/src/main/AndroidManifest.xml b/packages/noise_meter/example/android/app/src/main/AndroidManifest.xml
index efdfded9f..5d6b54bf3 100644
--- a/packages/noise_meter/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/noise_meter/example/android/app/src/main/AndroidManifest.xml
@@ -1,4 +1,5 @@
-
+
+
????
CFBundleVersion
1.0
- MinimumOSVersion
- 13.0
diff --git a/packages/noise_meter/example/ios/Flutter/Debug.xcconfig b/packages/noise_meter/example/ios/Flutter/Debug.xcconfig
index e8efba114..592ceee85 100644
--- a/packages/noise_meter/example/ios/Flutter/Debug.xcconfig
+++ b/packages/noise_meter/example/ios/Flutter/Debug.xcconfig
@@ -1,2 +1 @@
-#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig"
diff --git a/packages/noise_meter/example/ios/Flutter/Release.xcconfig b/packages/noise_meter/example/ios/Flutter/Release.xcconfig
index 399e9340e..592ceee85 100644
--- a/packages/noise_meter/example/ios/Flutter/Release.xcconfig
+++ b/packages/noise_meter/example/ios/Flutter/Release.xcconfig
@@ -1,2 +1 @@
-#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig"
diff --git a/packages/noise_meter/example/ios/Podfile b/packages/noise_meter/example/ios/Podfile
deleted file mode 100644
index b7aaa0894..000000000
--- a/packages/noise_meter/example/ios/Podfile
+++ /dev/null
@@ -1,47 +0,0 @@
-# Uncomment this line to define a global platform for your project
-# platform :ios, '13.0'
-
-# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
-ENV['COCOAPODS_DISABLE_STATS'] = 'true'
-
-project 'Runner', {
- 'Debug' => :debug,
- 'Profile' => :release,
- 'Release' => :release,
-}
-
-def flutter_root
- generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
- unless File.exist?(generated_xcode_build_settings_path)
- raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
- end
-
- File.foreach(generated_xcode_build_settings_path) do |line|
- matches = line.match(/FLUTTER_ROOT\=(.*)/)
- return matches[1].strip if matches
- end
- raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
-end
-
-require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
-
-flutter_ios_podfile_setup
-
-target 'Runner' do
- use_frameworks!
- use_modular_headers!
-
- flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
-end
-
-post_install do |installer|
- installer.pods_project.targets.each do |target|
- flutter_additional_ios_build_settings(target)
- target.build_configurations.each do |config|
- # for more infomation: https://github.com/BaseflowIT/flutter-permission-handler/blob/master/permission_handler/ios/Classes/PermissionHandlerEnums.h
- config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
- '$(inherited)',
- 'PERMISSION_MICROPHONE=1',]
- end
- end
-end
diff --git a/packages/noise_meter/example/ios/Runner.xcodeproj/project.pbxproj b/packages/noise_meter/example/ios/Runner.xcodeproj/project.pbxproj
index d19eb491f..058aa7921 100644
--- a/packages/noise_meter/example/ios/Runner.xcodeproj/project.pbxproj
+++ b/packages/noise_meter/example/ios/Runner.xcodeproj/project.pbxproj
@@ -8,12 +8,12 @@
/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
- 210F07AC63A28DD3B399AEE8 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4651416B7DEF900CBB70EA38 /* Pods_Runner.framework */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
+ 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -33,9 +33,6 @@
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
- 419DD3CAB863A8EED78E0628 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
- 4651416B7DEF900CBB70EA38 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 6B861D0571DFE85EBC634E99 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
@@ -46,7 +43,7 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- D00A1EEC27E8DE1D4B28BA37 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
+ 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -54,24 +51,17 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 210F07AC63A28DD3B399AEE8 /* Pods_Runner.framework in Frameworks */,
+ 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 8493370A2DC0A21EAF2EB288 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 4651416B7DEF900CBB70EA38 /* Pods_Runner.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
+ 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */,
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
@@ -86,8 +76,6 @@
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
- BFD471C1DF1D7CDA4616B4AB /* Pods */,
- 8493370A2DC0A21EAF2EB288 /* Frameworks */,
);
sourceTree = "";
};
@@ -122,32 +110,22 @@
name = "Supporting Files";
sourceTree = "";
};
- BFD471C1DF1D7CDA4616B4AB /* Pods */ = {
- isa = PBXGroup;
- children = (
- 6B861D0571DFE85EBC634E99 /* Pods-Runner.debug.xcconfig */,
- D00A1EEC27E8DE1D4B28BA37 /* Pods-Runner.release.xcconfig */,
- 419DD3CAB863A8EED78E0628 /* Pods-Runner.profile.xcconfig */,
- );
- path = Pods;
- sourceTree = "";
- };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
97C146ED1CF9000F007C117D /* Runner */ = {
+ packageProductDependencies = (
+ 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */,
+ );
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
- 40E4D1A59D758D708FE113A9 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
- 6C7EA70D0E2897CE334C0174 /* [CP] Embed Pods Frameworks */,
- 9AB51CF4346838C124BECF9D /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -162,6 +140,9 @@
/* Begin PBXProject section */
97C146E61CF9000F007C117D /* Project object */ = {
+ packageReferences = (
+ 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */,
+ );
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1510;
@@ -222,45 +203,6 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
- 40E4D1A59D758D708FE113A9 /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
- showEnvVarsInLog = 0;
- };
- 6C7EA70D0E2897CE334C0174 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
- );
- name = "[CP] Embed Pods Frameworks";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
@@ -276,23 +218,6 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
- 9AB51CF4346838C124BECF9D /* [CP] Copy Pods Resources */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
- );
- name = "[CP] Copy Pods Resources";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
- showEnvVarsInLog = 0;
- };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -368,7 +293,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 16.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -454,7 +379,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 16.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -503,7 +428,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 16.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -598,6 +523,18 @@
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
+/* Begin XCLocalSwiftPackageReference section */
+ 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = {
+ isa = XCLocalSwiftPackageReference;
+ relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage;
+ };
+/* End XCLocalSwiftPackageReference section */
+/* Begin XCSwiftPackageProductDependency section */
+ 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = {
+ isa = XCSwiftPackageProductDependency;
+ productName = FlutterGeneratedPluginSwiftPackage;
+ };
+/* End XCSwiftPackageProductDependency section */
};
rootObject = 97C146E61CF9000F007C117D /* Project object */;
}
diff --git a/packages/noise_meter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/noise_meter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index fc5ae0316..0bd6d4227 100644
--- a/packages/noise_meter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/packages/noise_meter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -5,6 +5,24 @@
+
+
+
+
+
+
+
+
+
+
-
-
diff --git a/packages/noise_meter/example/ios/Runner/AppDelegate.swift b/packages/noise_meter/example/ios/Runner/AppDelegate.swift
index b63630348..c30b367ec 100644
--- a/packages/noise_meter/example/ios/Runner/AppDelegate.swift
+++ b/packages/noise_meter/example/ios/Runner/AppDelegate.swift
@@ -1,13 +1,16 @@
-import UIKit
import Flutter
+import UIKit
@main
-@objc class AppDelegate: FlutterAppDelegate {
+@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
- GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
+
+ func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) {
+ GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry)
+ }
}
diff --git a/packages/noise_meter/example/ios/Runner/Info.plist b/packages/noise_meter/example/ios/Runner/Info.plist
index b4a1edbf7..af5845a9c 100644
--- a/packages/noise_meter/example/ios/Runner/Info.plist
+++ b/packages/noise_meter/example/ios/Runner/Info.plist
@@ -13,7 +13,7 @@
CFBundleInfoDictionaryVersion
6.0
CFBundleName
- example
+ noise_meter_example
CFBundlePackageType
APPL
CFBundleShortVersionString
@@ -26,6 +26,27 @@
NSMicrophoneUsageDescription
Records audio noise detection
+ UIApplicationSceneManifest
+
+ UIApplicationSupportsMultipleScenes
+
+ UISceneConfigurations
+
+ UIWindowSceneSessionRoleApplication
+
+
+ UISceneClassName
+ UIWindowScene
+ UISceneConfigurationName
+ flutter
+ UISceneDelegateClassName
+ FlutterSceneDelegate
+ UISceneStoryboardFile
+ Main
+
+
+
+
UIApplicationSupportsIndirectInputEvents
UIBackgroundModes
diff --git a/packages/noise_meter/example/pubspec.yaml b/packages/noise_meter/example/pubspec.yaml
index 417b0d591..459960614 100644
--- a/packages/noise_meter/example/pubspec.yaml
+++ b/packages/noise_meter/example/pubspec.yaml
@@ -1,11 +1,11 @@
name: noise_meter_example
description: Example app for the noise_meter package.
publish_to: none
-version: 5.2.0
+version: 6.0.0
environment:
sdk: ">=3.8.1 <4.0.0"
- flutter: ">=3.0.0"
+ flutter: ">=3.44.0"
dependencies:
flutter:
@@ -14,7 +14,7 @@ dependencies:
path: ../
cupertino_icons: ^1.0.2
- permission_handler: ^12.0.0
+ permission_handler: ^13.0.1
dev_dependencies:
flutter_test:
diff --git a/packages/noise_meter/pubspec.yaml b/packages/noise_meter/pubspec.yaml
index 3b7f4cb6d..2effc3fb4 100644
--- a/packages/noise_meter/pubspec.yaml
+++ b/packages/noise_meter/pubspec.yaml
@@ -1,11 +1,11 @@
name: noise_meter
description: A Flutter plugin for collecting noise from the phone's microphone.
-version: 5.1.0
+version: 6.0.0
homepage: https://github.com/cph-cachet/flutter-plugins/tree/master/packages/noise_meter
environment:
sdk: ">=3.8.1 <4.0.0"
- flutter: ">=3.0.0"
+ flutter: ">=3.44.0"
dependencies:
flutter:
@@ -16,3 +16,7 @@ dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: any
+
+flutter:
+ config:
+ enable-swift-package-manager: true
From 86e8e675e7a416e54ec533284b2122ee2597c637 Mon Sep 17 00:00:00 2001
From: Alireza Hajebrahimi <6937697+iarata@users.noreply.github.com>
Date: Tue, 18 Aug 2026 00:23:52 +0200
Subject: [PATCH 2/2] noise_meter v6.0.0
---
.../example/android/app/build.gradle.kts | 44 +++++++++++++++++++
.../com/noise_meter/example/MainActivity.kt | 5 +++
.../example/android/build.gradle.kts | 24 ++++++++++
.../example/android/settings.gradle.kts | 26 +++++++++++
4 files changed, 99 insertions(+)
create mode 100644 packages/noise_meter/example/android/app/build.gradle.kts
create mode 100644 packages/noise_meter/example/android/app/src/main/kotlin/com/noise_meter/example/MainActivity.kt
create mode 100644 packages/noise_meter/example/android/build.gradle.kts
create mode 100644 packages/noise_meter/example/android/settings.gradle.kts
diff --git a/packages/noise_meter/example/android/app/build.gradle.kts b/packages/noise_meter/example/android/app/build.gradle.kts
new file mode 100644
index 000000000..be823be5e
--- /dev/null
+++ b/packages/noise_meter/example/android/app/build.gradle.kts
@@ -0,0 +1,44 @@
+plugins {
+ id("com.android.application")
+ // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
+ id("dev.flutter.flutter-gradle-plugin")
+}
+
+android {
+ namespace = "com.noise_meter.example"
+ // permission_handler_android 14 requires compiling against API 37, which is
+ // ahead of Flutter's default (flutter.compileSdkVersion == 36).
+ compileSdk = 37
+ ndkVersion = flutter.ndkVersion
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+ }
+
+ defaultConfig {
+ applicationId = "com.noise_meter.example"
+ minSdk = flutter.minSdkVersion
+ targetSdk = flutter.targetSdkVersion
+ versionCode = flutter.versionCode
+ versionName = flutter.versionName
+ }
+
+ buildTypes {
+ release {
+ // TODO: Add your own signing config for the release build.
+ // Signing with the debug keys for now, so `flutter run --release` works.
+ signingConfig = signingConfigs.getByName("debug")
+ }
+ }
+}
+
+kotlin {
+ compilerOptions {
+ jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
+ }
+}
+
+flutter {
+ source = "../.."
+}
diff --git a/packages/noise_meter/example/android/app/src/main/kotlin/com/noise_meter/example/MainActivity.kt b/packages/noise_meter/example/android/app/src/main/kotlin/com/noise_meter/example/MainActivity.kt
new file mode 100644
index 000000000..64ca36b78
--- /dev/null
+++ b/packages/noise_meter/example/android/app/src/main/kotlin/com/noise_meter/example/MainActivity.kt
@@ -0,0 +1,5 @@
+package com.noise_meter.example
+
+import io.flutter.embedding.android.FlutterActivity
+
+class MainActivity : FlutterActivity()
diff --git a/packages/noise_meter/example/android/build.gradle.kts b/packages/noise_meter/example/android/build.gradle.kts
new file mode 100644
index 000000000..dbee657bb
--- /dev/null
+++ b/packages/noise_meter/example/android/build.gradle.kts
@@ -0,0 +1,24 @@
+allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+val newBuildDir: Directory =
+ rootProject.layout.buildDirectory
+ .dir("../../build")
+ .get()
+rootProject.layout.buildDirectory.value(newBuildDir)
+
+subprojects {
+ val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
+ project.layout.buildDirectory.value(newSubprojectBuildDir)
+}
+subprojects {
+ project.evaluationDependsOn(":app")
+}
+
+tasks.register("clean") {
+ delete(rootProject.layout.buildDirectory)
+}
diff --git a/packages/noise_meter/example/android/settings.gradle.kts b/packages/noise_meter/example/android/settings.gradle.kts
new file mode 100644
index 000000000..c21f0c5b4
--- /dev/null
+++ b/packages/noise_meter/example/android/settings.gradle.kts
@@ -0,0 +1,26 @@
+pluginManagement {
+ val flutterSdkPath =
+ run {
+ val properties = java.util.Properties()
+ file("local.properties").inputStream().use { properties.load(it) }
+ val flutterSdkPath = properties.getProperty("flutter.sdk")
+ require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
+ flutterSdkPath
+ }
+
+ includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
+
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+
+plugins {
+ id("dev.flutter.flutter-plugin-loader") version "1.0.0"
+ id("com.android.application") version "9.0.1" apply false
+ id("org.jetbrains.kotlin.android") version "2.3.20" apply false
+}
+
+include(":app")