Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 45f2e1f2 authored by Fahim Salam Chowdhury's avatar Fahim Salam Chowdhury 👽
Browse files

Merge branch '6037-Fix_webview_darkmode_color_issue' into 'main'

6037-Fix_webview_darkmode_color_issue

See merge request !131
parents f65d575e 469867b7
Loading
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -6,7 +6,6 @@ class DisplayHtml(private val settings: HtmlSettings) : HtmlHeadProvider {
    override val headHtml: String
        get() {
            return """<meta name="viewport" content="width=device-width"/>""" +
                cssStyleTheme() +
                cssStylePre() +
                cssStyleSignature()
        }
@@ -18,7 +17,6 @@ class DisplayHtml(private val settings: HtmlSettings) : HtmlHeadProvider {
    fun wrapMessageContent(messageContent: CharSequence): String {
        // Include a meta tag so the WebView will not use a fixed viewport width of 980 px
        return "<html dir=\"auto\"><head><meta name=\"viewport\" content=\"width=device-width\"/>" +
            cssStyleTheme() +
            cssStylePre() +
            "</head><body>" +
            messageContent +
+1 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
    <style name="Theme.K9.Common" parent="Theme.K9.Base">
        <item name="android:windowBackground">@color/color_default_background</item>
        <item name="windowActionModeOverlay">true</item>
        <item name="isLightTheme">@bool/isLightMode</item>
        <item name="android:windowLightStatusBar" tools:targetApi="23">@bool/isLightMode</item>
        <item name="android:windowLightNavigationBar" tools:targetApi="27">@bool/isLightMode</item>
        <item name="android:navigationBarColor">@color/color_default_primary_dark</item>
+1 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ dependencies {
    implementation libs.retrofit.converter.simplexml
    implementation libs.fullscreenloadingdialog
    implementation libs.yetanotheraccountchip
    implementation libs.webkit

    annotationProcessor libs.glide.compiler

+15 −0
Original line number Diff line number Diff line
@@ -6,6 +6,8 @@ import android.util.AttributeSet
import android.webkit.WebSettings.LayoutAlgorithm
import android.webkit.WebSettings.RenderPriority
import android.webkit.WebView
import androidx.webkit.WebSettingsCompat
import androidx.webkit.WebViewFeature
import com.fsck.k9.mailstore.AttachmentResolver
import timber.log.Timber

@@ -58,6 +60,19 @@ class MessageWebView : WebView {

        // Disable network images by default. This is overridden by preferences.
        blockNetworkData(true)

        setUpTheme(config.useDarkMode)
    }

    private fun setUpTheme(useDarkMode: Boolean) {
        if (WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) {
            WebSettingsCompat.setAlgorithmicDarkeningAllowed(settings, true)
        }

        if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) {
            val forceDarkMode = if (useDarkMode) WebSettingsCompat.FORCE_DARK_ON else WebSettingsCompat.FORCE_DARK_OFF
            WebSettingsCompat.setForceDark(settings, forceDarkMode)
        }
    }

    private fun disableDisplayZoomControls() {
+1 −0
Original line number Diff line number Diff line
@@ -114,6 +114,7 @@ retrofit-converter-simplexml = "com.squareup.retrofit2:converter-simplexml:2.9.0
fullscreenloadingdialog = "com.github.fahim44:FullScreenLoadingDialog:1.0.7"
elib = "foundation.e:elib:0.0.1-alpha11"
yetanotheraccountchip = "com.github.fahim44:YetAnotherAccountChip:1.0.0"
webkit = "androidx.webkit:webkit:1.6.0"

junit = "junit:junit:4.13.2"
robolectric = "org.robolectric:robolectric:4.9.2"