Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 0 additions & 41 deletions android/build.gradle

This file was deleted.

47 changes: 47 additions & 0 deletions android/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -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")
}
4 changes: 2 additions & 2 deletions android/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
AGPVersion=7.4.2
KotlinVersion=1.8.22
agpVersion=8.7.0
kotlinVersion=1.8.22
3 changes: 2 additions & 1 deletion android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -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
Expand Down
13 changes: 0 additions & 13 deletions android/settings.gradle

This file was deleted.

16 changes: 16 additions & 0 deletions android/settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -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"
Original file line number Diff line number Diff line change
Expand Up @@ -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())
Expand All @@ -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<String, Any?>()
map["host"] = System.getProperty("http.proxyHost")
map["port"] = System.getProperty("http.proxyPort")
return map
}

}
}