diff --git a/src/main/java/de/dennisguse/opentracks/AboutActivity.java b/src/main/java/de/dennisguse/opentracks/AboutActivity.java
index eb4386da3..0d447ed86 100644
--- a/src/main/java/de/dennisguse/opentracks/AboutActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/AboutActivity.java
@@ -2,11 +2,13 @@ package de.dennisguse.opentracks;
import android.os.Bundle;
import android.view.Menu;
+import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.Nullable;
import de.dennisguse.opentracks.util.SystemUtils;
+import de.dennisguse.opentracks.util.ViewUtils;
public class AboutActivity extends AbstractActivity {
@@ -27,6 +29,8 @@ public class AboutActivity extends AbstractActivity {
TextView textURL = findViewById(R.id.about_app_url);
textURL.setText(getString(R.string.about_url, getString(R.string.app_web_url)));
+
+ ViewUtils.makeClickableLinks((ViewGroup) findViewById(android.R.id.content));
}
protected int getLayoutResId() {
diff --git a/src/main/java/de/dennisguse/opentracks/HelpActivity.java b/src/main/java/de/dennisguse/opentracks/HelpActivity.java
index 034c101c0..59e1d66cc 100644
--- a/src/main/java/de/dennisguse/opentracks/HelpActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/HelpActivity.java
@@ -1,7 +1,20 @@
package de.dennisguse.opentracks;
+import android.os.Bundle;
+import android.view.ViewGroup;
+
+import androidx.annotation.Nullable;
+
+import de.dennisguse.opentracks.util.ViewUtils;
+
public class HelpActivity extends AbstractActivity {
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ ViewUtils.makeClickableLinks((ViewGroup) findViewById(android.R.id.content));
+ }
+
@Override
protected int getLayoutResId() {
return R.layout.help;
diff --git a/src/main/java/de/dennisguse/opentracks/util/ViewUtils.java b/src/main/java/de/dennisguse/opentracks/util/ViewUtils.java
new file mode 100644
index 000000000..76ff8f343
--- /dev/null
+++ b/src/main/java/de/dennisguse/opentracks/util/ViewUtils.java
@@ -0,0 +1,30 @@
+package de.dennisguse.opentracks.util;
+
+import android.text.method.LinkMovementMethod;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+public class ViewUtils {
+
+ private ViewUtils() {
+ }
+
+ /**
+ * Traverses all childs of {@link View} recursively and makes links within {@link TextView}s clickable.
+ */
+ public static void makeClickableLinks(ViewGroup view) {
+ if (view == null) {
+ return;
+ }
+
+ for (int i = 0; i < view.getChildCount(); i++) {
+ final View child = view.getChildAt(i);
+ if (child instanceof ViewGroup) {
+ makeClickableLinks((ViewGroup) child);
+ } else if (child instanceof TextView) {
+ ((TextView) child).setMovementMethod(LinkMovementMethod.getInstance());
+ }
+ }
+ }
+}
diff --git a/src/main/res/layout/about.xml b/src/main/res/layout/about.xml
index 9006a8986..ae4f43365 100644
--- a/src/main/res/layout/about.xml
+++ b/src/main/res/layout/about.xml
@@ -6,82 +6,95 @@
-
+ android:layout_height="wrap_content">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
\ No newline at end of file