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=81727aacd6d3cf2312337a89b6054cc31046dee3;hp=7ac850b48a1eec69efc34b4ad13a741f0e72b4ee;hb=ca7516a7edb9e06d0f9fe9186513986cd82be716;hpb=5e95167477f5b2dc9bd4b99261038b6fe60beab3 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 7ac850b4..81727aac 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/DomainsActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/DomainsActivity.java @@ -41,6 +41,7 @@ import android.widget.Spinner; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; // The AndroidX toolbar must be used until the minimum API is >= 21. @@ -560,7 +561,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo } @Override - protected void onSaveInstanceState(Bundle outState) { + protected void onSaveInstanceState(@NonNull Bundle outState) { // Store the current `DomainSettingsFragment` state in `outState`. if (findViewById(R.id.domain_settings_scrollview) != null) { // `DomainSettingsFragment` is displayed. // Save any changes that have been made to the domain settings. @@ -645,8 +646,13 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo undoDeleteSnackbar.dismiss(); } - // Get the new domain name String from the dialog fragment. + // Remove the incorrect lint warning below that the dialog might be null. + assert dialogFragment.getDialog() != null; + + // Get a handle for the domain name edit text. EditText domainNameEditText = dialogFragment.getDialog().findViewById(R.id.domain_name_edittext); + + // Get the domain name string. String domainNameString = domainNameEditText.getText().toString(); // Create the domain and store the database ID in `currentDomainDatabaseId`. @@ -687,14 +693,17 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo Switch easyPrivacySwitch = view.findViewById(R.id.easyprivacy_switch); Switch fanboysAnnoyanceSwitch = view.findViewById(R.id.fanboys_annoyance_list_switch); Switch fanboysSocialBlockingSwitch = view.findViewById(R.id.fanboys_social_blocking_list_switch); + Switch ultraListSwitch = view.findViewById(R.id.ultralist_switch); Switch ultraPrivacySwitch = view.findViewById(R.id.ultraprivacy_switch); Switch blockAllThirdPartyRequestsSwitch = view.findViewById(R.id.block_all_third_party_requests_switch); Spinner userAgentSpinner = view.findViewById(R.id.user_agent_spinner); EditText customUserAgentEditText = view.findViewById(R.id.custom_user_agent_edittext); 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 displayWebpageImagesSpinner = view.findViewById(R.id.display_webpage_images_spinner); Spinner nightModeSpinner = view.findViewById(R.id.night_mode_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); RadioButton currentWebsiteCertificateRadioButton = view.findViewById(R.id.current_website_certificate_radiobutton); Switch pinnedIpAddressesSwitch = view.findViewById(R.id.pinned_ip_addresses_switch); @@ -702,22 +711,24 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Extract the data for the domain settings. String domainNameString = domainNameEditText.getText().toString(); - boolean javaScriptEnabled = javaScriptSwitch.isChecked(); - boolean firstPartyCookiesEnabled = firstPartyCookiesSwitch.isChecked(); - boolean thirdPartyCookiesEnabled = thirdPartyCookiesSwitch.isChecked(); - boolean domStorageEnabled = domStorageSwitch.isChecked(); - boolean formDataEnabled = formDataSwitch.isChecked(); // Form data can be removed once the minimum API >= 26. - boolean easyListEnabled = easyListSwitch.isChecked(); - boolean easyPrivacyEnabled = easyPrivacySwitch.isChecked(); - boolean fanboysAnnoyanceEnabled = fanboysAnnoyanceSwitch.isChecked(); - boolean fanboysSocialBlockingEnabled = fanboysSocialBlockingSwitch.isChecked(); - boolean ultraPrivacyEnabled = ultraPrivacySwitch.isChecked(); + boolean javaScript = javaScriptSwitch.isChecked(); + boolean firstPartyCookies = firstPartyCookiesSwitch.isChecked(); + boolean thirdPartyCookies = thirdPartyCookiesSwitch.isChecked(); + boolean domStorage = domStorageSwitch.isChecked(); + boolean formData = formDataSwitch.isChecked(); // Form data can be removed once the minimum API >= 26. + boolean easyList = easyListSwitch.isChecked(); + boolean easyPrivacy = easyPrivacySwitch.isChecked(); + boolean fanboysAnnoyance = fanboysAnnoyanceSwitch.isChecked(); + boolean fanboysSocialBlocking = fanboysSocialBlockingSwitch.isChecked(); + boolean ultraList = ultraListSwitch.isChecked(); + boolean ultraPrivacy = ultraPrivacySwitch.isChecked(); boolean blockAllThirdPartyRequests = blockAllThirdPartyRequestsSwitch.isChecked(); - int userAgentPosition = userAgentSpinner.getSelectedItemPosition(); - int fontSizePosition = fontSizeSpinner.getSelectedItemPosition(); + int userAgentSwitchPosition = userAgentSpinner.getSelectedItemPosition(); + int fontSizeSwitchPosition = fontSizeSpinner.getSelectedItemPosition(); int swipeToRefreshInt = swipeToRefreshSpinner.getSelectedItemPosition(); - int displayWebpageImagesInt = displayWebpageImagesSpinner.getSelectedItemPosition(); int nightModeInt = nightModeSpinner.getSelectedItemPosition(); + int wideViewportInt = wideViewportSpinner.getSelectedItemPosition(); + int displayWebpageImagesInt = displayWebpageImagesSpinner.getSelectedItemPosition(); boolean pinnedSslCertificate = pinnedSslCertificateSwitch.isChecked(); boolean pinnedIpAddress = pinnedIpAddressesSwitch.isChecked(); @@ -725,7 +736,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo String userAgentName; // Set the user agent name. - switch (userAgentPosition) { + switch (userAgentSwitchPosition) { case MainWebViewActivity.DOMAINS_SYSTEM_DEFAULT_USER_AGENT: // Set the user agent name to be `System default user agent`. userAgentName = resources.getString(R.string.system_default_user_agent); @@ -741,21 +752,27 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo String[] userAgentNameArray = resources.getStringArray(R.array.user_agent_names); // Set the user agent name from the array. The domain spinner has one more entry than the name array, so the position must be decremented. - userAgentName = userAgentNameArray[userAgentPosition - 1]; + userAgentName = userAgentNameArray[userAgentSwitchPosition - 1]; } - // Get the font size integer. - int fontSizeInt = Integer.parseInt(resources.getStringArray(R.array.domain_settings_font_size_entry_values)[fontSizePosition]); + // Initialize the font size integer. `0` indicates the system default font size. + int fontSizeInt = 0; + + // Use a custom font size if it is selected. + if (fontSizeSwitchPosition == 1) { // A custom font size is specified. + // Get the custom font size from the edit text. + fontSizeInt = Integer.parseInt(customFontSizeEditText.getText().toString()); + } // Save the domain settings. - domainsDatabaseHelper.updateDomain(DomainsActivity.currentDomainDatabaseId, domainNameString, javaScriptEnabled, firstPartyCookiesEnabled, thirdPartyCookiesEnabled, - domStorageEnabled, formDataEnabled, easyListEnabled, easyPrivacyEnabled, fanboysAnnoyanceEnabled, fanboysSocialBlockingEnabled, ultraPrivacyEnabled, blockAllThirdPartyRequests, - userAgentName, fontSizeInt, swipeToRefreshInt, nightModeInt, displayWebpageImagesInt, pinnedSslCertificate, pinnedIpAddress); + domainsDatabaseHelper.updateDomain(DomainsActivity.currentDomainDatabaseId, domainNameString, javaScript, firstPartyCookies, thirdPartyCookies, domStorage, formData, easyList, easyPrivacy, + fanboysAnnoyance, fanboysSocialBlocking, ultraList, ultraPrivacy, blockAllThirdPartyRequests, userAgentName, fontSizeInt, swipeToRefreshInt, nightModeInt, wideViewportInt, + displayWebpageImagesInt, pinnedSslCertificate, pinnedIpAddress); // Update the pinned SSL certificate if a new one is checked. if (currentWebsiteCertificateRadioButton.isChecked()) { // Update the database. - domainsDatabaseHelper.updatePinnedSslCertificate(currentDomainDatabaseId, sslIssuedToCName, sslIssuedToOName, sslIssuedToUName, sslIssuedToCName, sslIssuedToOName, sslIssuedToUName, + domainsDatabaseHelper.updatePinnedSslCertificate(currentDomainDatabaseId, sslIssuedToCName, sslIssuedToOName, sslIssuedToUName, sslIssuedByCName, sslIssuedByOName, sslIssuedByUName, sslStartDateLong, sslEndDateLong); } @@ -790,7 +807,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo } }; - // Update the `ListView`. + // Update the list view. domainsListView.setAdapter(domainsCursorAdapter); // Display the domain settings in the second pane if operating in two pane mode and the database contains at least one domain.