public class MainWebViewActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, CreateHomeScreenShortcutDialog.CreateHomeScreenSchortcutListener,
SslCertificateErrorDialog.SslCertificateErrorListener, DownloadFileDialog.DownloadFileListener, DownloadImageDialog.DownloadImageListener, UrlHistoryDialog.UrlHistoryListener {
+ // `darkTheme` is public static so it can be accessed from `AboutActivity`, `GuideActivity`, `AddDomainDialog`, `SettingsActivity`, `DomainsActivity`, `DomainsSettingsActivity`, `BookmarksActivity`, `BookmarksDatabaseViewActivity`,
+ // `CreateBookmarkDialog`, `CreateBookmarkFolderDialog`, `DownloadFileDialog`, `DownloadImageDialog`, `EditBookmarkDialog`, `EditBookmarkFolderDialog`, `MoveToFolderDialog`, `SslCertificateErrorDialog`, `UrlHistoryDialog`, `ViewSslCertificateDialog`,
+ // `CreateHomeScreenShortcutDialog`, and `OrbotProxyHelper`. It is also used in `onCreate()`, `applyAppSettings()`, `applyDomainSettings()`, and `updatePrivacyIcons()`.
+ public static boolean darkTheme;
+
// `favoriteIconBitmap` is public static so it can be accessed from `CreateHomeScreenShortcutDialog`, `BookmarksActivity`, `CreateBookmarkDialog`, `CreateBookmarkFolderDialog`, `EditBookmarkDialog`, `EditBookmarkFolderDialog`, `ViewSslCertificateDialog`.
// It is also used in `onCreate()`, `onCreateHomeScreenShortcutCreate()`, and `applyDomainSettings`.
public static Bitmap favoriteIconBitmap;
// `mainWebViewRelativeLayout` is used in `onCreate()` and `onNavigationItemSelected()`.
private RelativeLayout mainWebViewRelativeLayout;
- // `darkTheme` is used in `onCreate()`, `applyAppSettings()`, and `applyDomainSettings()`.
- private boolean darkTheme;
-
@Override
// Remove Android Studio's warning about the dangers of using SetJavaScriptEnabled. The whole premise of Privacy Browser is built around an understanding of these dangers.
@SuppressLint("SetJavaScriptEnabled")
// Run the default commands.
super.onCreate(savedInstanceState);
- // Set the content view according to the theme..
- if (darkTheme) {
- setContentView(R.layout.main_drawerlayout_dark);
- } else {
- setContentView(R.layout.main_drawerlayout_light);
- }
+ // Set the content view.
+ setContentView(R.layout.main_drawerlayout);
// Get a handle for `inputMethodManager`.
inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
}
// Set a transparent background on `urlTextBox`. We have to use the deprecated `.getDrawable()` until the minimum API >= 21.
- urlAppBarRelativeLayout.setBackgroundDrawable(getResources().getDrawable(R.drawable.url_bar_background_transparent));
+ urlAppBarRelativeLayout.setBackgroundDrawable(getResources().getDrawable(R.color.transparent));
}
// Close `domainsDatabaseHelper`.
if (firstPartyCookiesEnabled) { // First-party cookies are enabled.
firstPartyCookiesIconMenuItem.setIcon(R.drawable.cookies_enabled);
} else { // First-party cookies are disabled.
- firstPartyCookiesIconMenuItem.setIcon(R.drawable.cookies_disabled);
+ if (darkTheme) {
+ firstPartyCookiesIconMenuItem.setIcon(R.drawable.cookies_disabled_dark);
+ } else {
+ firstPartyCookiesIconMenuItem.setIcon(R.drawable.cookies_disabled_light);
+ }
}
// Update `domStorageIcon`.
if (javaScriptEnabled && domStorageEnabled) { // Both JavaScript and DOM storage are enabled.
domStorageIconMenuItem.setIcon(R.drawable.dom_storage_enabled);
} else if (javaScriptEnabled) { // JavaScript is enabled but DOM storage is disabled.
- domStorageIconMenuItem.setIcon(R.drawable.dom_storage_disabled);
+ if (darkTheme) {
+ domStorageIconMenuItem.setIcon(R.drawable.dom_storage_disabled_dark);
+ } else {
+ domStorageIconMenuItem.setIcon(R.drawable.dom_storage_disabled_light);
+ }
} else { // JavaScript is disabled, so DOM storage is ghosted.
- domStorageIconMenuItem.setIcon(R.drawable.dom_storage_ghosted);
+ if (darkTheme) {
+ domStorageIconMenuItem.setIcon(R.drawable.dom_storage_ghosted_dark);
+ } else {
+ domStorageIconMenuItem.setIcon(R.drawable.dom_storage_ghosted_light);
+ }
}
// Update `formDataIcon`.
if (saveFormDataEnabled) { // Form data is enabled.
formDataIconMenuItem.setIcon(R.drawable.form_data_enabled);
} else { // Form data is disabled.
- formDataIconMenuItem.setIcon(R.drawable.form_data_disabled);
+ if (darkTheme) {
+ formDataIconMenuItem.setIcon(R.drawable.form_data_disabled_dark);
+ } else {
+ formDataIconMenuItem.setIcon(R.drawable.form_data_disabled_light);
+ }
}
// `invalidateOptionsMenu` calls `onPrepareOptionsMenu()` and redraws the icons in the `AppBar`. `this` references the current activity.