From 5ac008f5948bf343e2e3d6a5f314963166b9da8c Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Tue, 4 Jun 2019 10:03:32 +0200
Subject: [PATCH] Open links from messages in separate tabs in browsers

---
 .../util/irc/format/spans/QuasselURLSpan.kt       | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/spans/QuasselURLSpan.kt b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/spans/QuasselURLSpan.kt
index 64d9ff9ff..cb16a9a88 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/spans/QuasselURLSpan.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/spans/QuasselURLSpan.kt
@@ -19,8 +19,13 @@
 
 package de.kuschku.quasseldroid.util.irc.format.spans
 
+import android.content.ActivityNotFoundException
+import android.content.Intent
+import android.net.Uri
 import android.text.TextPaint
 import android.text.style.URLSpan
+import android.util.Log
+import android.view.View
 
 class QuasselURLSpan(text: String, private val highlight: Boolean) : URLSpan(text) {
   override fun updateDrawState(ds: TextPaint?) {
@@ -29,4 +34,14 @@ class QuasselURLSpan(text: String, private val highlight: Boolean) : URLSpan(tex
       ds.isUnderlineText = true
     }
   }
+
+  override fun onClick(widget: View) {
+    try {
+      widget.context?.startActivity(Intent(Intent.ACTION_VIEW).apply {
+        data = Uri.parse(url)
+      })
+    } catch (e: ActivityNotFoundException) {
+      Log.w("QuasselURLSpan", "Actvity was not found for $url")
+    }
+  }
 }
-- 
GitLab