From 71efde08a8e594cdc90d74828fe19d5214410702 Mon Sep 17 00:00:00 2001 From: Zakhar Timoshenko Date: Mon, 8 Aug 2022 02:36:33 +0300 Subject: [PATCH] Refresh action mode colors --- .../koitharu/kotatsu/base/ui/BaseActivity.kt | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) 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() {