+ case MainWebViewActivity.DOMAINS_CUSTOM_USER_AGENT:
+ // Set the user agent name to be the custom user agent.
+ userAgentName = customUserAgentEditText.getText().toString();
+ break;
+
+ default:
+ // Get the array of user agent names.
+ 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];
+ }
+
+ // Get the font size integer.
+ int fontSizeInt = Integer.parseInt(resources.getStringArray(R.array.domain_settings_font_size_entry_values)[fontSizePosition]);
+
+ // Save the domain settings.
+ if (savedSslCertificateRadioButton.isChecked()) { // The current certificate is being used.
+ // Update the database except for the certificate.
+ domainsDatabaseHelper.updateDomainExceptCertificate(DomainsActivity.currentDomainDatabaseId, domainNameString, javaScriptEnabled, firstPartyCookiesEnabled, thirdPartyCookiesEnabled,
+ domStorageEnabled, formDataEnabled, easyListEnabled, easyPrivacyEnabled, fanboysAnnoyanceEnabled, fanboysSocialBlockingEnabled, ultraPrivacyEnabled, blockAllThirdPartyRequests,
+ userAgentName, fontSizeInt, swipeToRefreshInt, nightModeInt, displayWebpageImagesInt, pinnedSslCertificate);
+ } else if (currentWebsiteCertificateRadioButton.isChecked()) { // The certificate is being updated with the current website certificate.
+ // Get the current website SSL certificate.
+ SslCertificate currentWebsiteSslCertificate = MainWebViewActivity.sslCertificate;
+
+ // Store the values from the SSL certificate.
+ String issuedToCommonName = currentWebsiteSslCertificate.getIssuedTo().getCName();
+ String issuedToOrganization = currentWebsiteSslCertificate.getIssuedTo().getOName();
+ String issuedToOrganizationalUnit = currentWebsiteSslCertificate.getIssuedTo().getUName();
+ String issuedByCommonName = currentWebsiteSslCertificate.getIssuedBy().getCName();
+ String issuedByOrganization = currentWebsiteSslCertificate.getIssuedBy().getOName();
+ String issuedByOrganizationalUnit = currentWebsiteSslCertificate.getIssuedBy().getUName();
+ long startDateLong = currentWebsiteSslCertificate.getValidNotBeforeDate().getTime();
+ long endDateLong = currentWebsiteSslCertificate.getValidNotAfterDate().getTime();
+
+ // Update the database.
+ domainsDatabaseHelper.updateDomainWithCertificate(currentDomainDatabaseId, domainNameString, javaScriptEnabled, firstPartyCookiesEnabled, thirdPartyCookiesEnabled, domStorageEnabled,
+ formDataEnabled, easyListEnabled, easyPrivacyEnabled, fanboysAnnoyanceEnabled, fanboysSocialBlockingEnabled, ultraPrivacyEnabled, blockAllThirdPartyRequests, userAgentName, fontSizeInt,
+ swipeToRefreshInt, nightModeInt, displayWebpageImagesInt, pinnedSslCertificate, issuedToCommonName, issuedToOrganization, issuedToOrganizationalUnit, issuedByCommonName,
+ issuedByOrganization, issuedByOrganizationalUnit, startDateLong, endDateLong);
+
+ } else { // No certificate is selected.
+ // Update the database, with PINNED_SSL_CERTIFICATE set to false.
+ domainsDatabaseHelper.updateDomainExceptCertificate(currentDomainDatabaseId, domainNameString, javaScriptEnabled, firstPartyCookiesEnabled, thirdPartyCookiesEnabled, domStorageEnabled,
+ formDataEnabled, easyListEnabled, easyPrivacyEnabled, fanboysAnnoyanceEnabled, fanboysSocialBlockingEnabled, ultraPrivacyEnabled, blockAllThirdPartyRequests, userAgentName, fontSizeInt,
+ swipeToRefreshInt, nightModeInt, displayWebpageImagesInt,false);