diff --git a/app/src/main/java/eu/darken/capod/common/preferences/IntentPreference.kt b/app/src/main/java/eu/darken/capod/common/preferences/IntentPreference.kt
new file mode 100644
index 00000000..b7c5ea11
--- /dev/null
+++ b/app/src/main/java/eu/darken/capod/common/preferences/IntentPreference.kt
@@ -0,0 +1,42 @@
+package eu.darken.capod.common.preferences
+
+import android.content.ActivityNotFoundException
+import android.content.Context
+import android.content.Intent
+import android.util.AttributeSet
+import android.widget.Toast
+import androidx.annotation.AttrRes
+import androidx.annotation.StyleRes
+import androidx.preference.Preference
+import eu.darken.capod.common.debug.logging.Logging.Priority.ERROR
+import eu.darken.capod.common.debug.logging.log
+import eu.darken.capod.common.debug.logging.logTag
+
+
+class IntentPreference @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ @AttrRes defStyleAttr: Int = androidx.preference.R.attr.preferenceStyle,
+ @StyleRes defStyleRes: Int = 0,
+) : Preference(context, attrs, defStyleAttr, defStyleRes) {
+
+ override fun setIntent(_intent: Intent?) {
+ super.setIntent(_intent)
+ _intent?.let {
+ intent
+ setOnPreferenceClickListener {
+ try {
+ context.startActivity(intent)
+ } catch (e: ActivityNotFoundException) {
+ log(TAG, ERROR) { "Failed to launch $intent: $e" }
+ Toast.makeText(context, e.toString(), Toast.LENGTH_LONG).show()
+ }
+ true
+ }
+ }
+ }
+
+ companion object {
+ private val TAG = logTag("IntentPreference")
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/xml/preferences_acknowledgements.xml b/app/src/main/res/xml/preferences_acknowledgements.xml
index 5129c75b..a060a495 100644
--- a/app/src/main/res/xml/preferences_acknowledgements.xml
+++ b/app/src/main/res/xml/preferences_acknowledgements.xml
@@ -4,7 +4,7 @@
-
-
-
+
-
-
+
-
-
+
-
+
-
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/preferences_index.xml b/app/src/main/res/xml/preferences_index.xml
index a31accc4..4626026c 100644
--- a/app/src/main/res/xml/preferences_index.xml
+++ b/app/src/main/res/xml/preferences_index.xml
@@ -20,7 +20,7 @@
app:title="@string/settings_support_label" />
-
-
+
-
-
+
-
-
-
+
-
+