From a4ac538a1dc1081577fa7f462686540a7828c95c Mon Sep 17 00:00:00 2001 From: shakle Date: Thu, 27 Mar 2025 10:42:40 +0100 Subject: [PATCH] fix android build --- android/build.gradle | 41 ----------- android/build.gradle.kts | 47 +++++++++++++ android/gradle.properties | 4 +- .../gradle/wrapper/gradle-wrapper.properties | 3 +- android/settings.gradle | 13 ---- android/settings.gradle.kts | 16 +++++ .../FlutterProxyPlugin.kt | 69 +++---------------- 7 files changed, 77 insertions(+), 116 deletions(-) delete mode 100644 android/build.gradle create mode 100644 android/build.gradle.kts delete mode 100644 android/settings.gradle create mode 100644 android/settings.gradle.kts diff --git a/android/build.gradle b/android/build.gradle deleted file mode 100644 index 47564ac..0000000 --- a/android/build.gradle +++ /dev/null @@ -1,41 +0,0 @@ -plugins { - id 'com.android.library' - id 'org.jetbrains.kotlin.android' -} - -allprojects { - repositories { - gradlePluginPortal() - google() - mavenCentral() - } -} - -group 'com.victorblaess.native_flutter_proxy' - -android { - - namespace 'com.victorblaess.native_flutter_proxy' - compileSdk 33 - - compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - defaultConfig { - minSdkVersion 16 - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - lintOptions { - disable 'InvalidPackage' - } -} - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$KotlinVersion" - implementation "org.jetbrains.kotlin:kotlin-reflect:$KotlinVersion" -} \ No newline at end of file diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 0000000..de7e157 --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,47 @@ +val kotlinVersion: String by project + +plugins { + id("com.android.library") + id("org.jetbrains.kotlin.android") +} + +allprojects { + repositories { + gradlePluginPortal() + google() + mavenCentral() + } +} + +group = "com.victorblaess.native_flutter_proxy" + +android { + namespace = "com.victorblaess.native_flutter_proxy" + ndkVersion = "26.3.11579264" + compileSdk = 35 + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + sourceSets["main"].java.srcDirs("src/main/kotlin") + + defaultConfig { + minSdk = 16 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + lint { + disable.add("InvalidPackage") + } +} + +dependencies { + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion") + implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion") +} diff --git a/android/gradle.properties b/android/gradle.properties index 236fe15..2fc4dad 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true -AGPVersion=7.4.2 -KotlinVersion=1.8.22 \ No newline at end of file +agpVersion=8.7.0 +kotlinVersion=1.8.22 \ No newline at end of file diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 1af9e09..3718116 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ +#Thu Mar 27 10:21:41 CET 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/android/settings.gradle b/android/settings.gradle deleted file mode 100644 index f5ac3e8..0000000 --- a/android/settings.gradle +++ /dev/null @@ -1,13 +0,0 @@ -pluginManagement { - repositories { - gradlePluginPortal() - google() - mavenCentral() - } - plugins { - id 'com.android.library' version "${AGPVersion}" - id 'org.jetbrains.kotlin.android' version "${KotlinVersion}" - } -} - -rootProject.name = 'native_flutter_proxy' \ No newline at end of file diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts new file mode 100644 index 0000000..c601fd0 --- /dev/null +++ b/android/settings.gradle.kts @@ -0,0 +1,16 @@ +pluginManagement { + val agpVersion: String by settings + val kotlinVersion: String by settings + + repositories { + gradlePluginPortal() + google() + mavenCentral() + } + plugins { + id("com.android.library") version agpVersion + id("org.jetbrains.kotlin.android") version kotlinVersion + } +} + +rootProject.name = "native_flutter_proxy" diff --git a/android/src/main/kotlin/com/victorblaess/native_flutter_proxy/FlutterProxyPlugin.kt b/android/src/main/kotlin/com/victorblaess/native_flutter_proxy/FlutterProxyPlugin.kt index ca412ea..467536c 100644 --- a/android/src/main/kotlin/com/victorblaess/native_flutter_proxy/FlutterProxyPlugin.kt +++ b/android/src/main/kotlin/com/victorblaess/native_flutter_proxy/FlutterProxyPlugin.kt @@ -6,69 +6,26 @@ import io.flutter.plugin.common.MethodCall 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 -import java.util.* +import java.util.LinkedHashMap -/** - * FlutterProxyPlugin - * - * Este plugin de Flutter se utiliza para obtener la configuración del proxy del sistema. - * Implementa las interfaces FlutterPlugin y MethodCallHandler. - */ -public class FlutterProxyPlugin : FlutterPlugin, MethodCallHandler { +class FlutterProxyPlugin : FlutterPlugin, MethodCallHandler { - // Canal de método para la comunicación entre Flutter y el código nativo. - private var mMethodChannel: MethodChannel? = null; + private var methodChannel: MethodChannel? = null - companion object { - /** - * Método estático para registrar el plugin con un registrar. - * - * @param registrar El registrar que se utiliza para registrar el plugin. - */ - @JvmStatic - fun registerWith(registrar: Registrar) { - val instance = FlutterProxyPlugin() - instance.onAttachedToEngine(registrar.messenger()); - } - } - - /** - * Método privado para adjuntar el plugin al motor de Flutter. - * - * @param messenger El mensajero binario utilizado para la comunicación. - */ - private fun onAttachedToEngine(messenger: BinaryMessenger) { - mMethodChannel = MethodChannel(messenger, "native_flutter_proxy") - mMethodChannel!!.setMethodCallHandler(this) + private fun setupChannel(messenger: BinaryMessenger) { + methodChannel = MethodChannel(messenger, "native_flutter_proxy") + methodChannel!!.setMethodCallHandler(this) } - /** - * Método llamado cuando el plugin se adjunta al motor de Flutter. - * - * @param binding El enlace del plugin de Flutter. - */ override fun onAttachedToEngine(binding: FlutterPlugin.FlutterPluginBinding) { - mMethodChannel = MethodChannel(binding.binaryMessenger, "native_flutter_proxy") - mMethodChannel!!.setMethodCallHandler(this) + setupChannel(binding.binaryMessenger) } - /** - * Método llamado cuando el plugin se desadjunta del motor de Flutter. - * - * @param binding El enlace del plugin de Flutter. - */ override fun onDetachedFromEngine(binding: FlutterPlugin.FlutterPluginBinding) { - mMethodChannel!!.setMethodCallHandler(null) - mMethodChannel = null + methodChannel?.setMethodCallHandler(null) + methodChannel = null } - /** - * Método llamado cuando se realiza una llamada de método desde Flutter. - * - * @param call La llamada de método. - * @param result El resultado de la llamada de método. - */ override fun onMethodCall(call: MethodCall, result: Result) { if (call.method == "getProxySetting") { result.success(getProxySetting()) @@ -77,16 +34,10 @@ public class FlutterProxyPlugin : FlutterPlugin, MethodCallHandler { } } - /** - * Método privado para obtener la configuración del proxy del sistema. - * - * @return Un mapa con la configuración del proxy. - */ private fun getProxySetting(): Any? { val map = LinkedHashMap() map["host"] = System.getProperty("http.proxyHost") map["port"] = System.getProperty("http.proxyPort") return map } - -} \ No newline at end of file +}