diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5e08fb93adc8654ecf14c22d050d882a36472506..54dbdd79490a9dd78bc62b296ed151d0e1a63b6c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,6 +4,8 @@
 
   <uses-permission android:name="android.permission.INTERNET" />
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+  <!-- Enable after we target Android P -->
+  <!--<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />-->
 
   <application
     android:name=".QuasseldroidNG"
diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/QuasseldroidNG.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/QuasseldroidNG.kt
index 0b796525c93b0e2962f052d6ea7d3b95dc445ccc..f5ea01c145ee26071a87ebe3d59c62b638907f74 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/QuasseldroidNG.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/QuasseldroidNG.kt
@@ -5,6 +5,7 @@ import android.content.pm.ShortcutInfo
 import android.content.pm.ShortcutManager
 import android.graphics.drawable.Icon
 import android.os.Build
+import android.os.StrictMode
 import android.support.v7.preference.PreferenceManager
 import com.squareup.leakcanary.LeakCanary
 import de.kuschku.malheur.CrashHandler
@@ -64,5 +65,52 @@ class QuasseldroidNG : Application() {
           .build()
       )
     }
+
+    if (BuildConfig.DEBUG) {
+      StrictMode.setThreadPolicy(
+        StrictMode.ThreadPolicy.Builder()
+          .detectNetwork()
+          .detectCustomSlowCalls()
+          .let {
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+              it.detectResourceMismatches()
+            } else {
+              it
+            }
+          }
+          .let {
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+              it.detectUnbufferedIo()
+            } else {
+              it
+            }
+          }
+          .penaltyLog()
+          .build()
+      )
+      StrictMode.setVmPolicy(
+        StrictMode.VmPolicy.Builder()
+          .detectLeakedSqlLiteObjects()
+          .detectActivityLeaks()
+          .detectLeakedClosableObjects()
+          .detectLeakedRegistrationObjects()
+          .let {
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
+              it.detectFileUriExposure()
+            } else {
+              it
+            }
+          }
+          .let {
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+              it.detectContentUriWithoutPermission()
+            } else {
+              it
+            }
+          }
+          .penaltyLog()
+          .build()
+      )
+    }
   }
 }
diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/QuasselMessageRenderer.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/QuasselMessageRenderer.kt
index da3b5cda99cac6d48a75e2b52a2b0d91526364ea..e61e8c882969399cb5bc94615270a6bb338b674b 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/QuasselMessageRenderer.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/QuasselMessageRenderer.kt
@@ -297,14 +297,14 @@ class QuasselMessageRenderer(
   @Language("RegExp")
   private val scheme = "(?:(?:mailto:|magnet:|(?:[+.-]?\\w)+://)|www(?=\\.\\S+\\.))"
   @Language("RegExp")
-  private val authority = "(?:(?:[,.;@:]?[-\\w]+)+\\.?|\\[[0-9a-f:.]+])(?::\\d+)?"
+  private val authority = "(?:(?:[,.;@:]?[-\\w]+)+\\.?|\\[[0-9a-f:.]+])?(?::\\d+)?"
   @Language("RegExp")
   private val urlChars = "(?:[,.;:]*[\\w~@/?&=+$()!%#*-])"
   @Language("RegExp")
   private val urlEnd = "((?:>|[,.;:\"]*\\s|\\b|$))"
 
   private val urlPattern = Regex(
-    "\\b($scheme$authority(?:/$urlChars*)?)$urlEnd",
+    "\\b($scheme$authority(?:$urlChars*)?)$urlEnd",
     RegexOption.IGNORE_CASE
   )