From a20b3e91f3e280820be00a935584fd24d92970fe Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 27 Jan 2021 18:35:41 +0300 Subject: rework previous --- org.fox.epube/build.gradle | 1 + .../src/main/java/org/fox/epube/MainActivity.java | 27 ++++++++++++---------- 2 files changed, 16 insertions(+), 12 deletions(-) (limited to 'org.fox.epube') diff --git a/org.fox.epube/build.gradle b/org.fox.epube/build.gradle index 282aec1..bd630c0 100644 --- a/org.fox.epube/build.gradle +++ b/org.fox.epube/build.gradle @@ -46,6 +46,7 @@ dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + implementation 'androidx.webkit:webkit:1.3.0' implementation 'frankiesardo:icepick:3.2.0' compileOnly 'frankiesardo:icepick-processor:3.2.0' annotationProcessor 'frankiesardo:icepick-processor:3.2.0' diff --git a/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java b/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java index ce1db12..dfd7086 100644 --- a/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java +++ b/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java @@ -29,6 +29,8 @@ import com.livefront.bridge.Bridge; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; +import androidx.webkit.WebSettingsCompat; +import androidx.webkit.WebViewFeature; import icepick.State; public class MainActivity extends AppCompatActivity implements NetworkStateReceiver.NetworkStateReceiverListener { @@ -69,15 +71,14 @@ public class MainActivity extends AppCompatActivity implements NetworkStateRecei settings.setAppCachePath(getCacheDir().getAbsolutePath()); settings.setAppCacheEnabled(true); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - //settings.setForceDark(WebSettings.FORCE_DARK_OFF); - - int nightModeFlags = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; + if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { + WebSettingsCompat.setForceDark(m_web.getSettings(), + isNightMode() ? WebSettingsCompat.FORCE_DARK_ON : WebSettingsCompat.FORCE_DARK_OFF); + } - if (nightModeFlags == Configuration.UI_MODE_NIGHT_YES) - settings.setForceDark(WebSettings.FORCE_DARK_ON); - else - settings.setForceDark(WebSettings.FORCE_DARK_OFF); + if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK_STRATEGY)) { + WebSettingsCompat.setForceDarkStrategy(m_web.getSettings(), + WebSettingsCompat.DARK_STRATEGY_USER_AGENT_DARKENING_ONLY); } m_loadingBar = findViewById(R.id.loading_progress); @@ -406,11 +407,8 @@ public class MainActivity extends AppCompatActivity implements NetworkStateRecei } @JavascriptInterface - @Deprecated public boolean isNightMode() { - /*int nightModeFlags = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; - return nightModeFlags == Configuration.UI_MODE_NIGHT_YES;*/ - return false; + return MainActivity.this.isNightMode(); } @JavascriptInterface @@ -437,6 +435,11 @@ public class MainActivity extends AppCompatActivity implements NetworkStateRecei } + private boolean isNightMode() { + int nightModeFlags = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; + return nightModeFlags == Configuration.UI_MODE_NIGHT_YES; + } + private boolean isNetworkAvailable() { ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); -- cgit v1.2.3