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 f194d989..c2d5e8d0 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 9ca2e146..e82197a2 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,7 +1,7 @@
plugins {
- id("com.android.application") version "8.1.0-alpha08" apply false
+ id("com.android.application") version "8.1.0-alpha11" 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/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 fe78049b..de44d633 100644
--- a/mobile/build.gradle.kts
+++ b/mobile/build.gradle.kts
@@ -36,7 +36,6 @@ android {
put("room.incremental", "true")
put("room.schemaLocation", "$projectDir/schemas")
}
- buildConfigField("boolean", "DONATIONS", "true")
}
buildFeatures {
buildConfig = true
@@ -65,35 +64,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"
- 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.2")
- implementation("com.android.billingclient:billing-ktx:5.1.0")
+ implementation("be.mygod.librootkotlinx:librootkotlinx:1.0.3")
+ 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 @@
-
-
diff --git a/mobile/src/main/res/values-it/strings.xml b/mobile/src/main/res/values-it/strings.xml
index 0488c1fd..7255aa32 100644
--- a/mobile/src/main/res/values-it/strings.xml
+++ b/mobile/src/main/res/values-it/strings.xml
@@ -120,7 +120,7 @@
Leggi il manuale, metti tra i preferiti, segnala problemi e contribuisci
Dona
Amo i soldi
- PayPal, Flattr, altro…
+ GitHub sponsors, PayPal, altro…
Riavvia l\'applicazione per applicare questa impostazione.
Esci
diff --git a/mobile/src/main/res/values-pt-rBR/strings.xml b/mobile/src/main/res/values-pt-rBR/strings.xml
index ef8501af..b96d8ab6 100644
--- a/mobile/src/main/res/values-pt-rBR/strings.xml
+++ b/mobile/src/main/res/values-pt-rBR/strings.xml
@@ -146,7 +146,7 @@
Leia o manual, marque com estrela, envie problemas e contribua (Tipo o Konny :D)
Doe
Eu amo dinheiro!
- PayPal, Flattr, e mais…
+ GitHub sponsors, PayPal, e mais…
Reinicie o aplicativo para aplicar essa função.
Sair
diff --git a/mobile/src/main/res/values-zh-rCN/strings.xml b/mobile/src/main/res/values-zh-rCN/strings.xml
index 7f1dbb57..b00d80ba 100644
--- a/mobile/src/main/res/values-zh-rCN/strings.xml
+++ b/mobile/src/main/res/values-zh-rCN/strings.xml
@@ -150,7 +150,7 @@
查看使用手册,star, 提交 issues, 合作
捐款
请给我钱
- PayPal, Flattr 等其他方式…
+ GitHub sponsors, PayPal 等其他方式…
重启应用以应用新的设置。
退出
diff --git a/mobile/src/main/res/values/strings.xml b/mobile/src/main/res/values/strings.xml
index 57c41905..9d6ac5a8 100644
--- a/mobile/src/main/res/values/strings.xml
+++ b/mobile/src/main/res/values/strings.xml
@@ -172,7 +172,7 @@
Read manual, star, submit issues and contribute
Donate
I love money
- PayPal, Flattr, more…
+ GitHub sponsors, PayPal, more…
Restart this app to apply this setting.
Exit