// Enable DOM Storage if JavaScript is enabled.
optionsDomStorageMenuItem.setEnabled(currentWebView.getSettings().getJavaScriptEnabled());
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ // Enable dark WebView if the API is < 33 or if night mode is enabled.
+ optionsDarkWebViewMenuItem.setEnabled((Build.VERSION.SDK_INT < 33) || (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES));
+
// Set the checkbox status for dark WebView if the WebView supports it.
- if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) {
+ if ((Build.VERSION.SDK_INT >= 33) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) { // The device is running API >= 33 and algorithmic darkening is supported.
+ optionsDarkWebViewMenuItem.setChecked(WebSettingsCompat.isAlgorithmicDarkeningAllowed(currentWebView.getSettings()));
+ } else if ((Build.VERSION.SDK_INT < 33) && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { // The device is running API < 33 and the WebView supports force dark.
+ //noinspection deprecation
optionsDarkWebViewMenuItem.setChecked(WebSettingsCompat.getForceDark(currentWebView.getSettings()) == WebSettingsCompat.FORCE_DARK_ON);
}
}
return true;
} else if (menuItemId == R.id.dark_webview) { // Dark WebView.
// Check to see if dark WebView is supported by this WebView.
- if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) {
+ if ((Build.VERSION.SDK_INT >= 33) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) { // The device is running API >= 33 and algorithmic darkening is supported.
+ // Toggle algorithmic darkening.
+ WebSettingsCompat.setAlgorithmicDarkeningAllowed(currentWebView.getSettings(), !WebSettingsCompat.isAlgorithmicDarkeningAllowed(currentWebView.getSettings()));
+ } else if ((Build.VERSION.SDK_INT < 33) && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { // The device is running API < 33 and the WebView supports force dark.
// Toggle the dark WebView setting.
+ //noinspection deprecation
if (WebSettingsCompat.getForceDark(currentWebView.getSettings()) == WebSettingsCompat.FORCE_DARK_ON) { // Dark WebView is currently enabled.
// Turn off dark WebView.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(currentWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
} else { // Dark WebView is currently disabled.
// Turn on dark WebView.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(currentWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
}
}
}
// Check to see if WebView themes are supported.
- if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) {
+ if ((Build.VERSION.SDK_INT >= 33) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) { // The device is running API >= 33 and algorithmic darkening is supported.
+ // Set the WebView theme.
+ switch (webViewThemeInt) {
+ case DomainsDatabaseHelper.SYSTEM_DEFAULT:
+ // Set the WebView theme. A switch statement cannot be used because the WebView theme entry values string array is not a compile time constant.
+ if (webViewTheme.equals(webViewThemeEntryValuesStringArray[1])) { // The light theme is selected.
+ // Turn off algorithmic darkening.
+ WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), false);
+ } else if (webViewTheme.equals(webViewThemeEntryValuesStringArray[2])) { // The dark theme is selected.
+ // Turn on algorithmic darkening.
+ WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), true);
+ } else { // The system default theme is selected.
+ // Get the current system theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ // Set the algorithmic darkening according to the current system theme status.
+ WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES));
+ }
+ break;
+
+ case DomainsDatabaseHelper.LIGHT_THEME:
+ // Turn off algorithmic darkening.
+ WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), false);
+ break;
+
+ case DomainsDatabaseHelper.DARK_THEME:
+ // Turn on algorithmic darkening.
+ WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), true);
+ break;
+ }
+ } else if ((Build.VERSION.SDK_INT < 33) && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { // The device is running API < 33 and the WebView supports force dark.
// Set the WebView theme.
switch (webViewThemeInt) {
case DomainsDatabaseHelper.SYSTEM_DEFAULT:
// Set the WebView theme. A switch statement cannot be used because the WebView theme entry values string array is not a compile time constant.
if (webViewTheme.equals(webViewThemeEntryValuesStringArray[1])) { // The light theme is selected.
// Turn off the WebView dark mode.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
} else if (webViewTheme.equals(webViewThemeEntryValuesStringArray[2])) { // The dark theme is selected.
// Turn on the WebView dark mode.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
} else { // The system default theme is selected.
// Get the current system theme status.
// Set the WebView theme according to the current system theme status.
if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { // The system is in day mode.
// Turn off the WebView dark mode.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
} else { // The system is in night mode.
// Turn on the WebView dark mode.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
}
}
case DomainsDatabaseHelper.LIGHT_THEME:
// Turn off the WebView dark mode.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
break;
case DomainsDatabaseHelper.DARK_THEME:
// Turn on the WebView dark mode.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
break;
}
}
// Apply the WebView theme if supported by the installed WebView.
- if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) {
+ if ((Build.VERSION.SDK_INT >= 33) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) { // The device is running API >= 33 and algorithmic darkening is supported.
+ // Set the WebView theme. A switch statement cannot be used because the WebView theme entry values string array is not a compile time constant.
+ if (webViewTheme.equals(webViewThemeEntryValuesStringArray[1])) { // the light theme is selected.
+ // Turn off algorithmic darkening.
+ WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), false);
+ } else if (webViewTheme.equals(webViewThemeEntryValuesStringArray[2])) { // The dark theme is selected.
+ // Turn on algorithmic darkening.
+ WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), true);
+ } else { // The system default theme is selected.
+ // Get the current system theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ // Set the algorithmic darkening according to the current system theme status.
+ WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), currentThemeStatus == Configuration.UI_MODE_NIGHT_YES);
+ }
+ } else if ((Build.VERSION.SDK_INT < 33) && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { // The device is running API < 33 and the WebView supports force dark.
// Set the WebView theme. A switch statement cannot be used because the WebView theme entry values string array is not a compile time constant.
if (webViewTheme.equals(webViewThemeEntryValuesStringArray[1])) { // The light theme is selected.
// Turn off the WebView dark mode.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
} else if (webViewTheme.equals(webViewThemeEntryValuesStringArray[2])) { // The dark theme is selected.
// Turn on the WebView dark mode.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
} else { // The system default theme is selected.
// Get the current system theme status.
// Set the WebView theme according to the current system theme status.
if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { // The system is in day mode.
// Turn off the WebView dark mode.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
} else { // The system is in night mode.
// Turn on the WebView dark mode.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
}
}
String[] webViewThemeEntryValuesStringArray = getResources().getStringArray(R.array.webview_theme_entry_values);
// Apply the WebView theme if supported by the installed WebView.
- if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) {
+ if ((Build.VERSION.SDK_INT >= 33) && WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING)) { // The device is running API >= 33 and algorithmic darkening is supported.
+ // Set the WebView them. A switch statement cannot be used because the WebView theme entry values string array is not a compile time constant.
+ if (webViewTheme.equals(webViewThemeEntryValuesStringArray[1])) { // The light theme is selected.
+ // Turn off algorithmic darkening.
+ WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), false);
+
+ // Make the WebView visible. The WebView was created invisible in `webview_framelayout` to prevent a white background splash in night mode.
+ // If the system is currently in night mode, showing the WebView will be handled in `onProgressChanged()`.
+ nestedScrollWebView.setVisibility(View.VISIBLE);
+ } else if (webViewTheme.equals(webViewThemeEntryValuesStringArray[2])) { // The dark theme is selected.
+ // Turn on algorithmic darkening.
+ WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), true);
+ } else {
+ // The system default theme is selected.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ // Set the algorithmic darkening according to the current system theme status.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { // The system is in day mode.
+ // Turn off algorithmic darkening.
+ WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), false);
+
+ // Make the WebView visible. The WebView was created invisible in `webview_framelayout` to prevent a white background splash in night mode.
+ // If the system is currently in night mode, showing the WebView will be handled in `onProgressChanged()`.
+ nestedScrollWebView.setVisibility(View.VISIBLE);
+ } else { // The system is in night mode.
+ // Turn on algorithmic darkening.
+ WebSettingsCompat.setAlgorithmicDarkeningAllowed(nestedScrollWebView.getSettings(), true);
+ }
+ }
+ } else if ((Build.VERSION.SDK_INT < 33) && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { // The device is running API < 33 and the WebView supports force dark.
// Set the WebView theme. A switch statement cannot be used because the WebView theme entry values string array is not a compile time constant.
if (webViewTheme.equals(webViewThemeEntryValuesStringArray[1])) { // The light theme is selected.
// Turn off the WebView dark mode.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
// Make the WebView visible. The WebView was created invisible in `webview_framelayout` to prevent a white background splash in night mode.
nestedScrollWebView.setVisibility(View.VISIBLE);
} else if (webViewTheme.equals(webViewThemeEntryValuesStringArray[2])) { // The dark theme is selected.
// Turn on the WebView dark mode.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
} else { // The system default theme is selected.
// Get the current system theme status.
// Set the WebView theme according to the current system theme status.
if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { // The system is in day mode.
// Turn off the WebView dark mode.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF);
// Make the WebView visible. The WebView was created invisible in `webview_framelayout` to prevent a white background splash in night mode.
nestedScrollWebView.setVisibility(View.VISIBLE);
} else { // The system is in night mode.
// Turn on the WebView dark mode.
+ //noinspection deprecation
WebSettingsCompat.setForceDark(nestedScrollWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON);
}
}
public class SettingsFragment extends PreferenceFragmentCompat {
// Declare the class variables.
- private int currentThemeStatus;
private String defaultUserAgent;
private ArrayAdapter<CharSequence> userAgentNamesArray;
private String[] translatedUserAgentNamesArray;
// Get a handle for the resources.
Resources resources = getResources();
- // Get the current theme status.
- currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
-
// Get a handle for the shared preferences.
SharedPreferences sharedPreferences = getPreferenceScreen().getSharedPreferences();
// Get the current app theme.
String currentAppTheme = sharedPreferences.getString("app_theme", getString(R.string.app_theme_default_value));
- // Define an app theme entry number.
+ // Declare an app theme entry number.
int appThemeEntryNumber;
// Get the app theme entry number that matches the current app theme. A switch statement cannot be used because the theme entry values string array is not a compile time constant.
// Set the current theme as the summary text for the preference.
appThemePreference.setSummary(appThemeEntriesStringArray[appThemeEntryNumber]);
+ // Disable the WebView theme preference if the API >= 33 and the app theme is set to light.
+ webViewThemePreference.setEnabled((Build.VERSION.SDK_INT < 33) || (appThemeEntryNumber != 1));
+
// Get the WebView theme string arrays.
webViewThemeEntriesStringArray = resources.getStringArray(R.array.webview_theme_entries);
displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_disabled);
// Set the WebView theme preference icon.
- switch (webViewThemeEntryNumber) {
- case 0: // The system default WebView theme is selected.
- // Set the icon according to the app theme.
- if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) {
- webViewThemePreference.setIcon(R.drawable.webview_light_theme);
- } else {
- webViewThemePreference.setIcon(R.drawable.webview_dark_theme);
- }
- break;
+ if (webViewThemePreference.isEnabled()) { // The WebView theme preference is enabled.
+ switch (webViewThemeEntryNumber) {
+ case 0: // The system default WebView theme is selected.
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ // Set the icon according to the app theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO)
+ webViewThemePreference.setIcon(R.drawable.webview_light_theme);
+ else
+ webViewThemePreference.setIcon(R.drawable.webview_dark_theme);
+ break;
- case 1: // The light WebView theme is selected.
- // Set the icon.
- webViewThemePreference.setIcon(R.drawable.webview_light_theme);
- break;
+ case 1: // The light WebView theme is selected.
+ // Set the icon.
+ webViewThemePreference.setIcon(R.drawable.webview_light_theme);
+ break;
- case 2: // The dark WebView theme is selected.
- // Set the icon.
- webViewThemePreference.setIcon(R.drawable.webview_dark_theme);
- break;
+ case 2: // The dark WebView theme is selected.
+ // Set the icon.
+ webViewThemePreference.setIcon(R.drawable.webview_dark_theme);
+ break;
+ }
+ } else { // The WebView theme preference is disabled.
+ webViewThemePreference.setIcon(R.drawable.webview_theme_ghosted);
}
// Set the wide viewport preference icon.
// Get the new theme.
String newAppTheme = sharedPreferences.getString("app_theme", context.getString(R.string.app_theme_default_value));
- // Update the system according to the new theme. A switch statement cannot be used because the theme entry values string array is not a compile-time constant.
- if (newAppTheme.equals(appThemeEntryValuesStringArray[1])) { // The light theme is selected.
- // Update the theme preference summary text.
- appThemePreference.setSummary(appThemeEntriesStringArray[1]);
+ // Declare an app theme entry number.
+ int appThemeEntryNumber;
- // Apply the new theme.
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
+ // Get the app theme entry number that matches the current app theme. A switch statement cannot be used because the theme entry values string array is not a compile time constant.
+ if (newAppTheme.equals(appThemeEntryValuesStringArray[1])) { // The light theme is selected.
+ // Store the app theme entry number.
+ appThemeEntryNumber = 1;
} else if (newAppTheme.equals(appThemeEntryValuesStringArray[2])) { // The dark theme is selected.
- // Update the theme preference summary text.
- appThemePreference.setSummary(appThemeEntriesStringArray[2]);
+ // Store the app theme entry number.
+ appThemeEntryNumber = 2;
+ } else { // The system default theme is selected.
+ // Store the app theme entry number.
+ appThemeEntryNumber = 0;
+ }
+
+ // Update the system according to the new theme. A switch statement cannot be used because the theme entry values string array is not a compile-time constant.
+ switch (appThemeEntryNumber) {
+ case 0: // The system default theme is selected.
+ // Update the theme preference summary text.
+ appThemePreference.setSummary(appThemeEntriesStringArray[0]);
+
+ // Apply the new theme.
+ if (Build.VERSION.SDK_INT >= 28) { // The system default theme is supported.
+ // Follow the system default theme.
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
+ } else {// The system default theme is not supported.
+ // Follow the battery saver mode.
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY);
+ }
+ break;
+
+ case 1: // The light theme is selected.
+ // Update the theme preference summary text.
+ appThemePreference.setSummary(appThemeEntriesStringArray[1]);
- // Apply the new theme.
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
+ // Apply the new theme.
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
+ break;
+
+ case 2:
+ // Update the theme preference summary text.
+ appThemePreference.setSummary(appThemeEntriesStringArray[2]);
+
+ // Apply the new theme.
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
+ break;
+ }
+
+ // Disable the WebView theme preference if the API >= 33 and the app theme is set to light.
+ webViewThemePreference.setEnabled((Build.VERSION.SDK_INT < 33) || (appThemeEntryNumber != 1));
+
+ // Get the WebView theme.
+ String webViewTheme = sharedPreferences.getString("webview_theme", context.getString(R.string.webview_theme_default_value));
+
+ // Declare a WebView theme entry number.
+ int webViewThemeEntryNumber;
+
+ // Get the webView theme entry number that matches the new WebView theme. A switch statement cannot be used because the theme entry values string array is not a compile time constant.
+ if (webViewTheme.equals(webViewThemeEntriesStringArray[1])) { // The light theme is selected.
+ // Store the WebView theme entry number.
+ webViewThemeEntryNumber = 1;
+ } else if (webViewTheme.equals(webViewThemeEntryValuesStringArray[2])) { // The dark theme is selected.
+ // Store the WebView theme entry number.
+ webViewThemeEntryNumber = 2;
} else { // The system default theme is selected.
- // Update the theme preference summary text.
- appThemePreference.setSummary(appThemeEntriesStringArray[0]);
-
- // Apply the new theme.
- if (Build.VERSION.SDK_INT >= 28) { // The system default theme is supported.
- // Follow the system default theme.
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
- } else {// The system default theme is not supported.
- // Follow the battery saver mode.
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY);
- }
+ // Store the WebView theme entry number.
+ webViewThemeEntryNumber = 0;
}
- // Update the current theme status.
- currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+ // Update the WebView theme preference icon.
+ if (webViewThemePreference.isEnabled()) { // The WebView theme preference is enabled.
+ switch (webViewThemeEntryNumber) {
+ case 0: // The system default WebView theme is selected.
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ // Set the icon according to the app theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO)
+ webViewThemePreference.setIcon(R.drawable.webview_light_theme);
+ else
+ webViewThemePreference.setIcon(R.drawable.webview_dark_theme);
+ break;
+
+ case 1: // The light WebView theme is selected.
+ // Set the icon.
+ webViewThemePreference.setIcon(R.drawable.webview_light_theme);
+ break;
+
+ case 2: // The dark WebView theme is selected.
+ // Set the icon.
+ webViewThemePreference.setIcon(R.drawable.webview_dark_theme);
+ break;
+ }
+ } else { // The WebView theme preference is disabled.
+ webViewThemePreference.setIcon(R.drawable.webview_theme_ghosted);
+ }
break;
case "webview_theme":
// Get the new WebView theme.
String newWebViewTheme = sharedPreferences.getString("webview_theme", context.getString(R.string.webview_theme_default_value));
- // Define a new WebView theme entry number.
+ // Declare a new WebView theme entry number.
int newWebViewThemeEntryNumber;
// Get the webView theme entry number that matches the new WebView theme. A switch statement cannot be used because the theme entry values string array is not a compile time constant.
// Store the new WebView theme entry number.
newWebViewThemeEntryNumber = 1;
} else if (newWebViewTheme.equals(webViewThemeEntryValuesStringArray[2])) { // The dark theme is selected.
- // Store the WebView theme entry number.
+ // Store the new WebView theme entry number.
newWebViewThemeEntryNumber = 2;
} else { // The system default theme is selected.
- // Store the WebView theme entry number.
+ // Store the new WebView theme entry number.
newWebViewThemeEntryNumber = 0;
}
// Update the icon.
switch (newWebViewThemeEntryNumber) {
case 0: // The system default WebView theme is selected.
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
// Set the icon.
if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) {
webViewThemePreference.setIcon(R.drawable.webview_light_theme);