From 951f64a150676e70fcbf0c38b616daa071ea5797 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Tue, 27 Mar 2018 02:52:42 +0200 Subject: [PATCH] Correctly tint all action modes --- .../de/kuschku/quasseldroid/ui/chat/ChatActivity.kt | 11 +++++++---- .../ui/chat/messages/MessageListFragment.kt | 1 - .../de/kuschku/quasseldroid/util/helper/MenuHelper.kt | 7 ++++--- app/src/main/res/values/styles_widgets.xml | 1 + 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt index 954d5e392..c4d4496ac 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt @@ -16,10 +16,7 @@ import android.support.v7.widget.LinearLayoutManager import android.support.v7.widget.RecyclerView import android.support.v7.widget.Toolbar import android.text.Html -import android.view.Gravity -import android.view.Menu -import android.view.MenuItem -import android.view.View +import android.view.* import android.widget.EditText import butterknife.BindView import butterknife.ButterKnife @@ -41,6 +38,7 @@ import de.kuschku.quasseldroid.ui.chat.input.MessageHistoryAdapter import de.kuschku.quasseldroid.ui.settings.app.AppSettingsActivity import de.kuschku.quasseldroid.util.helper.editCommit import de.kuschku.quasseldroid.util.helper.invoke +import de.kuschku.quasseldroid.util.helper.retint import de.kuschku.quasseldroid.util.helper.toLiveData import de.kuschku.quasseldroid.util.service.ServiceBoundActivity import de.kuschku.quasseldroid.util.ui.MaterialContentLoadingProgressBar @@ -257,6 +255,11 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc editorPanel.panelState = SlidingUpPanelLayout.PanelState.COLLAPSED } + override fun onActionModeStarted(mode: ActionMode?) { + mode?.menu?.retint(toolbar.context) + super.onActionModeStarted(mode) + } + override fun onStart() { if (Settings.autoComplete(this) != autoCompleteSettings) { recreate() diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt index da53bae83..e6a55ceef 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt @@ -105,7 +105,6 @@ class MessageListFragment : ServiceBoundFragment() { override fun onCreateActionMode(mode: ActionMode?, menu: Menu?): Boolean { actionMode = mode mode?.menuInflater?.inflate(R.menu.context_messages, menu) - menu?.retint(requireContext()) return true } diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/MenuHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/MenuHelper.kt index abc5cc3a1..32a4c0e5b 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/MenuHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/MenuHelper.kt @@ -10,9 +10,10 @@ fun Menu.retint(context: Context) { val color = getColor(0, 0) for (item in (0 until size()).map { getItem(it) }) { - val drawable = item.icon.mutate() - DrawableCompat.setTint(drawable, color) - item.icon = drawable + item.icon?.mutate()?.let { drawable -> + DrawableCompat.setTint(drawable, color) + item.icon = drawable + } } } } \ No newline at end of file diff --git a/app/src/main/res/values/styles_widgets.xml b/app/src/main/res/values/styles_widgets.xml index 6fbeebcf0..2524553dd 100644 --- a/app/src/main/res/values/styles_widgets.xml +++ b/app/src/main/res/values/styles_widgets.xml @@ -20,6 +20,7 @@ <item name="colorControlNormal">?colorTextPrimary</item> <item name="android:textColorPrimary">?colorTextPrimary</item> <item name="android:textColorSecondary">?colorTextSecondary</item> + <item name="android:actionModeBackground">?colorPrimary</item> </style> <style name="Widget.AppBarOverlay.Light" parent="ThemeOverlay.AppCompat.ActionBar"> -- GitLab