summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2023-03-23 13:43:35 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2023-03-23 13:50:26 +0100
commit0fb78ba6fc16b00d0b375e49b2368be937745072 (patch)
tree4be4735babef9495e409691d98f18fa2e77c87c5
parentb44380c81a17efc6ed52c0ca65b3adf2cac5637e (diff)
ui: bring back donation button
For Google Play Store builds, we'll display an alert box. This was inspired by the discussion around StreetComplete; hopefully we'll have a similar okay outcome. Link: https://github.com/streetcomplete/streetcomplete/issues/3768 Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r--ui/build.gradle3
-rw-r--r--ui/src/main/java/com/wireguard/android/preference/DonatePreference.kt38
-rw-r--r--ui/src/main/res/values/strings.xml3
-rw-r--r--ui/src/main/res/xml/preferences.xml2
4 files changed, 46 insertions, 0 deletions
diff --git a/ui/build.gradle b/ui/build.gradle
index 2c2a3fa8..656ab28e 100644
--- a/ui/build.gradle
+++ b/ui/build.gradle
@@ -48,6 +48,9 @@ android {
}
}
buildTypes {
+ all {
+ buildConfigField("boolean", "IS_GOOGLE_PLAY", (System.getenv("WG_BUILD_FOR_GOOGLE_PLAY") == "true").toString())
+ }
release {
if (keystorePropertiesFile.exists()) signingConfig signingConfigs.release
minifyEnabled true
diff --git a/ui/src/main/java/com/wireguard/android/preference/DonatePreference.kt b/ui/src/main/java/com/wireguard/android/preference/DonatePreference.kt
new file mode 100644
index 00000000..57202c81
--- /dev/null
+++ b/ui/src/main/java/com/wireguard/android/preference/DonatePreference.kt
@@ -0,0 +1,38 @@
+/*
+ * Copyright © 2017-2023 WireGuard LLC. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package com.wireguard.android.preference
+
+import android.app.AlertDialog
+import android.content.ActivityNotFoundException
+import android.content.Context
+import android.content.Intent
+import android.net.Uri
+import android.util.AttributeSet
+import androidx.preference.Preference
+import com.wireguard.android.BuildConfig
+import com.wireguard.android.R
+
+class DonatePreference(context: Context, attrs: AttributeSet?) : Preference(context, attrs) {
+ override fun getSummary() = context.getString(R.string.donate_summary)
+
+ override fun getTitle() = context.getString(R.string.donate_title)
+
+ override fun onClick() {
+ if (BuildConfig.IS_GOOGLE_PLAY) {
+ AlertDialog.Builder(context)
+ .setTitle(R.string.donate_title)
+ .setMessage(R.string.donate_google_play_disappointment)
+ .show()
+ return
+ }
+ val intent = Intent(Intent.ACTION_VIEW)
+ intent.data = Uri.parse("https://www.wireguard.com/donations/")
+ try {
+ context.startActivity(intent)
+ } catch (ignored: ActivityNotFoundException) {
+ }
+ }
+} \ No newline at end of file
diff --git a/ui/src/main/res/values/strings.xml b/ui/src/main/res/values/strings.xml
index 6c090199..ef2573eb 100644
--- a/ui/src/main/res/values/strings.xml
+++ b/ui/src/main/res/values/strings.xml
@@ -108,6 +108,9 @@
<string name="tv_select_a_storage_drive">Select a storage drive</string>
<string name="tv_no_file_picker">Please install a file management utility to browse files</string>
<string name="tv_add_tunnel_get_started">Add a tunnel to get started</string>
+ <string name="donate_title">♥ Donate to the WireGuard Project</string>
+ <string name="donate_summary">Every contribution helps</string>
+ <string name="donate_google_play_disappointment">Thank you for supporting the WireGuard Project!\n\nUnfortunately, due to Google\'s policies, we\'re not allowed to link to the part of the project webpage where you can make a donation. Hopefully you can figure this out!\n\nThanks again for your contribution.</string>
<string name="disable_config_export_title">Disable config exporting</string>
<string name="disable_config_export_description">Disabling config exporting makes private keys less accessible</string>
<string name="dns_servers">DNS servers</string>
diff --git a/ui/src/main/res/xml/preferences.xml b/ui/src/main/res/xml/preferences.xml
index 5c9505d4..aa89f27c 100644
--- a/ui/src/main/res/xml/preferences.xml
+++ b/ui/src/main/res/xml/preferences.xml
@@ -40,4 +40,6 @@
android:summaryOff="@string/allow_remote_control_intents_summary_off"
android:summaryOn="@string/allow_remote_control_intents_summary_on"
android:title="@string/allow_remote_control_intents_title" />
+ <com.wireguard.android.preference.DonatePreference
+ android:singleLineTitle="false" />
</androidx.preference.PreferenceScreen>