diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 037188746750d93c496db4d449adc3fadb4e77bb..edefd2e1f73749729d5986a533abb1e25deec5b6 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -144,6 +144,12 @@ dependencies {
 
   // Quality Assurance
   implementation(project(":malheur"))
+  withVersion("1.5.4") {
+    debugImplementation("com.squareup.leakcanary", "leakcanary-android", version)
+    releaseImplementation("com.squareup.leakcanary", "leakcanary-android-no-op", version)
+    testImplementation("com.squareup.leakcanary", "leakcanary-android-no-op", version)
+    androidTestImplementation("com.squareup.leakcanary", "leakcanary-android-no-op", version)
+  }
 
   testImplementation("junit", "junit", "4.12")
   withVersion("1.0.1") {
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 47dbac27c84cc912f7b7d2c85a50d697919c95e9..0b796525c93b0e2962f052d6ea7d3b95dc445ccc 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,8 @@ import android.content.pm.ShortcutInfo
 import android.content.pm.ShortcutManager
 import android.graphics.drawable.Icon
 import android.os.Build
+import android.support.v7.preference.PreferenceManager
+import com.squareup.leakcanary.LeakCanary
 import de.kuschku.malheur.CrashHandler
 import de.kuschku.quasseldroid_ng.util.backport.AndroidThreeTenBackport
 import de.kuschku.quasseldroid_ng.util.compatibility.AndroidCompatibilityUtils
@@ -14,11 +16,19 @@ import de.kuschku.quasseldroid_ng.util.helper.systemService
 
 class QuasseldroidNG : Application() {
   override fun onCreate() {
+    super.onCreate()
+    if (LeakCanary.isInAnalyzerProcess(this)) {
+      // This process is dedicated to LeakCanary for heap analysis.
+      // You should not init your app in this process.
+      return
+    }
+    LeakCanary.install(this)
+    // Normal app init code...
+
     CrashHandler.init(
       application = this,
       buildConfig = BuildConfig::class.java
     )
-    super.onCreate()
 
     // Init compatibility utils
     AndroidCompatibilityUtils.inject()
@@ -28,7 +38,7 @@ class QuasseldroidNG : Application() {
     AndroidThreeTenBackport.init(this)
 
     // Initialize preferences unless already set
-    android.support.v7.preference.PreferenceManager.setDefaultValues(this, R.xml.preferences, false)
+    PreferenceManager.setDefaultValues(this, R.xml.preferences, false)
 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
       systemService<ShortcutManager>().dynamicShortcuts = listOf(
diff --git a/lib/src/main/java/de/kuschku/libquassel/session/Session.kt b/lib/src/main/java/de/kuschku/libquassel/session/Session.kt
index af8384cd523a2433b9405bf77adfd0ccf84f0db9..841d9d6bba84406f9f44fc0b12fef68fd3d2ae6f 100644
--- a/lib/src/main/java/de/kuschku/libquassel/session/Session.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/session/Session.kt
@@ -124,7 +124,6 @@ class Session(
   override fun handle(f: SignalProxyMessage.HeartBeatReply): Boolean {
     val now = Instant.now()
     val latency = now.toEpochMilli() - f.timestamp.toEpochMilli()
-    log(INFO, "Session", "Latency of $latency ms")
     lag.onNext(latency)
     return true
   }