diff --git a/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseActivity.kt b/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseActivity.kt index e83ec7840..4f87f334d 100644 --- a/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseActivity.kt @@ -13,6 +13,8 @@ import androidx.appcompat.view.ActionMode import androidx.appcompat.widget.ActionBarContextView import androidx.appcompat.widget.Toolbar import androidx.core.app.ActivityCompat +import androidx.core.content.ContextCompat +import androidx.core.graphics.ColorUtils import androidx.core.view.ViewCompat import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat @@ -28,6 +30,7 @@ import org.koitharu.kotatsu.base.ui.util.WindowInsetsDelegate import org.koitharu.kotatsu.base.ui.util.inject import org.koitharu.kotatsu.core.exceptions.resolve.ExceptionResolver import org.koitharu.kotatsu.core.prefs.AppSettings +import org.koitharu.kotatsu.utils.ext.getThemeColor abstract class BaseActivity : AppCompatActivity(), @@ -109,18 +112,26 @@ abstract class BaseActivity : override fun onSupportActionModeStarted(mode: ActionMode) { super.onSupportActionModeStarted(mode) actionModeDelegate.onSupportActionModeStarted(mode) + val actionModeColor = ColorUtils.compositeColors( + ContextCompat.getColor(this, com.google.android.material.R.color.m3_appbar_overlay_color), + getThemeColor(com.google.android.material.R.attr.colorSurface), + ) val insets = ViewCompat.getRootWindowInsets(binding.root) ?.getInsets(WindowInsetsCompat.Type.systemBars()) ?: return - val view = findViewById(androidx.appcompat.R.id.action_mode_bar) - view?.updateLayoutParams { - topMargin = insets.top + findViewById(androidx.appcompat.R.id.action_mode_bar).apply { + setBackgroundColor(actionModeColor) + updateLayoutParams { + topMargin = insets.top + } } + window.statusBarColor = actionModeColor } @CallSuper override fun onSupportActionModeFinished(mode: ActionMode) { super.onSupportActionModeFinished(mode) actionModeDelegate.onSupportActionModeFinished(mode) + window.statusBarColor = getThemeColor(android.R.attr.statusBarColor) } override fun onBackPressed() {