From cb8e43d4c4f445cabafa9cae14f4a75d3e6dab14 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Mon, 11 Mar 2019 19:41:51 +0100
Subject: [PATCH] Fixes bug where icon of forward button in setup disappeared

---
 .../ui/setup/ServiceBoundSetupActivity.kt     | 19 ++++-----------
 .../quasseldroid/ui/setup/SetupActivity.kt    | 19 ++++-----------
 app/src/main/res/drawable/ic_forward.xml      | 23 +++++++++++++++++++
 .../layout-sw600dp-land/activity_setup.xml    |  3 +++
 .../res/layout-sw600dp/activity_setup.xml     |  3 +++
 app/src/main/res/layout/activity_setup.xml    |  3 +++
 6 files changed, 40 insertions(+), 30 deletions(-)
 create mode 100644 app/src/main/res/drawable/ic_forward.xml

diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt
index d813d329c..fd8005c1a 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/ServiceBoundSetupActivity.kt
@@ -22,13 +22,11 @@ package de.kuschku.quasseldroid.ui.setup
 import android.content.Context
 import android.content.SharedPreferences
 import android.content.pm.PackageManager
-import android.graphics.drawable.Drawable
 import android.os.Build
 import android.os.Bundle
 import androidx.annotation.ColorRes
 import androidx.annotation.DrawableRes
 import androidx.appcompat.widget.ActionMenuView
-import androidx.core.graphics.drawable.DrawableCompat
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.Observer
 import androidx.viewpager.widget.ViewPager
@@ -128,9 +126,10 @@ abstract class ServiceBoundSetupActivity :
       if (finish) descriptionFinish
       else descriptionNext
     button.setTooltip()
-    button.setImageDrawable(
-      if (finish) drawableFinish
-      else drawableNext
+    button.setImageState(
+      if (finish) intArrayOf(android.R.attr.state_checked)
+      else intArrayOf(-android.R.attr.state_checked),
+      true
     )
 
     page.requestFocus()
@@ -147,9 +146,6 @@ abstract class ServiceBoundSetupActivity :
     updateRecentsHeader()
   }
 
-  private var drawableFinish: Drawable? = null
-  private var drawableNext: Drawable? = null
-
   private var descriptionFinish: String? = null
   private var descriptionNext: String? = null
 
@@ -162,13 +158,6 @@ abstract class ServiceBoundSetupActivity :
     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)
 
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 0a028877c..a24d8dee2 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,13 +21,11 @@ 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 androidx.annotation.ColorRes
 import androidx.annotation.DrawableRes
 import androidx.appcompat.widget.ActionMenuView
-import androidx.core.graphics.drawable.DrawableCompat
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.Observer
 import androidx.viewpager.widget.ViewPager
@@ -91,9 +89,10 @@ abstract class SetupActivity : DaggerAppCompatActivity() {
       if (finish) descriptionFinish
       else descriptionNext
     button.setTooltip()
-    button.setImageDrawable(
-      if (finish) drawableFinish
-      else drawableNext
+    button.setImageState(
+      if (finish) intArrayOf(android.R.attr.state_checked)
+      else intArrayOf(-android.R.attr.state_checked),
+      true
     )
 
     page.requestFocus()
@@ -110,9 +109,6 @@ 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
 
@@ -124,13 +120,6 @@ 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)
 
diff --git a/app/src/main/res/drawable/ic_forward.xml b/app/src/main/res/drawable/ic_forward.xml
new file mode 100644
index 000000000..c88e0724e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_forward.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  Quasseldroid - Quassel client for Android
+
+  Copyright (c) 2019 Janne Koschinski
+  Copyright (c) 2019 The Quassel Project
+
+  This program is free software: you can redistribute it and/or modify it
+  under the terms of the GNU General Public License version 3 as published
+  by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program. If not, see <http://www.gnu.org/licenses/>.
+  -->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+  <item android:drawable="@drawable/ic_arrow_right" android:state_checked="false" />
+  <item android:drawable="@drawable/ic_check" android:state_checked="true" />
+</selector>
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 770f5f222..0132d5ddd 100644
--- a/app/src/main/res/layout-sw600dp-land/activity_setup.xml
+++ b/app/src/main/res/layout-sw600dp-land/activity_setup.xml
@@ -37,6 +37,7 @@
 
   <com.google.android.material.floatingactionbutton.FloatingActionButton
     android:id="@+id/next_button"
+    style="@style/Widget.MaterialComponents.FloatingActionButton"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_gravity="right|bottom"
@@ -46,6 +47,8 @@
     app:elevation="0dip"
     app:fabSize="normal"
     app:pressedTranslationZ="0dip"
+    app:srcCompat="@drawable/ic_forward"
+    app:tint="#ffffffff"
     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 770f5f222..0132d5ddd 100644
--- a/app/src/main/res/layout-sw600dp/activity_setup.xml
+++ b/app/src/main/res/layout-sw600dp/activity_setup.xml
@@ -37,6 +37,7 @@
 
   <com.google.android.material.floatingactionbutton.FloatingActionButton
     android:id="@+id/next_button"
+    style="@style/Widget.MaterialComponents.FloatingActionButton"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_gravity="right|bottom"
@@ -46,6 +47,8 @@
     app:elevation="0dip"
     app:fabSize="normal"
     app:pressedTranslationZ="0dip"
+    app:srcCompat="@drawable/ic_forward"
+    app:tint="#ffffffff"
     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 316c9ace6..0b43a4400 100644
--- a/app/src/main/res/layout/activity_setup.xml
+++ b/app/src/main/res/layout/activity_setup.xml
@@ -37,12 +37,15 @@
 
   <com.google.android.material.floatingactionbutton.FloatingActionButton
     android:id="@+id/next_button"
+    style="@style/Widget.MaterialComponents.FloatingActionButton"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_gravity="right|bottom"
     android:layout_marginRight="16dp"
     android:layout_marginBottom="16dp"
     app:fabSize="normal"
+    app:srcCompat="@drawable/ic_forward"
+    app:tint="#ffffffff"
     tools:ignore="RtlHardcoded"
     tools:src="@drawable/ic_arrow_right" />
 
-- 
GitLab