From d5b1ff505142fcd28677c6dae3c991eebd295cdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Thu, 25 Jan 2024 16:25:24 +0800 Subject: [PATCH] Add in-app sponsor support --- app/build.gradle | 2 + .../sfa/ui/main/SettingsFragment.kt | 5 + .../nekohasekai/sfa/vendor/VendorInterface.kt | 2 +- app/src/main/res/layout/fragment_settings.xml | 47 +++++++ app/src/main/res/values/strings.xml | 6 +- .../java/io/nekohasekai/sfa/vendor/Vendor.kt | 3 + .../java/io/nekohasekai/sfa/vendor/Vendor.kt | 121 ++++++++++++++++++ 7 files changed, 184 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 7587001..204dae1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -113,6 +113,8 @@ dependencies { } implementation 'com.google.guava:guava:32.1.2-android' playImplementation 'com.google.android.play:app-update-ktx:2.1.0' + playImplementation "com.android.billingclient:billing:6.1.0" + playImplementation "com.android.billingclient:billing-ktx:6.1.0" } if (getProps("APPCENTER_TOKEN") != "") { diff --git a/app/src/main/java/io/nekohasekai/sfa/ui/main/SettingsFragment.kt b/app/src/main/java/io/nekohasekai/sfa/ui/main/SettingsFragment.kt index 32456c6..925daf9 100644 --- a/app/src/main/java/io/nekohasekai/sfa/ui/main/SettingsFragment.kt +++ b/app/src/main/java/io/nekohasekai/sfa/ui/main/SettingsFragment.kt @@ -103,6 +103,11 @@ class SettingsFragment : Fragment() { binding.openDebugButton.setOnClickListener { startActivity(Intent(requireContext(), DebugActivity::class.java)) } + binding.startSponserButton.setOnClickListener { + Vendor.startSponsor(requireActivity()) { + activity.launchCustomTab("https://sekai.icu/sponsor/") + } + } lifecycleScope.launch(Dispatchers.IO) { reloadSettings() } diff --git a/app/src/main/java/io/nekohasekai/sfa/vendor/VendorInterface.kt b/app/src/main/java/io/nekohasekai/sfa/vendor/VendorInterface.kt index e8a6f07..b7c5189 100644 --- a/app/src/main/java/io/nekohasekai/sfa/vendor/VendorInterface.kt +++ b/app/src/main/java/io/nekohasekai/sfa/vendor/VendorInterface.kt @@ -5,5 +5,5 @@ import android.app.Activity interface VendorInterface { fun checkUpdateAvailable(): Boolean fun checkUpdate(activity: Activity, byUser: Boolean) - + fun startSponsor(activity: Activity, fallback: () -> Unit) } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 29a8652..4c00786 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -348,6 +348,53 @@ + + + + + + + + + + + + +