diff --git a/.circleci/config.yml b/.circleci/config.yml index f58630c4..93499a59 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ jobs: build: working_directory: ~/code docker: - - image: cimg/android:2022.09.2 + - image: cimg/android:2023.02.1 environment: GRADLE_OPTS: -Dorg.gradle.workers.max=1 -Dorg.gradle.daemon=false -Dkotlin.compiler.execution.strategy="in-process" steps: diff --git a/build.gradle.kts b/build.gradle.kts index 864d68a6..0fcae955 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,12 +1,12 @@ plugins { - id("com.android.application") version "7.4.1" apply false + id("com.android.application") version "8.0.0-beta03" apply false id("com.github.ben-manes.versions") version "0.45.0" id("org.jetbrains.kotlin.android") version "1.8.10" apply false } buildscript { dependencies { - classpath("com.google.firebase:firebase-crashlytics-gradle:2.9.2") + classpath("com.google.firebase:firebase-crashlytics-gradle:2.9.4") classpath("com.google.android.gms:oss-licenses-plugin:0.10.6") classpath("com.google.gms:google-services:4.3.15") } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 249e5832..943f0cbf 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 070cb702..42defcc9 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip +networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index a69d9cb6..65dcd68d 100755 --- a/gradlew +++ b/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,10 +80,10 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' @@ -143,12 +143,16 @@ fi if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac diff --git a/gradlew.bat b/gradlew.bat index 53a6b238..6689b85b 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -26,6 +26,7 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% diff --git a/mobile/build.gradle.kts b/mobile/build.gradle.kts index 6108510d..224e7a81 100644 --- a/mobile/build.gradle.kts +++ b/mobile/build.gradle.kts @@ -11,15 +11,15 @@ plugins { android { namespace = "be.mygod.vpnhotspot" - val javaVersion = JavaVersion.VERSION_11 + val javaVersion = 11 buildToolsVersion = "33.0.2" compileOptions { isCoreLibraryDesugaringEnabled = true - sourceCompatibility = javaVersion - targetCompatibility = javaVersion + sourceCompatibility(javaVersion) + targetCompatibility(javaVersion) } + kotlin.jvmToolchain(javaVersion) compileSdk = 33 - kotlinOptions.jvmTarget = javaVersion.toString() defaultConfig { applicationId = "be.mygod.vpnhotspot" minSdk = 28 @@ -36,6 +36,7 @@ android { buildConfigField("boolean", "DONATIONS", "true") } buildFeatures { + buildConfig = true dataBinding = true viewBinding = true } @@ -65,7 +66,7 @@ android { } dependencies { - val lifecycleVersion = "2.5.1" + val lifecycleVersion = "2.6.0-beta01" val roomVersion = "2.5.0" coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.2") @@ -82,11 +83,11 @@ dependencies { implementation("be.mygod.librootkotlinx:librootkotlinx:1.0.1") implementation("com.android.billingclient:billing-ktx:5.1.0") implementation("com.github.tiann:FreeReflection:3.1.0") - implementation("com.google.android.gms:play-services-base:18.1.0") // fix for GoogleApiActivity crash + implementation("com.google.android.gms:play-services-base:18.2.0") // fix for GoogleApiActivity crash implementation("com.google.android.gms:play-services-oss-licenses:17.0.0") implementation("com.google.android.material:material:1.8.0") implementation("com.google.firebase:firebase-analytics-ktx:21.2.0") - implementation("com.google.firebase:firebase-crashlytics:18.3.3") + implementation("com.google.firebase:firebase-crashlytics:18.3.5") implementation("com.google.zxing:core:3.5.1") implementation("com.jakewharton.timber:timber:5.0.1") implementation("com.linkedin.dexmaker:dexmaker:2.28.3") diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/net/TetheringManager.kt b/mobile/src/main/java/be/mygod/vpnhotspot/net/TetheringManager.kt index 32accdb8..08f74b24 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/net/TetheringManager.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/net/TetheringManager.kt @@ -33,7 +33,6 @@ import java.lang.reflect.Proxy import java.util.concurrent.CancellationException import java.util.concurrent.Executor - /** * Heavily based on: * https://github.com/aegis1980/WifiHotSpot