From 4ce065425b605372df936a775a5a43021a9efa28 Mon Sep 17 00:00:00 2001 From: partisan Date: Tue, 20 May 2025 12:50:08 +0200 Subject: [PATCH] Added donate page --- app/build.gradle | 2 + app/src/main/AndroidManifest.xml | 1 + .../weforge/xyz/pulse/DonateFragment.kt | 204 ++++++++++++++++++ .../weforge/xyz/pulse/MainActivity.kt | 7 + .../partisan/weforge/xyz/pulse/Preferences.kt | 29 ++- app/src/main/res/drawable/heart_filled_24.xml | 11 + app/src/main/res/layout/fragment_donate.xml | 106 +++++++++ app/src/main/res/menu/main_menu.xml | 5 + 8 files changed, 363 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/partisan/weforge/xyz/pulse/DonateFragment.kt create mode 100644 app/src/main/res/drawable/heart_filled_24.xml create mode 100644 app/src/main/res/layout/fragment_donate.xml diff --git a/app/build.gradle b/app/build.gradle index c743a7d..2c9acdf 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -69,5 +69,7 @@ dependencies { androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' implementation 'androidx.preference:preference-ktx:1.2.1' implementation 'androidx.cardview:cardview:1.0.0' + implementation "androidx.browser:browser:1.7.0" + implementation 'com.squareup.okhttp3:okhttp:4.12.0' implementation 'nl.dionsegijn:konfetti-xml:2.0.2' // This library holds the fabric of reality together please dont remove it at any costs >:3 } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6004724..d5e9390 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,6 +5,7 @@ + { + supportFragmentManager.beginTransaction() + .replace(R.id.fragmentContainer, DonateFragment()) + .addToBackStack(null) + .commit() + true + } else -> false }.also { binding.drawerLayout.closeDrawers() diff --git a/app/src/main/java/partisan/weforge/xyz/pulse/Preferences.kt b/app/src/main/java/partisan/weforge/xyz/pulse/Preferences.kt index bad91c5..bc7266c 100644 --- a/app/src/main/java/partisan/weforge/xyz/pulse/Preferences.kt +++ b/app/src/main/java/partisan/weforge/xyz/pulse/Preferences.kt @@ -14,6 +14,8 @@ class Preferences(private val context: Context) { private const val BLACKLISTED_CONTACTS = "blacklisted_contacts" private const val BLACKLIST_ENABLED = "blacklist_enabled" private val SERVICE_ORDER_KEY = "service_order" + private const val DONATION_ACTIVATED = "donation_activated" + private const val DONATION_TOKEN = "donation_token" private const val DEFAULT_REDIRECTION_DELAY = 2000L private const val DEFAULT_POPUP_POSITION = 333 @@ -54,9 +56,24 @@ class Preferences(private val context: Context) { } var isBlacklistEnabled: Boolean - get() = prefs.getBoolean(BLACKLIST_ENABLED, false) - set(value) = prefs.edit { putBoolean(BLACKLIST_ENABLED, value) } + get() = prefs.getBoolean(BLACKLIST_ENABLED, false) + set(value) = prefs.edit { putBoolean(BLACKLIST_ENABLED, value) } + var isDonationActivated: Boolean + get() = prefs.getBoolean(DONATION_ACTIVATED, false) + set(value) = prefs.edit { putBoolean(DONATION_ACTIVATED, value) } + + var donationToken: String + get() { + val stored = prefs.getString(DONATION_TOKEN, null) + return if (stored != null) { + stored + } else { + generateAndStoreToken() + } + } + set(value) = prefs.edit { putString(DONATION_TOKEN, value) } + var popupEnabled: Boolean get() = prefs.getBoolean(POPUP_ENABLED, true) set(value) = prefs.edit { putBoolean(POPUP_ENABLED, value) } @@ -116,4 +133,12 @@ class Preferences(private val context: Context) { } blacklistedContacts = current } + + private fun generateAndStoreToken(): String { + val newToken = (1..16) + .map { "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".random() } + .joinToString("") + prefs.edit().putString(DONATION_TOKEN, newToken).apply() + return newToken + } } diff --git a/app/src/main/res/drawable/heart_filled_24.xml b/app/src/main/res/drawable/heart_filled_24.xml new file mode 100644 index 0000000..cee1854 --- /dev/null +++ b/app/src/main/res/drawable/heart_filled_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/layout/fragment_donate.xml b/app/src/main/res/layout/fragment_donate.xml new file mode 100644 index 0000000..ab45953 --- /dev/null +++ b/app/src/main/res/layout/fragment_donate.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + +