Fix custom bar home button color

This commit is contained in:
J-Jamet
2021-02-18 11:40:15 +01:00
parent 88fee5f6de
commit 798bce2759
2 changed files with 26 additions and 2 deletions

View File

@@ -20,9 +20,14 @@
package com.kunzisoft.keepass.view package com.kunzisoft.keepass.view
import android.content.Context import android.content.Context
import android.graphics.PorterDuff
import android.graphics.PorterDuffColorFilter
import android.util.AttributeSet import android.util.AttributeSet
import android.util.TypedValue
import android.view.View import android.view.View
import androidx.annotation.ColorInt
import androidx.appcompat.widget.Toolbar import androidx.appcompat.widget.Toolbar
import androidx.core.content.ContextCompat
import com.kunzisoft.keepass.R import com.kunzisoft.keepass.R
class SpecialModeView @JvmOverloads constructor(context: Context, class SpecialModeView @JvmOverloads constructor(context: Context,
@@ -31,7 +36,13 @@ class SpecialModeView @JvmOverloads constructor(context: Context,
: Toolbar(context, attrs, defStyle) { : Toolbar(context, attrs, defStyle) {
init { init {
setNavigationIcon(R.drawable.ic_arrow_back_white_24dp) ContextCompat.getDrawable(context, R.drawable.ic_arrow_back_white_24dp)?.let { closeDrawable ->
val typedValue = TypedValue()
context.theme.resolveAttribute(R.attr.colorControlNormal, typedValue, true)
@ColorInt val colorControl = typedValue.data
closeDrawable.colorFilter = PorterDuffColorFilter(colorControl, PorterDuff.Mode.SRC_ATOP)
navigationIcon = closeDrawable
}
title = resources.getString(R.string.selection_mode) title = resources.getString(R.string.selection_mode)
} }

View File

@@ -19,14 +19,20 @@
*/ */
package com.kunzisoft.keepass.view package com.kunzisoft.keepass.view
import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.graphics.PorterDuff
import android.graphics.PorterDuffColorFilter
import android.util.AttributeSet import android.util.AttributeSet
import android.util.TypedValue
import android.view.Menu import android.view.Menu
import android.view.MenuInflater import android.view.MenuInflater
import android.view.View import android.view.View
import androidx.annotation.ColorInt
import androidx.appcompat.view.ActionMode import androidx.appcompat.view.ActionMode
import androidx.appcompat.view.SupportMenuInflater import androidx.appcompat.view.SupportMenuInflater
import androidx.appcompat.widget.Toolbar import androidx.appcompat.widget.Toolbar
import androidx.core.content.ContextCompat
import com.kunzisoft.keepass.R import com.kunzisoft.keepass.R
class ToolbarAction @JvmOverloads constructor(context: Context, class ToolbarAction @JvmOverloads constructor(context: Context,
@@ -39,7 +45,13 @@ class ToolbarAction @JvmOverloads constructor(context: Context,
private var isOpen = false private var isOpen = false
init { init {
setNavigationIcon(R.drawable.ic_close_white_24dp) ContextCompat.getDrawable(context, R.drawable.ic_close_white_24dp)?.let { closeDrawable ->
val typedValue = TypedValue()
context.theme.resolveAttribute(R.attr.colorControlNormal, typedValue, true)
@ColorInt val colorControl = typedValue.data
closeDrawable.colorFilter = PorterDuffColorFilter(colorControl, PorterDuff.Mode.SRC_ATOP)
navigationIcon = closeDrawable
}
} }
fun startSupportActionMode(actionModeCallback: ActionMode.Callback): ActionMode { fun startSupportActionMode(actionModeCallback: ActionMode.Callback): ActionMode {
@@ -106,6 +118,7 @@ class ToolbarAction @JvmOverloads constructor(context: Context,
override fun setCustomView(view: View?) {} override fun setCustomView(view: View?) {}
@SuppressLint("RestrictedApi")
override fun getMenuInflater(): MenuInflater { override fun getMenuInflater(): MenuInflater {
return SupportMenuInflater(toolbarAction.context) return SupportMenuInflater(toolbarAction.context)
} }