X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Factivities%2FDomainsActivity.java;h=6baf5f6e534df8c4cf7ac969753abeb500c25b0e;hp=81727aacd6d3cf2312337a89b6054cc31046dee3;hb=0488649384ddea89d768c1fc1cc5fb71f8af6528;hpb=ca7516a7edb9e06d0f9fe9186513986cd82be716 diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/DomainsActivity.java b/app/src/main/java/com/stoutner/privacybrowser/activities/DomainsActivity.java index 81727aac..6baf5f6e 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/DomainsActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/DomainsActivity.java @@ -1,5 +1,5 @@ /* - * Copyright © 2017-2019 Soren Stoutner . + * Copyright © 2017-2020 Soren Stoutner . * * This file is part of Privacy Browser . * @@ -23,6 +23,7 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.content.res.Configuration; import android.content.res.Resources; import android.database.Cursor; import android.os.Bundle; @@ -129,8 +130,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Get a handle for the shared preferences. SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); - // Get the theme and screenshot preferences. - boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false); + // Get the screenshot preference. boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false); // Disable screenshots if not allowed. @@ -138,12 +138,8 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); } - // Set the activity theme. - if (darkTheme) { - setTheme(R.style.PrivacyBrowserDark_SecondaryActivity); - } else { - setTheme(R.style.PrivacyBrowserLight_SecondaryActivity); - } + // Set the theme. + setTheme(R.style.PrivacyBrowser); // Run the default commands. super.onCreate(savedInstanceState); @@ -209,6 +205,9 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Configure the add domain floating action button. addDomainFAB.setOnClickListener((View view) -> { + // Remove the incorrect warning below that the current URL might be null. + assert currentUrl != null; + // Create an add domain dialog. DialogFragment addDomainDialog = AddDomainDialog.addDomain(currentUrl); @@ -393,7 +392,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Disable the options `MenuItems`. deleteMenuItem.setEnabled(false); - deleteMenuItem.setIcon(R.drawable.delete_blue); + deleteMenuItem.setIcon(R.drawable.delete_disabled); // Remove the domain settings fragment. fragmentManager.beginTransaction().remove(Objects.requireNonNull(fragmentManager.findFragmentById(R.id.domain_settings_fragment_container))).commit(); @@ -439,7 +438,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Get a handle for the activity. Activity activity = this; - // Display a `Snackbar`. + // Display a snackbar. undoDeleteSnackbar = Snackbar.make(domainsListView, R.string.domain_deleted, Snackbar.LENGTH_LONG) .setAction(R.string.undo, (View v) -> { // Do nothing because everything will be handled by `onDismissed()` below. @@ -479,17 +478,27 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo } }; - // Update the `ListView`. + // Update the domains list view. domainsListView.setAdapter(undoDeleteDomainsCursorAdapter); - // Select the previously deleted domain in `domainsListView`. + + // Select the previously deleted domain in the list view. domainsListView.setItemChecked(deletedDomainPosition, true); - // Display `domainSettingsFragment`. + // Display the domain settings fragment. fragmentManager.beginTransaction().replace(R.id.domain_settings_fragment_container, domainSettingsFragment).commit(); - // Enable the options `MenuItems`. + // Enable the options delete menu item. deleteMenuItem.setEnabled(true); - deleteMenuItem.setIcon(R.drawable.delete_light); + + // Get the current theme status. + int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; + + // Set the delete menu item icon according to the theme. + if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { + deleteMenuItem.setIcon(R.drawable.delete_night); + } else { + deleteMenuItem.setIcon(R.drawable.delete_day); + } } else { // The device in in one-paned mode. // Display `domainSettingsFragment`. fragmentManager.beginTransaction().replace(R.id.domains_listview_fragment_container, domainSettingsFragment).commit(); @@ -511,29 +520,26 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo if (dismissingSnackbar) { // Create a `Runnable` to enable the delete menu item. Runnable enableDeleteMenuItemRunnable = () -> { - // Enable `deleteMenuItem` according to the display mode. + // Enable the delete menu item according to the display mode. if (twoPanedMode) { // Two-paned mode. // Enable the delete menu item. deleteMenuItem.setEnabled(true); - // Get a handle for the shared preferences. - SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + // Get the current theme status. + int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; - // Get the theme preferences. - boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false); - - // Set the delete icon according to the theme. - if (darkTheme) { - deleteMenuItem.setIcon(R.drawable.delete_dark); + // Set the delete menu item icon according to the theme. + if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { + deleteMenuItem.setIcon(R.drawable.delete_night); } else { - deleteMenuItem.setIcon(R.drawable.delete_light); + deleteMenuItem.setIcon(R.drawable.delete_day); } } else { // Single-paned mode. - // Show `deleteMenuItem`. + // Show the delete menu item. deleteMenuItem.setVisible(true); } - // Reset `dismissingSnackbar`. + // Reset the dismissing snackbar tracker. dismissingSnackbar = false; }; @@ -640,7 +646,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo } @Override - public void onAddDomain(DialogFragment dialogFragment) { + public void onAddDomain(@NonNull DialogFragment dialogFragment) { // Dismiss the undo delete snackbar if it is currently displayed. if ((undoDeleteSnackbar != null) && undoDeleteSnackbar.isShown()) { undoDeleteSnackbar.dismiss(); @@ -701,7 +707,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo Spinner fontSizeSpinner = view.findViewById(R.id.font_size_spinner); EditText customFontSizeEditText = view.findViewById(R.id.custom_font_size_edittext); Spinner swipeToRefreshSpinner = view.findViewById(R.id.swipe_to_refresh_spinner); - Spinner nightModeSpinner = view.findViewById(R.id.night_mode_spinner); + Spinner webViewThemeSpinner = view.findViewById(R.id.webview_theme_spinner); Spinner wideViewportSpinner = view.findViewById(R.id.wide_viewport_spinner); Spinner displayWebpageImagesSpinner = view.findViewById(R.id.display_webpage_images_spinner); Switch pinnedSslCertificateSwitch = view.findViewById(R.id.pinned_ssl_certificate_switch); @@ -726,7 +732,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo int userAgentSwitchPosition = userAgentSpinner.getSelectedItemPosition(); int fontSizeSwitchPosition = fontSizeSpinner.getSelectedItemPosition(); int swipeToRefreshInt = swipeToRefreshSpinner.getSelectedItemPosition(); - int nightModeInt = nightModeSpinner.getSelectedItemPosition(); + int webViewThemeInt = webViewThemeSpinner.getSelectedItemPosition(); int wideViewportInt = wideViewportSpinner.getSelectedItemPosition(); int displayWebpageImagesInt = displayWebpageImagesSpinner.getSelectedItemPosition(); boolean pinnedSslCertificate = pinnedSslCertificateSwitch.isChecked(); @@ -766,7 +772,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Save the domain settings. domainsDatabaseHelper.updateDomain(DomainsActivity.currentDomainDatabaseId, domainNameString, javaScript, firstPartyCookies, thirdPartyCookies, domStorage, formData, easyList, easyPrivacy, - fanboysAnnoyance, fanboysSocialBlocking, ultraList, ultraPrivacy, blockAllThirdPartyRequests, userAgentName, fontSizeInt, swipeToRefreshInt, nightModeInt, wideViewportInt, + fanboysAnnoyance, fanboysSocialBlocking, ultraList, ultraPrivacy, blockAllThirdPartyRequests, userAgentName, fontSizeInt, swipeToRefreshInt, webViewThemeInt, wideViewportInt, displayWebpageImagesInt, pinnedSslCertificate, pinnedIpAddress); // Update the pinned SSL certificate if a new one is checked. @@ -850,22 +856,19 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Enable the delete options menu items. deleteMenuItem.setEnabled(true); - // Get a handle for the shared preferences. - SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); - - // Get the theme and screenshot preferences. - boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false); + // Get the current theme status. + int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; // Set the delete icon according to the theme. - if (darkTheme) { - deleteMenuItem.setIcon(R.drawable.delete_dark); + if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { + deleteMenuItem.setIcon(R.drawable.delete_night); } else { - deleteMenuItem.setIcon(R.drawable.delete_light); + deleteMenuItem.setIcon(R.drawable.delete_day); } } else if (twoPanedMode) { // Two-paned mode is enabled but there are no domains. // Disable the options `MenuItems`. deleteMenuItem.setEnabled(false); - deleteMenuItem.setIcon(R.drawable.delete_blue); + deleteMenuItem.setIcon(R.drawable.delete_disabled); } }