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=3718edbde3e149bcf4c78a453d4abe600c8e3e69;hp=188875b4e8530c5789061abd77ead89ec6296e2f;hb=48ae68b846bb5bb035e0d86659e4736b6db6f12d;hpb=cd609c9888924549c03cd6509ed889cdb052d5bb 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 188875b4..3718edbd 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-2021 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; @@ -138,9 +137,6 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); } - // Set the theme. - setTheme(R.style.PrivacyBrowser); - // Run the default commands. super.onCreate(savedInstanceState); @@ -181,9 +177,9 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Set the view. if (bottomAppBar) { - setContentView(R.layout.domains_coordinatorlayout_bottom_appbar); + setContentView(R.layout.domains_bottom_appbar); } else { - setContentView(R.layout.domains_coordinatorlayout_top_appbar); + setContentView(R.layout.domains_top_appbar); } // Populate the class variables. @@ -203,8 +199,8 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Set the back arrow on the action bar. actionBar.setDisplayHomeAsUpEnabled(true); - // Initialize the database handler. The `0` specifies the database version, but that is ignored and set instead using a constant in `DomainsDatabaseHelper`. - domainsDatabaseHelper = new DomainsDatabaseHelper(this, null, null, 0); + // Initialize the database handler. + domainsDatabaseHelper = new DomainsDatabaseHelper(this); // Determine if we are in two pane mode. `domain_settings_fragment_container` does not exist on devices with a width less than 900dp. twoPanedMode = (findViewById(R.id.domain_settings_fragment_container) != null); @@ -452,7 +448,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); @@ -507,7 +503,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); @@ -529,15 +525,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(); @@ -564,15 +553,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); @@ -766,6 +748,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo SwitchCompat 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 xRequestedWithHeaderSpinner = view.findViewById(R.id.x_requested_with_header_spinner); 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); @@ -791,6 +774,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo boolean ultraPrivacy = ultraPrivacySwitch.isChecked(); boolean blockAllThirdPartyRequests = blockAllThirdPartyRequestsSwitch.isChecked(); int userAgentSwitchPosition = userAgentSpinner.getSelectedItemPosition(); + int xRequestedWithHeaderSwitchInt = xRequestedWithHeaderSpinner.getSelectedItemPosition(); int fontSizeSwitchPosition = fontSizeSpinner.getSelectedItemPosition(); int swipeToRefreshInt = swipeToRefreshSpinner.getSelectedItemPosition(); int webViewThemeInt = webViewThemeSpinner.getSelectedItemPosition(); @@ -833,8 +817,8 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo // Save the domain settings. domainsDatabaseHelper.updateDomain(DomainsActivity.currentDomainDatabaseId, domainNameString, javaScript, cookies, domStorage, formData, easyList, easyPrivacy, - fanboysAnnoyance, fanboysSocialBlocking, ultraList, ultraPrivacy, blockAllThirdPartyRequests, userAgentName, fontSizeInt, swipeToRefreshInt, webViewThemeInt, wideViewportInt, - displayWebpageImagesInt, pinnedSslCertificate, pinnedIpAddress); + fanboysAnnoyance, fanboysSocialBlocking, ultraList, ultraPrivacy, blockAllThirdPartyRequests, userAgentName, xRequestedWithHeaderSwitchInt, fontSizeInt, swipeToRefreshInt, webViewThemeInt, + wideViewportInt, displayWebpageImagesInt, pinnedSslCertificate, pinnedIpAddress); // Update the pinned SSL certificate if a new one is checked. if (currentWebsiteCertificateRadioButton.isChecked()) { @@ -868,7 +852,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); } @@ -891,7 +875,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) { @@ -904,7 +888,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(); @@ -925,15 +909,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);