upgrade gecko. gradle, deps

This commit is contained in:
Fabian Freund
2026-07-09 15:30:34 +02:00
parent 7a2998857f
commit 277585fc05
41 changed files with 166 additions and 157 deletions
+9 -8
View File
@@ -1,7 +1,6 @@
plugins { plugins {
id "com.android.application" id "com.android.application"
id "kotlin-android" id "org.jetbrains.kotlin.plugin.compose" version "2.4.0"
id "org.jetbrains.kotlin.plugin.compose" version "2.3.21"
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin" id "dev.flutter.flutter-gradle-plugin"
} }
@@ -28,7 +27,7 @@ def weblibreGoMobileAar = file("../../../../native/go_mobile_runtime/build/webli
android { android {
namespace = "eu.weblibre.gecko" namespace = "eu.weblibre.gecko"
compileSdk = 36 compileSdk = 37
ndkVersion = rootProject.ext.ndkVersion ndkVersion = rootProject.ext.ndkVersion
compileOptions { compileOptions {
@@ -36,16 +35,12 @@ android {
targetCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17
} }
kotlinOptions {
jvmTarget = '17'
}
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "eu.weblibre.gecko" applicationId = "eu.weblibre.gecko"
// https://api.flutter.dev/flutter/widgets/AndroidView-class.html // https://api.flutter.dev/flutter/widgets/AndroidView-class.html
minSdkVersion = 26 minSdkVersion = 26
targetSdk = 36 targetSdk = 37
versionCode = flutterVersionCode.toInteger() versionCode = flutterVersionCode.toInteger()
versionName = flutterVersionName versionName = flutterVersionName
} }
@@ -134,6 +129,12 @@ android {
} }
} }
kotlin {
compilerOptions {
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
}
flutter { flutter {
source = "../.." source = "../.."
} }
+4 -8
View File
@@ -1,14 +1,10 @@
//Required by background_fetch build //Required by background_fetch build
ext { ext {
compileSdkVersion = 36 compileSdkVersion = 37
targetSdkVersion = 36 targetSdkVersion = 37
ndkVersion = providers.gradleProperty("weblibre.ndkVersion").get() ndkVersion = providers.gradleProperty("weblibre.ndkVersion").get()
} }
buildscript {
ext.kotlin_version = '2.3.21'
}
allprojects { allprojects {
repositories { repositories {
google() google()
@@ -22,7 +18,7 @@ allprojects {
if (details.requested.group == 'androidx.glance' && if (details.requested.group == 'androidx.glance' &&
details.requested.name == 'glance-appwidget') { details.requested.name == 'glance-appwidget') {
details.useVersion '1.1.1' details.useVersion '1.1.1'
details.because 'home_widget uses 1.+ and newer alpha releases require AGP 9.1 and compileSdk 37' details.because 'home_widget uses 1.+; keep a stable Glance version for reproducible Android builds'
} }
} }
} }
@@ -34,7 +30,7 @@ subprojects {
afterEvaluate { afterEvaluate {
if (it.hasProperty("android")) { if (it.hasProperty("android")) {
android { android {
compileSdkVersion 36 compileSdkVersion 37
ndkVersion rootProject.ext.ndkVersion ndkVersion rootProject.ext.ndkVersion
} }
} }
-2
View File
@@ -2,7 +2,5 @@ org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError
weblibre.ndkVersion=28.2.13676358 weblibre.ndkVersion=28.2.13676358
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
# This builtInKotlin flag was added automatically by Flutter migrator
android.builtInKotlin=false android.builtInKotlin=false
# This newDsl flag was added automatically by Flutter migrator
android.newDsl=false android.newDsl=false
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
+2 -2
View File
@@ -18,8 +18,8 @@ pluginManagement {
plugins { plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version '8.13.2' apply false id "com.android.application" version '9.2.1' apply false
id "org.jetbrains.kotlin.android" version "2.3.21" apply false id "org.jetbrains.kotlin.android" version "2.4.0" apply false
} }
include ":app" include ":app"
+13 -13
View File
@@ -17,7 +17,7 @@ dependencies:
country_flags: ^4.1.2 country_flags: ^4.1.2
crypto: ^3.0.7 crypto: ^3.0.7
cryptography_flutter: ^2.3.4 cryptography_flutter: ^2.3.4
device_info_plus: ^13.1.0 device_info_plus: ^13.2.0
drift: 2.34.0 drift: 2.34.0
drift_dev: 2.34.0 drift_dev: 2.34.0
dynamic_color: ^1.8.1 dynamic_color: ^1.8.1
@@ -25,7 +25,7 @@ dependencies:
fading_scroll: ^0.9.4 fading_scroll: ^0.9.4
fancy_password_field: ^2.0.8 fancy_password_field: ^2.0.8
fast_equatable: ^1.3.1 fast_equatable: ^1.3.1
file_picker: 12.0.0-beta.5 file_picker: ^12.0.0-beta.7
flutter: flutter:
sdk: flutter sdk: flutter
flutter_auto_size_text: ^5.0.0 flutter_auto_size_text: ^5.0.0
@@ -50,7 +50,7 @@ dependencies:
hooks_riverpod: ^3.3.2 hooks_riverpod: ^3.3.2
html: ^0.15.6 html: ^0.15.6
http: ^1.6.0 http: ^1.6.0
intl: ^0.20.2 intl: ^0.20.3
json_annotation: ^4.12.0 json_annotation: ^4.12.0
lexo_rank: lexo_rank:
git: git:
@@ -63,7 +63,7 @@ dependencies:
material_color_utilities: ^0.13.0 material_color_utilities: ^0.13.0
mime: ^2.0.0 mime: ^2.0.0
nullability: ^1.0.0 nullability: ^1.0.0
package_info_plus: ^10.1.0 package_info_plus: ^10.2.0
path: ^1.9.1 path: ^1.9.1
path_provider: ^2.1.6 path_provider: ^2.1.6
permission_handler: ^12.0.3 permission_handler: ^12.0.3
@@ -71,32 +71,32 @@ dependencies:
privacypass_client: privacypass_client:
git: git:
url: https://gitlab.com/weblibre/search_client.git url: https://gitlab.com/weblibre/search_client.git
ref: 1b323c7cb2a520e33a7e7fce37a080c9e6e7f2e8 ref: a0e4afe03a24b5f0f7ecd3b24317072e8ee00bbd
path: packages/privacypass_client path: packages/privacypass_client
qr_code_scanner_plus: ^2.1.2 qr_code_scanner_plus: ^2.2.0
quick_actions: ^1.1.0 quick_actions: ^1.1.0
riverpod: ^3.3.2 riverpod: ^3.3.2
riverpod_annotation: ^4.0.3 riverpod_annotation: ^4.0.3
rss_dart: ^1.0.14 rss_dart: ^1.0.14
rxdart: ^0.28.0 rxdart: ^0.28.0
saf_stream: ^3.0.0 saf_stream: ^3.1.0
saf_util: ^3.1.0 saf_util: ^3.1.0
search_client: search_client:
git: git:
url: https://gitlab.com/weblibre/search_client.git url: https://gitlab.com/weblibre/search_client.git
ref: 1b323c7cb2a520e33a7e7fce37a080c9e6e7f2e8 ref: a0e4afe03a24b5f0f7ecd3b24317072e8ee00bbd
path: packages/search_client path: packages/search_client
search_protocol: search_protocol:
git: git:
url: https://gitlab.com/weblibre/search_client.git url: https://gitlab.com/weblibre/search_client.git
ref: 1b323c7cb2a520e33a7e7fce37a080c9e6e7f2e8 ref: a0e4afe03a24b5f0f7ecd3b24317072e8ee00bbd
path: packages/search_protocol path: packages/search_protocol
secure_archive: secure_archive:
git: git:
url: https://github.com/FaFre/secure_archive.git url: https://github.com/FaFre/secure_archive.git
path: packages/secure_archive path: packages/secure_archive
ref: 0c515813ac2d29e29ab1c66759a396af825bf8b3 ref: 0c515813ac2d29e29ab1c66759a396af825bf8b3
share_plus: ^13.1.0 share_plus: ^13.2.0
simple_intent_receiver: simple_intent_receiver:
path: ../../packages/simple_intent_receiver path: ../../packages/simple_intent_receiver
skeletonizer: ^2.1.3 skeletonizer: ^2.1.3
@@ -105,8 +105,8 @@ dependencies:
socks5_proxy: ^2.1.1 socks5_proxy: ^2.1.1
speech_to_text_dialog: speech_to_text_dialog:
path: ../../packages/speech_to_text_dialog path: ../../packages/speech_to_text_dialog
sqlite3: ^3.3.3 sqlite3: ^3.3.4
supabase: ^2.13.0 supabase: ^2.14.0
synchronized: ^3.4.1 synchronized: ^3.4.1
text_scroll: ^0.2.1 text_scroll: ^0.2.1
timeago: ^3.7.1 timeago: ^3.7.1
@@ -119,7 +119,7 @@ dependencies:
xxh3: ^1.2.0 xxh3: ^1.2.0
dev_dependencies: dev_dependencies:
build_runner: ^2.15.0 build_runner: ^2.15.1
copy_with_extension_gen: ^15.0.1 copy_with_extension_gen: ^15.0.1
flutter_launcher_icons: ^0.14.4 flutter_launcher_icons: ^0.14.4
flutter_test: flutter_test:
@@ -63,8 +63,6 @@ void main() {
openedUris.add(uri); openedUris.add(uri);
}, },
onFetch: (_) async {}, onFetch: (_) async {},
onPreview: (_) async {},
onOpenCapture: (_) async {},
), ),
), ),
), ),
@@ -114,8 +112,6 @@ void main() {
), ),
onOpen: (_) async {}, onOpen: (_) async {},
onFetch: (_) async {}, onFetch: (_) async {},
onPreview: (_) async {},
onOpenCapture: (_) async {},
), ),
), ),
), ),
@@ -2,16 +2,14 @@ group = "eu.weblibre.flutter_mozilla_components"
version = "1.0-SNAPSHOT" version = "1.0-SNAPSHOT"
buildscript { buildscript {
ext.kotlin_version = "2.3.21" ext.mozillaComponentsVersion = '152.0.4'
ext.mozillaComponentsVersion = '151.0.2'
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath("com.android.tools.build:gradle:8.13.2") classpath("com.android.tools.build:gradle:9.2.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
} }
} }
@@ -36,24 +34,19 @@ rootProject.allprojects {
} }
apply plugin: "com.android.library" apply plugin: "com.android.library"
apply plugin: "kotlin-android"
android { android {
if (project.android.hasProperty("namespace")) { if (project.android.hasProperty("namespace")) {
namespace = "eu.weblibre.flutter_mozilla_components" namespace = "eu.weblibre.flutter_mozilla_components"
} }
compileSdk = 36 compileSdk = 37
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_17 sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17
} }
kotlinOptions {
jvmTarget = '17'
}
sourceSets { sourceSets {
main.java.srcDirs += "src/main/kotlin" main.java.srcDirs += "src/main/kotlin"
test.java.srcDirs += "src/test/kotlin" test.java.srcDirs += "src/test/kotlin"
@@ -80,6 +73,12 @@ android {
} }
} }
kotlin {
compilerOptions {
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
}
configurations.configureEach { configurations.configureEach {
exclude group: "org.mozilla.telemetry", module: "glean-native" exclude group: "org.mozilla.telemetry", module: "glean-native"
// Exclude standalone tink to avoid duplicate classes with tink-android // Exclude standalone tink to avoid duplicate classes with tink-android
@@ -139,7 +138,7 @@ dependencies {
implementation "org.mozilla.components:lib-publicsuffixlist:$mozillaComponentsVersion" implementation "org.mozilla.components:lib-publicsuffixlist:$mozillaComponentsVersion"
implementation "org.mozilla.components:service-firefox-accounts:$mozillaComponentsVersion" implementation "org.mozilla.components:service-firefox-accounts:$mozillaComponentsVersion"
implementation "org.mozilla.components:support-appservices:$mozillaComponentsVersion" implementation "org.mozilla.components:support-appservices:$mozillaComponentsVersion"
implementation "org.ironfoxoss.unifiedpush:unifiedpush:151.0.0" implementation "org.ironfoxoss.unifiedpush:unifiedpush:$mozillaComponentsVersion"
implementation ('org.unifiedpush.android:connector:3.3.3') { implementation ('org.unifiedpush.android:connector:3.3.3') {
exclude group: 'com.google.protobuf', module: 'protobuf-java' exclude group: 'com.google.protobuf', module: 'protobuf-java'
} }
@@ -544,7 +544,7 @@ class IntentReceiverActivity : Activity() {
val components = GlobalComponents.components val components = GlobalComponents.components
for (appTask in activityManager.appTasks) { for (appTask in activityManager.appTasks) {
val baseIntent = runCatching { appTask.taskInfo.baseIntent } val baseIntent = runCatching { appTask.taskInfo?.baseIntent }
.getOrElse { error -> .getOrElse { error ->
Log.w(TAG, "Failed to inspect app task", error) Log.w(TAG, "Failed to inspect app task", error)
return@getOrElse null return@getOrElse null
@@ -57,6 +57,10 @@ class WebExtensionPromptFeature(
state.webExtensionPromptRequest state.webExtensionPromptRequest
}.distinctUntilChanged().collect { promptRequest -> }.distinctUntilChanged().collect { promptRequest ->
when (promptRequest) { when (promptRequest) {
is WebExtensionPromptRequest.InstallationRequested -> {
consumePromptRequest()
}
is WebExtensionPromptRequest.AfterInstallation -> { is WebExtensionPromptRequest.AfterInstallation -> {
handleAfterInstallationRequest(promptRequest) handleAfterInstallationRequest(promptRequest)
} }
@@ -1,13 +1,12 @@
plugins { plugins {
id "com.android.application" id "com.android.application"
id "kotlin-android"
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin" id "dev.flutter.flutter-gradle-plugin"
} }
android { android {
namespace = "eu.weblibre.flutter_mozilla_components_example" namespace = "eu.weblibre.flutter_mozilla_components_example"
compileSdk = flutter.compileSdkVersion compileSdk = 37
ndkVersion = flutter.ndkVersion ndkVersion = flutter.ndkVersion
compileOptions { compileOptions {
@@ -15,16 +14,12 @@ android {
targetCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17
} }
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17
}
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "eu.weblibre.flutter_mozilla_components_example" applicationId = "eu.weblibre.flutter_mozilla_components_example"
// You can update the following values to match your application needs. // You can update the following values to match your application needs.
// For more information, see: https://flutter.dev/to/review-gradle-config. // For more information, see: https://flutter.dev/to/review-gradle-config.
minSdk = flutter.minSdkVersion minSdk = 26
targetSdk = flutter.targetSdkVersion targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode versionCode = flutter.versionCode
versionName = flutter.versionName versionName = flutter.versionName
@@ -39,6 +34,12 @@ android {
} }
} }
kotlin {
compilerOptions {
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
}
flutter { flutter {
source = "../.." source = "../.."
} }
@@ -1,3 +1,5 @@
org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
android.builtInKotlin=false
android.newDsl=false
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
@@ -18,8 +18,8 @@ pluginManagement {
plugins { plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.13.2" apply false id "com.android.application" version "9.2.1" apply false
id "org.jetbrains.kotlin.android" version "2.3.21" apply false id "org.jetbrains.kotlin.android" version "2.4.0" apply false
} }
include ":app" include ":app"
@@ -2,15 +2,13 @@ group = "eu.weblibre.flutter_singbox_proxy"
version = "1.0-SNAPSHOT" version = "1.0-SNAPSHOT"
buildscript { buildscript {
ext.kotlin_version = "2.3.21"
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath("com.android.tools.build:gradle:8.13.2") classpath("com.android.tools.build:gradle:9.2.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
} }
} }
@@ -32,21 +30,16 @@ def requireWebLibreGoMobileAar = {
} }
apply plugin: "com.android.library" apply plugin: "com.android.library"
apply plugin: "kotlin-android"
android { android {
namespace = "eu.weblibre.flutter_singbox_proxy" namespace = "eu.weblibre.flutter_singbox_proxy"
compileSdk = 36 compileSdk = 37
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_17 sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17
} }
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17
}
sourceSets { sourceSets {
main.java.srcDirs += "src/main/kotlin" main.java.srcDirs += "src/main/kotlin"
test.java.srcDirs += "src/test/kotlin" test.java.srcDirs += "src/test/kotlin"
@@ -69,13 +62,19 @@ android {
} }
} }
kotlin {
compilerOptions {
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
}
dependencies { dependencies {
requireWebLibreGoMobileAar() requireWebLibreGoMobileAar()
compileOnly(files(weblibreGoMobileAar)) compileOnly(files(weblibreGoMobileAar))
implementation("com.squareup.okhttp3:okhttp:4.12.0") implementation("com.squareup.okhttp3:okhttp:5.4.0")
testImplementation("org.json:json:20250517") testImplementation("org.json:json:20260522")
testImplementation("org.jetbrains.kotlin:kotlin-test") testImplementation("org.jetbrains.kotlin:kotlin-test")
testImplementation("org.mockito:mockito-core:5.23.0") testImplementation("org.mockito:mockito-core:5.23.0")
} }
@@ -1,12 +1,11 @@
plugins { plugins {
id "com.android.application" id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin" id "dev.flutter.flutter-gradle-plugin"
} }
android { android {
namespace = "eu.weblibre.flutter_singbox_proxy_example" namespace = "eu.weblibre.flutter_singbox_proxy_example"
compileSdk = flutter.compileSdkVersion compileSdk = 37
ndkVersion = flutter.ndkVersion ndkVersion = flutter.ndkVersion
compileOptions { compileOptions {
@@ -14,10 +13,6 @@ android {
targetCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17
} }
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17
}
defaultConfig { defaultConfig {
applicationId = "eu.weblibre.flutter_singbox_proxy_example" applicationId = "eu.weblibre.flutter_singbox_proxy_example"
minSdk = flutter.minSdkVersion minSdk = flutter.minSdkVersion
@@ -33,6 +28,12 @@ android {
} }
} }
kotlin {
compilerOptions {
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
}
flutter { flutter {
source = "../.." source = "../.."
} }
@@ -5,7 +5,7 @@ allprojects {
} }
} }
rootProject.buildDir = "../../build" rootProject.buildDir = "../build"
subprojects { subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}" project.buildDir = "${rootProject.buildDir}/${project.name}"
} }
@@ -1,2 +1,4 @@
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true android.useAndroidX=true
android.builtInKotlin=false
android.newDsl=false
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
@@ -18,8 +18,8 @@ pluginManagement {
plugins { plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.13.2" apply false id "com.android.application" version "9.2.1" apply false
id "org.jetbrains.kotlin.android" version "2.3.21" apply false id "org.jetbrains.kotlin.android" version "2.4.0" apply false
} }
include ":app" include ":app"
+9 -10
View File
@@ -2,15 +2,13 @@ group = "eu.weblibre.flutter_tor"
version = "1.0-SNAPSHOT" version = "1.0-SNAPSHOT"
buildscript { buildscript {
ext.kotlin_version = "2.3.21"
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath("com.android.tools.build:gradle:8.13.2") classpath("com.android.tools.build:gradle:9.2.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
} }
} }
@@ -33,22 +31,17 @@ def requireWebLibreGoMobileAar = {
} }
apply plugin: "com.android.library" apply plugin: "com.android.library"
apply plugin: "kotlin-android"
android { android {
namespace = "eu.weblibre.flutter_tor" namespace = "eu.weblibre.flutter_tor"
compileSdk = 36 compileSdk = 37
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_17 sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17
} }
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17
}
sourceSets { sourceSets {
main.java.srcDirs += "src/main/kotlin" main.java.srcDirs += "src/main/kotlin"
test.java.srcDirs += "src/test/kotlin" test.java.srcDirs += "src/test/kotlin"
@@ -61,7 +54,7 @@ android {
dependencies { dependencies {
// Tor core libraries // Tor core libraries
implementation("info.guardianproject:tor-android:0.4.9.6") implementation("info.guardianproject:tor-android:0.4.9.11")
implementation("info.guardianproject:jtorctl:0.4.5.7") implementation("info.guardianproject:jtorctl:0.4.5.7")
// Pluggable transports are provided by the app-level combined gomobile AAR. // Pluggable transports are provided by the app-level combined gomobile AAR.
@@ -89,3 +82,9 @@ android {
} }
} }
} }
kotlin {
compilerOptions {
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
}
@@ -217,9 +217,11 @@ class TorManager(
scope.launch { scope.launch {
var conn: TorControlConnection? = null var conn: TorControlConnection? = null
var attempts = 0 var attempts = 0
while ((conn == null || TorService.socksPort == -1) && attempts < 60) { var upstreamSocksPort = -1
while ((conn == null || upstreamSocksPort == -1) && attempts < 60) {
delay(500) delay(500)
conn = torService?.torControlConnection conn = torService?.torControlConnection
upstreamSocksPort = torService?.socksPort ?: -1
attempts++ attempts++
// Bail early if upstream gave up (typically due to a torrc // Bail early if upstream gave up (typically due to a torrc
// parse error caught by `tor --verify-config`). // parse error caught by `tor --verify-config`).
@@ -229,7 +231,7 @@ class TorManager(
} }
} }
if (conn != null && TorService.socksPort != -1) { if (conn != null && upstreamSocksPort != -1) {
controlConnection = conn controlConnection = conn
try { try {
setupControlConnection(conn) setupControlConnection(conn)
@@ -244,7 +246,7 @@ class TorManager(
} else { } else {
val error = Exception( val error = Exception(
"Failed to get fully-initialized control connection " + "Failed to get fully-initialized control connection " +
"(conn=${conn != null}, torServiceSocksPort=${TorService.socksPort}, " + "(conn=${conn != null}, torServiceSocksPort=$upstreamSocksPort, " +
"upstreamStatus=$lastUpstreamStatus). " + "upstreamStatus=$lastUpstreamStatus). " +
"If upstreamStatus is STOPPING/OFF, tor likely rejected the torrc — check logcat for TorService." "If upstreamStatus is STOPPING/OFF, tor likely rejected the torrc — check logcat for TorService."
) )
@@ -1,13 +1,12 @@
plugins { plugins {
id("com.android.application") id("com.android.application")
id("kotlin-android")
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin") id("dev.flutter.flutter-gradle-plugin")
} }
android { android {
namespace = "eu.weblibre.flutter_tor_example" namespace = "eu.weblibre.flutter_tor_example"
compileSdk = flutter.compileSdkVersion compileSdk = 37
ndkVersion = flutter.ndkVersion ndkVersion = flutter.ndkVersion
compileOptions { compileOptions {
@@ -15,10 +14,6 @@ android {
targetCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17
} }
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "eu.weblibre.flutter_tor_example" applicationId = "eu.weblibre.flutter_tor_example"
@@ -39,6 +34,12 @@ android {
} }
} }
kotlin {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
}
}
flutter { flutter {
source = "../.." source = "../.."
} }
@@ -1,2 +1,4 @@
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true android.useAndroidX=true
android.builtInKotlin=false
android.newDsl=false
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
@@ -19,8 +19,8 @@ pluginManagement {
plugins { plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0" id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "8.13.2" apply false id("com.android.application") version "9.2.1" apply false
id("org.jetbrains.kotlin.android") version "2.3.21" apply false id("org.jetbrains.kotlin.android") version "2.4.0" apply false
} }
include(":app") include(":app")
@@ -2,15 +2,13 @@ group = "eu.weblibre.locale_resolver"
version = "1.0-SNAPSHOT" version = "1.0-SNAPSHOT"
buildscript { buildscript {
ext.kotlin_version = "2.3.21"
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath("com.android.tools.build:gradle:8.13.2") classpath("com.android.tools.build:gradle:9.2.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
} }
} }
@@ -22,22 +20,17 @@ allprojects {
} }
apply plugin: "com.android.library" apply plugin: "com.android.library"
apply plugin: "kotlin-android"
android { android {
namespace = "eu.weblibre.locale_resolver" namespace = "eu.weblibre.locale_resolver"
compileSdk = 36 compileSdk = 37
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_11 sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11
} }
kotlinOptions {
jvmTarget = JavaVersion.VERSION_11
}
sourceSets { sourceSets {
main.java.srcDirs += "src/main/kotlin" main.java.srcDirs += "src/main/kotlin"
test.java.srcDirs += "src/test/kotlin" test.java.srcDirs += "src/test/kotlin"
@@ -64,3 +57,9 @@ android {
} }
} }
} }
kotlin {
compilerOptions {
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11
}
}
@@ -1,13 +1,12 @@
plugins { plugins {
id("com.android.application") id("com.android.application")
id("kotlin-android")
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin") id("dev.flutter.flutter-gradle-plugin")
} }
android { android {
namespace = "eu.weblibre.locale_resolver_example" namespace = "eu.weblibre.locale_resolver_example"
compileSdk = flutter.compileSdkVersion compileSdk = 37
ndkVersion = flutter.ndkVersion ndkVersion = flutter.ndkVersion
compileOptions { compileOptions {
@@ -15,10 +14,6 @@ android {
targetCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11
} }
kotlinOptions {
jvmTarget = JavaVersion.VERSION_11.toString()
}
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "eu.weblibre.locale_resolver_example" applicationId = "eu.weblibre.locale_resolver_example"
@@ -39,6 +34,12 @@ android {
} }
} }
kotlin {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11)
}
}
flutter { flutter {
source = "../.." source = "../.."
} }
@@ -1,3 +1,5 @@
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
android.builtInKotlin=false
android.newDsl=false
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
@@ -19,8 +19,8 @@ pluginManagement {
plugins { plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0" id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "8.13.2" apply false id("com.android.application") version "9.2.1" apply false
id("org.jetbrains.kotlin.android") version "2.3.21" apply false id("org.jetbrains.kotlin.android") version "2.4.0" apply false
} }
include(":app") include(":app")
@@ -2,15 +2,13 @@ group = "eu.weblibre.simple_intent_receiver"
version = "1.0-SNAPSHOT" version = "1.0-SNAPSHOT"
buildscript { buildscript {
ext.kotlin_version = "2.3.21"
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath("com.android.tools.build:gradle:8.13.2") classpath("com.android.tools.build:gradle:9.2.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
} }
} }
@@ -22,22 +20,17 @@ allprojects {
} }
apply plugin: "com.android.library" apply plugin: "com.android.library"
apply plugin: "kotlin-android"
android { android {
namespace = "eu.weblibre.simple_intent_receiver" namespace = "eu.weblibre.simple_intent_receiver"
compileSdk = 36 compileSdk = 37
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_17 sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17
} }
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17
}
sourceSets { sourceSets {
main.java.srcDirs += "src/main/kotlin" main.java.srcDirs += "src/main/kotlin"
test.java.srcDirs += "src/test/kotlin" test.java.srcDirs += "src/test/kotlin"
@@ -64,3 +57,9 @@ android {
} }
} }
} }
kotlin {
compilerOptions {
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
}
@@ -1,13 +1,12 @@
plugins { plugins {
id("com.android.application") id("com.android.application")
id("kotlin-android")
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin") id("dev.flutter.flutter-gradle-plugin")
} }
android { android {
namespace = "eu.weblibre.simple_intent_receiver_example" namespace = "eu.weblibre.simple_intent_receiver_example"
compileSdk = flutter.compileSdkVersion compileSdk = 37
ndkVersion = flutter.ndkVersion ndkVersion = flutter.ndkVersion
compileOptions { compileOptions {
@@ -15,10 +14,6 @@ android {
targetCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11
} }
kotlinOptions {
jvmTarget = JavaVersion.VERSION_11.toString()
}
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "eu.weblibre.simple_intent_receiver_example" applicationId = "eu.weblibre.simple_intent_receiver_example"
@@ -39,6 +34,12 @@ android {
} }
} }
kotlin {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11)
}
}
flutter { flutter {
source = "../.." source = "../.."
} }
@@ -1,3 +1,5 @@
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
android.builtInKotlin=false
android.newDsl=false
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
@@ -18,8 +18,8 @@ pluginManagement {
plugins { plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0" id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "8.13.2" apply false id("com.android.application") version "9.2.1" apply false
id("org.jetbrains.kotlin.android") version "2.3.21" apply false id("org.jetbrains.kotlin.android") version "2.4.0" apply false
} }
include(":app") include(":app")
@@ -2,15 +2,13 @@ group = "eu.weblibre.speech_to_text_dialog"
version = "1.0-SNAPSHOT" version = "1.0-SNAPSHOT"
buildscript { buildscript {
ext.kotlin_version = "2.3.21"
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath("com.android.tools.build:gradle:8.13.2") classpath("com.android.tools.build:gradle:9.2.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
} }
} }
@@ -22,22 +20,17 @@ allprojects {
} }
apply plugin: "com.android.library" apply plugin: "com.android.library"
apply plugin: "kotlin-android"
android { android {
namespace = "eu.weblibre.speech_to_text_dialog" namespace = "eu.weblibre.speech_to_text_dialog"
compileSdk = 36 compileSdk = 37
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_17 sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17
} }
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17
}
sourceSets { sourceSets {
main.java.srcDirs += "src/main/kotlin" main.java.srcDirs += "src/main/kotlin"
test.java.srcDirs += "src/test/kotlin" test.java.srcDirs += "src/test/kotlin"
@@ -64,3 +57,9 @@ android {
} }
} }
} }
kotlin {
compilerOptions {
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
}
@@ -1,13 +1,12 @@
plugins { plugins {
id("com.android.application") id("com.android.application")
id("kotlin-android")
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin") id("dev.flutter.flutter-gradle-plugin")
} }
android { android {
namespace = "eu.weblibre.speech_to_text_dialog_example" namespace = "eu.weblibre.speech_to_text_dialog_example"
compileSdk = flutter.compileSdkVersion compileSdk = 37
ndkVersion = flutter.ndkVersion ndkVersion = flutter.ndkVersion
compileOptions { compileOptions {
@@ -15,10 +14,6 @@ android {
targetCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17
} }
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "eu.weblibre.speech_to_text_dialog_example" applicationId = "eu.weblibre.speech_to_text_dialog_example"
@@ -39,6 +34,12 @@ android {
} }
} }
kotlin {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
}
}
flutter { flutter {
source = "../.." source = "../.."
} }
@@ -1,2 +1,4 @@
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true android.useAndroidX=true
android.builtInKotlin=false
android.newDsl=false
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
@@ -19,8 +19,8 @@ pluginManagement {
plugins { plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0" id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "8.13.2" apply false id("com.android.application") version "9.2.1" apply false
id("org.jetbrains.kotlin.android") version "2.3.21" apply false id("org.jetbrains.kotlin.android") version "2.4.0" apply false
} }
include(":app") include(":app")