From 6f84b2edd3ef1760ffe4d96aec13317e4a252612 Mon Sep 17 00:00:00 2001 From: Herbert Poul Date: Sun, 20 Aug 2023 15:59:21 +0200 Subject: [PATCH 1/2] Upgrade to AGP 8.1.0 (migrate namespace to build.gradle) --- CHANGELOG.md | 4 ++++ android/build.gradle | 9 +++++---- android/src/main/AndroidManifest.xml | 3 +-- example/android/app/build.gradle | 5 +++-- example/android/app/src/main/AndroidManifest.xml | 6 +++--- example/android/build.gradle | 8 ++++---- example/android/gradle/wrapper/gradle-wrapper.properties | 2 +- example/pubspec.yaml | 2 +- example/test/widget_test.dart | 2 +- pubspec.yaml | 2 +- 10 files changed, 24 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65a1602..cfa17d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.0 + +* Upgrade to AGP 8.1.0 (migrate namespace to build.gradle) + ## 0.2.0 * Finish flutter embedding v2 migration. #17 diff --git a/android/build.gradle b/android/build.gradle index 4c7c7b9..dbb4cf0 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -4,25 +4,26 @@ version '1.0' buildscript { repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' + classpath 'com.android.tools.build:gradle:8.1.0' } } rootProject.allprojects { repositories { google() - jcenter() + mavenCentral() } } apply plugin: 'com.android.library' android { - compileSdkVersion 28 + namespace "io.adaptant.labs.flutter_windowmanager" + compileSdk 31 defaultConfig { minSdkVersion 16 diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 07f0c40..a2f47b6 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -1,3 +1,2 @@ - + diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index bbc428e..71d7fb7 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -25,7 +25,8 @@ apply plugin: 'com.android.application' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 28 + namespace "io.adaptant.labs.flutter_windowmanager_example" + compileSdk 31 lintOptions { disable 'InvalidPackage' @@ -35,7 +36,7 @@ android { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "io.adaptant.labs.flutter_windowmanager_example" minSdkVersion 16 - targetSdkVersion 28 + targetSdk 31 versionCode flutterVersionCode.toInteger() versionName flutterVersionName testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index ba3a1b8..fa14499 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - + @@ -12,7 +11,8 @@ android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" - android:windowSoftInputMode="adjustResize"> + android:windowSoftInputMode="adjustResize" + android:exported="true"> diff --git a/example/android/build.gradle b/example/android/build.gradle index bb8a303..8ce0f1d 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -1,18 +1,18 @@ buildscript { repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' + classpath 'com.android.tools.build:gradle:8.1.0' } } allprojects { repositories { google() - jcenter() + mavenCentral() } } @@ -24,6 +24,6 @@ subprojects { project.evaluationDependsOn(':app') } -task clean(type: Delete) { +tasks.register("clean", Delete) { delete rootProject.buildDir } diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index 2819f02..89e56bd 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 000cb1e..0d49ff8 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -3,7 +3,7 @@ description: Demonstrates how to use the flutter_windowmanager plugin. publish_to: 'none' environment: - sdk: ">=2.1.0 <3.0.0" + sdk: ">=2.12.0 <3.0.0" dependencies: flutter: diff --git a/example/test/widget_test.dart b/example/test/widget_test.dart index 7dbe875..70a41e7 100644 --- a/example/test/widget_test.dart +++ b/example/test/widget_test.dart @@ -19,7 +19,7 @@ void main() { expect( find.byWidgetPredicate( (Widget widget) => - widget is Text && widget.data.startsWith('Secure Mode:'), + widget is Text && widget.data!.startsWith('Secure Mode:'), ), findsOneWidget, ); diff --git a/pubspec.yaml b/pubspec.yaml index 9d9be72..532c0c8 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_windowmanager description: A Flutter plugin for manipulating Android WindowManager LayoutParams. -version: 0.2.0 +version: 0.3.0 homepage: https://github.com/adaptant-labs/flutter_windowmanager repository: https://github.com/adaptant-labs/flutter_windowmanager issue_tracker: https://github.com/adaptant-labs/flutter_windowmanager/issues From 3b5405dd3c40a411fab41a951bc435a8dd98cf6d Mon Sep 17 00:00:00 2001 From: Herbert Poul Date: Mon, 11 Aug 2025 13:45:32 +0200 Subject: [PATCH 2/2] remove deprecated flutter plugin registry api. --- .../FlutterWindowManagerPlugin.java | 11 ------- example/android/app/build.gradle | 16 +++++----- example/android/build.gradle | 11 ------- .../gradle/wrapper/gradle-wrapper.properties | 4 +-- example/android/settings.gradle | 30 ++++++++++++------- 5 files changed, 29 insertions(+), 43 deletions(-) diff --git a/android/src/main/java/io/adaptant/labs/flutter_windowmanager/FlutterWindowManagerPlugin.java b/android/src/main/java/io/adaptant/labs/flutter_windowmanager/FlutterWindowManagerPlugin.java index ae3a95c..04a99c9 100644 --- a/android/src/main/java/io/adaptant/labs/flutter_windowmanager/FlutterWindowManagerPlugin.java +++ b/android/src/main/java/io/adaptant/labs/flutter_windowmanager/FlutterWindowManagerPlugin.java @@ -14,7 +14,6 @@ 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.Registrar; /** FlutterWindowManagerPlugin */ public class FlutterWindowManagerPlugin implements MethodCallHandler, FlutterPlugin, ActivityAware { @@ -23,16 +22,6 @@ public class FlutterWindowManagerPlugin implements MethodCallHandler, FlutterPlu @SuppressWarnings("unused") public FlutterWindowManagerPlugin() { } - private FlutterWindowManagerPlugin(Activity activity) { - this.activity = activity; - } - - /** Plugin registration. */ - @Deprecated - public static void registerWith(Registrar registrar) { - new FlutterWindowManagerPlugin(registrar.activity()).registerWith(registrar.messenger()); - } - private void registerWith(BinaryMessenger binaryMessenger) { final MethodChannel channel = new MethodChannel(binaryMessenger, "flutter_windowmanager"); channel.setMethodCallHandler(this); diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 71d7fb7..15ce933 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -1,3 +1,9 @@ +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()) { @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -21,9 +22,6 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - android { namespace "io.adaptant.labs.flutter_windowmanager_example" compileSdk 31 @@ -35,7 +33,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "io.adaptant.labs.flutter_windowmanager_example" - minSdkVersion 16 + minSdkVersion flutter.minSdkVersion targetSdk 31 versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/example/android/build.gradle b/example/android/build.gradle index 8ce0f1d..bc157bd 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -1,14 +1,3 @@ -buildscript { - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:8.1.0' - } -} - allprojects { repositories { google() diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index 89e56bd..6fc5396 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Jun 23 08:50:38 CEST 2017 +#Mon Aug 11 13:36:51 CEST 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip diff --git a/example/android/settings.gradle b/example/android/settings.gradle index 5a2f14f..a55860e 100644 --- a/example/android/settings.gradle +++ b/example/android/settings.gradle @@ -1,15 +1,25 @@ -include ':app' +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 + }() -def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") -def plugins = new Properties() -def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') -if (pluginsFile.exists()) { - pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } + repositories { + google() + mavenCentral() + gradlePluginPortal() + } } -plugins.each { name, path -> - def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() - include ":$name" - project(":$name").projectDir = pluginDirectory +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" // apply true + id "com.android.application" version "8.12.0" apply false + id "org.jetbrains.kotlin.android" version "2.2.0" apply false } + +include ":app" \ No newline at end of file