This commit is contained in:
kunfei
2022-02-22 15:34:54 +08:00
parent 5d7165e298
commit d58c68ff2e
4 changed files with 31 additions and 7 deletions
@@ -99,11 +99,9 @@ abstract class BaseActivity<VB : ViewBinding>(
abstract fun onActivityCreated(savedInstanceState: Bundle?)
final override fun onCreateOptionsMenu(menu: Menu): Boolean {
return menu.let {
val bool = onCompatCreateOptionsMenu(it)
it.applyTint(this, toolBarTheme)
bool
}
val bool = onCompatCreateOptionsMenu(menu)
menu.applyTint(this, toolBarTheme)
return bool
}
override fun onMenuOpened(featureId: Int, menu: Menu): Boolean {
@@ -6,6 +6,7 @@ import android.view.Menu
import android.view.MenuItem
import androidx.appcompat.view.menu.MenuBuilder
import androidx.appcompat.view.menu.MenuItemImpl
import androidx.appcompat.view.menu.SubMenuBuilder
import androidx.core.view.forEach
import io.legado.app.R
import io.legado.app.constant.Theme
@@ -33,7 +34,7 @@ fun Menu.applyOpenTint(context: Context) {
//展开菜单显示图标
if (this.javaClass.simpleName.equals("MenuBuilder", ignoreCase = true)) {
val defaultTextColor = context.getCompatColor(R.color.primaryText)
try {
kotlin.runCatching {
var method: Method =
this.javaClass.getDeclaredMethod("setOptionalIconsVisible", java.lang.Boolean.TYPE)
method.isAccessible = true
@@ -47,7 +48,11 @@ fun Menu.applyOpenTint(context: Context) {
}
}
}
} catch (ignored: Exception) {
}
} else if (this.javaClass.simpleName.equals("SubMenuBuilder", ignoreCase = true)) {
val defaultTextColor = context.getCompatColor(R.color.primaryText)
(this as? SubMenuBuilder)?.forEach { item: MenuItem ->
item.icon?.setTintMutate(defaultTextColor)
}
}
}