/*
- * Copyright © 2017-2020 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2017-2021 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
EditText domainNameEditText = domainSettingsView.findViewById(R.id.domain_settings_name_edittext);
ImageView javaScriptImageView = domainSettingsView.findViewById(R.id.javascript_imageview);
SwitchCompat javaScriptSwitch = domainSettingsView.findViewById(R.id.javascript_switch);
- ImageView firstPartyCookiesImageView = domainSettingsView.findViewById(R.id.first_party_cookies_imageview);
- SwitchCompat firstPartyCookiesSwitch = domainSettingsView.findViewById(R.id.first_party_cookies_switch);
- LinearLayout thirdPartyCookiesLinearLayout = domainSettingsView.findViewById(R.id.third_party_cookies_linearlayout);
- ImageView thirdPartyCookiesImageView = domainSettingsView.findViewById(R.id.third_party_cookies_imageview);
- SwitchCompat thirdPartyCookiesSwitch = domainSettingsView.findViewById(R.id.third_party_cookies_switch);
+ ImageView cookiesImageView = domainSettingsView.findViewById(R.id.cookies_imageview);
+ SwitchCompat cookiesSwitch = domainSettingsView.findViewById(R.id.cookies_switch);
ImageView domStorageImageView = domainSettingsView.findViewById(R.id.dom_storage_imageview);
SwitchCompat domStorageSwitch = domainSettingsView.findViewById(R.id.dom_storage_switch);
ImageView formDataImageView = domainSettingsView.findViewById(R.id.form_data_imageview); // The form data views can be remove once the minimum API >= 26.
// Save the cursor entries as variables.
String domainNameString = domainCursor.getString(domainCursor.getColumnIndex(DomainsDatabaseHelper.DOMAIN_NAME));
int javaScriptInt = domainCursor.getInt(domainCursor.getColumnIndex(DomainsDatabaseHelper.ENABLE_JAVASCRIPT));
- int firstPartyCookiesInt = domainCursor.getInt(domainCursor.getColumnIndex(DomainsDatabaseHelper.ENABLE_FIRST_PARTY_COOKIES));
- int thirdPartyCookiesInt = domainCursor.getInt(domainCursor.getColumnIndex(DomainsDatabaseHelper.ENABLE_THIRD_PARTY_COOKIES));
+ int cookiesInt = domainCursor.getInt(domainCursor.getColumnIndex(DomainsDatabaseHelper.COOKIES));
int domStorageInt = domainCursor.getInt(domainCursor.getColumnIndex(DomainsDatabaseHelper.ENABLE_DOM_STORAGE));
int formDataInt = domainCursor.getInt(domainCursor.getColumnIndex(DomainsDatabaseHelper.ENABLE_FORM_DATA)); // Form data can be remove once the minimum API >= 26.
int easyListInt = domainCursor.getInt(domainCursor.getColumnIndex(DomainsDatabaseHelper.ENABLE_EASYLIST));
}
// Create the foreground color spans.
- final ForegroundColorSpan redColorSpan;
final ForegroundColorSpan blueColorSpan;
+ final ForegroundColorSpan redColorSpan;
- // Set the color spans according to the theme. The deprecated `resources` must be used until the minimum API >= 23.
- if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
- redColorSpan = new ForegroundColorSpan(resources.getColor(R.color.red_900));
- blueColorSpan = new ForegroundColorSpan(resources.getColor(R.color.violet_500));
- } else {
- redColorSpan = new ForegroundColorSpan(resources.getColor(R.color.red_a700));
+ // Set the color spans according to the theme. The deprecated `getColor()` must be used until the minimum API >= 23.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) {
blueColorSpan = new ForegroundColorSpan(resources.getColor(R.color.blue_700));
+ redColorSpan = new ForegroundColorSpan(resources.getColor(R.color.red_a700));
+ } else {
+ blueColorSpan = new ForegroundColorSpan(resources.getColor(R.color.violet_700));
+ redColorSpan = new ForegroundColorSpan(resources.getColor(R.color.red_900));
}
// Set the domain name from the the database cursor.
javaScriptImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.privacy_mode, null));
}
- // Set the first-party cookies status. Once the minimum API >= 21 a selector can be used as the tint mode instead of specifying different icons.
- if (firstPartyCookiesInt == 1) { // First-party cookies are enabled.
- firstPartyCookiesSwitch.setChecked(true);
- firstPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_enabled, null));
- } else { // First-party cookies are disabled.
- firstPartyCookiesSwitch.setChecked(false);
+ // Set the cookies switch status. Once the minimum API >= 21 a selector can be used as the tint mode instead of specifying different icons.
+ if (cookiesInt == 1) { // Cookies are enabled.
+ // Turn the switch on.
+ cookiesSwitch.setChecked(true);
+
+ // Set the icon.
+ cookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_enabled, null));
+ } else { // Cookies are disabled.
+ // Turn the switch off
+ cookiesSwitch.setChecked(false);
// Set the icon according to the theme.
- if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
- firstPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled_night, null));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) {
+ cookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled_day, null));
} else {
- firstPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled_day, null));
+ cookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled_night, null));
}
}
- // Only display third-party cookies if SDK_INT >= 21.
- if (Build.VERSION.SDK_INT >= 21) { // Third-party cookies can be configured for API >= 21.
- // Only enable third-party-cookies if first-party cookies are enabled.
- if (firstPartyCookiesInt == 1) { // First-party cookies are enabled.
- // Set the third-party cookies status. Once the minimum API >= 21 a selector can be used as the tint mode instead of specifying different icons.
- if (thirdPartyCookiesInt == 1) { // Both first-party and third-party cookies are enabled.
- // Set the third-party cookies switch to be checked.
- thirdPartyCookiesSwitch.setChecked(true);
-
- // Set the icon to be red.
- thirdPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_warning, null));
- } else { // First party cookies are enabled but third-party cookies are disabled.
- // Set the third-party cookies switch to be checked.
- thirdPartyCookiesSwitch.setChecked(false);
-
- // Set the icon according to the theme.
- if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
- thirdPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled_night, null));
- } else {
- thirdPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled_day, null));
- }
- }
- } else { // First-party cookies are disabled.
- // Set the status of third-party cookies.
- if (thirdPartyCookiesInt == 1) {
- thirdPartyCookiesSwitch.setChecked(true);
- } else {
- thirdPartyCookiesSwitch.setChecked(false);
- }
-
- // Disable the third-party cookies switch.
- thirdPartyCookiesSwitch.setEnabled(false);
-
- // Set the icon according to the theme.
- if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
- thirdPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_ghosted_night, null));
- } else {
- thirdPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_ghosted_day, null));
- }
- }
- } else { // Third-party cookies cannot be configured for API <= 21.
- // Hide the LinearLayout for third-party cookies.
- thirdPartyCookiesLinearLayout.setVisibility(View.GONE);
- }
-
// Only enable DOM storage if JavaScript is enabled.
if (javaScriptInt == 1) { // JavaScript is enabled.
- // Enable the DOM storage `Switch`.
+ // Enable the DOM storage switch.
domStorageSwitch.setEnabled(true);
// Set the DOM storage status. Once the minimum API >= 21 a selector can be used as the tint mode instead of specifying different icons.
domStorageSwitch.setEnabled(false);
// Set the checked status of DOM storage.
- if (domStorageInt == 1) { // DOM storage is enabled but JavaScript is disabled.
- domStorageSwitch.setChecked(true);
- } else { // Both JavaScript and DOM storage are disabled.
- domStorageSwitch.setChecked(false);
- }
+ domStorageSwitch.setChecked(domStorageInt == 1);
// Set the icon according to the theme.
if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
// Disable Fanboy's Social Blocking List switch.
fanboysSocialBlockingListSwitch.setEnabled(false);
- // Handle the status of Fanboy's Social Blocking List. Once the minimum API >= 21 a selector can be used as the tint mode instead of specifying different icons.
- if (fanboysSocialBlockingListInt == 1) { // Fanboy's Social Blocking List is on.
- // Turn on Fanboy's Social Blocking List switch.
- fanboysSocialBlockingListSwitch.setChecked(true);
- } else { // Fanboy's Social Blocking List is off.
- // Turn off Fanboy's Social Blocking List switch.
- fanboysSocialBlockingListSwitch.setChecked(false);
- }
+ // Set the status of Fanboy's Social Blocking List.
+ fanboysSocialBlockingListSwitch.setChecked(fanboysSocialBlockingListInt == 1);
// Set the icon according to the theme.
if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
}
});
- // Set the first-party cookies switch listener.
- firstPartyCookiesSwitch.setOnCheckedChangeListener((CompoundButton buttonView, boolean isChecked) -> {
- if (isChecked) { // First-party cookies are enabled.
- // Update the first-party cookies icon.
- firstPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_enabled, null));
-
- // Enable the third-party cookies switch.
- thirdPartyCookiesSwitch.setEnabled(true);
-
- // Update the third-party cookies icon.
- if (thirdPartyCookiesSwitch.isChecked()) { // Third-party cookies are enabled.
- // Set the third-party cookies icon to be red.
- thirdPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_warning, null));
- } else { // Third-party cookies are disabled.
- // Set the third-party cookies icon according to the theme.
- if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
- thirdPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled_night, null));
- } else {
- thirdPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled_day, null));
- }
- }
- } else { // First-party cookies are disabled.
- // Update the first-party cookies icon according to the theme.
- if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
- firstPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled_night, null));
- } else {
- firstPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled_day, null));
- }
-
- // Disable the third-party cookies switch.
- thirdPartyCookiesSwitch.setEnabled(false);
-
- // Set the third-party cookies icon according to the theme.
- if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
- thirdPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_ghosted_night, null));
- } else {
- thirdPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_ghosted_day, null));
- }
- }
- });
-
- // Set the third-party cookies switch listener.
- thirdPartyCookiesSwitch.setOnCheckedChangeListener((CompoundButton buttonView, boolean isChecked) -> {
- // Update the icon.
- if (isChecked) {
- // Set the third-party cookies icon to be red.
- thirdPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_warning, null));
- } else {
- // Update the third-party cookies icon according to the theme.
- if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
- thirdPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled_night, null));
+ // Set the cookies switch listener.
+ cookiesSwitch.setOnCheckedChangeListener((CompoundButton buttonView, boolean isChecked) -> {
+ if (isChecked) { // Cookies are enabled.
+ // Update the cookies icon.
+ cookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_enabled, null));
+ } else { // Cookies are disabled.
+ // Update the cookies icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) {
+ cookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled_day, null));
} else {
- thirdPartyCookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled_day, null));
+ cookiesImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.cookies_disabled_night, null));
}
}
});