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=2ef534f1d4286fb54557e8926efcf3b0bf648c82;hp=2283277fb9f328ad741e4ac772a15abb744b99e8;hb=1b27ac6f2b7c046945fc97e2aff9adbde8a152ce;hpb=e5992ae7182c5e1a6338d34fb9f0919a6428513b 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 2283277f..2ef534f1 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/DomainsActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/DomainsActivity.java @@ -1,20 +1,20 @@ /* - * Copyright © 2017-2020 Soren Stoutner . + * Copyright © 2017-2022 Soren Stoutner . * - * This file is part of Privacy Browser . + * This file is part of Privacy Browser Android . * - * Privacy Browser is free software: you can redistribute it and/or modify + * Privacy Browser Android is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Privacy Browser is distributed in the hope that it will be useful, + * Privacy Browser Android is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Privacy Browser. If not, see . + * along with Privacy Browser Android. If not, see . */ package com.stoutner.privacybrowser.activities; @@ -23,7 +23,6 @@ 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 +128,9 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Get a handle for the shared preferences. SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); - // Get the screenshot preference. - boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false); + // Get the preferences. + boolean allowScreenshots = sharedPreferences.getBoolean(getString(R.string.allow_screenshots_key), false); + boolean bottomAppBar = sharedPreferences.getBoolean(getString(R.string.bottom_app_bar_key), false); // Disable screenshots if not allowed. if (!allowScreenshots) { @@ -178,8 +178,12 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo sslEndDateLong = intent.getLongExtra("ssl_end_date", 0); currentIpAddresses = intent.getStringExtra("current_ip_addresses"); - // Set the content view. - setContentView(R.layout.domains_coordinatorlayout); + // Set the view. + if (bottomAppBar) { + setContentView(R.layout.domains_bottom_appbar); + } else { + setContentView(R.layout.domains_top_appbar); + } // Populate the class variables. coordinatorLayout = findViewById(R.id.domains_coordinatorlayout); @@ -447,7 +451,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo @Override public void bindView(View view, Context context, Cursor cursor) { // Get the domain name string. - String domainNameString = cursor.getString(cursor.getColumnIndex(DomainsDatabaseHelper.DOMAIN_NAME)); + String domainNameString = cursor.getString(cursor.getColumnIndexOrThrow(DomainsDatabaseHelper.DOMAIN_NAME)); // Get a handle for the domain name text view. TextView domainNameTextView = view.findViewById(R.id.domain_name_textview); @@ -502,7 +506,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo @Override public void bindView(View view, Context context, Cursor cursor) { /// Get the domain name string. - String domainNameString = cursor.getString(cursor.getColumnIndex(DomainsDatabaseHelper.DOMAIN_NAME)); + String domainNameString = cursor.getString(cursor.getColumnIndexOrThrow(DomainsDatabaseHelper.DOMAIN_NAME)); // Get a handle for the domain name text view. TextView domainNameTextView = view.findViewById(R.id.domain_name_textview); @@ -524,15 +528,8 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Enable the options delete menu item. deleteMenuItem.setEnabled(true); - // 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); - } + // Set the delete menu item icon. + deleteMenuItem.setIcon(R.drawable.delete_enabled); } else { // The device in in one-paned mode. // Display the domain settings fragment. fragmentManager.beginTransaction().replace(R.id.domains_listview_fragment_container, domainSettingsFragment).commit(); @@ -559,15 +556,8 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Enable the delete menu item. deleteMenuItem.setEnabled(true); - // 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); - } + // Set the delete menu item icon. + deleteMenuItem.setIcon(R.drawable.delete_enabled); } else { // Single-paned mode. // Show the delete menu item. deleteMenuItem.setVisible(true); @@ -749,8 +739,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Get handles for the domain settings. EditText domainNameEditText = view.findViewById(R.id.domain_settings_name_edittext); SwitchCompat javaScriptSwitch = view.findViewById(R.id.javascript_switch); - SwitchCompat firstPartyCookiesSwitch = view.findViewById(R.id.first_party_cookies_switch); - SwitchCompat thirdPartyCookiesSwitch = view.findViewById(R.id.third_party_cookies_switch); + SwitchCompat cookiesSwitch = view.findViewById(R.id.cookies_switch); SwitchCompat domStorageSwitch = view.findViewById(R.id.dom_storage_switch); SwitchCompat formDataSwitch = view.findViewById(R.id.form_data_switch); // Form data can be removed once the minimum API >= 26. SwitchCompat easyListSwitch = view.findViewById(R.id.easylist_switch); @@ -776,8 +765,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Extract the data for the domain settings. String domainNameString = domainNameEditText.getText().toString(); boolean javaScript = javaScriptSwitch.isChecked(); - boolean firstPartyCookies = firstPartyCookiesSwitch.isChecked(); - boolean thirdPartyCookies = thirdPartyCookiesSwitch.isChecked(); + boolean cookies = cookiesSwitch.isChecked(); boolean domStorage = domStorageSwitch.isChecked(); boolean formData = formDataSwitch.isChecked(); // Form data can be removed once the minimum API >= 26. boolean easyList = easyListSwitch.isChecked(); @@ -829,7 +817,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo } // Save the domain settings. - domainsDatabaseHelper.updateDomain(DomainsActivity.currentDomainDatabaseId, domainNameString, javaScript, firstPartyCookies, thirdPartyCookies, domStorage, formData, easyList, easyPrivacy, + domainsDatabaseHelper.updateDomain(DomainsActivity.currentDomainDatabaseId, domainNameString, javaScript, cookies, domStorage, formData, easyList, easyPrivacy, fanboysAnnoyance, fanboysSocialBlocking, ultraList, ultraPrivacy, blockAllThirdPartyRequests, userAgentName, fontSizeInt, swipeToRefreshInt, webViewThemeInt, wideViewportInt, displayWebpageImagesInt, pinnedSslCertificate, pinnedIpAddress); @@ -865,7 +853,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo @Override public void bindView(View view, Context context, Cursor cursor) { // Set the domain name. - String domainNameString = cursor.getString(cursor.getColumnIndex(DomainsDatabaseHelper.DOMAIN_NAME)); + String domainNameString = cursor.getString(cursor.getColumnIndexOrThrow(DomainsDatabaseHelper.DOMAIN_NAME)); TextView domainNameTextView = view.findViewById(R.id.domain_name_textview); domainNameTextView.setText(domainNameString); } @@ -888,7 +876,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo domainsCursor.moveToPosition(i); // Get the database ID for this position. - int currentDatabaseId = domainsCursor.getInt(domainsCursor.getColumnIndex(DomainsDatabaseHelper._ID)); + int currentDatabaseId = domainsCursor.getInt(domainsCursor.getColumnIndexOrThrow(DomainsDatabaseHelper._ID)); // Set `highlightedDomainPosition` if the database ID for this matches `highlightedDomainDatabaseId`. if (highlightedDomainDatabaseId == currentDatabaseId) { @@ -901,7 +889,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Get the database ID for the highlighted domain. domainsCursor.moveToPosition(highlightedDomainPosition); - currentDomainDatabaseId = domainsCursor.getInt(domainsCursor.getColumnIndex(DomainsDatabaseHelper._ID)); + currentDomainDatabaseId = domainsCursor.getInt(domainsCursor.getColumnIndexOrThrow(DomainsDatabaseHelper._ID)); // Create an arguments bundle. Bundle argumentsBundle = new Bundle(); @@ -922,15 +910,8 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Enable the delete options menu items. deleteMenuItem.setEnabled(true); - // Get the current theme status. - int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; - - // Set the delete 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); - } + // Set the delete icon. + deleteMenuItem.setIcon(R.drawable.delete_enabled); } else if (twoPanedMode) { // Two-paned mode is enabled but there are no domains. // Disable the options `MenuItems`. deleteMenuItem.setEnabled(false);