diff --git a/packages/audio_streamer/CHANGELOG.md b/packages/audio_streamer/CHANGELOG.md index e6632c24d..3d2eda973 100644 --- a/packages/audio_streamer/CHANGELOG.md +++ b/packages/audio_streamer/CHANGELOG.md @@ -1,3 +1,8 @@ +## 4.2.1 + +* Update example app and outdated libraries +* Upgraded Gradle + ## 4.2.0 * Gradle files restructure for example app diff --git a/packages/audio_streamer/android/build.gradle b/packages/audio_streamer/android/build.gradle index 75775e9f5..4fdb1cb17 100644 --- a/packages/audio_streamer/android/build.gradle +++ b/packages/audio_streamer/android/build.gradle @@ -2,14 +2,14 @@ group 'plugins.cachet.audio_streamer' version '1.0-SNAPSHOT' buildscript { - ext.kotlin_version = '1.9.22' + ext.kotlin_version = '2.2.0' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.2.1' + classpath 'com.android.tools.build:gradle:8.11.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -25,16 +25,16 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' android { - compileSdkVersion flutter.compileSdkVersion + compileSdk flutter.compileSdkVersion ndkVersion flutter.ndkVersion compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_21 + targetCompatibility JavaVersion.VERSION_21 } kotlinOptions { - jvmTarget = '1.8' + jvmTarget = '21' } sourceSets { main.java.srcDirs += 'src/main/kotlin' @@ -45,7 +45,7 @@ android { } defaultConfig { - minSdkVersion 16 + minSdkVersion 21 targetSdkVersion flutter.targetSdkVersion testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/packages/audio_streamer/example/android/app/build.gradle b/packages/audio_streamer/example/android/app/build.gradle index d58b5b6a4..bc4c5b078 100644 --- a/packages/audio_streamer/example/android/app/build.gradle +++ b/packages/audio_streamer/example/android/app/build.gradle @@ -1,72 +1,55 @@ 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' + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") } android { - namespace 'plugins.cachet.audio_streamer_example' - compileSdkVersion flutter.compileSdkVersion - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } + namespace = "plugins.cachet.audio_streamer_example" + compileSdk = flutter.compileSdkVersion + ndkVersion = "27.0.12077973" compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } - - kotlinOptions { - jvmTarget = '1.8' + + buildFeatures { + buildConfig = true } - lint { - disable 'InvalidPackage' + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "plugins.cachet.audio_streamer_example" - minSdkVersion 28 - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName + applicationId = "plugins.cachet.audio_streamer_example" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + 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.debug + signingConfig = signingConfigs.getByName("debug") } } } flutter { - source '../..' + source = "../.." } + dependencies { - testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test:runner:1.5.2' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.13.2' + androidTestImplementation 'androidx.test:runner:1.6.2' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' } diff --git a/packages/audio_streamer/example/android/app/src/main/kotlin/plugins/cachet/audio_streamer_example/MainActivity.kt b/packages/audio_streamer/example/android/app/src/main/kotlin/plugins/cachet/audio_streamer_example/MainActivity.kt index ba633797d..60594bba5 100644 --- a/packages/audio_streamer/example/android/app/src/main/kotlin/plugins/cachet/audio_streamer_example/MainActivity.kt +++ b/packages/audio_streamer/example/android/app/src/main/kotlin/plugins/cachet/audio_streamer_example/MainActivity.kt @@ -1,12 +1,5 @@ package plugins.cachet.audio_streamer_example -import androidx.annotation.NonNull; import io.flutter.embedding.android.FlutterActivity -import io.flutter.embedding.engine.FlutterEngine -import io.flutter.plugins.GeneratedPluginRegistrant -class MainActivity: FlutterActivity() { - override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { - GeneratedPluginRegistrant.registerWith(flutterEngine); - } -} +class MainActivity : FlutterActivity() diff --git a/packages/audio_streamer/example/android/build.gradle b/packages/audio_streamer/example/android/build.gradle deleted file mode 100644 index bc157bd1a..000000000 --- a/packages/audio_streamer/example/android/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -allprojects { - repositories { - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/audio_streamer/example/android/build.gradle.kts b/packages/audio_streamer/example/android/build.gradle.kts new file mode 100644 index 000000000..89176ef44 --- /dev/null +++ b/packages/audio_streamer/example/android/build.gradle.kts @@ -0,0 +1,21 @@ +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/audio_streamer/example/android/gradle.properties b/packages/audio_streamer/example/android/gradle.properties index e4675bdf8..2b79db43f 100644 --- a/packages/audio_streamer/example/android/gradle.properties +++ b/packages/audio_streamer/example/android/gradle.properties @@ -1,8 +1,6 @@ -org.gradle.jvmargs=-Xmx1536M -android.enableR8=true +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true -android.defaults.buildfeatures.buildconfig=true android.nonTransitiveRClass=false android.nonFinalResIds=false diff --git a/packages/audio_streamer/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/audio_streamer/example/android/gradle/wrapper/gradle-wrapper.properties index 893c360b4..ac3b47926 100644 --- a/packages/audio_streamer/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/audio_streamer/example/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Sun Mar 12 17:19:03 CST 2023 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip distributionPath=wrapper/dists -zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip diff --git a/packages/audio_streamer/example/android/settings.gradle b/packages/audio_streamer/example/android/settings.gradle deleted file mode 100644 index 525c1f3be..000000000 --- a/packages/audio_streamer/example/android/settings.gradle +++ /dev/null @@ -1,25 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.2" - id "com.android.application" version "8.1.0" apply false - id "org.jetbrains.kotlin.android" version "1.9.20" apply false -} - -include ":app" \ No newline at end of file diff --git a/packages/audio_streamer/example/android/settings.gradle.kts b/packages/audio_streamer/example/android/settings.gradle.kts new file mode 100644 index 000000000..ab39a10a2 --- /dev/null +++ b/packages/audio_streamer/example/android/settings.gradle.kts @@ -0,0 +1,25 @@ +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 "8.7.3" apply false + id("org.jetbrains.kotlin.android") version "2.1.0" apply false +} + +include(":app") diff --git a/packages/audio_streamer/example/ios/Runner.xcodeproj/project.pbxproj b/packages/audio_streamer/example/ios/Runner.xcodeproj/project.pbxproj index 86d03c18c..d654bdaf1 100644 --- a/packages/audio_streamer/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/audio_streamer/example/ios/Runner.xcodeproj/project.pbxproj @@ -264,13 +264,12 @@ buildActionMask = 2147483647; files = ( ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/permission_handler_apple/permission_handler_apple_privacy.bundle", + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/permission_handler_apple_privacy.bundle", + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -282,13 +281,12 @@ buildActionMask = 2147483647; files = ( ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/audio_streamer/audio_streamer.framework", + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/audio_streamer.framework", + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; diff --git a/packages/audio_streamer/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/audio_streamer/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 4f746537f..fc5ae0316 100644 --- a/packages/audio_streamer/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/audio_streamer/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -26,6 +26,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit" shouldUseLaunchSchemeArgsEnv = "YES"> @@ -45,6 +46,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" diff --git a/packages/audio_streamer/example/lib/main.dart b/packages/audio_streamer/example/lib/main.dart index ddbaf9d0a..0685c917c 100644 --- a/packages/audio_streamer/example/lib/main.dart +++ b/packages/audio_streamer/example/lib/main.dart @@ -5,11 +5,13 @@ import 'package:flutter/material.dart'; import 'package:audio_streamer/audio_streamer.dart'; import 'package:permission_handler/permission_handler.dart'; -void main() => runApp(new AudioStreamingApp()); +void main() => runApp(AudioStreamingApp()); class AudioStreamingApp extends StatefulWidget { + const AudioStreamingApp({super.key}); + @override - AudioStreamingAppState createState() => new AudioStreamingAppState(); + AudioStreamingAppState createState() => AudioStreamingAppState(); } class AudioStreamingAppState extends State { @@ -81,9 +83,9 @@ class AudioStreamingAppState extends State { margin: EdgeInsets.all(25), child: Column(children: [ Container( + margin: EdgeInsets.only(top: 20), child: Text(isRecording ? "Mic: ON" : "Mic: OFF", style: TextStyle(fontSize: 25, color: Colors.blue)), - margin: EdgeInsets.only(top: 20), ), Text(''), Text('Max amp: ${latestBuffer?.reduce(max)}'), @@ -94,8 +96,8 @@ class AudioStreamingAppState extends State { ])), floatingActionButton: FloatingActionButton( backgroundColor: isRecording ? Colors.red : Colors.green, - child: isRecording ? Icon(Icons.stop) : Icon(Icons.mic), onPressed: isRecording ? stop : start, + child: isRecording ? Icon(Icons.stop) : Icon(Icons.mic), ), ), ); diff --git a/packages/audio_streamer/example/pubspec.yaml b/packages/audio_streamer/example/pubspec.yaml index 722fb3823..1203cf3bf 100644 --- a/packages/audio_streamer/example/pubspec.yaml +++ b/packages/audio_streamer/example/pubspec.yaml @@ -1,6 +1,7 @@ name: audio_streamer_example description: Demonstrates how to use the audio_streamer plugin. publish_to: 'none' +version: 1.0.0+0 environment: sdk: ">=2.17.0 <4.0.0" diff --git a/packages/audio_streamer/pubspec.yaml b/packages/audio_streamer/pubspec.yaml index 81e3cb50a..e568abe1b 100644 --- a/packages/audio_streamer/pubspec.yaml +++ b/packages/audio_streamer/pubspec.yaml @@ -1,6 +1,6 @@ name: audio_streamer description: Streaming of Pulse-code modulation (PCM) audio from Android and iOS -version: 4.2.0 +version: 4.2.1 homepage: https://github.com/cph-cachet/flutter-plugins/tree/master/packages/ environment: