diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SetupActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SetupActivity.kt
index 280eb8bc234498523059e74e90b88ac4e16692b4..9b1df118651b2ebe9a7f2ef36787c9fadbc34bc9 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SetupActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SetupActivity.kt
@@ -21,6 +21,7 @@ package de.kuschku.quasseldroid.ui.setup
 
 import android.content.Context
 import android.content.pm.PackageManager
+import android.graphics.drawable.Drawable
 import android.os.Build
 import android.os.Bundle
 import android.os.Parcelable
@@ -29,6 +30,7 @@ import android.view.ViewGroup
 import androidx.annotation.ColorRes
 import androidx.annotation.DrawableRes
 import androidx.appcompat.widget.ActionMenuView
+import androidx.core.graphics.drawable.DrawableCompat
 import androidx.fragment.app.FragmentManager
 import androidx.fragment.app.FragmentStatePagerAdapter
 import androidx.lifecycle.MutableLiveData
@@ -44,10 +46,7 @@ import de.kuschku.quasseldroid.ui.clientsettings.about.AboutActivity
 import de.kuschku.quasseldroid.ui.clientsettings.client.ClientSettingsActivity
 import de.kuschku.quasseldroid.ui.clientsettings.crash.CrashActivity
 import de.kuschku.quasseldroid.ui.clientsettings.whitelist.WhitelistActivity
-import de.kuschku.quasseldroid.util.helper.observeSticky
-import de.kuschku.quasseldroid.util.helper.or
-import de.kuschku.quasseldroid.util.helper.switchMap
-import de.kuschku.quasseldroid.util.helper.updateRecentsHeaderIfExisting
+import de.kuschku.quasseldroid.util.helper.*
 import de.kuschku.quasseldroid.util.ui.LocaleHelper
 
 abstract class SetupActivity : DaggerAppCompatActivity() {
@@ -89,13 +88,20 @@ abstract class SetupActivity : DaggerAppCompatActivity() {
   private lateinit var pageChangeListener: SetupActivityViewPagerPageChangeListener
 
   private fun pageChanged() {
-    currentPage.value = adapter.getItem(viewPager.currentItem)
-    val drawable = if (viewPager.currentItem == adapter.totalCount - 1)
-      R.drawable.ic_check
-    else
-      R.drawable.ic_arrow_right
-    button.setImageResource(drawable)
-    currentPage.value?.requestFocus()
+    val page = adapter.getItem(viewPager.currentItem)
+    currentPage.value = page
+
+    val finish = viewPager.currentItem == adapter.totalCount - 1
+    button.contentDescription =
+      if (finish) descriptionFinish
+      else descriptionNext
+    button.setTooltip()
+    button.setImageDrawable(
+      if (finish) drawableFinish
+      else drawableNext
+    )
+
+    page.requestFocus()
   }
 
   fun updateRecentsHeader() {
@@ -109,6 +115,12 @@ abstract class SetupActivity : DaggerAppCompatActivity() {
     updateRecentsHeader()
   }
 
+  private var drawableFinish: Drawable? = null
+  private var drawableNext: Drawable? = null
+
+  private var descriptionFinish: String? = null
+  private var descriptionNext: String? = null
+
   override fun onCreate(savedInstanceState: Bundle?) {
     setTheme(R.style.Theme_SetupTheme)
     super.onCreate(savedInstanceState)
@@ -117,6 +129,16 @@ abstract class SetupActivity : DaggerAppCompatActivity() {
     setContentView(R.layout.activity_setup)
     ButterKnife.bind(this)
 
+    drawableFinish = getVectorDrawableCompat(R.drawable.ic_check)?.mutate()?.also {
+      DrawableCompat.setTint(it, -1)
+    }
+    drawableNext = getVectorDrawableCompat(R.drawable.ic_arrow_right)?.mutate()?.also {
+      DrawableCompat.setTint(it, -1)
+    }
+
+    descriptionFinish = getString(R.string.label_finish)
+    descriptionNext = getString(R.string.label_next)
+
     menuView.popupTheme = R.style.Widget_PopupOverlay_Light
     menuInflater.inflate(R.menu.activity_setup, menuView.menu)
     menuView.setOnMenuItemClickListener {
diff --git a/app/src/main/res/layout-sw600dp-land/activity_setup.xml b/app/src/main/res/layout-sw600dp-land/activity_setup.xml
index 09e1a90a4b3ca98210210c22c53aa72e18384cd6..770f5f222dfb81e9d724dc751325ee364d5af8d1 100644
--- a/app/src/main/res/layout-sw600dp-land/activity_setup.xml
+++ b/app/src/main/res/layout-sw600dp-land/activity_setup.xml
@@ -42,12 +42,10 @@
     android:layout_gravity="right|bottom"
     android:layout_marginRight="24dp"
     android:layout_marginBottom="24dp"
-    android:tint="#ffffff"
     app:backgroundTint="#8A000000"
     app:elevation="0dip"
     app:fabSize="normal"
     app:pressedTranslationZ="0dip"
-    app:tint="#ffffff"
     tools:ignore="RtlHardcoded" />
 
 </merge>
diff --git a/app/src/main/res/layout-sw600dp/activity_setup.xml b/app/src/main/res/layout-sw600dp/activity_setup.xml
index 09e1a90a4b3ca98210210c22c53aa72e18384cd6..770f5f222dfb81e9d724dc751325ee364d5af8d1 100644
--- a/app/src/main/res/layout-sw600dp/activity_setup.xml
+++ b/app/src/main/res/layout-sw600dp/activity_setup.xml
@@ -42,12 +42,10 @@
     android:layout_gravity="right|bottom"
     android:layout_marginRight="24dp"
     android:layout_marginBottom="24dp"
-    android:tint="#ffffff"
     app:backgroundTint="#8A000000"
     app:elevation="0dip"
     app:fabSize="normal"
     app:pressedTranslationZ="0dip"
-    app:tint="#ffffff"
     tools:ignore="RtlHardcoded" />
 
 </merge>
diff --git a/app/src/main/res/layout/activity_setup.xml b/app/src/main/res/layout/activity_setup.xml
index 61a3da6a6aa3a81f86f6a01fc2a1d2e8393f721b..316c9ace6e80d3c5c2ca048ac174cd564eb44899 100644
--- a/app/src/main/res/layout/activity_setup.xml
+++ b/app/src/main/res/layout/activity_setup.xml
@@ -42,9 +42,7 @@
     android:layout_gravity="right|bottom"
     android:layout_marginRight="16dp"
     android:layout_marginBottom="16dp"
-    android:tint="#ffffff"
     app:fabSize="normal"
-    app:tint="#ffffff"
     tools:ignore="RtlHardcoded"
     tools:src="@drawable/ic_arrow_right" />
 
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ca13816f425b7573904968c0407a1ecceec55ccf..084d80cc0b6626609cdec32fc48b309c728c3eef 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -52,6 +52,7 @@
   <string name="label_edit_topic">Edit Topic</string>
   <string name="label_edit_topic_long">Open dialog to change the channel topic</string>
   <string name="label_filter_messages">Filter Messages</string>
+  <string name="label_finish">Finish</string>
   <string name="label_hide_perm">Hide Permanently</string>
   <string name="label_hide_temp">Hide Temporarily</string>
   <string name="label_ignore">Ignore</string>
@@ -69,6 +70,7 @@
   <string name="label_mark_read">Mark Read</string>
   <string name="label_mention">Mention</string>
   <string name="label_mention_long">Copy username into input line</string>
+  <string name="label_next">Next</string>
   <string name="label_new_account">New Account</string>
   <string name="label_new_chatlist">New Chatlist</string>
   <string name="label_new_highlight_rule">New Highlight Rule</string>