From: Soren Stoutner Date: Fri, 7 Jan 2022 16:53:31 +0000 (-0700) Subject: Bump the minimum API to 23. https://redmine.stoutner.com/issues/793 X-Git-Tag: v3.10~8 X-Git-Url: https://gitweb.stoutner.com/?a=commitdiff_plain;h=ab11ca2de00c56982e46627c8e7fc670462b0b3c;p=PrivacyBrowserAndroid.git Bump the minimum API to 23. https://redmine.stoutner.com/issues/793 --- diff --git a/app/build.gradle b/app/build.gradle index 571e6528..beed05b4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -26,7 +26,7 @@ android { compileSdk 31 defaultConfig { - minSdk 19 + minSdk 23 targetSdk 31 versionCode 57 versionName "3.9" diff --git a/app/src/alt/res/drawable/privacy_browser_foreground.xml b/app/src/alt/res/drawable/privacy_browser_foreground.xml index 63f55fff..26c996b6 100644 --- a/app/src/alt/res/drawable/privacy_browser_foreground.xml +++ b/app/src/alt/res/drawable/privacy_browser_foreground.xml @@ -1,6 +1,5 @@ - + Modifications copyright © 2016-2017,2021-2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> - + - + android:fillColor="@color/blue_900" + android:pathData="m128,12.8 l-94.255,41.891v62.836c0,58.124 40.215,112.477 94.255,125.673 54.039,-13.196 94.255,-67.549 94.255,-125.673v-62.836z" /> + + + android:fillColor="@color/blue_700" + android:pathData="m128,0 l-104.727,46.545v69.818C23.273,180.945 67.956,241.338 128,256 188.044,241.338 232.727,180.945 232.727,116.364v-69.818zM128,127.884h81.455C203.287,175.825 171.287,218.531 128,231.913L128,128L46.545,128L46.545,61.673L128,25.484Z" /> - + + android:fillColor="@color/white" + android:pathData="m127.92,48.214c-44.042,0 -79.706,35.744 -79.706,79.786 0,44.042 35.664,79.786 79.706,79.786 44.121,0 79.865,-35.744 79.865,-79.786 0,-44.042 -35.744,-79.786 -79.865,-79.786zM183.212,96.086h-23.537c-2.553,-9.973 -6.223,-19.547 -11.01,-28.404 14.681,5.026 26.888,15.239 34.547,28.404zM128,64.491c6.622,9.574 11.808,20.186 15.239,31.595h-30.478c3.431,-11.409 8.617,-22.021 15.239,-31.595zM66.246,143.957C64.969,138.851 64.172,133.505 64.172,128c0,-5.505 0.798,-10.851 2.074,-15.957h26.968c-0.638,5.266 -1.117,10.532 -1.117,15.957 0,5.425 0.479,10.691 1.117,15.957zM72.788,159.914L96.325,159.914c2.553,9.973 6.223,19.547 11.01,28.404C92.655,183.291 80.448,173.159 72.788,159.914ZM96.325,96.086L72.788,96.086c7.659,-13.244 19.867,-23.377 34.547,-28.404 -4.787,8.856 -8.457,18.43 -11.01,28.404zM128,191.509c-6.622,-9.574 -11.808,-20.186 -15.239,-31.595h30.478C139.808,171.324 134.622,181.935 128,191.509ZM146.67,143.957h-37.34c-0.718,-5.266 -1.277,-10.532 -1.277,-15.957 0,-5.425 0.559,-10.771 1.277,-15.957h37.34c0.718,5.186 1.277,10.532 1.277,15.957 0,5.425 -0.558,10.691 -1.277,15.957zM148.664,188.318c4.787,-8.856 8.457,-18.43 11.01,-28.404h23.537c-7.659,13.165 -19.867,23.377 -34.547,28.404zM162.786,143.957c0.638,-5.266 1.117,-10.532 1.117,-15.957 0,-5.425 -0.479,-10.691 -1.117,-15.957h26.968c1.277,5.106 2.074,10.452 2.074,15.957 0,5.505 -0.798,10.851 -2.074,15.957z" /> - + + android:fillColor="@color/red_900" + android:pathData="M50.491,201.267h155.02v54.763h-155.02z" /> - + + android:fillColor="@color/white" + android:pathData="m64.125,212.543h30.256v7.954L84.23,220.497L84.23,244.755L74.277,244.755L74.277,220.497L64.125,220.497Z" /> - + + android:fillColor="@color/white" + android:pathData="m98.864,212.543h26.675v6.877h-16.699v5.12h15.491v6.57L108.84,231.11L108.84,237.46h17.183L126.022,244.755L98.864,244.755Z" /> - + + android:fillColor="@color/white" + android:pathData="m129.648,234.098 l9.47,-0.593q0.308,2.307 1.252,3.516 1.538,1.956 4.395,1.956 2.131,0 3.274,-0.989 1.165,-1.011 1.165,-2.329 0,-1.252 -1.099,-2.241 -1.099,-0.989 -5.098,-1.868 -6.548,-1.472 -9.338,-3.911 -2.813,-2.439 -2.813,-6.218 0,-2.483 1.428,-4.68 1.45,-2.219 4.329,-3.472 2.9,-1.274 7.932,-1.274 6.174,0 9.404,2.307 3.252,2.285 3.867,7.295l-9.382,0.549q-0.374,-2.175 -1.582,-3.164 -1.187,-0.989 -3.296,-0.989 -1.736,0 -2.615,0.747 -0.879,0.725 -0.879,1.78 0,0.769 0.725,1.384 0.703,0.637 3.34,1.187 6.526,1.406 9.338,2.856 2.834,1.428 4.109,3.56 1.296,2.131 1.296,4.768 0,3.098 -1.714,5.713 -1.714,2.615 -4.79,3.977 -3.076,1.34 -7.756,1.34 -8.218,0 -11.382,-3.164 -3.164,-3.164 -3.582,-8.042z" /> - + + android:fillColor="@color/white" + android:pathData="m161.618,212.543h30.256v7.954h-10.151v24.258h-9.954v-24.258h-10.151z" /> \ No newline at end of file diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/ImportExportActivity.java b/app/src/main/java/com/stoutner/privacybrowser/activities/ImportExportActivity.java index 7fe89327..c1b3891d 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/ImportExportActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/ImportExportActivity.java @@ -24,7 +24,6 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.preference.PreferenceManager; @@ -154,9 +153,6 @@ public class ImportExportActivity extends AppCompatActivity { // Display the home arrow on the support action bar. actionBar.setDisplayHomeAsUpEnabled(true); - // Find out if the system is running KitKat - boolean runningKitKat = (Build.VERSION.SDK_INT == 19); - // Find out if OpenKeychain is installed. try { openKeychainInstalled = !getPackageManager().getPackageInfo("org.sufficientlysecure.keychain", 0).versionName.isEmpty(); @@ -168,7 +164,6 @@ public class ImportExportActivity extends AppCompatActivity { encryptionSpinner = findViewById(R.id.encryption_spinner); encryptionPasswordTextInputLayout = findViewById(R.id.encryption_password_textinputlayout); encryptionPasswordEditText = findViewById(R.id.encryption_password_edittext); - kitKatPasswordEncryptionTextView = findViewById(R.id.kitkat_password_encryption_textview); openKeychainRequiredTextView = findViewById(R.id.openkeychain_required_textview); fileLocationCardView = findViewById(R.id.file_location_cardview); importRadioButton = findViewById(R.id.import_radiobutton); @@ -217,37 +212,28 @@ public class ImportExportActivity extends AppCompatActivity { break; case PASSWORD_ENCRYPTION: - if (runningKitKat) { - // Show the KitKat password encryption message. - kitKatPasswordEncryptionTextView.setVisibility(View.VISIBLE); - - // Hide the OpenPGP required text view and the file location card. - openKeychainRequiredTextView.setVisibility(View.GONE); - fileLocationCardView.setVisibility(View.GONE); - } else { - // Hide the OpenPGP layout items. - openKeychainRequiredTextView.setVisibility(View.GONE); - openKeychainImportInstructionsTextView.setVisibility(View.GONE); - - // Show the password encryption layout items. - encryptionPasswordTextInputLayout.setVisibility(View.VISIBLE); + // Hide the OpenPGP layout items. + openKeychainRequiredTextView.setVisibility(View.GONE); + openKeychainImportInstructionsTextView.setVisibility(View.GONE); - // Show the file location card. - fileLocationCardView.setVisibility(View.VISIBLE); + // Show the password encryption layout items. + encryptionPasswordTextInputLayout.setVisibility(View.VISIBLE); - // Show the file name linear layout if either import or export is checked. - if (importRadioButton.isChecked() || exportRadioButton.isChecked()) { - fileNameLinearLayout.setVisibility(View.VISIBLE); - } + // Show the file location card. + fileLocationCardView.setVisibility(View.VISIBLE); - // Reset the text of the import button, which may have been changed to `Decrypt`. - if (importRadioButton.isChecked()) { - importExportButton.setText(R.string.import_button); - } + // Show the file name linear layout if either import or export is checked. + if (importRadioButton.isChecked() || exportRadioButton.isChecked()) { + fileNameLinearLayout.setVisibility(View.VISIBLE); + } - // Enable the import/button if both the password and the file name are populated. - importExportButton.setEnabled(!fileNameEditText.getText().toString().isEmpty() && !encryptionPasswordEditText.getText().toString().isEmpty()); + // Reset the text of the import button, which may have been changed to `Decrypt`. + if (importRadioButton.isChecked()) { + importExportButton.setText(R.string.import_button); } + + // Enable the import/button if both the password and the file name are populated. + importExportButton.setEnabled(!fileNameEditText.getText().toString().isEmpty() && !encryptionPasswordEditText.getText().toString().isEmpty()); break; case OPENPGP_ENCRYPTION: diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java index d4463643..4168f717 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java @@ -79,6 +79,7 @@ import android.webkit.SslErrorHandler; import android.webkit.ValueCallback; import android.webkit.WebBackForwardList; import android.webkit.WebChromeClient; +import android.webkit.WebResourceRequest; import android.webkit.WebResourceResponse; import android.webkit.WebSettings; import android.webkit.WebStorage; @@ -528,9 +529,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook } // Enable the drawing of the entire webpage. This makes it possible to save a website image. This must be done before anything else happens with the WebView. - if (Build.VERSION.SDK_INT >= 21) { - WebView.enableSlowWholeDocumentDraw(); - } + WebView.enableSlowWholeDocumentDraw(); // Set the theme. setTheme(R.style.PrivacyBrowser); @@ -978,9 +977,6 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook // Disable the clear form data menu item if the API >= 26 so that the status of the main Clear Data is calculated correctly. optionsClearFormDataMenuItem.setEnabled(Build.VERSION.SDK_INT < 26); - // Only display the dark WebView menu item if API >= 21. - optionsDarkWebViewMenuItem.setVisible(Build.VERSION.SDK_INT >= 21); - // Get the shared preferences. SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); @@ -1379,12 +1375,8 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook @Override public void onDismissed(Snackbar snackbar, int event) { if (event != Snackbar.Callback.DISMISS_EVENT_ACTION) { // The snackbar was dismissed without the undo button being pushed. - // Delete the cookies, which command varies by SDK. - if (Build.VERSION.SDK_INT < 21) { - cookieManager.removeAllCookie(); - } else { - cookieManager.removeAllCookies(null); - } + // Delete the cookies. + cookieManager.removeAllCookies(null); } } }) @@ -1811,7 +1803,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook assert printManager != null; // Create a print document adapter from the current WebView. - PrintDocumentAdapter printDocumentAdapter = currentWebView.createPrintDocumentAdapter(); + PrintDocumentAdapter printDocumentAdapter = currentWebView.createPrintDocumentAdapter(getString(R.string.print)); // Print the document. printManager.print(getString(R.string.privacy_browser_webpage), printDocumentAdapter, null); @@ -2785,11 +2777,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook closeCurrentTab(); } else { // There isn't anything to do in Privacy Browser. // Close Privacy Browser. `finishAndRemoveTask()` also removes Privacy Browser from the recent app list. - if (Build.VERSION.SDK_INT >= 21) { - finishAndRemoveTask(); - } else { - finish(); - } + finishAndRemoveTask(); // Manually kill Privacy Browser. Otherwise, it is glitchy when restarted. System.exit(0); @@ -2805,11 +2793,8 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook // Run the commands that correlate to the specified request code. switch (requestCode) { case BROWSE_FILE_UPLOAD_REQUEST_CODE: - // File uploads only work on API >= 21. - if (Build.VERSION.SDK_INT >= 21) { - // Pass the file to the WebView. - fileChooserCallback.onReceiveValue(WebChromeClient.FileChooserParams.parseResult(resultCode, returnedIntent)); - } + // Pass the file to the WebView. + fileChooserCallback.onReceiveValue(WebChromeClient.FileChooserParams.parseResult(resultCode, returnedIntent)); break; case BROWSE_OPEN_REQUEST_CODE: @@ -3095,18 +3080,18 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook // Remove the lint warning below that the input method manager might be null. assert inputMethodManager != null; - // Initialize the gray foreground color spans for highlighting the URLs. The deprecated `getResources()` must be used until API >= 23. - initialGrayColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.gray_500)); - finalGrayColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.gray_500)); + // Initialize the gray foreground color spans for highlighting the URLs. + initialGrayColorSpan = new ForegroundColorSpan(getColor(R.color.gray_500)); + finalGrayColorSpan = new ForegroundColorSpan(getColor(R.color.gray_500)); // Get the current theme status. int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; // Set the red color span according to the theme. if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { - redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_a700)); + redColorSpan = new ForegroundColorSpan(getColor(R.color.red_a700)); } else { - redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_900)); + redColorSpan = new ForegroundColorSpan(getColor(R.color.red_900)); } // Remove the formatting from the URL edit text when the user is editing the text. @@ -4778,12 +4763,8 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook // Clear cookies. if (clearEverything || sharedPreferences.getBoolean("clear_cookies", true)) { - // The command to remove cookies changed slightly in API 21. - if (Build.VERSION.SDK_INT >= 21) { - CookieManager.getInstance().removeAllCookies(null); - } else { - CookieManager.getInstance().removeAllCookie(); - } + // Request the cookies be deleted. + CookieManager.getInstance().removeAllCookies(null); // Manually delete the cookies database, as `CookieManager` sometimes will not flush its changes to disk before `System.exit(0)` is run. try { @@ -4941,11 +4922,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook } // Close Privacy Browser. `finishAndRemoveTask` also removes Privacy Browser from the recent app list. - if (Build.VERSION.SDK_INT >= 21) { - finishAndRemoveTask(); - } else { - finish(); - } + finishAndRemoveTask(); // Remove the terminated program from RAM. The status code is `0`. System.exit(0); @@ -5130,9 +5107,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook nestedScrollWebView.getSettings().setDisplayZoomControls(false); // Don't allow mixed content (HTTP and HTTPS) on the same website. - if (Build.VERSION.SDK_INT >= 21) { - nestedScrollWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_NEVER_ALLOW); - } + nestedScrollWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_NEVER_ALLOW); // Set the WebView to load in overview mode (zoomed out to the maximum width). nestedScrollWebView.getSettings().setLoadWithOverviewMode(true); @@ -5304,72 +5279,46 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook }); // Update the status of swipe to refresh based on the scroll position of the nested scroll WebView. Also reinforce full screen browsing mode. - // On API < 23, `getViewTreeObserver().addOnScrollChangedListener()` must be used, but it is a little bit buggy and appears to get garbage collected from time to time. - if (Build.VERSION.SDK_INT >= 23) { - nestedScrollWebView.setOnScrollChangeListener((view, scrollX, scrollY, oldScrollX, oldScrollY) -> { - // Set the swipe to refresh status. - if (nestedScrollWebView.getSwipeToRefresh()) { - // Only enable swipe to refresh if the WebView is scrolled to the top. - swipeRefreshLayout.setEnabled(nestedScrollWebView.getScrollY() == 0); - } else { - // Disable swipe to refresh. - swipeRefreshLayout.setEnabled(false); - } - - // Scroll the bottom app bar if enabled. - if (bottomAppBar && scrollAppBar && !objectAnimator.isRunning()) { - if (scrollY < oldScrollY) { // The WebView was scrolled down. - // Animate the bottom app bar onto the screen. - objectAnimator = ObjectAnimator.ofFloat(appBarLayout, "translationY", 0); + nestedScrollWebView.setOnScrollChangeListener((view, scrollX, scrollY, oldScrollX, oldScrollY) -> { + // Set the swipe to refresh status. + if (nestedScrollWebView.getSwipeToRefresh()) { + // Only enable swipe to refresh if the WebView is scrolled to the top. + swipeRefreshLayout.setEnabled(nestedScrollWebView.getScrollY() == 0); + } else { + // Disable swipe to refresh. + swipeRefreshLayout.setEnabled(false); + } - // Make it so. - objectAnimator.start(); - } else if (scrollY > oldScrollY) { // The WebView was scrolled up. - // Animate the bottom app bar off the screen. - objectAnimator = ObjectAnimator.ofFloat(appBarLayout, "translationY", appBarLayout.getHeight()); + // Scroll the bottom app bar if enabled. + if (bottomAppBar && scrollAppBar && !objectAnimator.isRunning()) { + if (scrollY < oldScrollY) { // The WebView was scrolled down. + // Animate the bottom app bar onto the screen. + objectAnimator = ObjectAnimator.ofFloat(appBarLayout, "translationY", 0); - // Make it so. - objectAnimator.start(); - } - } + // Make it so. + objectAnimator.start(); + } else if (scrollY > oldScrollY) { // The WebView was scrolled up. + // Animate the bottom app bar off the screen. + objectAnimator = ObjectAnimator.ofFloat(appBarLayout, "translationY", appBarLayout.getHeight()); - // Reinforce the system UI visibility flags if in full screen browsing mode. - // This hides the status and navigation bars, which are displayed if other elements are shown, like dialog boxes, the options menu, or the keyboard. - if (inFullScreenBrowsingMode) { - /* Hide the system bars. - * SYSTEM_UI_FLAG_FULLSCREEN hides the status bar at the top of the screen. - * SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN makes the root frame layout fill the area that is normally reserved for the status bar. - * SYSTEM_UI_FLAG_HIDE_NAVIGATION hides the navigation bar on the bottom or right of the screen. - * SYSTEM_UI_FLAG_IMMERSIVE_STICKY makes the status and navigation bars translucent and automatically re-hides them after they are shown. - */ - rootFrameLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | - View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); - } - }); - } else { - nestedScrollWebView.getViewTreeObserver().addOnScrollChangedListener(() -> { - if (nestedScrollWebView.getSwipeToRefresh()) { - // Only enable swipe to refresh if the WebView is scrolled to the top. - swipeRefreshLayout.setEnabled(nestedScrollWebView.getScrollY() == 0); - } else { - // Disable swipe to refresh. - swipeRefreshLayout.setEnabled(false); + // Make it so. + objectAnimator.start(); } + } - // Reinforce the system UI visibility flags if in full screen browsing mode. - // This hides the status and navigation bars, which are displayed if other elements are shown, like dialog boxes, the options menu, or the keyboard. - if (inFullScreenBrowsingMode) { - /* Hide the system bars. - * SYSTEM_UI_FLAG_FULLSCREEN hides the status bar at the top of the screen. - * SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN makes the root frame layout fill the area that is normally reserved for the status bar. - * SYSTEM_UI_FLAG_HIDE_NAVIGATION hides the navigation bar on the bottom or right of the screen. - * SYSTEM_UI_FLAG_IMMERSIVE_STICKY makes the status and navigation bars translucent and automatically re-hides them after they are shown. - */ - rootFrameLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | - View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); - } - }); - } + // Reinforce the system UI visibility flags if in full screen browsing mode. + // This hides the status and navigation bars, which are displayed if other elements are shown, like dialog boxes, the options menu, or the keyboard. + if (inFullScreenBrowsingMode) { + /* Hide the system bars. + * SYSTEM_UI_FLAG_FULLSCREEN hides the status bar at the top of the screen. + * SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN makes the root frame layout fill the area that is normally reserved for the status bar. + * SYSTEM_UI_FLAG_HIDE_NAVIGATION hides the navigation bar on the bottom or right of the screen. + * SYSTEM_UI_FLAG_IMMERSIVE_STICKY makes the status and navigation bars translucent and automatically re-hides them after they are shown. + */ + rootFrameLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); + } + }); // Set the web chrome client. nestedScrollWebView.setWebChromeClient(new WebChromeClient() { @@ -5501,34 +5450,31 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook // Upload files. @Override public boolean onShowFileChooser(WebView webView, ValueCallback filePathCallback, FileChooserParams fileChooserParams) { - // Show the file chooser if the device is running API >= 21. - if (Build.VERSION.SDK_INT >= 21) { - // Store the file path callback. - fileChooserCallback = filePathCallback; + // Store the file path callback. + fileChooserCallback = filePathCallback; - // Create an intent to open a chooser based on the file chooser parameters. - Intent fileChooserIntent = fileChooserParams.createIntent(); + // Create an intent to open a chooser based on the file chooser parameters. + Intent fileChooserIntent = fileChooserParams.createIntent(); - // Get a handle for the package manager. - PackageManager packageManager = getPackageManager(); + // Get a handle for the package manager. + PackageManager packageManager = getPackageManager(); - // Check to see if the file chooser intent resolves to an installed package. - if (fileChooserIntent.resolveActivity(packageManager) != null) { // The file chooser intent is fine. - // Start the file chooser intent. - startActivityForResult(fileChooserIntent, BROWSE_FILE_UPLOAD_REQUEST_CODE); - } else { // The file chooser intent will cause a crash. - // Create a generic intent to open a chooser. - Intent genericFileChooserIntent = new Intent(Intent.ACTION_GET_CONTENT); + // Check to see if the file chooser intent resolves to an installed package. + if (fileChooserIntent.resolveActivity(packageManager) != null) { // The file chooser intent is fine. + // Start the file chooser intent. + startActivityForResult(fileChooserIntent, BROWSE_FILE_UPLOAD_REQUEST_CODE); + } else { // The file chooser intent will cause a crash. + // Create a generic intent to open a chooser. + Intent genericFileChooserIntent = new Intent(Intent.ACTION_GET_CONTENT); - // Request an openable file. - genericFileChooserIntent.addCategory(Intent.CATEGORY_OPENABLE); + // Request an openable file. + genericFileChooserIntent.addCategory(Intent.CATEGORY_OPENABLE); - // Set the file type to everything. - genericFileChooserIntent.setType("*/*"); + // Set the file type to everything. + genericFileChooserIntent.setType("*/*"); - // Start the generic file chooser intent. - startActivityForResult(genericFileChooserIntent, BROWSE_FILE_UPLOAD_REQUEST_CODE); - } + // Start the generic file chooser intent. + startActivityForResult(genericFileChooserIntent, BROWSE_FILE_UPLOAD_REQUEST_CODE); } return true; } @@ -5618,7 +5564,10 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook // Check requests against the block lists. The deprecated `shouldInterceptRequest()` must be used until minimum API >= 21. @Override - public WebResourceResponse shouldInterceptRequest(WebView view, String url) { + public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest webResourceRequest) { + // Get the URL. + String url = webResourceRequest.getUrl().toString(); + // Check to see if the resource request is for the main URL. if (url.equals(nestedScrollWebView.getCurrentUrl())) { // `return null` loads the resource request, which should never be blocked if it is the main URL. @@ -5638,9 +5587,6 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook } } - // Sanitize the URL. - url = sanitizeUrl(url); - // Create an empty web resource response to be used if the resource request is blocked. WebResourceResponse emptyWebResourceResponse = new WebResourceResponse("text/plain", "utf8", new ByteArrayInputStream("".getBytes())); @@ -5656,31 +5602,25 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook // Store a copy of the current domain for use in later requests. String currentDomain = currentBaseDomain; - // Nobody is happy when comparing null strings. - if (url != null) { - // Convert the request URL to a URI. - Uri requestUri = Uri.parse(url); - - // Get the request host name. - String requestBaseDomain = requestUri.getHost(); - - // Only check for third-party requests if the current base domain is not empty and the request domain is not null. - if (!currentBaseDomain.isEmpty() && (requestBaseDomain != null)) { - // Determine the current base domain. - while (currentBaseDomain.indexOf(".", currentBaseDomain.indexOf(".") + 1) > 0) { // There is at least one subdomain. - // Remove the first subdomain. - currentBaseDomain = currentBaseDomain.substring(currentBaseDomain.indexOf(".") + 1); - } + // Get the request host name. + String requestBaseDomain = webResourceRequest.getUrl().getHost(); - // Determine the request base domain. - while (requestBaseDomain.indexOf(".", requestBaseDomain.indexOf(".") + 1) > 0) { // There is at least one subdomain. - // Remove the first subdomain. - requestBaseDomain = requestBaseDomain.substring(requestBaseDomain.indexOf(".") + 1); - } + // Only check for third-party requests if the current base domain is not empty and the request domain is not null. + if (!currentBaseDomain.isEmpty() && (requestBaseDomain != null)) { + // Determine the current base domain. + while (currentBaseDomain.indexOf(".", currentBaseDomain.indexOf(".") + 1) > 0) { // There is at least one subdomain. + // Remove the first subdomain. + currentBaseDomain = currentBaseDomain.substring(currentBaseDomain.indexOf(".") + 1); + } - // Update the third party request tracker. - isThirdPartyRequest = !currentBaseDomain.equals(requestBaseDomain); + // Determine the request base domain. + while (requestBaseDomain.indexOf(".", requestBaseDomain.indexOf(".") + 1) > 0) { // There is at least one subdomain. + // Remove the first subdomain. + requestBaseDomain = requestBaseDomain.substring(requestBaseDomain.indexOf(".") + 1); } + + // Update the third party request tracker. + isThirdPartyRequest = !currentBaseDomain.equals(requestBaseDomain); } // Get the current WebView page position. @@ -6055,7 +5995,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook @Override public void onPageFinished(WebView view, String url) { // Flush any cookies to persistent storage. The cookie manager has become very lazy about flushing cookies in recent versions. - if (nestedScrollWebView.getAcceptCookies() && Build.VERSION.SDK_INT >= 21) { + if (nestedScrollWebView.getAcceptCookies()) { CookieManager.getInstance().flush(); } diff --git a/app/src/main/java/com/stoutner/privacybrowser/adapters/PinnedMismatchPagerAdapter.kt b/app/src/main/java/com/stoutner/privacybrowser/adapters/PinnedMismatchPagerAdapter.kt index f955fb84..51eddb67 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/adapters/PinnedMismatchPagerAdapter.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/adapters/PinnedMismatchPagerAdapter.kt @@ -207,22 +207,18 @@ class PinnedMismatchPagerAdapter(private val context: Context, private val layou // 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_NO) { - @Suppress("DEPRECATION") - blueColorSpan = ForegroundColorSpan(context.resources.getColor(R.color.blue_700)) - @Suppress("DEPRECATION") - redColorSpan = ForegroundColorSpan(context.resources.getColor(R.color.red_a700)) + blueColorSpan = ForegroundColorSpan(context.getColor(R.color.blue_700)) + redColorSpan = ForegroundColorSpan(context.getColor(R.color.red_a700)) } else { - @Suppress("DEPRECATION") - blueColorSpan = ForegroundColorSpan(context.resources.getColor(R.color.violet_700)) - @Suppress("DEPRECATION") - redColorSpan = ForegroundColorSpan(context.resources.getColor(R.color.red_900)) + blueColorSpan = ForegroundColorSpan(context.getColor(R.color.violet_700)) + redColorSpan = ForegroundColorSpan(context.getColor(R.color.red_900)) } // Set the domain name to be blue. domainNameStringBuilder.setSpan(blueColorSpan, domainNameLabel.length, domainNameStringBuilder.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE) // Color coordinate the IP addresses if they are pinned. - if (!nestedScrollWebView.pinnedIpAddresses.equals("")) { + if (nestedScrollWebView.pinnedIpAddresses != "") { if (nestedScrollWebView.currentIpAddresses == nestedScrollWebView.pinnedIpAddresses) { ipAddressesStringBuilder.setSpan(blueColorSpan, ipAddressesLabel.length, ipAddressesStringBuilder.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE) } else { diff --git a/app/src/main/java/com/stoutner/privacybrowser/adapters/RequestsArrayAdapter.java b/app/src/main/java/com/stoutner/privacybrowser/adapters/RequestsArrayAdapter.java index 49634bae..f729cb23 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/adapters/RequestsArrayAdapter.java +++ b/app/src/main/java/com/stoutner/privacybrowser/adapters/RequestsArrayAdapter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2018-2020 Soren Stoutner . + * Copyright © 2018-2021 Soren Stoutner . * * This file is part of Privacy Browser . * @@ -79,7 +79,7 @@ public class RequestsArrayAdapter extends ArrayAdapter { dispositionTextView.setText(requestDefault); // Set the background color. - linearLayout.setBackgroundColor(context.getResources().getColor(R.color.transparent)); + linearLayout.setBackgroundColor(context.getColor(R.color.transparent)); break; case BlocklistHelper.REQUEST_ALLOWED: @@ -91,9 +91,9 @@ public class RequestsArrayAdapter extends ArrayAdapter { // Set the background color. if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { - linearLayout.setBackgroundColor(context.getResources().getColor(R.color.blue_100)); + linearLayout.setBackgroundColor(context.getColor(R.color.blue_100)); } else { - linearLayout.setBackgroundColor(context.getResources().getColor(R.color.blue_700_50)); + linearLayout.setBackgroundColor(context.getColor(R.color.blue_700_50)); } break; @@ -106,9 +106,9 @@ public class RequestsArrayAdapter extends ArrayAdapter { // Set the background color. if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { - linearLayout.setBackgroundColor(context.getResources().getColor(R.color.yellow_100)); + linearLayout.setBackgroundColor(context.getColor(R.color.yellow_100)); } else { - linearLayout.setBackgroundColor(context.getResources().getColor(R.color.yellow_700_50)); + linearLayout.setBackgroundColor(context.getColor(R.color.yellow_700_50)); } break; @@ -122,9 +122,9 @@ public class RequestsArrayAdapter extends ArrayAdapter { // Set the background color. if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { - linearLayout.setBackgroundColor(context.getResources().getColor(R.color.red_100)); + linearLayout.setBackgroundColor(context.getColor(R.color.red_100)); } else { - linearLayout.setBackgroundColor(context.getResources().getColor(R.color.red_700_40)); + linearLayout.setBackgroundColor(context.getColor(R.color.red_700_40)); } break; } diff --git a/app/src/main/java/com/stoutner/privacybrowser/adapters/WebViewPagerAdapter.java b/app/src/main/java/com/stoutner/privacybrowser/adapters/WebViewPagerAdapter.java index 15cfc2cc..8c15bc51 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/adapters/WebViewPagerAdapter.java +++ b/app/src/main/java/com/stoutner/privacybrowser/adapters/WebViewPagerAdapter.java @@ -134,6 +134,9 @@ public class WebViewPagerAdapter extends FragmentPagerAdapter { // Get the WebView frame layout. FrameLayout webViewFrameLayout = (FrameLayout) webViewTabFragment.getView(); + // Remove the warning below that the WebView frame layout might be null. + assert webViewFrameLayout != null; + // Get a handle for the nested scroll WebView. NestedScrollWebView nestedScrollWebView = webViewFrameLayout.findViewById(R.id.nestedscroll_webview); diff --git a/app/src/main/java/com/stoutner/privacybrowser/backgroundtasks/GetSourceBackgroundTask.java b/app/src/main/java/com/stoutner/privacybrowser/backgroundtasks/GetSourceBackgroundTask.java index 92e543ce..b076fd38 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/backgroundtasks/GetSourceBackgroundTask.java +++ b/app/src/main/java/com/stoutner/privacybrowser/backgroundtasks/GetSourceBackgroundTask.java @@ -65,10 +65,6 @@ public class GetSourceBackgroundTask { // Get a URI for the content URL. Uri contentUri = Uri.parse(urlString); - // Define the variables necessary to build the response headers. - int oldResponseHeadersBuilderLength; - int newResponseHeadersBuilderLength; - // Get a cursor with metadata about the content URL. Cursor contentCursor = contentResolver.query(contentUri, null, null, null, null); @@ -82,14 +78,7 @@ public class GetSourceBackgroundTask { } // Add each header to the string builder. - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - responseHeadersBuilder.append(contentCursor.getColumnName(i), new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions are not so much. - oldResponseHeadersBuilderLength = responseHeadersBuilder.length(); - responseHeadersBuilder.append(contentCursor.getColumnName(i)); - newResponseHeadersBuilderLength = responseHeadersBuilder.length(); - responseHeadersBuilder.setSpan(new StyleSpan(Typeface.BOLD), oldResponseHeadersBuilderLength, newResponseHeadersBuilderLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + responseHeadersBuilder.append(contentCursor.getColumnName(i), new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); responseHeadersBuilder.append(": "); responseHeadersBuilder.append(contentCursor.getString(i)); } @@ -121,23 +110,11 @@ public class GetSourceBackgroundTask { // Open a connection to the URL. No data is actually sent at this point. HttpURLConnection httpUrlConnection = (HttpURLConnection) url.openConnection(proxy); - // Define the variables necessary to build the request headers. - int oldRequestHeadersBuilderLength; - int newRequestHeadersBuilderLength; - - // Set the `Host` header property. httpUrlConnection.setRequestProperty("Host", url.getHost()); // Add the `Host` header to the string builder and format the text. - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - requestHeadersBuilder.append("Host", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions not so much. - oldRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.append("Host"); - newRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.setSpan(new StyleSpan(Typeface.BOLD), oldRequestHeadersBuilderLength, newRequestHeadersBuilderLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + requestHeadersBuilder.append("Host", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); requestHeadersBuilder.append(": "); requestHeadersBuilder.append(url.getHost()); @@ -147,14 +124,7 @@ public class GetSourceBackgroundTask { // Add the `Connection` header to the string builder and format the text. requestHeadersBuilder.append(System.getProperty("line.separator")); - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - requestHeadersBuilder.append("Connection", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions not so much. - oldRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.append("Connection"); - newRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.setSpan(new StyleSpan(Typeface.BOLD), oldRequestHeadersBuilderLength, newRequestHeadersBuilderLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + requestHeadersBuilder.append("Connection", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); requestHeadersBuilder.append(": keep-alive"); @@ -163,14 +133,7 @@ public class GetSourceBackgroundTask { // Add the `Upgrade-Insecure-Requests` header to the string builder and format the text. requestHeadersBuilder.append(System.getProperty("line.separator")); - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - requestHeadersBuilder.append("Upgrade-Insecure-Requests", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions not so much. - oldRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.append("Upgrade-Insecure_Requests"); - newRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.setSpan(new StyleSpan(Typeface.BOLD), oldRequestHeadersBuilderLength, newRequestHeadersBuilderLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + requestHeadersBuilder.append("Upgrade-Insecure-Requests", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); requestHeadersBuilder.append(": 1"); @@ -179,14 +142,7 @@ public class GetSourceBackgroundTask { // Add the `User-Agent` header to the string builder and format the text. requestHeadersBuilder.append(System.getProperty("line.separator")); - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - requestHeadersBuilder.append("User-Agent", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions not so much. - oldRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.append("User-Agent"); - newRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.setSpan(new StyleSpan(Typeface.BOLD), oldRequestHeadersBuilderLength, newRequestHeadersBuilderLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + requestHeadersBuilder.append("User-Agent", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); requestHeadersBuilder.append(": "); requestHeadersBuilder.append(userAgent); @@ -196,14 +152,7 @@ public class GetSourceBackgroundTask { // Add the `x-requested-with` header to the string builder and format the text. requestHeadersBuilder.append(System.getProperty("line.separator")); - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - requestHeadersBuilder.append("x-requested-with", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions not so much. - oldRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.append("x-requested-with"); - newRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.setSpan(new StyleSpan(Typeface.BOLD), oldRequestHeadersBuilderLength, newRequestHeadersBuilderLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + requestHeadersBuilder.append("x-requested-with", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); requestHeadersBuilder.append(": "); @@ -212,14 +161,7 @@ public class GetSourceBackgroundTask { // Add the `Sec-Fetch-Site` header to the string builder and format the text. requestHeadersBuilder.append(System.getProperty("line.separator")); - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - requestHeadersBuilder.append("Sec-Fetch-Site", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions not so much. - oldRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.append("Sec-Fetch-Site"); - newRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.setSpan(new StyleSpan(Typeface.BOLD), oldRequestHeadersBuilderLength, newRequestHeadersBuilderLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + requestHeadersBuilder.append("Sec-Fetch-Site", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); requestHeadersBuilder.append(": none"); @@ -228,14 +170,7 @@ public class GetSourceBackgroundTask { // Add the `Sec-Fetch-Mode` header to the string builder and format the text. requestHeadersBuilder.append(System.getProperty("line.separator")); - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - requestHeadersBuilder.append("Sec-Fetch-Mode", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions not so much. - oldRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.append("Sec-Fetch-Mode"); - newRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.setSpan(new StyleSpan(Typeface.BOLD), oldRequestHeadersBuilderLength, newRequestHeadersBuilderLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + requestHeadersBuilder.append("Sec-Fetch-Mode", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); requestHeadersBuilder.append(": navigate"); @@ -244,14 +179,7 @@ public class GetSourceBackgroundTask { // Add the `Sec-Fetch-User` header to the string builder and format the text. requestHeadersBuilder.append(System.getProperty("line.separator")); - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - requestHeadersBuilder.append("Sec-Fetch-User", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions not so much. - oldRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.append("Sec-Fetch-User"); - newRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.setSpan(new StyleSpan(Typeface.BOLD), oldRequestHeadersBuilderLength, newRequestHeadersBuilderLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + requestHeadersBuilder.append("Sec-Fetch-User", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); requestHeadersBuilder.append(": ?1"); @@ -260,14 +188,7 @@ public class GetSourceBackgroundTask { // Add the `Accept` header to the string builder and format the text. requestHeadersBuilder.append(System.getProperty("line.separator")); - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - requestHeadersBuilder.append("Accept", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions not so much. - oldRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.append("Accept"); - newRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.setSpan(new StyleSpan(Typeface.BOLD), oldRequestHeadersBuilderLength, newRequestHeadersBuilderLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + requestHeadersBuilder.append("Accept", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); requestHeadersBuilder.append(": "); requestHeadersBuilder.append("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3"); @@ -277,14 +198,7 @@ public class GetSourceBackgroundTask { // Add the `Accept-Language` header to the string builder and format the text. requestHeadersBuilder.append(System.getProperty("line.separator")); - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - requestHeadersBuilder.append("Accept-Language", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions not so much. - oldRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.append("Accept-Language"); - newRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.setSpan(new StyleSpan(Typeface.BOLD), oldRequestHeadersBuilderLength, newRequestHeadersBuilderLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + requestHeadersBuilder.append("Accept-Language", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); requestHeadersBuilder.append(": "); requestHeadersBuilder.append(localeString); @@ -299,14 +213,7 @@ public class GetSourceBackgroundTask { // Add the cookie header to the string builder and format the text. requestHeadersBuilder.append(System.getProperty("line.separator")); - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - requestHeadersBuilder.append("Cookie", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions not so much. - oldRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.append("Cookie"); - newRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.setSpan(new StyleSpan(Typeface.BOLD), oldRequestHeadersBuilderLength, newRequestHeadersBuilderLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + requestHeadersBuilder.append("Cookie", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); requestHeadersBuilder.append(": "); requestHeadersBuilder.append(cookiesString); } @@ -315,14 +222,7 @@ public class GetSourceBackgroundTask { // `HttpUrlConnection` sets `Accept-Encoding` to be `gzip` by default. If the property is manually set, than `HttpUrlConnection` does not process the decoding. // Add the `Accept-Encoding` header to the string builder and format the text. requestHeadersBuilder.append(System.getProperty("line.separator")); - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - requestHeadersBuilder.append("Accept-Encoding", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions not so much. - oldRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.append("Accept-Encoding"); - newRequestHeadersBuilderLength = requestHeadersBuilder.length(); - requestHeadersBuilder.setSpan(new StyleSpan(Typeface.BOLD), oldRequestHeadersBuilderLength, newRequestHeadersBuilderLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + requestHeadersBuilder.append("Accept-Encoding", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); requestHeadersBuilder.append(": gzip"); // Ignore SSL errors if requested. @@ -377,13 +277,7 @@ public class GetSourceBackgroundTask { int responseCode = httpUrlConnection.getResponseCode(); // Populate the response message string builder. - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - responseMessageBuilder.append(String.valueOf(responseCode), new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions not so much. - responseMessageBuilder.append(String.valueOf(responseCode)); - int newLength = responseMessageBuilder.length(); - responseMessageBuilder.setSpan(new StyleSpan(Typeface.BOLD), 0, newLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + responseMessageBuilder.append(String.valueOf(responseCode), new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); responseMessageBuilder.append(": "); responseMessageBuilder.append(httpUrlConnection.getResponseMessage()); @@ -398,14 +292,7 @@ public class GetSourceBackgroundTask { } // Add the header to the string builder and format the text. - if (Build.VERSION.SDK_INT >= 21) { // Newer versions of Android are so smart. - responseHeadersBuilder.append(httpUrlConnection.getHeaderFieldKey(i), new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } else { // Older versions not so much. - int oldLength = responseHeadersBuilder.length(); - responseHeadersBuilder.append(httpUrlConnection.getHeaderFieldKey(i)); - int newLength = responseHeadersBuilder.length(); - responseHeadersBuilder.setSpan(new StyleSpan(Typeface.BOLD), oldLength, newLength, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } + responseHeadersBuilder.append(httpUrlConnection.getHeaderFieldKey(i), new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); responseHeadersBuilder.append(": "); responseHeadersBuilder.append(httpUrlConnection.getHeaderField(i)); diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/CreateHomeScreenShortcutDialog.kt b/app/src/main/java/com/stoutner/privacybrowser/dialogs/CreateHomeScreenShortcutDialog.kt index bbbc9d12..0a0932fb 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/CreateHomeScreenShortcutDialog.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/CreateHomeScreenShortcutDialog.kt @@ -42,9 +42,9 @@ import androidx.core.content.pm.ShortcutInfoCompat import androidx.core.content.pm.ShortcutManagerCompat import androidx.core.graphics.drawable.IconCompat import androidx.fragment.app.DialogFragment -import androidx.multidex.BuildConfig import androidx.preference.PreferenceManager +import com.stoutner.privacybrowser.BuildConfig import com.stoutner.privacybrowser.R import java.io.ByteArrayOutputStream diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutVersionFragment.kt b/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutVersionFragment.kt index d2e9790b..f134d5e1 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutVersionFragment.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutVersionFragment.kt @@ -357,7 +357,7 @@ class AboutVersionFragment : Fragment() { val ultraPrivacyStringBuilder = SpannableStringBuilder(ultraPrivacyLabel + blocklistVersions[5]) // Set the blue color span according to the theme. The deprecated `getColor()` must be used until the minimum API >= 23. - blueColorSpan = ForegroundColorSpan(resources.getColor(R.color.about_version_blue_text)) + blueColorSpan = ForegroundColorSpan(requireContext().getColor(R.color.about_version_blue_text)) // Set the spans to display the device information in blue. `SPAN_INCLUSIVE_INCLUSIVE` allows the span to grow in either direction. brandStringBuilder.setSpan(blueColorSpan, brandLabel.length, brandStringBuilder.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE) @@ -411,50 +411,38 @@ class AboutVersionFragment : Fragment() { radioTextView.visibility = View.GONE } - // Build.VERSION.SECURITY_PATCH is only available for SDK_INT >= 23. - if (Build.VERSION.SDK_INT >= 23) { - // Setup the label. - val securityPatchLabel = getString(R.string.security_patch) + " " + // Setup the label. + val securityPatchLabel = getString(R.string.security_patch) + " " - // Get the security patch version. - val securityPatch = Build.VERSION.SECURITY_PATCH + // Get the security patch version. + val securityPatch = Build.VERSION.SECURITY_PATCH - // Create a spannable string builder. - val securityPatchStringBuilder = SpannableStringBuilder(securityPatchLabel + securityPatch) + // Create a spannable string builder. + val securityPatchStringBuilder = SpannableStringBuilder(securityPatchLabel + securityPatch) - // Set the span to display the security patch version in blue. - securityPatchStringBuilder.setSpan(blueColorSpan, securityPatchLabel.length, securityPatchStringBuilder.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE) + // Set the span to display the security patch version in blue. + securityPatchStringBuilder.setSpan(blueColorSpan, securityPatchLabel.length, securityPatchStringBuilder.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE) - // Display the string in the text view. - securityPatchTextView.text = securityPatchStringBuilder - } else { // The API < 23. - // Hide the security patch text view. - securityPatchTextView.visibility = View.GONE - } + // Display the string in the text view. + securityPatchTextView.text = securityPatchStringBuilder - // Only populate the WebView provider if the SDK >= 21. - if (Build.VERSION.SDK_INT >= 21) { - // Create the WebView provider label. - val webViewProviderLabel = getString(R.string.webview_provider) + " " + // Create the WebView provider label. + val webViewProviderLabel = getString(R.string.webview_provider) + " " - // Get the current WebView package info. - val webViewPackageInfo = WebViewCompat.getCurrentWebViewPackage(requireContext())!! + // Get the current WebView package info. + val webViewPackageInfo = WebViewCompat.getCurrentWebViewPackage(requireContext())!! - // Get the WebView provider name. - val webViewPackageName = webViewPackageInfo.packageName + // Get the WebView provider name. + val webViewPackageName = webViewPackageInfo.packageName - // Create the spannable string builder. - val webViewProviderStringBuilder = SpannableStringBuilder(webViewProviderLabel + webViewPackageName) + // Create the spannable string builder. + val webViewProviderStringBuilder = SpannableStringBuilder(webViewProviderLabel + webViewPackageName) - // Apply the coloration. - webViewProviderStringBuilder.setSpan(blueColorSpan, webViewProviderLabel.length, webViewProviderStringBuilder.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE) + // Apply the coloration. + webViewProviderStringBuilder.setSpan(blueColorSpan, webViewProviderLabel.length, webViewProviderStringBuilder.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE) - // Display the WebView provider. - webViewProviderTextView.text = webViewProviderStringBuilder - } else { // The API < 21. - // Hide the WebView provider text view. - webViewProviderTextView.visibility = View.GONE - } + // Display the WebView provider. + webViewProviderTextView.text = webViewProviderStringBuilder // Only populate the Orbot text view if it is installed. if (orbot.isNotEmpty()) { diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutWebViewFragment.kt b/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutWebViewFragment.kt index 44bae91d..9ee7dbed 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutWebViewFragment.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/AboutWebViewFragment.kt @@ -26,6 +26,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.webkit.WebResourceRequest import android.webkit.WebResourceResponse import android.webkit.WebView import android.webkit.WebViewClient @@ -105,9 +106,9 @@ class AboutWebViewFragment : Fragment() { } // Process asset requests with the asset loader. - override fun shouldInterceptRequest(webView: WebView, url: String): WebResourceResponse? { + override fun shouldInterceptRequest(webView: WebView, webResourceRequest: WebResourceRequest): WebResourceResponse? { // This allows using the `appassets.androidplatform.net` URL, which handles the loading of SVG files, which otherwise is prevented by the CORS policy. - return webViewAssetLoader.shouldInterceptRequest(Uri.parse(url)) + return webViewAssetLoader.shouldInterceptRequest(webResourceRequest.url) } } diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.java b/app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.java index e26853c8..4ae52c94 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.java +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.java @@ -303,13 +303,13 @@ public class DomainSettingsFragment extends Fragment { final ForegroundColorSpan blueColorSpan; final ForegroundColorSpan redColorSpan; - // Set the color spans according to the theme. The deprecated `getColor()` must be used until the minimum API >= 23. + // Set the color spans according to the theme. 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)); + blueColorSpan = new ForegroundColorSpan(context.getColor(R.color.blue_700)); + redColorSpan = new ForegroundColorSpan(context.getColor(R.color.red_a700)); } else { - blueColorSpan = new ForegroundColorSpan(resources.getColor(R.color.violet_700)); - redColorSpan = new ForegroundColorSpan(resources.getColor(R.color.red_900)); + blueColorSpan = new ForegroundColorSpan(context.getColor(R.color.violet_700)); + redColorSpan = new ForegroundColorSpan(context.getColor(R.color.red_900)); } // Set the domain name from the the database cursor. @@ -834,100 +834,91 @@ public class DomainSettingsFragment extends Fragment { appWebViewThemeEntryNumber = 0; } - // Set the WebView theme visibility. - if (Build.VERSION.SDK_INT < 21) { // The WebView theme cannot be set on API 19. - // Get a handle for the webView theme linear layout. - LinearLayout webViewThemeLinearLayout = domainSettingsView.findViewById(R.id.webview_theme_linearlayout); + // Select the WebView theme in the spinner. + webViewThemeSpinner.setSelection(webViewThemeInt); - // Hide the WebView theme linear layout. - webViewThemeLinearLayout.setVisibility(View.GONE); - } else { // The WebView theme can be set on API >= 21. - // Select the WebView theme in the spinner. - webViewThemeSpinner.setSelection(webViewThemeInt); - - // Set the WebView theme text. - if (appWebViewThemeEntryNumber == DomainsDatabaseHelper.SYSTEM_DEFAULT) { // The app WebView theme is system default. - // Set the text according to the current UI theme. - if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { - webViewThemeTextView.setText(webViewThemeStringArray[DomainsDatabaseHelper.LIGHT_THEME]); - } else { - webViewThemeTextView.setText(webViewThemeStringArray[DomainsDatabaseHelper.DARK_THEME]); - } - } else { // The app WebView theme is not system default. - // Set the text according to the app WebView theme. - webViewThemeTextView.setText(webViewThemeStringArray[appWebViewThemeEntryNumber]); - } - - // Set the WebView theme icon and text visibility. Once the minimum API >= 21 a selector can be used as the tint mode instead of specifying different icons. - switch (webViewThemeInt) { - case DomainsDatabaseHelper.SYSTEM_DEFAULT: // The domain WebView theme is system default. - // Set the icon according to the app WebView theme. - switch (appWebViewThemeEntryNumber) { - case DomainsDatabaseHelper.SYSTEM_DEFAULT: // The default WebView theme is system default. - // Set the icon according to the app theme. - if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { - // Set the light mode icon. - webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_light_theme_day, null)); - } else { - // Set the dark theme icon. - webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_dark_theme_night, null)); - } - break; + // Set the WebView theme text. + if (appWebViewThemeEntryNumber == DomainsDatabaseHelper.SYSTEM_DEFAULT) { // The app WebView theme is system default. + // Set the text according to the current UI theme. + if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { + webViewThemeTextView.setText(webViewThemeStringArray[DomainsDatabaseHelper.LIGHT_THEME]); + } else { + webViewThemeTextView.setText(webViewThemeStringArray[DomainsDatabaseHelper.DARK_THEME]); + } + } else { // The app WebView theme is not system default. + // Set the text according to the app WebView theme. + webViewThemeTextView.setText(webViewThemeStringArray[appWebViewThemeEntryNumber]); + } - case DomainsDatabaseHelper.LIGHT_THEME: // the default WebView theme is light. - // Set the icon according to the app theme. - if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { - webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_light_theme_day, null)); - } else { - webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_light_theme_night, null)); - } - break; + // Set the WebView theme icon and text visibility. Once the minimum API >= 21 a selector can be used as the tint mode instead of specifying different icons. + switch (webViewThemeInt) { + case DomainsDatabaseHelper.SYSTEM_DEFAULT: // The domain WebView theme is system default. + // Set the icon according to the app WebView theme. + switch (appWebViewThemeEntryNumber) { + case DomainsDatabaseHelper.SYSTEM_DEFAULT: // The default WebView theme is system default. + // Set the icon according to the app theme. + if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { + // Set the light mode icon. + webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_light_theme_day, null)); + } else { + // Set the dark theme icon. + webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_dark_theme_night, null)); + } + break; - case DomainsDatabaseHelper.DARK_THEME: // the default WebView theme is dark. - // Set the icon according to the app theme. - if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { - webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_dark_theme_day, null)); - } else { - webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_dark_theme_night, null)); } - break; - } + case DomainsDatabaseHelper.LIGHT_THEME: // the default WebView theme is light. + // Set the icon according to the app theme. + if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { + webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_light_theme_day, null)); + } else { + webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_light_theme_night, null)); + } + break; - // Show the WebView theme text view. - webViewThemeTextView.setVisibility(View.VISIBLE); - break; + case DomainsDatabaseHelper.DARK_THEME: // the default WebView theme is dark. + // Set the icon according to the app theme. + if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { + webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_dark_theme_day, null)); + } else { + webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_dark_theme_night, null)); } + break; + } - case DomainsDatabaseHelper.LIGHT_THEME: // The domain WebView theme is light. - // Set the icon according to the app theme. - if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { - webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_light_theme_day, null)); - } else { - webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_light_theme_night, null)); - } + // Show the WebView theme text view. + webViewThemeTextView.setVisibility(View.VISIBLE); + break; - // Hide the WebView theme text view. - webViewThemeTextView.setVisibility(View.GONE); - break; + case DomainsDatabaseHelper.LIGHT_THEME: // The domain WebView theme is light. + // Set the icon according to the app theme. + if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { + webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_light_theme_day, null)); + } else { + webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_light_theme_night, null)); + } - case DomainsDatabaseHelper.DARK_THEME: // The domain WebView theme is dark. - // Set the icon according to the app theme. - if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { - webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_dark_theme_day, null)); - } else { - webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_dark_theme_night, null)); - } + // Hide the WebView theme text view. + webViewThemeTextView.setVisibility(View.GONE); + break; - // Hide the WebView theme text view. - webViewThemeTextView.setVisibility(View.GONE); - break; - } + case DomainsDatabaseHelper.DARK_THEME: // The domain WebView theme is dark. + // Set the icon according to the app theme. + if (currentThemeStatus == Configuration.UI_MODE_NIGHT_NO) { + webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_dark_theme_day, null)); + } else { + webViewThemeImageView.setImageDrawable(ResourcesCompat.getDrawable(resources, R.drawable.webview_dark_theme_night, null)); + } - // Open the WebView theme spinner when the text view is clicked. - webViewThemeTextView.setOnClickListener((View v) -> { - // Open the WebView theme spinner. - webViewThemeSpinner.performClick(); - }); + // Hide the WebView theme text view. + webViewThemeTextView.setVisibility(View.GONE); + break; } + // Open the WebView theme spinner when the text view is clicked. + webViewThemeTextView.setOnClickListener((View v) -> { + // Open the WebView theme spinner. + webViewThemeSpinner.performClick(); + }); + // Select the wide viewport in the spinner. wideViewportSpinner.setSelection(wideViewportInt); diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/GuideWebViewFragment.java b/app/src/main/java/com/stoutner/privacybrowser/fragments/GuideWebViewFragment.java index 3e1019ac..fc817af6 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/GuideWebViewFragment.java +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/GuideWebViewFragment.java @@ -27,6 +27,7 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.webkit.WebResourceRequest; import android.webkit.WebResourceResponse; import android.webkit.WebView; import android.webkit.WebViewClient; @@ -116,10 +117,10 @@ public class GuideWebViewFragment extends Fragment { } @Override - public WebResourceResponse shouldInterceptRequest(WebView webView, String url) { + public WebResourceResponse shouldInterceptRequest(WebView webView, WebResourceRequest webResourceRequest) { // Have the WebView asset loader process the request. // This allows using the `appassets.androidplatform.net` URL, which handles the loading of SVG files, which otherwise is prevented by the CORS policy. - return webViewAssetLoader.shouldInterceptRequest(Uri.parse(url)); + return webViewAssetLoader.shouldInterceptRequest(webResourceRequest.getUrl()); } }); diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java b/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java index a43e30bd..bac86c1e 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java +++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.java @@ -316,11 +316,7 @@ public class SettingsFragment extends PreferenceFragmentCompat { break; case ProxyHelper.TOR: - if (Build.VERSION.SDK_INT == 19) { // Proxying through SOCKS doesn't work on Android KitKat. - proxyPreference.setSummary(getString(R.string.tor_enabled_kitkat)); - } else { - proxyPreference.setSummary(getString(R.string.tor_enabled)); - } + proxyPreference.setSummary(getString(R.string.tor_enabled)); break; case ProxyHelper.I2P: @@ -403,20 +399,8 @@ public class SettingsFragment extends PreferenceFragmentCompat { webViewThemeEntryNumber = 0; } - // Set the visibility of the WebView theme preference. - if (Build.VERSION.SDK_INT < 21) { // The device is running API 19. - // Get a handle for the general category. - PreferenceCategory generalCategory = findPreference("general"); - - // Remove the incorrect lint warning below that the general preference category might be null. - assert generalCategory != null; - - // Remove the WebView theme preference. - generalCategory.removePreference(webViewThemePreference); - } else { // The device is running API >= 21 - // Set the current theme as the summary text for the preference. - webViewThemePreference.setSummary(webViewThemeEntriesStringArray[webViewThemeEntryNumber]); - } + // Set the current theme as the summary text for the preference. + webViewThemePreference.setSummary(webViewThemeEntriesStringArray[webViewThemeEntryNumber]); // Set the JavaScript icon. @@ -1441,11 +1425,7 @@ public class SettingsFragment extends PreferenceFragmentCompat { break; case ProxyHelper.TOR: - if (Build.VERSION.SDK_INT == 19) { // Proxying through SOCKS doesn't work on Android KitKat. - proxyPreference.setSummary(context.getString(R.string.tor_enabled_kitkat)); - } else { - proxyPreference.setSummary(context.getString(R.string.tor_enabled)); - } + proxyPreference.setSummary(context.getString(R.string.tor_enabled)); break; case ProxyHelper.I2P: diff --git a/app/src/main/java/com/stoutner/privacybrowser/helpers/ProxyHelper.kt b/app/src/main/java/com/stoutner/privacybrowser/helpers/ProxyHelper.kt index 0cc51058..2339d8d6 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/helpers/ProxyHelper.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/helpers/ProxyHelper.kt @@ -19,13 +19,9 @@ package com.stoutner.privacybrowser.helpers -import android.annotation.SuppressLint import android.content.Context import android.content.Intent import android.net.Uri -import android.os.Build -import android.os.Parcelable -import android.util.ArrayMap import android.view.View import androidx.preference.PreferenceManager @@ -40,7 +36,6 @@ import com.google.android.material.snackbar.Snackbar import java.lang.Exception import java.lang.IllegalArgumentException -import java.lang.reflect.InvocationTargetException import java.net.InetSocketAddress import java.net.Proxy import java.net.SocketAddress @@ -56,30 +51,12 @@ class ProxyHelper { } fun setProxy(context: Context, activityView: View, proxyMode: String) { - // Initialize the proxy host and port strings. - var proxyHost = "0" - var proxyPort = "0" - // Create a proxy config builder. val proxyConfigBuilder = ProxyConfig.Builder() // Run the commands that correlate to the proxy mode. when (proxyMode) { - NONE -> { - // Clear the proxy values. - System.clearProperty("proxyHost") - System.clearProperty("proxyPort") - } - TOR -> { - // Update the proxy host and port strings. These can be removed once the minimum API >= 21. - proxyHost = "localhost" - proxyPort = "8118" - - // Set the proxy values. These can be removed once the minimum API >= 21. - System.setProperty("proxyHost", proxyHost) - System.setProperty("proxyPort", proxyPort) - // Add the proxy to the builder. The proxy config builder can use a SOCKS proxy. proxyConfigBuilder.addProxyRule("socks://localhost:9050") @@ -100,14 +77,6 @@ class ProxyHelper { } I2P -> { - // Update the proxy host and port strings. These can be removed once the minimum API >= 21. - proxyHost = "localhost" - proxyPort = "4444" - - // Set the proxy values. These can be removed once the minimum API >= 21. - System.setProperty("proxyHost", proxyHost) - System.setProperty("proxyPort", proxyPort) - // Add the proxy to the builder. proxyConfigBuilder.addProxyRule("http://localhost:4444") } @@ -121,17 +90,6 @@ class ProxyHelper { // Parse the custom proxy URL. try { - // Convert the custom proxy URL string to a URI. - val customProxyUri = Uri.parse(customProxyUrlString) - - // Get the proxy host and port strings from the shared preferences. These can be removed once the minimum API >= 21. - proxyHost = customProxyUri.host!! - proxyPort = customProxyUri.port.toString() - - // Set the proxy values. These can be removed once the minimum API >= 21. - System.setProperty("proxyHost", proxyHost) - System.setProperty("proxyPort", proxyPort) - // Add the proxy to the builder. proxyConfigBuilder.addProxyRule(customProxyUrlString!!) } catch (exception: Exception) { // The custom proxy URL is invalid. @@ -142,7 +100,7 @@ class ProxyHelper { } // Apply the proxy settings - if (WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE)) { // The fancy new proxy config can be used because the API >= 21. + if (WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE)) { // Convert the proxy config builder into a proxy config. val proxyConfig = proxyConfigBuilder.build() @@ -161,102 +119,18 @@ class ProxyHelper { Snackbar.make(activityView, R.string.custom_proxy_invalid, Snackbar.LENGTH_LONG).show() } } - } else { // The old proxy method must be used, either because an old WebView is installed or because the API == 19; - // Get a handle for the shared preferences. - val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context) - - // Check to make sure a SOCKS proxy is not selected. - if ((proxyMode == CUSTOM) && - sharedPreferences.getString(context.getString(R.string.proxy_custom_url_key), context.getString(R.string.proxy_custom_url_default_value))!!.startsWith("socks://")) { - // Display a Snackbar. - Snackbar.make(activityView, R.string.socks_proxies_do_not_work_on_kitkat, Snackbar.LENGTH_LONG).show() - } else { // Use reflection to apply the new proxy values. - try { - // Get the application and APK classes. - val applicationClass = Class.forName("android.app.Application") - - // Suppress the lint warning that reflection may not always work in the future and on all devices. - @SuppressLint("PrivateApi") val loadedApkClass = Class.forName("android.app.LoadedApk") - - // Get the declared fields. Suppress the lint that it is discouraged to access private APIs. - @SuppressLint("DiscouragedPrivateApi") val methodLoadedApkField = applicationClass.getDeclaredField("mLoadedApk") - @SuppressLint("DiscouragedPrivateApi") val methodReceiversField = loadedApkClass.getDeclaredField("mReceivers") - - // Allow the values to be changed. - methodLoadedApkField.isAccessible = true - methodReceiversField.isAccessible = true - - // Get the APK object. - val methodLoadedApkObject = methodLoadedApkField[context] - - // Get an array map of the receivers. - val receivers = methodReceiversField[methodLoadedApkObject] as ArrayMap<*, *> - - // Set the proxy. - for (receiverMap in receivers.values) { - for (receiver in (receiverMap as ArrayMap<*, *>).keys) { - // Get the receiver class. - // `Class<*>`, which is an `unbounded wildcard parameterized type`, must be used instead of `Class`, which is a `raw type`. Otherwise, `receiveClass.getDeclaredMethod()` is unhappy. - val receiverClass: Class<*> = receiver.javaClass - - // Apply the new proxy settings to any classes whose names contain `ProxyChangeListener`. - if (receiverClass.name.contains("ProxyChangeListener")) { - // Get the `onReceive` method from the class. - val onReceiveMethod = receiverClass.getDeclaredMethod("onReceive", Context::class.java, Intent::class.java) - - // Create a proxy change intent. - val proxyChangeIntent = Intent(android.net.Proxy.PROXY_CHANGE_ACTION) - - // Set the proxy for API >= 21. - if (Build.VERSION.SDK_INT >= 21) { - // Get the proxy info class. - val proxyInfoClass = Class.forName("android.net.ProxyInfo") - - // Get the build direct proxy method from the proxy info class. - val buildDirectProxyMethod = proxyInfoClass.getMethod("buildDirectProxy", String::class.java, Integer.TYPE) - - // Populate a proxy info object with the new proxy information. - val proxyInfoObject = buildDirectProxyMethod.invoke(proxyInfoClass, proxyHost, Integer.valueOf(proxyPort)) - - // Add the proxy info object into the proxy change intent. - proxyChangeIntent.putExtra("proxy", proxyInfoObject as Parcelable) - } - - // Pass the proxy change intent to the `onReceive` method of the receiver class. - onReceiveMethod.invoke(receiver, context, proxyChangeIntent) - } - } - } - } catch (exception: ClassNotFoundException) { - // Do nothing. - } catch (exception: NoSuchFieldException) { - // Do nothing. - } catch (exception: IllegalAccessException) { - // Do nothing. - } catch (exception: NoSuchMethodException) { - // Do nothing. - } catch (exception: InvocationTargetException) { - // Do nothing. - } - } } } fun getCurrentProxy(context: Context): Proxy { // Get the proxy according to the current proxy mode. val proxy = when (MainWebViewActivity.proxyMode) { - TOR -> if (Build.VERSION.SDK_INT >= 21) { + TOR -> { // Use localhost port 9050 as the socket address. val torSocketAddress: SocketAddress = InetSocketAddress.createUnresolved("localhost", 9050) // Create a SOCKS proxy. Proxy(Proxy.Type.SOCKS, torSocketAddress) - } else { - // Use localhost port 8118 as the socket address. - val oldTorSocketAddress: SocketAddress = InetSocketAddress.createUnresolved("localhost", 8118) - - // Create an HTTP proxy. - Proxy(Proxy.Type.HTTP, oldTorSocketAddress) } I2P -> { diff --git a/app/src/main/res/drawable/about_blue_day.xml b/app/src/main/res/drawable/about_blue_day.xml index ce6ee324..8a79f031 100644 --- a/app/src/main/res/drawable/about_blue_day.xml +++ b/app/src/main/res/drawable/about_blue_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/about_blue_night.xml b/app/src/main/res/drawable/about_blue_night.xml index 8506e915..04b7e860 100644 --- a/app/src/main/res/drawable/about_blue_night.xml +++ b/app/src/main/res/drawable/about_blue_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/about_day.xml b/app/src/main/res/drawable/about_day.xml index ae8f192f..cc3f0f8a 100644 --- a/app/src/main/res/drawable/about_day.xml +++ b/app/src/main/res/drawable/about_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - diff --git a/app/src/main/res/drawable/about_night.xml b/app/src/main/res/drawable/about_night.xml index 4150caa8..017140b7 100644 --- a/app/src/main/res/drawable/about_night.xml +++ b/app/src/main/res/drawable/about_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - diff --git a/app/src/main/res/drawable/add.xml b/app/src/main/res/drawable/add.xml index 87921013..6488d6a3 100644 --- a/app/src/main/res/drawable/add.xml +++ b/app/src/main/res/drawable/add.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - diff --git a/app/src/main/res/drawable/allow_screenshots_disabled_day.xml b/app/src/main/res/drawable/allow_screenshots_disabled_day.xml index 838e4cef..f4530a37 100644 --- a/app/src/main/res/drawable/allow_screenshots_disabled_day.xml +++ b/app/src/main/res/drawable/allow_screenshots_disabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - diff --git a/app/src/main/res/drawable/allow_screenshots_disabled_night.xml b/app/src/main/res/drawable/allow_screenshots_disabled_night.xml index fd4d9f1e..bdd3a0ae 100644 --- a/app/src/main/res/drawable/allow_screenshots_disabled_night.xml +++ b/app/src/main/res/drawable/allow_screenshots_disabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - diff --git a/app/src/main/res/drawable/allow_screenshots_enabled_day.xml b/app/src/main/res/drawable/allow_screenshots_enabled_day.xml index 9840bb82..79e90df3 100644 --- a/app/src/main/res/drawable/allow_screenshots_enabled_day.xml +++ b/app/src/main/res/drawable/allow_screenshots_enabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - diff --git a/app/src/main/res/drawable/allow_screenshots_enabled_night.xml b/app/src/main/res/drawable/allow_screenshots_enabled_night.xml index ff9fe397..d75a88a6 100644 --- a/app/src/main/res/drawable/allow_screenshots_enabled_night.xml +++ b/app/src/main/res/drawable/allow_screenshots_enabled_night.xml @@ -8,6 +8,6 @@ diff --git a/app/src/main/res/drawable/app_bar_disabled_day.xml b/app/src/main/res/drawable/app_bar_disabled_day.xml index 52c9ec06..6c6f7e39 100644 --- a/app/src/main/res/drawable/app_bar_disabled_day.xml +++ b/app/src/main/res/drawable/app_bar_disabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/app_bar_disabled_night.xml b/app/src/main/res/drawable/app_bar_disabled_night.xml index 6feeaf83..19dba641 100644 --- a/app/src/main/res/drawable/app_bar_disabled_night.xml +++ b/app/src/main/res/drawable/app_bar_disabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/app_bar_enabled_day.xml b/app/src/main/res/drawable/app_bar_enabled_day.xml index 8bdfb69d..e1737386 100644 --- a/app/src/main/res/drawable/app_bar_enabled_day.xml +++ b/app/src/main/res/drawable/app_bar_enabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/app_bar_enabled_night.xml b/app/src/main/res/drawable/app_bar_enabled_night.xml index 0f60fbad..7cdbcb0d 100644 --- a/app/src/main/res/drawable/app_bar_enabled_night.xml +++ b/app/src/main/res/drawable/app_bar_enabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/app_bar_ghosted_day.xml b/app/src/main/res/drawable/app_bar_ghosted_day.xml index 83a9ec70..007e7eea 100644 --- a/app/src/main/res/drawable/app_bar_ghosted_day.xml +++ b/app/src/main/res/drawable/app_bar_ghosted_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/app_bar_ghosted_night.xml b/app/src/main/res/drawable/app_bar_ghosted_night.xml index 578362a5..b1f93776 100644 --- a/app/src/main/res/drawable/app_bar_ghosted_night.xml +++ b/app/src/main/res/drawable/app_bar_ghosted_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/app_theme_day.xml b/app/src/main/res/drawable/app_theme_day.xml index 1aea1928..b4bcb034 100644 --- a/app/src/main/res/drawable/app_theme_day.xml +++ b/app/src/main/res/drawable/app_theme_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true"> - \ No newline at end of file diff --git a/app/src/main/res/drawable/app_theme_night.xml b/app/src/main/res/drawable/app_theme_night.xml index 7fac5d55..d7e17f5d 100644 --- a/app/src/main/res/drawable/app_theme_night.xml +++ b/app/src/main/res/drawable/app_theme_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/back.xml b/app/src/main/res/drawable/back.xml index c4f0873f..ebe4068e 100644 --- a/app/src/main/res/drawable/back.xml +++ b/app/src/main/res/drawable/back.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/block_ads_disabled_day.xml b/app/src/main/res/drawable/block_ads_disabled_day.xml index 81f2d610..b8928479 100644 --- a/app/src/main/res/drawable/block_ads_disabled_day.xml +++ b/app/src/main/res/drawable/block_ads_disabled_day.xml @@ -5,8 +5,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/block_ads_disabled_night.xml b/app/src/main/res/drawable/block_ads_disabled_night.xml index e989a430..f9e3ddd6 100644 --- a/app/src/main/res/drawable/block_ads_disabled_night.xml +++ b/app/src/main/res/drawable/block_ads_disabled_night.xml @@ -5,8 +5,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/block_ads_enabled_day.xml b/app/src/main/res/drawable/block_ads_enabled_day.xml index 706832ae..8fcd6a42 100644 --- a/app/src/main/res/drawable/block_ads_enabled_day.xml +++ b/app/src/main/res/drawable/block_ads_enabled_day.xml @@ -5,8 +5,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/block_ads_enabled_night.xml b/app/src/main/res/drawable/block_ads_enabled_night.xml index e39490a0..dc60af7a 100644 --- a/app/src/main/res/drawable/block_ads_enabled_night.xml +++ b/app/src/main/res/drawable/block_ads_enabled_night.xml @@ -5,8 +5,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/block_all_third_party_requests_disabled_day.xml b/app/src/main/res/drawable/block_all_third_party_requests_disabled_day.xml index bace6577..b2414243 100644 --- a/app/src/main/res/drawable/block_all_third_party_requests_disabled_day.xml +++ b/app/src/main/res/drawable/block_all_third_party_requests_disabled_day.xml @@ -7,8 +7,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/block_all_third_party_requests_disabled_night.xml b/app/src/main/res/drawable/block_all_third_party_requests_disabled_night.xml index 65d94c7e..784953bc 100644 --- a/app/src/main/res/drawable/block_all_third_party_requests_disabled_night.xml +++ b/app/src/main/res/drawable/block_all_third_party_requests_disabled_night.xml @@ -7,8 +7,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/block_all_third_party_requests_enabled_day.xml b/app/src/main/res/drawable/block_all_third_party_requests_enabled_day.xml index 54e80474..bb85d997 100644 --- a/app/src/main/res/drawable/block_all_third_party_requests_enabled_day.xml +++ b/app/src/main/res/drawable/block_all_third_party_requests_enabled_day.xml @@ -7,8 +7,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/block_all_third_party_requests_enabled_night.xml b/app/src/main/res/drawable/block_all_third_party_requests_enabled_night.xml index 57bd626a..707b129e 100644 --- a/app/src/main/res/drawable/block_all_third_party_requests_enabled_night.xml +++ b/app/src/main/res/drawable/block_all_third_party_requests_enabled_night.xml @@ -7,8 +7,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/block_tracking_disabled_day.xml b/app/src/main/res/drawable/block_tracking_disabled_day.xml index fc5037fb..1cba6ede 100644 --- a/app/src/main/res/drawable/block_tracking_disabled_day.xml +++ b/app/src/main/res/drawable/block_tracking_disabled_day.xml @@ -1,18 +1,13 @@ - - + android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/block_tracking_disabled_night.xml b/app/src/main/res/drawable/block_tracking_disabled_night.xml index 44fab862..63bde342 100644 --- a/app/src/main/res/drawable/block_tracking_disabled_night.xml +++ b/app/src/main/res/drawable/block_tracking_disabled_night.xml @@ -1,18 +1,13 @@ - - + android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/block_tracking_enabled_day.xml b/app/src/main/res/drawable/block_tracking_enabled_day.xml index 9fa2641d..e2159338 100644 --- a/app/src/main/res/drawable/block_tracking_enabled_day.xml +++ b/app/src/main/res/drawable/block_tracking_enabled_day.xml @@ -1,18 +1,13 @@ - - + android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/block_tracking_enabled_night.xml b/app/src/main/res/drawable/block_tracking_enabled_night.xml index df514483..322176c1 100644 --- a/app/src/main/res/drawable/block_tracking_enabled_night.xml +++ b/app/src/main/res/drawable/block_tracking_enabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/bookmarks_day.xml b/app/src/main/res/drawable/bookmarks_day.xml index cca74f55..a46c9f17 100644 --- a/app/src/main/res/drawable/bookmarks_day.xml +++ b/app/src/main/res/drawable/bookmarks_day.xml @@ -1,18 +1,12 @@ - - + android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/bookmarks_night.xml b/app/src/main/res/drawable/bookmarks_night.xml index 4caf3514..b92020e2 100644 --- a/app/src/main/res/drawable/bookmarks_night.xml +++ b/app/src/main/res/drawable/bookmarks_night.xml @@ -1,18 +1,12 @@ - - + android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/bottom_app_bar_disabled_day.xml b/app/src/main/res/drawable/bottom_app_bar_disabled_day.xml index 735a435e..313f1a4d 100644 --- a/app/src/main/res/drawable/bottom_app_bar_disabled_day.xml +++ b/app/src/main/res/drawable/bottom_app_bar_disabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/bottom_app_bar_disabled_night.xml b/app/src/main/res/drawable/bottom_app_bar_disabled_night.xml index 0a891e62..f8542ee6 100644 --- a/app/src/main/res/drawable/bottom_app_bar_disabled_night.xml +++ b/app/src/main/res/drawable/bottom_app_bar_disabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/bottom_app_bar_enabled_day.xml b/app/src/main/res/drawable/bottom_app_bar_enabled_day.xml index fbe36d36..7964a686 100644 --- a/app/src/main/res/drawable/bottom_app_bar_enabled_day.xml +++ b/app/src/main/res/drawable/bottom_app_bar_enabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/bottom_app_bar_enabled_night.xml b/app/src/main/res/drawable/bottom_app_bar_enabled_night.xml index 50344376..b7a53006 100644 --- a/app/src/main/res/drawable/bottom_app_bar_enabled_night.xml +++ b/app/src/main/res/drawable/bottom_app_bar_enabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/bug.xml b/app/src/main/res/drawable/bug.xml index c2270aa2..7a5b071f 100644 --- a/app/src/main/res/drawable/bug.xml +++ b/app/src/main/res/drawable/bug.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/bug_cleared_day.xml b/app/src/main/res/drawable/bug_cleared_day.xml index 02a0c8df..cf09bb58 100644 --- a/app/src/main/res/drawable/bug_cleared_day.xml +++ b/app/src/main/res/drawable/bug_cleared_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/bug_cleared_night.xml b/app/src/main/res/drawable/bug_cleared_night.xml index e5959931..9d218c1b 100644 --- a/app/src/main/res/drawable/bug_cleared_night.xml +++ b/app/src/main/res/drawable/bug_cleared_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/bug_warning.xml b/app/src/main/res/drawable/bug_warning.xml index 6c6560ab..1df23608 100644 --- a/app/src/main/res/drawable/bug_warning.xml +++ b/app/src/main/res/drawable/bug_warning.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/cache_cleared_day.xml b/app/src/main/res/drawable/cache_cleared_day.xml index 091b4161..8b185391 100644 --- a/app/src/main/res/drawable/cache_cleared_day.xml +++ b/app/src/main/res/drawable/cache_cleared_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/cache_cleared_night.xml b/app/src/main/res/drawable/cache_cleared_night.xml index 9bf2fa0a..fbf6d794 100644 --- a/app/src/main/res/drawable/cache_cleared_night.xml +++ b/app/src/main/res/drawable/cache_cleared_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/cache_warning.xml b/app/src/main/res/drawable/cache_warning.xml index df3a5c2c..4369ed5a 100644 --- a/app/src/main/res/drawable/cache_warning.xml +++ b/app/src/main/res/drawable/cache_warning.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/clear_everything_disabled.xml b/app/src/main/res/drawable/clear_everything_disabled.xml index cbef7a0f..960aa26d 100644 --- a/app/src/main/res/drawable/clear_everything_disabled.xml +++ b/app/src/main/res/drawable/clear_everything_disabled.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/clear_everything_enabled_day.xml b/app/src/main/res/drawable/clear_everything_enabled_day.xml index 06e30aa9..b90b3f3c 100644 --- a/app/src/main/res/drawable/clear_everything_enabled_day.xml +++ b/app/src/main/res/drawable/clear_everything_enabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/clear_everything_enabled_night.xml b/app/src/main/res/drawable/clear_everything_enabled_night.xml index 295b9257..79560283 100644 --- a/app/src/main/res/drawable/clear_everything_enabled_night.xml +++ b/app/src/main/res/drawable/clear_everything_enabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - diff --git a/app/src/main/res/drawable/close_blue_day.xml b/app/src/main/res/drawable/close_blue_day.xml index adb58f68..0930e1a8 100644 --- a/app/src/main/res/drawable/close_blue_day.xml +++ b/app/src/main/res/drawable/close_blue_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/close_blue_night.xml b/app/src/main/res/drawable/close_blue_night.xml index 8a1732cd..e3c72fc6 100644 --- a/app/src/main/res/drawable/close_blue_night.xml +++ b/app/src/main/res/drawable/close_blue_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/close_day.xml b/app/src/main/res/drawable/close_day.xml index 4d257722..b835b947 100644 --- a/app/src/main/res/drawable/close_day.xml +++ b/app/src/main/res/drawable/close_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/close_night.xml b/app/src/main/res/drawable/close_night.xml index 87a6d967..cad9153a 100644 --- a/app/src/main/res/drawable/close_night.xml +++ b/app/src/main/res/drawable/close_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/cookies_cleared_day.xml b/app/src/main/res/drawable/cookies_cleared_day.xml index 6f9baa8f..6abbdf23 100644 --- a/app/src/main/res/drawable/cookies_cleared_day.xml +++ b/app/src/main/res/drawable/cookies_cleared_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/cookies_cleared_night.xml b/app/src/main/res/drawable/cookies_cleared_night.xml index b87b1cd8..bc980e5d 100644 --- a/app/src/main/res/drawable/cookies_cleared_night.xml +++ b/app/src/main/res/drawable/cookies_cleared_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/cookies_disabled_day.xml b/app/src/main/res/drawable/cookies_disabled_day.xml index 4468a8f7..a2eae91c 100644 --- a/app/src/main/res/drawable/cookies_disabled_day.xml +++ b/app/src/main/res/drawable/cookies_disabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/cookies_disabled_night.xml b/app/src/main/res/drawable/cookies_disabled_night.xml index 5bbbefdf..d0922eae 100644 --- a/app/src/main/res/drawable/cookies_disabled_night.xml +++ b/app/src/main/res/drawable/cookies_disabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/cookies_enabled.xml b/app/src/main/res/drawable/cookies_enabled.xml index 361bafe4..6e982b6c 100644 --- a/app/src/main/res/drawable/cookies_enabled.xml +++ b/app/src/main/res/drawable/cookies_enabled.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/cookies_warning.xml b/app/src/main/res/drawable/cookies_warning.xml index 445ce90b..ea405395 100644 --- a/app/src/main/res/drawable/cookies_warning.xml +++ b/app/src/main/res/drawable/cookies_warning.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/copy_day.xml b/app/src/main/res/drawable/copy_day.xml index 05a8fa62..513ff017 100644 --- a/app/src/main/res/drawable/copy_day.xml +++ b/app/src/main/res/drawable/copy_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/copy_enabled_day.xml b/app/src/main/res/drawable/copy_enabled_day.xml index 32d7b9d4..2435c22a 100644 --- a/app/src/main/res/drawable/copy_enabled_day.xml +++ b/app/src/main/res/drawable/copy_enabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/copy_enabled_night.xml b/app/src/main/res/drawable/copy_enabled_night.xml index 1ff95b11..ec0b91e7 100644 --- a/app/src/main/res/drawable/copy_enabled_night.xml +++ b/app/src/main/res/drawable/copy_enabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/copy_night.xml b/app/src/main/res/drawable/copy_night.xml index 1742244f..bee5cae3 100644 --- a/app/src/main/res/drawable/copy_night.xml +++ b/app/src/main/res/drawable/copy_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/create_bookmark.xml b/app/src/main/res/drawable/create_bookmark.xml index ae210b28..800fad4e 100644 --- a/app/src/main/res/drawable/create_bookmark.xml +++ b/app/src/main/res/drawable/create_bookmark.xml @@ -7,9 +7,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - diff --git a/app/src/main/res/drawable/create_folder.xml b/app/src/main/res/drawable/create_folder.xml index 5b598c2c..91e0b293 100644 --- a/app/src/main/res/drawable/create_folder.xml +++ b/app/src/main/res/drawable/create_folder.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/custom_user_agent_enabled_day.xml b/app/src/main/res/drawable/custom_user_agent_enabled_day.xml index 1f31c430..940fde6a 100644 --- a/app/src/main/res/drawable/custom_user_agent_enabled_day.xml +++ b/app/src/main/res/drawable/custom_user_agent_enabled_day.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/custom_user_agent_enabled_night.xml b/app/src/main/res/drawable/custom_user_agent_enabled_night.xml index 1b67c431..19fe9d6f 100644 --- a/app/src/main/res/drawable/custom_user_agent_enabled_night.xml +++ b/app/src/main/res/drawable/custom_user_agent_enabled_night.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/custom_user_agent_ghosted_day.xml b/app/src/main/res/drawable/custom_user_agent_ghosted_day.xml index bb0084fe..dc3c6a8f 100644 --- a/app/src/main/res/drawable/custom_user_agent_ghosted_day.xml +++ b/app/src/main/res/drawable/custom_user_agent_ghosted_day.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/custom_user_agent_ghosted_night.xml b/app/src/main/res/drawable/custom_user_agent_ghosted_night.xml index 903cf518..760c7cc2 100644 --- a/app/src/main/res/drawable/custom_user_agent_ghosted_night.xml +++ b/app/src/main/res/drawable/custom_user_agent_ghosted_night.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/delete_day.xml b/app/src/main/res/drawable/delete_day.xml index 4f5db2a2..acf8cae0 100644 --- a/app/src/main/res/drawable/delete_day.xml +++ b/app/src/main/res/drawable/delete_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/delete_disabled.xml b/app/src/main/res/drawable/delete_disabled.xml index 99f1e643..1613ce95 100644 --- a/app/src/main/res/drawable/delete_disabled.xml +++ b/app/src/main/res/drawable/delete_disabled.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/delete_night.xml b/app/src/main/res/drawable/delete_night.xml index 8c5e5ee2..689cbae8 100644 --- a/app/src/main/res/drawable/delete_night.xml +++ b/app/src/main/res/drawable/delete_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - diff --git a/app/src/main/res/drawable/dom_storage_cleared_day.xml b/app/src/main/res/drawable/dom_storage_cleared_day.xml index 7a117c6f..6af9fa08 100644 --- a/app/src/main/res/drawable/dom_storage_cleared_day.xml +++ b/app/src/main/res/drawable/dom_storage_cleared_day.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/dom_storage_cleared_night.xml b/app/src/main/res/drawable/dom_storage_cleared_night.xml index 971c21ee..b5f8202f 100644 --- a/app/src/main/res/drawable/dom_storage_cleared_night.xml +++ b/app/src/main/res/drawable/dom_storage_cleared_night.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/dom_storage_disabled_day.xml b/app/src/main/res/drawable/dom_storage_disabled_day.xml index 3edbfb91..145ba997 100644 --- a/app/src/main/res/drawable/dom_storage_disabled_day.xml +++ b/app/src/main/res/drawable/dom_storage_disabled_day.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/dom_storage_disabled_night.xml b/app/src/main/res/drawable/dom_storage_disabled_night.xml index e123a560..cb60ee03 100644 --- a/app/src/main/res/drawable/dom_storage_disabled_night.xml +++ b/app/src/main/res/drawable/dom_storage_disabled_night.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/dom_storage_enabled.xml b/app/src/main/res/drawable/dom_storage_enabled.xml index 5a5e4955..1a50aafc 100644 --- a/app/src/main/res/drawable/dom_storage_enabled.xml +++ b/app/src/main/res/drawable/dom_storage_enabled.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/dom_storage_ghosted_day.xml b/app/src/main/res/drawable/dom_storage_ghosted_day.xml index e26431ac..5215d138 100644 --- a/app/src/main/res/drawable/dom_storage_ghosted_day.xml +++ b/app/src/main/res/drawable/dom_storage_ghosted_day.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/dom_storage_ghosted_night.xml b/app/src/main/res/drawable/dom_storage_ghosted_night.xml index 800ad172..3e57af1a 100644 --- a/app/src/main/res/drawable/dom_storage_ghosted_night.xml +++ b/app/src/main/res/drawable/dom_storage_ghosted_night.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/dom_storage_warning.xml b/app/src/main/res/drawable/dom_storage_warning.xml index c7e772af..c0282301 100644 --- a/app/src/main/res/drawable/dom_storage_warning.xml +++ b/app/src/main/res/drawable/dom_storage_warning.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/domains_day.xml b/app/src/main/res/drawable/domains_day.xml index 23a4bab2..75aba930 100644 --- a/app/src/main/res/drawable/domains_day.xml +++ b/app/src/main/res/drawable/domains_day.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/domains_night.xml b/app/src/main/res/drawable/domains_night.xml index 28f64bb2..b9a481be 100644 --- a/app/src/main/res/drawable/domains_night.xml +++ b/app/src/main/res/drawable/domains_night.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/download_with_external_app_disabled_day.xml b/app/src/main/res/drawable/download_with_external_app_disabled_day.xml index de9ffcd8..fb28ef35 100644 --- a/app/src/main/res/drawable/download_with_external_app_disabled_day.xml +++ b/app/src/main/res/drawable/download_with_external_app_disabled_day.xml @@ -1,26 +1,19 @@ + Modifications copyright © 2017,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> - + android:autoMirrored="true" > - + android:fillColor="@color/gray_600" + android:pathData="M2.096,3.377H15.51c1.064,0 1.916,0.862 1.916,1.916V9.126H15.51V5.293H2.096V18.707H15.51v-3.833h1.916v3.833c0,1.054 -0.853,1.916 -1.916,1.916H2.096c-1.054,0 -1.916,-0.862 -1.916,-1.916V5.293c0,-1.054 0.862,-1.916 1.916,-1.916z" /> - + android:fillColor="@color/gray_600" + android:pathData="m17.845,15.44 l1.351,1.351 4.791,-4.791 -4.791,-4.791 -1.351,1.351 2.472,2.482H8.096v1.916H20.317Z" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/download_with_external_app_disabled_night.xml b/app/src/main/res/drawable/download_with_external_app_disabled_night.xml index 38e44bbd..d15bf91f 100644 --- a/app/src/main/res/drawable/download_with_external_app_disabled_night.xml +++ b/app/src/main/res/drawable/download_with_external_app_disabled_night.xml @@ -1,26 +1,19 @@ + Modifications copyright © 2017,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> - + android:autoMirrored="true" > - + android:fillColor="@color/gray_500" + android:pathData="M2.096,3.377H15.51c1.064,0 1.916,0.862 1.916,1.916V9.126H15.51V5.293H2.096V18.707H15.51v-3.833h1.916v3.833c0,1.054 -0.853,1.916 -1.916,1.916H2.096c-1.054,0 -1.916,-0.862 -1.916,-1.916V5.293c0,-1.054 0.862,-1.916 1.916,-1.916z" /> - + android:fillColor="@color/gray_500" + android:pathData="m17.845,15.44 l1.351,1.351 4.791,-4.791 -4.791,-4.791 -1.351,1.351 2.472,2.482H8.096v1.916H20.317Z" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/download_with_external_app_enabled_day.xml b/app/src/main/res/drawable/download_with_external_app_enabled_day.xml index 971eec77..b80db423 100644 --- a/app/src/main/res/drawable/download_with_external_app_enabled_day.xml +++ b/app/src/main/res/drawable/download_with_external_app_enabled_day.xml @@ -1,26 +1,19 @@ + Modifications copyright © 2017,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> - + android:autoMirrored="true" > - + android:fillColor="@color/blue_800" + android:pathData="M2.096,3.377H15.51c1.064,0 1.916,0.862 1.916,1.916V9.126H15.51V5.293H2.096V18.707H15.51v-3.833h1.916v3.833c0,1.054 -0.853,1.916 -1.916,1.916H2.096c-1.054,0 -1.916,-0.862 -1.916,-1.916V5.293c0,-1.054 0.862,-1.916 1.916,-1.916z" /> - + android:fillColor="@color/blue_800" + android:pathData="m17.845,15.44 l1.351,1.351 4.791,-4.791 -4.791,-4.791 -1.351,1.351 2.472,2.482H8.096v1.916H20.317Z" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/download_with_external_app_enabled_night.xml b/app/src/main/res/drawable/download_with_external_app_enabled_night.xml index 78b6d66d..c5bc5186 100644 --- a/app/src/main/res/drawable/download_with_external_app_enabled_night.xml +++ b/app/src/main/res/drawable/download_with_external_app_enabled_night.xml @@ -1,26 +1,19 @@ + Modifications copyright © 2017,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> - + android:autoMirrored="true" > - + android:fillColor="@color/violet_500" + android:pathData="M2.096,3.377H15.51c1.064,0 1.916,0.862 1.916,1.916V9.126H15.51V5.293H2.096V18.707H15.51v-3.833h1.916v3.833c0,1.054 -0.853,1.916 -1.916,1.916H2.096c-1.054,0 -1.916,-0.862 -1.916,-1.916V5.293c0,-1.054 0.862,-1.916 1.916,-1.916z" /> - + android:fillColor="@color/violet_500" + android:pathData="m17.845,15.44 l1.351,1.351 4.791,-4.791 -4.791,-4.791 -1.351,1.351 2.472,2.482H8.096v1.916H20.317Z" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/downloads_enabled_day.xml b/app/src/main/res/drawable/downloads_enabled_day.xml index a242b72e..d16ba682 100644 --- a/app/src/main/res/drawable/downloads_enabled_day.xml +++ b/app/src/main/res/drawable/downloads_enabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/downloads_enabled_night.xml b/app/src/main/res/drawable/downloads_enabled_night.xml index c485dd5f..0ab0af0a 100644 --- a/app/src/main/res/drawable/downloads_enabled_night.xml +++ b/app/src/main/res/drawable/downloads_enabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/edit_day.xml b/app/src/main/res/drawable/edit_day.xml index 3508d797..5468c706 100644 --- a/app/src/main/res/drawable/edit_day.xml +++ b/app/src/main/res/drawable/edit_day.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/edit_night.xml b/app/src/main/res/drawable/edit_night.xml index bad07f55..57be2b2c 100644 --- a/app/src/main/res/drawable/edit_night.xml +++ b/app/src/main/res/drawable/edit_night.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/folder_dark_blue.xml b/app/src/main/res/drawable/folder_dark_blue.xml index 00bb4efa..4b381e0d 100644 --- a/app/src/main/res/drawable/folder_dark_blue.xml +++ b/app/src/main/res/drawable/folder_dark_blue.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - diff --git a/app/src/main/res/drawable/folder_gray.xml b/app/src/main/res/drawable/folder_gray.xml index a5b27aae..9fac7f5a 100644 --- a/app/src/main/res/drawable/folder_gray.xml +++ b/app/src/main/res/drawable/folder_gray.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - diff --git a/app/src/main/res/drawable/font_size_day.xml b/app/src/main/res/drawable/font_size_day.xml index 9f7596e8..af023a46 100644 --- a/app/src/main/res/drawable/font_size_day.xml +++ b/app/src/main/res/drawable/font_size_day.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/font_size_night.xml b/app/src/main/res/drawable/font_size_night.xml index 33936791..a27a9403 100644 --- a/app/src/main/res/drawable/font_size_night.xml +++ b/app/src/main/res/drawable/font_size_night.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/form_data_cleared_day.xml b/app/src/main/res/drawable/form_data_cleared_day.xml index a1d2d6d0..84b3941c 100644 --- a/app/src/main/res/drawable/form_data_cleared_day.xml +++ b/app/src/main/res/drawable/form_data_cleared_day.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - diff --git a/app/src/main/res/drawable/form_data_cleared_night.xml b/app/src/main/res/drawable/form_data_cleared_night.xml index 5909f78e..1dd81cfd 100644 --- a/app/src/main/res/drawable/form_data_cleared_night.xml +++ b/app/src/main/res/drawable/form_data_cleared_night.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/form_data_disabled_day.xml b/app/src/main/res/drawable/form_data_disabled_day.xml index 15cc2099..eb06b7d3 100644 --- a/app/src/main/res/drawable/form_data_disabled_day.xml +++ b/app/src/main/res/drawable/form_data_disabled_day.xml @@ -1,18 +1,14 @@ - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/form_data_disabled_night.xml b/app/src/main/res/drawable/form_data_disabled_night.xml index b3c51a9b..d3818dd4 100644 --- a/app/src/main/res/drawable/form_data_disabled_night.xml +++ b/app/src/main/res/drawable/form_data_disabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/form_data_enabled.xml b/app/src/main/res/drawable/form_data_enabled.xml index ce0cfbf5..432453df 100644 --- a/app/src/main/res/drawable/form_data_enabled.xml +++ b/app/src/main/res/drawable/form_data_enabled.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/form_data_warning.xml b/app/src/main/res/drawable/form_data_warning.xml index f0a766d1..3ab13bf5 100644 --- a/app/src/main/res/drawable/form_data_warning.xml +++ b/app/src/main/res/drawable/form_data_warning.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/forward.xml b/app/src/main/res/drawable/forward.xml index bea8b20f..1b8376dd 100644 --- a/app/src/main/res/drawable/forward.xml +++ b/app/src/main/res/drawable/forward.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/full_screen_disabled_day.xml b/app/src/main/res/drawable/full_screen_disabled_day.xml index 61c4464e..8dda83e6 100644 --- a/app/src/main/res/drawable/full_screen_disabled_day.xml +++ b/app/src/main/res/drawable/full_screen_disabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/full_screen_disabled_night.xml b/app/src/main/res/drawable/full_screen_disabled_night.xml index a691296d..1733a534 100644 --- a/app/src/main/res/drawable/full_screen_disabled_night.xml +++ b/app/src/main/res/drawable/full_screen_disabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/full_screen_enabled_day.xml b/app/src/main/res/drawable/full_screen_enabled_day.xml index 4e8ee23f..2d7de7de 100644 --- a/app/src/main/res/drawable/full_screen_enabled_day.xml +++ b/app/src/main/res/drawable/full_screen_enabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/full_screen_enabled_night.xml b/app/src/main/res/drawable/full_screen_enabled_night.xml index 9db12ff8..259892b9 100644 --- a/app/src/main/res/drawable/full_screen_enabled_night.xml +++ b/app/src/main/res/drawable/full_screen_enabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/guide.xml b/app/src/main/res/drawable/guide.xml index 503f81bf..5e2009fc 100644 --- a/app/src/main/res/drawable/guide.xml +++ b/app/src/main/res/drawable/guide.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/history.xml b/app/src/main/res/drawable/history.xml index 91cd43f4..01fd778f 100644 --- a/app/src/main/res/drawable/history.xml +++ b/app/src/main/res/drawable/history.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/home_enabled_day.xml b/app/src/main/res/drawable/home_enabled_day.xml index fdd71573..0762be20 100644 --- a/app/src/main/res/drawable/home_enabled_day.xml +++ b/app/src/main/res/drawable/home_enabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/home_enabled_night.xml b/app/src/main/res/drawable/home_enabled_night.xml index 1f683aae..5e3e731c 100644 --- a/app/src/main/res/drawable/home_enabled_night.xml +++ b/app/src/main/res/drawable/home_enabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/images_disabled_day.xml b/app/src/main/res/drawable/images_disabled_day.xml index 293dc593..94c9c668 100644 --- a/app/src/main/res/drawable/images_disabled_day.xml +++ b/app/src/main/res/drawable/images_disabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/images_disabled_night.xml b/app/src/main/res/drawable/images_disabled_night.xml index 568c7385..6f485fde 100644 --- a/app/src/main/res/drawable/images_disabled_night.xml +++ b/app/src/main/res/drawable/images_disabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/images_enabled_day.xml b/app/src/main/res/drawable/images_enabled_day.xml index c43a90e2..ba92caea 100644 --- a/app/src/main/res/drawable/images_enabled_day.xml +++ b/app/src/main/res/drawable/images_enabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/images_enabled_night.xml b/app/src/main/res/drawable/images_enabled_night.xml index 4dee11f3..3cc63a8d 100644 --- a/app/src/main/res/drawable/images_enabled_night.xml +++ b/app/src/main/res/drawable/images_enabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/images_options_day.xml b/app/src/main/res/drawable/images_options_day.xml index 26596282..c5172e34 100644 --- a/app/src/main/res/drawable/images_options_day.xml +++ b/app/src/main/res/drawable/images_options_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/images_options_night.xml b/app/src/main/res/drawable/images_options_night.xml index ff0d06cb..9b356f13 100644 --- a/app/src/main/res/drawable/images_options_night.xml +++ b/app/src/main/res/drawable/images_options_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/import_export.xml b/app/src/main/res/drawable/import_export.xml index 577fde7e..27341e3a 100644 --- a/app/src/main/res/drawable/import_export.xml +++ b/app/src/main/res/drawable/import_export.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/incognito_mode_disabled_day.xml b/app/src/main/res/drawable/incognito_mode_disabled_day.xml index c6b62081..394af977 100644 --- a/app/src/main/res/drawable/incognito_mode_disabled_day.xml +++ b/app/src/main/res/drawable/incognito_mode_disabled_day.xml @@ -1,18 +1,13 @@ - - + android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/incognito_mode_disabled_night.xml b/app/src/main/res/drawable/incognito_mode_disabled_night.xml index b540b3ba..c34f5ebb 100644 --- a/app/src/main/res/drawable/incognito_mode_disabled_night.xml +++ b/app/src/main/res/drawable/incognito_mode_disabled_night.xml @@ -1,18 +1,13 @@ - - + android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/incognito_mode_enabled_day.xml b/app/src/main/res/drawable/incognito_mode_enabled_day.xml index 97364d78..d83c062b 100644 --- a/app/src/main/res/drawable/incognito_mode_enabled_day.xml +++ b/app/src/main/res/drawable/incognito_mode_enabled_day.xml @@ -1,18 +1,13 @@ - - + android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/incognito_mode_enabled_night.xml b/app/src/main/res/drawable/incognito_mode_enabled_night.xml index 725bca08..9b520167 100644 --- a/app/src/main/res/drawable/incognito_mode_enabled_night.xml +++ b/app/src/main/res/drawable/incognito_mode_enabled_night.xml @@ -1,18 +1,13 @@ - - + android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/javascript_enabled.xml b/app/src/main/res/drawable/javascript_enabled.xml index fb8d1810..29b63607 100644 --- a/app/src/main/res/drawable/javascript_enabled.xml +++ b/app/src/main/res/drawable/javascript_enabled.xml @@ -1,5 +1,5 @@ + Modifications copyright © 2016-2017,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> - + + android:fillColor="@color/red_900" + android:pathData="m128,12.8 l-94.25,41.89 0,62.84c0,58.12 40.22,112.48 94.25,125.67 54.04,-13.2 94.25,-67.55 94.25,-125.67l0,-62.84z" /> - + + android:fillColor="@color/red_700" + android:pathData="m128,0 l-104.73,46.55 0,69.82C23.27,180.95 67.96,241.34 128,256 188.04,241.34 232.73,180.95 232.73,116.36l0,-69.82L128,0ZM128,127.88 L209.45,127.88C203.29,175.83 171.29,218.53 128,231.91l0,-103.91 -81.45,0 0,-66.33L128,25.48l0,102.4z" /> - + \ No newline at end of file diff --git a/app/src/main/res/drawable/lock_day.xml b/app/src/main/res/drawable/lock_day.xml index e1a756db..ff7a9dab 100644 --- a/app/src/main/res/drawable/lock_day.xml +++ b/app/src/main/res/drawable/lock_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/lock_night.xml b/app/src/main/res/drawable/lock_night.xml index 4b5d922c..2bf08240 100644 --- a/app/src/main/res/drawable/lock_night.xml +++ b/app/src/main/res/drawable/lock_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/modify_url_disabled_day.xml b/app/src/main/res/drawable/modify_url_disabled_day.xml index 20ff1976..7031ab67 100644 --- a/app/src/main/res/drawable/modify_url_disabled_day.xml +++ b/app/src/main/res/drawable/modify_url_disabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/modify_url_disabled_night.xml b/app/src/main/res/drawable/modify_url_disabled_night.xml index df266e46..5db10d5d 100644 --- a/app/src/main/res/drawable/modify_url_disabled_night.xml +++ b/app/src/main/res/drawable/modify_url_disabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/modify_url_enabled_day.xml b/app/src/main/res/drawable/modify_url_enabled_day.xml index 2f576652..b6357b1e 100644 --- a/app/src/main/res/drawable/modify_url_enabled_day.xml +++ b/app/src/main/res/drawable/modify_url_enabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/modify_url_enabled_night.xml b/app/src/main/res/drawable/modify_url_enabled_night.xml index 0a089e2c..1cf02cb0 100644 --- a/app/src/main/res/drawable/modify_url_enabled_night.xml +++ b/app/src/main/res/drawable/modify_url_enabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/more_disabled_day.xml b/app/src/main/res/drawable/more_disabled_day.xml index bd75de68..9f2f5f1a 100644 --- a/app/src/main/res/drawable/more_disabled_day.xml +++ b/app/src/main/res/drawable/more_disabled_day.xml @@ -1,18 +1,13 @@ - - + android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/more_disabled_night.xml b/app/src/main/res/drawable/more_disabled_night.xml index 94f65cf0..2f0d07bf 100644 --- a/app/src/main/res/drawable/more_disabled_night.xml +++ b/app/src/main/res/drawable/more_disabled_night.xml @@ -1,18 +1,13 @@ - - + android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/more_enabled_day.xml b/app/src/main/res/drawable/more_enabled_day.xml index f456ac5f..19f2727a 100644 --- a/app/src/main/res/drawable/more_enabled_day.xml +++ b/app/src/main/res/drawable/more_enabled_day.xml @@ -1,18 +1,13 @@ - - + android:width="24dp" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/more_enabled_night.xml b/app/src/main/res/drawable/more_enabled_night.xml index abe7ec7c..9736e36a 100644 --- a/app/src/main/res/drawable/more_enabled_night.xml +++ b/app/src/main/res/drawable/more_enabled_night.xml @@ -1,18 +1,13 @@ - - + android:width="24dp" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/move_down_disabled.xml b/app/src/main/res/drawable/move_down_disabled.xml index 580f2430..ab0c16da 100644 --- a/app/src/main/res/drawable/move_down_disabled.xml +++ b/app/src/main/res/drawable/move_down_disabled.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/move_down_enabled_day.xml b/app/src/main/res/drawable/move_down_enabled_day.xml index 643f17c4..5dc4af5f 100644 --- a/app/src/main/res/drawable/move_down_enabled_day.xml +++ b/app/src/main/res/drawable/move_down_enabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/move_down_enabled_night.xml b/app/src/main/res/drawable/move_down_enabled_night.xml index bf73f3be..f5a48334 100644 --- a/app/src/main/res/drawable/move_down_enabled_night.xml +++ b/app/src/main/res/drawable/move_down_enabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/move_to_folder_blue_day.xml b/app/src/main/res/drawable/move_to_folder_blue_day.xml index c87a6451..024d530a 100644 --- a/app/src/main/res/drawable/move_to_folder_blue_day.xml +++ b/app/src/main/res/drawable/move_to_folder_blue_day.xml @@ -1,19 +1,14 @@ - - + Modifications copyright © 2017,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/move_to_folder_blue_night.xml b/app/src/main/res/drawable/move_to_folder_blue_night.xml index 1464f6ec..2d1b907f 100644 --- a/app/src/main/res/drawable/move_to_folder_blue_night.xml +++ b/app/src/main/res/drawable/move_to_folder_blue_night.xml @@ -1,19 +1,14 @@ - - + Modifications copyright © 2017,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/move_to_folder_day.xml b/app/src/main/res/drawable/move_to_folder_day.xml index b0adbd17..8a6c8280 100644 --- a/app/src/main/res/drawable/move_to_folder_day.xml +++ b/app/src/main/res/drawable/move_to_folder_day.xml @@ -1,19 +1,14 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/move_to_folder_night.xml b/app/src/main/res/drawable/move_to_folder_night.xml index ca34bdc0..cb94b7ed 100644 --- a/app/src/main/res/drawable/move_to_folder_night.xml +++ b/app/src/main/res/drawable/move_to_folder_night.xml @@ -1,19 +1,14 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/move_up_disabled.xml b/app/src/main/res/drawable/move_up_disabled.xml index 4fe0a539..268ed193 100644 --- a/app/src/main/res/drawable/move_up_disabled.xml +++ b/app/src/main/res/drawable/move_up_disabled.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/move_up_enabled_day.xml b/app/src/main/res/drawable/move_up_enabled_day.xml index 26437dfd..c136b671 100644 --- a/app/src/main/res/drawable/move_up_enabled_day.xml +++ b/app/src/main/res/drawable/move_up_enabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/move_up_enabled_night.xml b/app/src/main/res/drawable/move_up_enabled_night.xml index 6f086af0..7d9959fb 100644 --- a/app/src/main/res/drawable/move_up_enabled_night.xml +++ b/app/src/main/res/drawable/move_up_enabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/next.xml b/app/src/main/res/drawable/next.xml index 65484f23..877ef016 100644 --- a/app/src/main/res/drawable/next.xml +++ b/app/src/main/res/drawable/next.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/previous.xml b/app/src/main/res/drawable/previous.xml index 23365e0d..27ca26a9 100644 --- a/app/src/main/res/drawable/previous.xml +++ b/app/src/main/res/drawable/previous.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/privacy_browser_foreground.xml b/app/src/main/res/drawable/privacy_browser_foreground.xml index 27aaba1b..3b233189 100644 --- a/app/src/main/res/drawable/privacy_browser_foreground.xml +++ b/app/src/main/res/drawable/privacy_browser_foreground.xml @@ -1,6 +1,5 @@ - + Modifications copyright © 2016-2017,2021-2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> - + + android:fillColor="@color/blue_900" + android:pathData="m128,12.8 l-94.255,41.891v62.836c0,58.124 40.215,112.477 94.255,125.673 54.039,-13.196 94.255,-67.549 94.255,-125.673v-62.836z" /> - + + android:fillColor="@color/blue_700" + android:pathData="m128,0 l-104.727,46.545v69.818C23.273,180.945 67.956,241.338 128,256 188.044,241.338 232.727,180.945 232.727,116.364v-69.818zM128,127.884h81.455C203.287,175.825 171.287,218.531 128,231.913L128,128L46.545,128L46.545,61.673L128,25.484Z" /> - + + android:fillColor="@color/white" + android:pathData="m127.92,48.214c-44.042,0 -79.706,35.744 -79.706,79.786 0,44.042 35.664,79.786 79.706,79.786 44.121,0 79.865,-35.744 79.865,-79.786 0,-44.042 -35.744,-79.786 -79.865,-79.786zM183.212,96.086h-23.537c-2.553,-9.973 -6.223,-19.547 -11.01,-28.404 14.681,5.026 26.888,15.239 34.547,28.404zM128,64.491c6.622,9.574 11.808,20.186 15.239,31.595h-30.478c3.431,-11.409 8.617,-22.021 15.239,-31.595zM66.246,143.957C64.969,138.851 64.172,133.505 64.172,128c0,-5.505 0.798,-10.851 2.074,-15.957h26.968c-0.638,5.266 -1.117,10.532 -1.117,15.957 0,5.425 0.479,10.691 1.117,15.957zM72.788,159.914L96.325,159.914c2.553,9.973 6.223,19.547 11.01,28.404C92.655,183.291 80.448,173.159 72.788,159.914ZM96.325,96.086L72.788,96.086c7.659,-13.244 19.867,-23.377 34.547,-28.404 -4.787,8.856 -8.457,18.43 -11.01,28.404zM128,191.509c-6.622,-9.574 -11.808,-20.186 -15.239,-31.595h30.478C139.808,171.324 134.622,181.935 128,191.509ZM146.67,143.957h-37.34c-0.718,-5.266 -1.277,-10.532 -1.277,-15.957 0,-5.425 0.559,-10.771 1.277,-15.957h37.34c0.718,5.186 1.277,10.532 1.277,15.957 0,5.425 -0.558,10.691 -1.277,15.957zM148.664,188.318c4.787,-8.856 8.457,-18.43 11.01,-28.404h23.537c-7.659,13.165 -19.867,23.377 -34.547,28.404zM162.786,143.957c0.638,-5.266 1.117,-10.532 1.117,-15.957 0,-5.425 -0.479,-10.691 -1.117,-15.957h26.968c1.277,5.106 2.074,10.452 2.074,15.957 0,5.505 -0.798,10.851 -2.074,15.957z" /> - + \ No newline at end of file diff --git a/app/src/main/res/drawable/privacy_mode.xml b/app/src/main/res/drawable/privacy_mode.xml index eb264d6a..c62bb8fc 100644 --- a/app/src/main/res/drawable/privacy_mode.xml +++ b/app/src/main/res/drawable/privacy_mode.xml @@ -1,5 +1,5 @@ + Modifications copyright © 2016-2017,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> - + + android:fillColor="@color/blue_900" + android:pathData="m128,12.8 l-94.25,41.89 0,62.84c0,58.12 40.22,112.48 94.25,125.67 54.04,-13.2 94.25,-67.55 94.25,-125.67l0,-62.84z" /> - + + android:fillColor="@color/blue_700" + android:pathData="m128,0 l-104.73,46.55 0,69.82C23.27,180.95 67.96,241.34 128,256 188.04,241.34 232.73,180.95 232.73,116.36l0,-69.82L128,0ZM128,127.88 L209.45,127.88C203.29,175.83 171.29,218.53 128,231.91l0,-103.91 -81.45,0 0,-66.33L128,25.48l0,102.4z" /> - + \ No newline at end of file diff --git a/app/src/main/res/drawable/proxy_disabled_day.xml b/app/src/main/res/drawable/proxy_disabled_day.xml index 1ad61f02..20754774 100644 --- a/app/src/main/res/drawable/proxy_disabled_day.xml +++ b/app/src/main/res/drawable/proxy_disabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/proxy_disabled_night.xml b/app/src/main/res/drawable/proxy_disabled_night.xml index 5a85d603..ac3c64c4 100644 --- a/app/src/main/res/drawable/proxy_disabled_night.xml +++ b/app/src/main/res/drawable/proxy_disabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/proxy_enabled_day.xml b/app/src/main/res/drawable/proxy_enabled_day.xml index 17a8aff5..627d793a 100644 --- a/app/src/main/res/drawable/proxy_enabled_day.xml +++ b/app/src/main/res/drawable/proxy_enabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/proxy_enabled_night.xml b/app/src/main/res/drawable/proxy_enabled_night.xml index d6366157..b42095e1 100644 --- a/app/src/main/res/drawable/proxy_enabled_night.xml +++ b/app/src/main/res/drawable/proxy_enabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/proxy_ghosted_day.xml b/app/src/main/res/drawable/proxy_ghosted_day.xml index 7e9ade75..11f30c2c 100644 --- a/app/src/main/res/drawable/proxy_ghosted_day.xml +++ b/app/src/main/res/drawable/proxy_ghosted_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/proxy_ghosted_night.xml b/app/src/main/res/drawable/proxy_ghosted_night.xml index 42c77402..d3b2f206 100644 --- a/app/src/main/res/drawable/proxy_ghosted_night.xml +++ b/app/src/main/res/drawable/proxy_ghosted_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/refresh_disabled_day.xml b/app/src/main/res/drawable/refresh_disabled_day.xml index 78c598f3..f2579b99 100644 --- a/app/src/main/res/drawable/refresh_disabled_day.xml +++ b/app/src/main/res/drawable/refresh_disabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/refresh_disabled_night.xml b/app/src/main/res/drawable/refresh_disabled_night.xml index 57b9f830..80161ccb 100644 --- a/app/src/main/res/drawable/refresh_disabled_night.xml +++ b/app/src/main/res/drawable/refresh_disabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/refresh_enabled_day.xml b/app/src/main/res/drawable/refresh_enabled_day.xml index 947369d0..a1d909d3 100644 --- a/app/src/main/res/drawable/refresh_enabled_day.xml +++ b/app/src/main/res/drawable/refresh_enabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/refresh_enabled_night.xml b/app/src/main/res/drawable/refresh_enabled_night.xml index 8d1964d2..cf4ff615 100644 --- a/app/src/main/res/drawable/refresh_enabled_night.xml +++ b/app/src/main/res/drawable/refresh_enabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/save_day.xml b/app/src/main/res/drawable/save_day.xml index 9c46e824..34158246 100644 --- a/app/src/main/res/drawable/save_day.xml +++ b/app/src/main/res/drawable/save_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/save_night.xml b/app/src/main/res/drawable/save_night.xml index 21e219fd..3766d299 100644 --- a/app/src/main/res/drawable/save_night.xml +++ b/app/src/main/res/drawable/save_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/save_text_day.xml b/app/src/main/res/drawable/save_text_day.xml index 75b990f2..7d7795a1 100644 --- a/app/src/main/res/drawable/save_text_day.xml +++ b/app/src/main/res/drawable/save_text_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/save_text_night.xml b/app/src/main/res/drawable/save_text_night.xml index 91469a3f..220c4fc3 100644 --- a/app/src/main/res/drawable/save_text_night.xml +++ b/app/src/main/res/drawable/save_text_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/search_custom_url_enabled_day.xml b/app/src/main/res/drawable/search_custom_url_enabled_day.xml index 1dc7aca4..9c6aae01 100644 --- a/app/src/main/res/drawable/search_custom_url_enabled_day.xml +++ b/app/src/main/res/drawable/search_custom_url_enabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/search_custom_url_enabled_night.xml b/app/src/main/res/drawable/search_custom_url_enabled_night.xml index f9b1ae41..effe2e9f 100644 --- a/app/src/main/res/drawable/search_custom_url_enabled_night.xml +++ b/app/src/main/res/drawable/search_custom_url_enabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/search_custom_url_ghosted_day.xml b/app/src/main/res/drawable/search_custom_url_ghosted_day.xml index 02c7e37d..3bb64c82 100644 --- a/app/src/main/res/drawable/search_custom_url_ghosted_day.xml +++ b/app/src/main/res/drawable/search_custom_url_ghosted_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/search_custom_url_ghosted_night.xml b/app/src/main/res/drawable/search_custom_url_ghosted_night.xml index 97d5e5db..65fb141e 100644 --- a/app/src/main/res/drawable/search_custom_url_ghosted_night.xml +++ b/app/src/main/res/drawable/search_custom_url_ghosted_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/search_enabled_day.xml b/app/src/main/res/drawable/search_enabled_day.xml index 998cf366..fd3fb78e 100644 --- a/app/src/main/res/drawable/search_enabled_day.xml +++ b/app/src/main/res/drawable/search_enabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/search_enabled_night.xml b/app/src/main/res/drawable/search_enabled_night.xml index 22da99ad..67ee1a79 100644 --- a/app/src/main/res/drawable/search_enabled_night.xml +++ b/app/src/main/res/drawable/search_enabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/select_all_day.xml b/app/src/main/res/drawable/select_all_day.xml index e066dd5a..c2663900 100644 --- a/app/src/main/res/drawable/select_all_day.xml +++ b/app/src/main/res/drawable/select_all_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/select_all_night.xml b/app/src/main/res/drawable/select_all_night.xml index 6b33ab62..3b5335f1 100644 --- a/app/src/main/res/drawable/select_all_night.xml +++ b/app/src/main/res/drawable/select_all_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/settings.xml b/app/src/main/res/drawable/settings.xml index eafa18c6..02775a32 100644 --- a/app/src/main/res/drawable/settings.xml +++ b/app/src/main/res/drawable/settings.xml @@ -6,8 +6,7 @@ android:viewportHeight="24.0" android:viewportWidth="24.0" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/share_day.xml b/app/src/main/res/drawable/share_day.xml index 95d6c426..6a010c64 100644 --- a/app/src/main/res/drawable/share_day.xml +++ b/app/src/main/res/drawable/share_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/share_night.xml b/app/src/main/res/drawable/share_night.xml index 1a7955fe..13b718b4 100644 --- a/app/src/main/res/drawable/share_night.xml +++ b/app/src/main/res/drawable/share_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/social_media_disabled_day.xml b/app/src/main/res/drawable/social_media_disabled_day.xml index 2e3eef2e..79841ad6 100644 --- a/app/src/main/res/drawable/social_media_disabled_day.xml +++ b/app/src/main/res/drawable/social_media_disabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/social_media_disabled_night.xml b/app/src/main/res/drawable/social_media_disabled_night.xml index c7a92b93..528c5cd5 100644 --- a/app/src/main/res/drawable/social_media_disabled_night.xml +++ b/app/src/main/res/drawable/social_media_disabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/social_media_enabled_day.xml b/app/src/main/res/drawable/social_media_enabled_day.xml index 2fbc89be..9007bac0 100644 --- a/app/src/main/res/drawable/social_media_enabled_day.xml +++ b/app/src/main/res/drawable/social_media_enabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/social_media_enabled_night.xml b/app/src/main/res/drawable/social_media_enabled_night.xml index 915b454e..da9a2694 100644 --- a/app/src/main/res/drawable/social_media_enabled_night.xml +++ b/app/src/main/res/drawable/social_media_enabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/social_media_ghosted_day.xml b/app/src/main/res/drawable/social_media_ghosted_day.xml index d99f24d3..4bd42d61 100644 --- a/app/src/main/res/drawable/social_media_ghosted_day.xml +++ b/app/src/main/res/drawable/social_media_ghosted_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/social_media_ghosted_night.xml b/app/src/main/res/drawable/social_media_ghosted_night.xml index c17e89c7..c3479fe4 100644 --- a/app/src/main/res/drawable/social_media_ghosted_night.xml +++ b/app/src/main/res/drawable/social_media_ghosted_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/sort_day.xml b/app/src/main/res/drawable/sort_day.xml index 58d4b156..c1bebbc5 100644 --- a/app/src/main/res/drawable/sort_day.xml +++ b/app/src/main/res/drawable/sort_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/sort_night.xml b/app/src/main/res/drawable/sort_night.xml index 9aa55fbe..b7381081 100644 --- a/app/src/main/res/drawable/sort_night.xml +++ b/app/src/main/res/drawable/sort_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/sort_selected_day.xml b/app/src/main/res/drawable/sort_selected_day.xml index e6505a4a..69658955 100644 --- a/app/src/main/res/drawable/sort_selected_day.xml +++ b/app/src/main/res/drawable/sort_selected_day.xml @@ -1,24 +1,18 @@ - - + Modifications copyright © 2019,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> + android:autoMirrored="true" > - - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/sort_selected_night.xml b/app/src/main/res/drawable/sort_selected_night.xml index 2901466c..080edd5c 100644 --- a/app/src/main/res/drawable/sort_selected_night.xml +++ b/app/src/main/res/drawable/sort_selected_night.xml @@ -1,24 +1,18 @@ - - + Modifications copyright © 2019,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> + android:autoMirrored="true" > - - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/ssl_certificate_disabled_day.xml b/app/src/main/res/drawable/ssl_certificate_disabled_day.xml index a8a43598..1775f13d 100644 --- a/app/src/main/res/drawable/ssl_certificate_disabled_day.xml +++ b/app/src/main/res/drawable/ssl_certificate_disabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/ssl_certificate_disabled_night.xml b/app/src/main/res/drawable/ssl_certificate_disabled_night.xml index cc7c2f0e..e83b1d25 100644 --- a/app/src/main/res/drawable/ssl_certificate_disabled_night.xml +++ b/app/src/main/res/drawable/ssl_certificate_disabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/ssl_certificate_enabled_day.xml b/app/src/main/res/drawable/ssl_certificate_enabled_day.xml index 4a1b4209..a7b57c5a 100644 --- a/app/src/main/res/drawable/ssl_certificate_enabled_day.xml +++ b/app/src/main/res/drawable/ssl_certificate_enabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/ssl_certificate_enabled_night.xml b/app/src/main/res/drawable/ssl_certificate_enabled_night.xml index a49be5f3..e614ad8c 100644 --- a/app/src/main/res/drawable/ssl_certificate_enabled_night.xml +++ b/app/src/main/res/drawable/ssl_certificate_enabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/tab_disabled_day.xml b/app/src/main/res/drawable/tab_disabled_day.xml index f33a96fb..2ec71249 100644 --- a/app/src/main/res/drawable/tab_disabled_day.xml +++ b/app/src/main/res/drawable/tab_disabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/tab_disabled_night.xml b/app/src/main/res/drawable/tab_disabled_night.xml index ebbcb2e8..2af5bb6b 100644 --- a/app/src/main/res/drawable/tab_disabled_night.xml +++ b/app/src/main/res/drawable/tab_disabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/tab_enabled_day.xml b/app/src/main/res/drawable/tab_enabled_day.xml index e14784d6..54e30ff4 100644 --- a/app/src/main/res/drawable/tab_enabled_day.xml +++ b/app/src/main/res/drawable/tab_enabled_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/tab_enabled_night.xml b/app/src/main/res/drawable/tab_enabled_night.xml index 29aad21f..2d550749 100644 --- a/app/src/main/res/drawable/tab_enabled_night.xml +++ b/app/src/main/res/drawable/tab_enabled_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - \ No newline at end of file diff --git a/app/src/main/res/drawable/user_agent_day.xml b/app/src/main/res/drawable/user_agent_day.xml index b9f3ea69..064440ff 100644 --- a/app/src/main/res/drawable/user_agent_day.xml +++ b/app/src/main/res/drawable/user_agent_day.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + android:fillColor="@color/blue_800" + android:pathData="M3,6h18L21,4L3,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h4v-2L3,18L3,6zM13,12L9,12v1.78c-0.61,0.55 -1,1.33 -1,2.22s0.39,1.67 1,2.22L9,20h4v-1.78c0.61,-0.55 1,-1.34 1,-2.22s-0.39,-1.67 -1,-2.22L13,12zM11,17.5c-0.83,0 -1.5,-0.67 -1.5,-1.5s0.67,-1.5 1.5,-1.5 1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5zM22,8h-6c-0.5,0 -1,0.5 -1,1v10c0,0.5 0.5,1 1,1h6c0.5,0 1,-0.5 1,-1L23,9c0,-0.5 -0.5,-1 -1,-1zM21,18h-4v-8h4v8z" /> + \ No newline at end of file diff --git a/app/src/main/res/drawable/user_agent_night.xml b/app/src/main/res/drawable/user_agent_night.xml index af7ecaaf..401ba725 100644 --- a/app/src/main/res/drawable/user_agent_night.xml +++ b/app/src/main/res/drawable/user_agent_night.xml @@ -1,18 +1,13 @@ - - + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/warning.xml b/app/src/main/res/drawable/warning.xml index 22f8bbf7..225e353b 100644 --- a/app/src/main/res/drawable/warning.xml +++ b/app/src/main/res/drawable/warning.xml @@ -1,5 +1,5 @@ + Modifications copyright © 2016-2017,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> - + + android:fillColor="@color/yellow_900" + android:pathData="m128,12.8 l-94.25,41.89 0,62.84c0,58.12 40.22,112.48 94.25,125.67 54.04,-13.2 94.25,-67.55 94.25,-125.67l0,-62.84z" /> - + + android:fillColor="@color/yellow_700" + android:pathData="m128,0 l-104.73,46.55 0,69.82C23.27,180.95 67.96,241.34 128,256 188.04,241.34 232.73,180.95 232.73,116.36l0,-69.82L128,0ZM128,127.88 L209.45,127.88C203.29,175.83 171.29,218.53 128,231.91l0,-103.91 -81.45,0 0,-66.33L128,25.48l0,102.4z" /> - + \ No newline at end of file diff --git a/app/src/main/res/drawable/webview_dark_theme_day.xml b/app/src/main/res/drawable/webview_dark_theme_day.xml index 64b69b3f..41a7824d 100644 --- a/app/src/main/res/drawable/webview_dark_theme_day.xml +++ b/app/src/main/res/drawable/webview_dark_theme_day.xml @@ -1,19 +1,14 @@ - - + Modifications copyright © 2017,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/webview_dark_theme_night.xml b/app/src/main/res/drawable/webview_dark_theme_night.xml index 0ee9accd..9dd0c8c5 100644 --- a/app/src/main/res/drawable/webview_dark_theme_night.xml +++ b/app/src/main/res/drawable/webview_dark_theme_night.xml @@ -1,19 +1,14 @@ - - + Modifications copyright © 2017,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/webview_light_theme_day.xml b/app/src/main/res/drawable/webview_light_theme_day.xml index ffbec3f7..3b02effa 100644 --- a/app/src/main/res/drawable/webview_light_theme_day.xml +++ b/app/src/main/res/drawable/webview_light_theme_day.xml @@ -1,19 +1,14 @@ - - + Modifications copyright © 2017,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/webview_light_theme_night.xml b/app/src/main/res/drawable/webview_light_theme_night.xml index 55d63136..bc171248 100644 --- a/app/src/main/res/drawable/webview_light_theme_night.xml +++ b/app/src/main/res/drawable/webview_light_theme_night.xml @@ -1,19 +1,14 @@ - - + Modifications copyright © 2017,2022 Soren Stoutner . The resulting image is released under the GPLv3+ license. --> + android:autoMirrored="true" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/wide_viewport_disabled_day.xml b/app/src/main/res/drawable/wide_viewport_disabled_day.xml index a567081f..e9adc902 100644 --- a/app/src/main/res/drawable/wide_viewport_disabled_day.xml +++ b/app/src/main/res/drawable/wide_viewport_disabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/wide_viewport_disabled_night.xml b/app/src/main/res/drawable/wide_viewport_disabled_night.xml index 9450e8b9..3b3a1267 100644 --- a/app/src/main/res/drawable/wide_viewport_disabled_night.xml +++ b/app/src/main/res/drawable/wide_viewport_disabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/wide_viewport_enabled_day.xml b/app/src/main/res/drawable/wide_viewport_enabled_day.xml index d1386b57..f94f6315 100644 --- a/app/src/main/res/drawable/wide_viewport_enabled_day.xml +++ b/app/src/main/res/drawable/wide_viewport_enabled_day.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/wide_viewport_enabled_night.xml b/app/src/main/res/drawable/wide_viewport_enabled_night.xml index ecd73a4a..ccced6ce 100644 --- a/app/src/main/res/drawable/wide_viewport_enabled_night.xml +++ b/app/src/main/res/drawable/wide_viewport_enabled_night.xml @@ -6,8 +6,7 @@ android:viewportHeight="24" android:viewportWidth="24" > - - + \ No newline at end of file diff --git a/app/src/main/res/layout/import_export_bottom_appbar.xml b/app/src/main/res/layout/import_export_bottom_appbar.xml index 4f45eb1b..78eed91f 100644 --- a/app/src/main/res/layout/import_export_bottom_appbar.xml +++ b/app/src/main/res/layout/import_export_bottom_appbar.xml @@ -93,16 +93,6 @@ android:inputType="textPassword"/> - - - - - - Passwort OpenPGP - Passwort-Verschlüsselung ist mit Android KitKat nicht möglich. Für die OpenPGP-Verschlüsselung muss OpenKeychain installiert sein. Die unverschlüsselte Datei muss in einem weiteren Schritt importiert werden, nachdem sie entschlüsselt wurde. Datei-Ordner @@ -394,7 +393,6 @@ Der I2P-Proxy kann erst nach Installation der I2P-App genutzt werden. Warte auf die Verbindung zum Orbot-Proxy. Die benutzerdefinierte Proxy-URL ist ungültig. - SOCKS-Proxies funktionieren nicht unter Android KitKat. Über Privacy Browser @@ -545,7 +543,6 @@ Keiner - direkte Verbindung zum Internet. Tor - Verbidnung über socks://localhost:9050. - Tor - Verbidnung über http://localhost:8118. I2P - Verbindung über http://localhost:4444. Benutzerdefinierter Proxy Benutzerdefinierte Proxy-URL diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 2b0ab540..f8db12b5 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -356,7 +356,6 @@ Contraseña OpenPGP - El cifrado de contraseñas no funciona en Android KitKat. El cifrado OpenPGP requiere que esté instalado OpenKeychain. El archivo sin cifrar tendrá que ser importado en un paso separado después de ser descifrado. Ubicación del archivo @@ -391,7 +390,6 @@ El proxy a través de I2P no funcionará a menos que la aplicación I2P esté instalada. Esperando a que Orbot se conecte. La URL del proxy personalizado no es válida. - SOCKS proxies do not work on Android KitKat. Acerca de Navegador Privado @@ -542,7 +540,6 @@ Ninguno - conectar directamente a Internet. Tor - conectar a través de socks://localhost:9050. - Tor - conectar a través de http://localhost:8118. I2P - conectar a través de http://localhost:4444. Proxy personalizado URL personalizada del proxy diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 291d5c79..4c769b4d 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -356,7 +356,6 @@ Mot de passe OpenPGP - Le chiffrement par mot de passe ne fonctionne pas sous Android KitKat. Le chiffrement OpenPGP nécessite l\'installation d\'OpenKeychain. Le fichier non-chiffré devra être importé dans un deuxième temps, après son déchiffrement. Emplacement du fichier @@ -391,7 +390,6 @@ Le proxy via I2P ne fonctionnera que si l\'application I2P est installée. En attente de la connexion d\'Orbot. L\'URL du proxy personnalisé n\'est pas valide. - Les proxys de type SOCKS ne fonctionnent pas sur Android KitKat. À propos @@ -542,7 +540,6 @@ Aucun - Se connecter directement à Internet. Tor - Se connecter via socks://localhost:9050. - Tor - Se connecter via http://localhost:8118. I2P - Se connecter via http://localhost:4444. Proxy personnalisé URL personnalisée du proxy diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index e229f8e5..387a8d91 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -355,7 +355,6 @@ Password OpenPGP - La cifratura delle Password non funziona su Android KitKat. La cifratura OpenPGP richiede l\'installazione di OpenKeychain. Il file non cifrato deve essere importato in un secondo momento dopo che è stato decriptato. Posizione del File @@ -390,7 +389,6 @@ Il Proxy con I2P non funziona se non è installata la app I2P. In attesa della connessione di Orbot. La URL del proxy personalizzato non è valida. - I proxy SOCKS non funzionano con Android KitKat. Informazioni su Privacy Browser @@ -542,7 +540,6 @@ Nessuno - connessione diretta a internet. Tor - connessione con socks://localhost:9050. - Tor - connessione con http://localhost:8118. I2P - connessione con http://localhost:4444. Proxy personalizzato URL personalizzata del Proxy diff --git a/app/src/main/res/values-night-v23/styles.xml b/app/src/main/res/values-night-v23/styles.xml deleted file mode 100644 index 6560b22f..00000000 --- a/app/src/main/res/values-night-v23/styles.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 25c206d9..9ee16643 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -1,7 +1,7 @@ + ?android:attr/colorBackground + false + ?android:attr/colorBackground @color/violet_700 @@ -64,6 +68,10 @@ - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index df9ed508..5b51c60f 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,7 +1,7 @@ About Privacy Browser @@ -597,7 +595,6 @@ None - connect directly to the internet. Tor - connect through socks://localhost:9050. - Tor - connect through http://localhost:8118. I2P - connect through http://localhost:4444. Custom proxy Proxy custom URL diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index f173412e..2a00e6b7 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,7 +1,7 @@ + ?android:attr/colorBackground + true + ?android:attr/colorBackground @color/blue_200 @@ -64,6 +68,10 @@