优化
This commit is contained in:
@@ -14,6 +14,7 @@ import androidx.appcompat.view.menu.SubMenuBuilder
|
|||||||
import androidx.core.view.forEach
|
import androidx.core.view.forEach
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import io.legado.app.constant.Theme
|
import io.legado.app.constant.Theme
|
||||||
|
import io.legado.app.lib.theme.primaryTextColor
|
||||||
import java.lang.reflect.Method
|
import java.lang.reflect.Method
|
||||||
|
|
||||||
@SuppressLint("RestrictedApi")
|
@SuppressLint("RestrictedApi")
|
||||||
@@ -22,7 +23,7 @@ fun Menu.applyTint(context: Context, theme: Theme = Theme.Auto): Menu = this.let
|
|||||||
menu.setOptionalIconsVisible(true)
|
menu.setOptionalIconsVisible(true)
|
||||||
}
|
}
|
||||||
val defaultTextColor = context.getCompatColor(R.color.primaryText)
|
val defaultTextColor = context.getCompatColor(R.color.primaryText)
|
||||||
val tintColor = UIUtils.getMenuColor(context, theme)
|
val tintColor = MenuExtensions.getMenuColor(context, theme)
|
||||||
menu.forEach { item ->
|
menu.forEach { item ->
|
||||||
(item as MenuItemImpl).let { impl ->
|
(item as MenuItemImpl).let { impl ->
|
||||||
//overflow:展开的item
|
//overflow:展开的item
|
||||||
@@ -70,3 +71,23 @@ fun Menu.iconItemOnLongClick(id: Int, function: (view: View) -> Unit) {
|
|||||||
item.actionView.setOnClickListener { performIdentifierAction(id, 0) }
|
item.actionView.setOnClickListener { performIdentifierAction(id, 0) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
object MenuExtensions {
|
||||||
|
|
||||||
|
fun getMenuColor(
|
||||||
|
context: Context,
|
||||||
|
theme: Theme = Theme.Auto,
|
||||||
|
requiresOverflow: Boolean = false
|
||||||
|
): Int {
|
||||||
|
val defaultTextColor = context.getCompatColor(R.color.primaryText)
|
||||||
|
if (requiresOverflow)
|
||||||
|
return defaultTextColor
|
||||||
|
val primaryTextColor = context.primaryTextColor
|
||||||
|
return when (theme) {
|
||||||
|
Theme.Dark -> context.getCompatColor(R.color.md_white_1000)
|
||||||
|
Theme.Light -> context.getCompatColor(R.color.md_black_1000)
|
||||||
|
else -> primaryTextColor
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
package io.legado.app.utils
|
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import io.legado.app.R
|
|
||||||
import io.legado.app.constant.Theme
|
|
||||||
import io.legado.app.lib.theme.primaryTextColor
|
|
||||||
|
|
||||||
@Suppress("unused")
|
|
||||||
object UIUtils {
|
|
||||||
|
|
||||||
fun getMenuColor(
|
|
||||||
context: Context,
|
|
||||||
theme: Theme = Theme.Auto,
|
|
||||||
requiresOverflow: Boolean = false
|
|
||||||
): Int {
|
|
||||||
val defaultTextColor = context.getCompatColor(R.color.primaryText)
|
|
||||||
if (requiresOverflow)
|
|
||||||
return defaultTextColor
|
|
||||||
val primaryTextColor = context.primaryTextColor
|
|
||||||
return when (theme) {
|
|
||||||
Theme.Dark -> context.getCompatColor(R.color.md_white_1000)
|
|
||||||
Theme.Light -> context.getCompatColor(R.color.md_black_1000)
|
|
||||||
else -> primaryTextColor
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user