diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 963bcfe415..5cd879079a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -102,6 +102,7 @@ dependencies { implementation("androidx.appcompat:appcompat:1.3.1") implementation("androidx.cardview:cardview:1.0.0") implementation("com.google.android.material:material:1.4.0") + implementation("androidx.webkit:webkit:1.4.0") implementation("androidx.recyclerview:recyclerview:1.2.1") implementation("androidx.preference:preference:1.1.1") implementation("androidx.annotation:annotation:1.2.0") diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/webview/BaseWebViewActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/webview/BaseWebViewActivity.kt index af5a688b2b..2c1c5f2346 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/webview/BaseWebViewActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/webview/BaseWebViewActivity.kt @@ -16,6 +16,8 @@ import androidx.core.net.toUri import androidx.core.view.isInvisible import androidx.core.view.isVisible import androidx.core.view.updateLayoutParams +import androidx.webkit.WebSettingsCompat.* +import androidx.webkit.WebViewFeature import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.databinding.WebviewActivityBinding import eu.kanade.tachiyomi.ui.base.activity.BaseActivity @@ -104,6 +106,7 @@ open class BaseWebViewActivity : BaseActivity() { insets } + setWebDarkMode() binding.swipeRefresh.isEnabled = false if (bundle == null) { @@ -134,6 +137,21 @@ open class BaseWebViewActivity : BaseActivity() { } } + private fun setWebDarkMode() { + if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK_STRATEGY)) { + setForceDarkStrategy( + binding.webview.settings, + DARK_STRATEGY_WEB_THEME_DARKENING_ONLY + ) + if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { + setForceDark( + binding.webview.settings, + if (isInNightMode()) FORCE_DARK_ON else FORCE_DARK_OFF + ) + } + } + } + override fun onProvideAssistContent(outContent: AssistContent?) { super.onProvideAssistContent(outContent) binding.webview.url?.let { outContent?.webUri = it.toUri() } @@ -159,7 +177,7 @@ open class BaseWebViewActivity : BaseActivity() { getResourceColor(R.attr.colorSurface), 255 ) - binding.toolbar.setBackgroundColor(getResourceColor(R.attr.colorSecondary)) + setWebDarkMode() binding.toolbar.setBackgroundColor(getResourceColor(R.attr.colorSurface)) binding.toolbar.popupTheme = if (lightMode) R.style.ThemeOverlay_MaterialComponents else R .style.ThemeOverlay_MaterialComponents_Dark