diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6eba13a50dda30f9f4799065ecda710cc603f89d..1e2b5c6afe9f72cbd6c380db4493490d5ad1fb9c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -37,11 +37,16 @@ unitTests:
   cache:
     policy: "pull"
   script:
-    - "./gradlew test"
+    - "./gradlew check"
 
 deploy:
   stage: "deploy"
   image: "k8r.eu/justjanne/docker-s3cmd:latest"
+  only:
+    refs:
+    - "master"
+    variables:
+    - "$S3_CONFIG != ''"
   dependencies:
   - "build"
   script:
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index df3ccc09f6f236d87125dba405d5919bd628512e..8461fb730dcc6a54ab9f288dbcd58d32f2bd3bcf 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -106,7 +106,8 @@ android {
   }
 
   lintOptions {
-    disable("ResourceType")
+    isWarningsAsErrors = true
+    setLintConfig(file("../lint.xml"))
   }
 }
 
@@ -133,7 +134,7 @@ dependencies {
   }
 
   // App Arch Persistence
-  withVersion("1.1.0-beta2") {
+  withVersion("1.1.0-beta3") {
     implementation("android.arch.persistence.room", "runtime", version)
     implementation("android.arch.persistence.room", "rxjava2", version)
     kapt("android.arch.persistence.room", "compiler", version)
@@ -141,7 +142,7 @@ dependencies {
   }
 
   // App Arch Paging
-  implementation("android.arch.paging", "runtime", "1.0.0-beta1") {
+  implementation("android.arch.paging", "runtime", "1.0.0-rc1") {
     exclude(group = "junit", module = "junit")
   }
 
diff --git a/app/sampledata/libraries.json b/app/sampledata/libraries.json
index 16a8be11d515fd7dc3df73ae30ff4cfae0b61d80..81d6689079c8e884a9ac442440b513bc90323438 100644
--- a/app/sampledata/libraries.json
+++ b/app/sampledata/libraries.json
@@ -20,7 +20,7 @@
     },
     {
       "name": "Android Architecture Components: Persistence",
-      "version": "1.1.0-beta1",
+      "version": "1.1.0-beta3",
       "license": {
         "short_name": "Apache-2.0",
         "full_name": "Apache License"
@@ -29,7 +29,7 @@
     },
     {
       "name": "Android Architecture Components: Room",
-      "version": "1.1.0-beta1",
+      "version": "1.1.0-beta3",
       "license": {
         "short_name": "Apache-2.0",
         "full_name": "Apache License"
@@ -47,7 +47,7 @@
     },
     {
       "name": "Android Support Library",
-      "version": "27.1.0",
+      "version": "27.1.1",
       "license": {
         "short_name": "Apache-2.0",
         "full_name": "Apache License"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c790f30650351ec24a8f2a1bf662f0b51de7cdbc..96b3a7d1c4c7ed0afbb020699f485525dafadd32 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -38,6 +38,7 @@
   <application
     android:name=".QuasselDroid"
     android:allowBackup="true"
+    android:fullBackupContent="@xml/backup_content"
     android:description="@string/app_description"
     android:icon="@mipmap/ic_launcher"
     android:label="@string/app_name"
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragment.kt
index df041ed4ff2ac53ecb16cdb1cfe83bcdec6e8352..bdfa52c1b8ec9f593606517cade6da37e7cab9a0 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/about/AboutFragment.kt
@@ -107,13 +107,13 @@ class AboutFragment : DaggerFragment() {
       ),
       Library(
         name = "Android Architecture Components: Persistence",
-        version = "1.1.0-beta1",
+        version = "1.1.0-beta3",
         license = apache2,
         url = "https://android.googlesource.com/platform/frameworks/support/+/master/persistence"
       ),
       Library(
         name = "Android Architecture Components: Room",
-        version = "1.1.0-beta1",
+        version = "1.1.0-beta3",
         license = apache2,
         url = "https://android.googlesource.com/platform/frameworks/support/+/master/persistence"
       ),
@@ -125,7 +125,7 @@ class AboutFragment : DaggerFragment() {
       ),
       Library(
         name = "Android Support Library",
-        version = "27.1.0",
+        version = "27.1.1",
         license = apache2,
         url = "https://android.googlesource.com/platform/frameworks/support/+/master"
       ),
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/ColorChooserDialog.java b/app/src/main/java/de/kuschku/quasseldroid/util/ui/ColorChooserDialog.java
index 887290fa83231f8208815c3d078d6d6cb49b23f2..f8b9a8196d7347371d5b391dbd06121ebbd55cad 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/ColorChooserDialog.java
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/ColorChooserDialog.java
@@ -67,7 +67,7 @@ import de.kuschku.quasseldroid.R;
 /**
  * @author Aidan Follestad (afollestad)
  */
-@SuppressWarnings({"FieldCanBeLocal", "ConstantConditions"})
+@SuppressWarnings({"FieldCanBeLocal", "ConstantConditions", "PrivateResource"})
 public class ColorChooserDialog extends DialogFragment
   implements View.OnClickListener, View.OnLongClickListener {
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/DoubleClickHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/DoubleClickHelper.kt
index a7bdd0bad99447e355125a7161a8c39720ed3c79..82ce2f70f3ee408167eb8f3ab24a7f4792245bc3 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/DoubleClickHelper.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/DoubleClickHelper.kt
@@ -22,6 +22,7 @@
 
 package de.kuschku.quasseldroid.util.ui
 
+import android.annotation.SuppressLint
 import android.view.GestureDetector
 import android.view.MotionEvent
 import android.view.View
@@ -43,5 +44,6 @@ class DoubleClickHelper(view: View) : View.OnTouchListener {
     }
   )
 
+  @SuppressLint("ClickableViewAccessibility")
   override fun onTouch(v: View?, event: MotionEvent?) = gestureDetector.onTouchEvent(event)
 }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/RipplePassthroughTextView.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/RipplePassthroughTextView.kt
index 5e0794218aef619678dd641074447d2a8f5235d6..67bf9d6d1ebedc831e8d721b682cfe9326395f41 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/RipplePassthroughTextView.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/RipplePassthroughTextView.kt
@@ -22,6 +22,7 @@
 
 package de.kuschku.quasseldroid.util.ui
 
+import android.annotation.SuppressLint
 import android.content.Context
 import android.support.v7.widget.AppCompatTextView
 import android.text.Spannable
@@ -36,6 +37,7 @@ class RipplePassthroughTextView : AppCompatTextView {
 
   // The goal is to provide all normal interaction to the parent view, unless a link is touched
   // But additionally, we want to provide all normal textview interactions as well
+  @SuppressLint("ClickableViewAccessibility")
   override fun onTouchEvent(event: MotionEvent): Boolean {
     val movementMethod = this.movementMethod
     this.movementMethod = null
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/TextDrawable.java b/app/src/main/java/de/kuschku/quasseldroid/util/ui/TextDrawable.java
index 6ecc40896082962a2856d7fdb9bcde62c85d02f8..20c37bcdc4408c8a3fc845d2ab1f74d5fb50c7f0 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/TextDrawable.java
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/TextDrawable.java
@@ -35,6 +35,8 @@ import android.graphics.drawable.shapes.OvalShape;
 import android.graphics.drawable.shapes.RectShape;
 import android.graphics.drawable.shapes.RoundRectShape;
 
+import java.util.Locale;
+
 /**
  * @author amulya
  * created 14 Oct 2014
@@ -62,7 +64,7 @@ public class TextDrawable extends ShapeDrawable {
     radius = builder.radius;
 
     // text and color
-    text = builder.toUpperCase ? builder.text.toUpperCase() : builder.text;
+    text = builder.toUpperCase ? builder.text.toUpperCase(Locale.getDefault()) : builder.text;
 
     // text paint settings
     fontSize = builder.fontSize;
diff --git a/app/src/main/res/drawable/ic_settings.xml b/app/src/main/res/drawable/ic_settings.xml
index 9092a800bb96836466b22859960218fccdce0cad..f532bfd12fd10e6e48ae825ab546c4e396c84afe 100644
--- a/app/src/main/res/drawable/ic_settings.xml
+++ b/app/src/main/res/drawable/ic_settings.xml
@@ -21,10 +21,12 @@
   -->
 
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:tools="http://schemas.android.com/tools"
   android:width="24dp"
   android:height="24dp"
   android:viewportHeight="24"
-  android:viewportWidth="24">
+  android:viewportWidth="24"
+  tools:ignore="VectorPath">
   <path
     android:fillColor="#000"
     android:pathData="M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z" />
diff --git a/app/src/main/res/layout-sw600dp-land/setup_slide.xml b/app/src/main/res/layout-sw600dp-land/setup_slide.xml
index 9220d8a362126856257af04dbf04d8e4dec0e9d1..7dad7edaa457e4686d89fa76199275c2b75c9816 100644
--- a/app/src/main/res/layout-sw600dp-land/setup_slide.xml
+++ b/app/src/main/res/layout-sw600dp-land/setup_slide.xml
@@ -28,7 +28,8 @@
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingLeft="?attr/actionBarSize"
-  android:paddingRight="?attr/actionBarSize">
+  android:paddingRight="?attr/actionBarSize"
+  tools:ignore="InconsistentLayout">
 
   <LinearLayout
     android:layout_width="0dip"
diff --git a/app/src/main/res/layout-sw600dp/setup_slide.xml b/app/src/main/res/layout-sw600dp/setup_slide.xml
index 1697d69605af8f9ad69d350ae88c811d59e35643..1a3ec1d8d43e5769c9ac30224f0aff53dba5d0d6 100644
--- a/app/src/main/res/layout-sw600dp/setup_slide.xml
+++ b/app/src/main/res/layout-sw600dp/setup_slide.xml
@@ -24,7 +24,8 @@
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
-  android:layout_height="match_parent">
+  android:layout_height="match_parent"
+  tools:ignore="InconsistentLayout">
 
   <LinearLayout
     android:layout_width="400dp"
diff --git a/app/src/main/res/layout/dialog_colorchooser.xml b/app/src/main/res/layout/dialog_colorchooser.xml
index 033fc5e9eee2d5bbc734f2f449f78115192f9953..fc9b41103c570940a29e3aa7794e0bc42ee31a80 100644
--- a/app/src/main/res/layout/dialog_colorchooser.xml
+++ b/app/src/main/res/layout/dialog_colorchooser.xml
@@ -21,10 +21,12 @@
   -->
 
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
-  android:layout_height="match_parent">
+  android:layout_height="match_parent"
+  tools:ignore="PrivateResource">
 
-  <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+  <FrameLayout
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical">
diff --git a/app/src/main/res/layout/dialog_colorchooser_custom.xml b/app/src/main/res/layout/dialog_colorchooser_custom.xml
index 93b303a98f14fcc46b7d695d588a213ea3864d3b..2861ac2b60889751954852da0aa05a8022de66e6 100644
--- a/app/src/main/res/layout/dialog_colorchooser_custom.xml
+++ b/app/src/main/res/layout/dialog_colorchooser_custom.xml
@@ -27,7 +27,8 @@
   android:layout_height="wrap_content"
   android:orientation="vertical"
   android:paddingBottom="@dimen/md_title_frame_margin_bottom"
-  android:paddingTop="@dimen/md_title_frame_margin_bottom">
+  android:paddingTop="@dimen/md_title_frame_margin_bottom"
+  tools:ignore="PrivateResource">
 
   <View
     android:id="@+id/md_colorIndicator"
@@ -63,6 +64,7 @@
       android:textColor="?colorTextPrimary"
       android:textColorHint="?colorTextSecondary"
       android:textSize="@dimen/md_title_textsize"
+      android:inputType="textNoSuggestions"
       tools:ignore="HardcodedText" />
 
   </LinearLayout>
diff --git a/app/src/main/res/layout/dialog_colorchooser_presets.xml b/app/src/main/res/layout/dialog_colorchooser_presets.xml
index 596f06e098a8edec6e863cc7bc8ba693241e594c..507b20766b215bc3b8a77ec927f4cac2f174a307 100644
--- a/app/src/main/res/layout/dialog_colorchooser_presets.xml
+++ b/app/src/main/res/layout/dialog_colorchooser_presets.xml
@@ -21,6 +21,7 @@
   -->
 
 <com.afollestad.materialdialogs.color.FillGridView xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/md_grid"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
@@ -32,4 +33,5 @@
   android:orientation="vertical"
   android:padding="16dp"
   android:stretchMode="columnWidth"
-  android:verticalSpacing="8dp" />
+  android:verticalSpacing="8dp"
+  tools:ignore="PrivateResource" />
diff --git a/app/src/main/res/layout/layout_history.xml b/app/src/main/res/layout/layout_history.xml
index d9c462652eb6e30da3943e87de93e34703989229..f1599ed2f4af0f80983e7120b82284cafd906061 100644
--- a/app/src/main/res/layout/layout_history.xml
+++ b/app/src/main/res/layout/layout_history.xml
@@ -64,7 +64,7 @@
           android:layout_weight="1" />
 
         <android.support.v7.widget.AppCompatImageView
-          android:id="@+id/send"
+          android:id="@+id/close"
           android:layout_width="48dp"
           android:layout_height="48dp"
           android:layout_gravity="top|end"
diff --git a/app/src/main/res/layout/setup_account_connection.xml b/app/src/main/res/layout/setup_account_connection.xml
index 0c5985fc552d4068912379956ad5bfd129d353a7..f5b3785a97fd130b76c1ffcb91b2d13c4925cece 100644
--- a/app/src/main/res/layout/setup_account_connection.xml
+++ b/app/src/main/res/layout/setup_account_connection.xml
@@ -24,6 +24,7 @@
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
+  xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
@@ -34,7 +35,8 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="@string/label_connection_host"
-    app:errorEnabled="true">
+    app:errorEnabled="true"
+    tools:ignore="LabelFor">
 
     <EditText
       android:id="@+id/host"
@@ -48,7 +50,8 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="@string/labelConnectionPort"
-    app:errorEnabled="true">
+    app:errorEnabled="true"
+    tools:ignore="LabelFor">
 
     <EditText
       android:id="@+id/port"
diff --git a/app/src/main/res/layout/setup_account_edit.xml b/app/src/main/res/layout/setup_account_edit.xml
index 94c9135740001233ec03385f21262be3e2ee2f5a..ae0cc91106a1ddc4eb90c435802a9287e318518b 100644
--- a/app/src/main/res/layout/setup_account_edit.xml
+++ b/app/src/main/res/layout/setup_account_edit.xml
@@ -59,7 +59,8 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:hint="@string/label_account_name"
-        app:errorEnabled="true">
+        app:errorEnabled="true"
+        tools:ignore="LabelFor">
 
         <EditText
           android:id="@+id/name"
@@ -102,7 +103,8 @@
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:hint="@string/label_connection_host"
-          app:errorEnabled="true">
+          app:errorEnabled="true"
+          tools:ignore="LabelFor">
 
           <EditText
             android:id="@+id/host"
@@ -116,7 +118,8 @@
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:hint="@string/labelConnectionPort"
-          app:errorEnabled="true">
+          app:errorEnabled="true"
+          tools:ignore="LabelFor">
 
           <EditText
             android:id="@+id/port"
@@ -161,7 +164,8 @@
           android:id="@+id/userWrapper"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
-          android:hint="@string/label_account_user">
+          android:hint="@string/label_account_user"
+          tools:ignore="LabelFor">
 
           <EditText
             android:id="@+id/user"
@@ -176,7 +180,8 @@
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:hint="@string/label_account_pass"
-          app:passwordToggleEnabled="true">
+          app:passwordToggleEnabled="true"
+          tools:ignore="LabelFor">
 
           <EditText
             android:id="@+id/pass"
diff --git a/app/src/main/res/layout/setup_account_name.xml b/app/src/main/res/layout/setup_account_name.xml
index 381402b07ceba325d2cc2a5b066d4910fdc6f8ac..1b34e2ec85faa7613cb92839251ffa27dd65c8f5 100644
--- a/app/src/main/res/layout/setup_account_name.xml
+++ b/app/src/main/res/layout/setup_account_name.xml
@@ -22,6 +22,7 @@
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
+  xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
@@ -32,7 +33,8 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="@string/label_account_name"
-    app:errorEnabled="true">
+    app:errorEnabled="true"
+    tools:ignore="LabelFor">
 
     <EditText
       android:id="@+id/name"
diff --git a/app/src/main/res/layout/setup_account_user.xml b/app/src/main/res/layout/setup_account_user.xml
index f00af4bf7db40bc3103053b243120af6f87223c7..e2f79cba4d51036c60c57b96573d92d1dcb9c937 100644
--- a/app/src/main/res/layout/setup_account_user.xml
+++ b/app/src/main/res/layout/setup_account_user.xml
@@ -22,6 +22,7 @@
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
+  xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
@@ -31,7 +32,8 @@
     android:id="@+id/userWrapper"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:hint="@string/label_account_user">
+    android:hint="@string/label_account_user"
+    tools:ignore="LabelFor">
 
     <EditText
       android:id="@+id/user"
@@ -46,7 +48,8 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="@string/label_account_pass"
-    app:passwordToggleEnabled="true">
+    app:passwordToggleEnabled="true"
+    tools:ignore="LabelFor">
 
     <EditText
       android:id="@+id/pass"
diff --git a/app/src/main/res/layout/setup_slide.xml b/app/src/main/res/layout/setup_slide.xml
index 689d098c12d3f7e4689bc0448ac3c091f02fb10c..78761f95adc39f097f3421224838accf4b231cd4 100644
--- a/app/src/main/res/layout/setup_slide.xml
+++ b/app/src/main/res/layout/setup_slide.xml
@@ -24,7 +24,8 @@
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
-  android:layout_height="match_parent">
+  android:layout_height="match_parent"
+  tools:ignore="InconsistentLayout">
 
   <android.support.design.widget.AppBarLayout
     android:layout_width="match_parent"
diff --git a/app/src/main/res/xml/backup_content.xml b/app/src/main/res/xml/backup_content.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dde517c6cc486d7c278d6826f34f45facd87a0fb
--- /dev/null
+++ b/app/src/main/res/xml/backup_content.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<full-backup-content>
+  <include
+    domain="sharedpref"
+    path="." />
+</full-backup-content>
diff --git a/lint.xml b/lint.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9e813ae3b0ba724acd1a7357908aec0844fd0b29
--- /dev/null
+++ b/lint.xml
@@ -0,0 +1,17 @@
+<lint>
+  <issue id="NewerVersionAvailable" severity="error" />
+
+  <!-- Because of course paging and room have incompatible versions -->
+  <issue id="GradleCompatible" severity="ignore" />
+
+  <!-- Because these are entirely broken -->
+  <issue id="ResourceType" severity="ignore" />
+  <issue id="UnusedResources" severity="ignore" />
+  <issue id="ObsoleteLintCustomCheck" severity="ignore" />
+
+  <!-- Because otherwise I can’t use the legacy icon in the settings -->
+  <issue id="IconDuplicates" severity="ignore" />
+
+  <!-- Because this doesn’t work when using splash themes -->
+  <issue id="Overdraw" severity="ignore" />
+</lint>
diff --git a/malheur/build.gradle.kts b/malheur/build.gradle.kts
index 0a96ebfc8ebcba61632953c5988cd3c803a9fabf..1bd79c8f92e90b74858b4c4bf2a31f61fd9814aa 100644
--- a/malheur/build.gradle.kts
+++ b/malheur/build.gradle.kts
@@ -41,6 +41,11 @@ android {
       "disableAnalytics" to "true"
     )
   }
+
+  lintOptions {
+    isWarningsAsErrors = true
+    setLintConfig(file("../lint.xml"))
+  }
 }
 
 dependencies {
diff --git a/persistence/build.gradle.kts b/persistence/build.gradle.kts
index c4858bc34a281ef6040d62b29fe2dead3dd06ce4..091ab25e1c37b300a520a818c54934266d0b2322 100644
--- a/persistence/build.gradle.kts
+++ b/persistence/build.gradle.kts
@@ -47,6 +47,11 @@ android {
       "disableAnalytics" to "true"
     )
   }
+
+  lintOptions {
+    isWarningsAsErrors = true
+    setLintConfig(file("../lint.xml"))
+  }
 }
 
 dependencies {
@@ -58,7 +63,7 @@ dependencies {
   }
 
   // App Arch Persistence
-  withVersion("1.1.0-beta2") {
+  withVersion("1.1.0-beta3") {
     implementation("android.arch.persistence.room", "runtime", version)
     implementation("android.arch.persistence.room", "rxjava2", version)
     kapt("android.arch.persistence.room", "compiler", version)
@@ -66,7 +71,7 @@ dependencies {
   }
 
   // App Arch Paging
-  implementation("android.arch.paging", "runtime", "1.0.0-beta1") {
+  implementation("android.arch.paging", "runtime", "1.0.0-rc1") {
     exclude(group = "junit", module = "junit")
   }
 
diff --git a/settings.gradle b/settings.gradle
index 8346cc68a6793663c574b9e166dcaec9b2162e95..91ee4e247ecf298ff5debe19aebc994f219771f5 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,3 +1,10 @@
-include ':invokerannotations', ':invokergenerator', ':lib', ':malheur', ':app', ":slidingpanel", ":viewmodel", ":persistence"
+include ':invokerannotations',
+        ':invokergenerator',
+        ':lib',
+        ":viewmodel",
+        ":persistence",
+        ":slidingpanel",
+        ':malheur',
+        ':app'
 
 rootProject.buildFileName = 'build.gradle.kts'
diff --git a/slidingpanel/build.gradle.kts b/slidingpanel/build.gradle.kts
index de15f4bcdbe133042f4c35a4d588e434c41101c4..273bf00431e7c6211c7efee5536e761a413f4420 100644
--- a/slidingpanel/build.gradle.kts
+++ b/slidingpanel/build.gradle.kts
@@ -15,6 +15,11 @@ android {
       "disableAnalytics" to "true"
     )
   }
+
+  lintOptions {
+    isWarningsAsErrors = true
+    setLintConfig(file("../lint.xml"))
+  }
 }
 
 dependencies {
diff --git a/slidingpanel/src/main/java/com/sothree/slidinguppanel/SlidingUpPanelLayout.java b/slidingpanel/src/main/java/com/sothree/slidinguppanel/SlidingUpPanelLayout.java
index e8d904a9aa77fbc59cf980b76b30fd92ee99f615..5c20c6e8f95e39238dd4352883525c1da4c2277f 100644
--- a/slidingpanel/src/main/java/com/sothree/slidinguppanel/SlidingUpPanelLayout.java
+++ b/slidingpanel/src/main/java/com/sothree/slidinguppanel/SlidingUpPanelLayout.java
@@ -906,6 +906,7 @@ public class SlidingUpPanelLayout extends ViewGroup {
     return mDragHelper.shouldInterceptTouchEvent(ev);
   }
 
+  @SuppressLint("ClickableViewAccessibility")
   @Override
   public boolean onTouchEvent(MotionEvent ev) {
     if (!isEnabled() || !isTouchEnabled()) {
diff --git a/viewmodel/build.gradle.kts b/viewmodel/build.gradle.kts
index 5b950b367511fe12c3413e7a8c2c5be1d2c9f5f6..55e2f01d6b31030987aed6c14430881b34481d62 100644
--- a/viewmodel/build.gradle.kts
+++ b/viewmodel/build.gradle.kts
@@ -41,6 +41,11 @@ android {
       "disableAnalytics" to "true"
     )
   }
+
+  lintOptions {
+    isWarningsAsErrors = true
+    setLintConfig(file("../lint.xml"))
+  }
 }
 
 dependencies {