diff --git a/.circleci/config.yml b/.circleci/config.yml index 93499a59..26f3c264 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ jobs: build: working_directory: ~/code docker: - - image: cimg/android:2023.02.1 + - image: cimg/android:2023.04.1 environment: GRADLE_OPTS: -Dorg.gradle.workers.max=1 -Dorg.gradle.daemon=false -Dkotlin.compiler.execution.strategy="in-process" steps: diff --git a/README.md b/README.md index e00da41a..88c8726a 100644 --- a/README.md +++ b/README.md @@ -9,12 +9,6 @@ Connecting things to your VPN made simple. Share your VPN connection over hotspot or repeater. (**root required**) -| Release channel | [GitHub](https://github.com/Mygod/VPNHotspot/releases) | [Google Play](https://play.google.com/store/apps/details?id=be.mygod.vpnhotspot) ([beta](https://play.google.com/apps/testing/be.mygod.vpnhotspot)) | -|---------------------------------------------------------|:------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------:| -| Auto update | Email updates via watching releases | ✓ | -| In-app update channel | GitHub | Google Play | -| [Sponsor/Donation](https://github.com/sponsors/Mygod) | ✓ | Google Play In-App Purchases only | - This app is useful for: * Connecting things that don't support VPN like Chromecasts behind corporate firewalls; diff --git a/build.gradle.kts b/build.gradle.kts index e1b38106..b8a11331 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ plugins { - id("com.android.application") version "8.0.0-beta04" apply false + id("com.android.application") version "8.0.0-rc01" apply false id("com.github.ben-manes.versions") version "0.46.0" - id("org.jetbrains.kotlin.android") version "1.8.10" apply false + id("org.jetbrains.kotlin.android") version "1.8.20" apply false } buildscript { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index ccebba77..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 fc10b601..bdc9a83b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 79a61d42..65dcd68d 100755 --- a/gradlew +++ b/gradlew @@ -144,7 +144,7 @@ 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 + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +152,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac diff --git a/mobile/build.gradle.kts b/mobile/build.gradle.kts index eede36a7..4264857f 100644 --- a/mobile/build.gradle.kts +++ b/mobile/build.gradle.kts @@ -33,7 +33,6 @@ android { put("room.incremental", "true") put("room.schemaLocation", "$projectDir/schemas") } - buildConfigField("boolean", "DONATIONS", "true") } buildFeatures { buildConfig = true @@ -59,35 +58,34 @@ android { create("google") { dimension = "freedom" versionNameSuffix = "-g" - buildConfigField("boolean", "DONATIONS", "false") } } sourceSets.getByName("androidTest").assets.srcDir("$projectDir/schemas") } dependencies { - val lifecycleVersion = "2.6.0-rc01" - val roomVersion = "2.5.0" + val lifecycleVersion = "2.6.1" + val roomVersion = "2.5.1" - coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.2") + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.3") kapt("androidx.room:room-compiler:$roomVersion") implementation(kotlin("stdlib-jdk8")) implementation("androidx.browser:browser:1.5.0") - implementation("androidx.core:core-ktx:1.9.0") - implementation("androidx.fragment:fragment-ktx:1.5.5") + implementation("androidx.core:core-ktx:1.10.0") + implementation("androidx.fragment:fragment-ktx:1.5.6") implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion") implementation("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion") implementation("androidx.preference:preference:1.2.0") implementation("androidx.room:room-ktx:$roomVersion") implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0") - implementation("be.mygod.librootkotlinx:librootkotlinx:1.0.1") - implementation("com.android.billingclient:billing-ktx:5.1.0") + implementation("be.mygod.librootkotlinx:librootkotlinx:1.0.2") + implementation("com.android.billingclient:billing-ktx:5.2.0") implementation("com.github.tiann:FreeReflection:3.1.0") - implementation("com.google.android.gms:play-services-base:18.2.0") // fix for GoogleApiActivity crash + implementation("com.google.android.gms:play-services-base:18.2.0") // fix for GoogleApiActivity crash @ 18.1.0+ 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.5") + implementation("com.google.firebase:firebase-analytics-ktx:21.2.1") + implementation("com.google.firebase:firebase-crashlytics:18.3.6") 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/EBegFragment.kt b/mobile/src/main/java/be/mygod/vpnhotspot/EBegFragment.kt index c85588dc..137e9cc3 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/EBegFragment.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/EBegFragment.kt @@ -5,14 +5,25 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ArrayAdapter -import android.widget.Button import androidx.appcompat.app.AppCompatDialogFragment import androidx.lifecycle.lifecycleScope import be.mygod.vpnhotspot.App.Companion.app import be.mygod.vpnhotspot.databinding.FragmentEbegBinding import be.mygod.vpnhotspot.util.launchUrl import be.mygod.vpnhotspot.widget.SmartSnackbar -import com.android.billingclient.api.* +import com.android.billingclient.api.BillingClient +import com.android.billingclient.api.BillingClientStateListener +import com.android.billingclient.api.BillingFlowParams +import com.android.billingclient.api.BillingResult +import com.android.billingclient.api.ConsumeParams +import com.android.billingclient.api.ProductDetails +import com.android.billingclient.api.Purchase +import com.android.billingclient.api.PurchasesUpdatedListener +import com.android.billingclient.api.QueryProductDetailsParams +import com.android.billingclient.api.QueryPurchasesParams +import com.android.billingclient.api.consumePurchase +import com.android.billingclient.api.queryProductDetails +import com.android.billingclient.api.queryPurchasesAsync import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch @@ -94,7 +105,7 @@ class EBegFragment : AppCompatDialogFragment() { }.build())) }.build()) else SmartSnackbar.make(R.string.donations__google_android_market_not_supported).show() } - if (BuildConfig.DONATIONS) (binding.donationsMoreStub.inflate() as Button).setOnClickListener { + binding.donationsMoreDonateButton.setOnClickListener { requireContext().launchUrl("https://mygod.be/donate/") } } diff --git a/mobile/src/main/res/layout/fragment_ebeg.xml b/mobile/src/main/res/layout/fragment_ebeg.xml index 0d5d035a..d1ba4cea 100644 --- a/mobile/src/main/res/layout/fragment_ebeg.xml +++ b/mobile/src/main/res/layout/fragment_ebeg.xml @@ -77,11 +77,11 @@ - + android:text="@string/settings_misc_donate_more"/> diff --git a/mobile/src/main/res/layout/fragment_ebeg_more.xml b/mobile/src/main/res/layout/fragment_ebeg_more.xml deleted file mode 100644 index c1ba416f..00000000 --- a/mobile/src/main/res/layout/fragment_ebeg_more.xml +++ /dev/null @@ -1,9 +0,0 @@ - -