compileSdk 31
defaultConfig {
- minSdk 19
+ minSdk 23
targetSdk 31
versionCode 57
versionName "3.9"
<!-- This file is derived from `security` and `language`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
- Modifications copyright © 2016-2017,2021 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-
+ Modifications copyright © 2016-2017,2021-2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="108dp"
android:translateX="27.6"
android:translateY="27.6" >
- <!-- The inner shield. A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Inner shield. -->
<path
- 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="#0d4781" />
- <!-- The outer shield. A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ 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" />
+
+ <!-- Outer shield. -->
<path
- 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="#1976d2" />
+ 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" />
- <!-- The globe. A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Globe. -->
<path
- 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="#ffffff"/>
+ 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" />
- <!-- The red banner. A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Red banner. -->
<path
- android:pathData="M50.491,201.267h155.02v54.763h-155.02z"
- android:fillColor="#b71c1c"/>
+ android:fillColor="@color/red_900"
+ android:pathData="M50.491,201.267h155.02v54.763h-155.02z" />
- <!-- The T. A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- T. -->
<path
- 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="#ffffff"/>
+ 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" />
- <!-- The E. A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- E. -->
<path
- 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="#ffffff"/>
+ 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" />
- <!-- The S. A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- S. -->
<path
- 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="#ffffff"/>
+ 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" />
- <!-- The T. A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- T. -->
<path
- android:pathData="m161.618,212.543h30.256v7.954h-10.151v24.258h-9.954v-24.258h-10.151z"
- android:fillColor="#ffffff"/>
+ android:fillColor="@color/white"
+ android:pathData="m161.618,212.543h30.256v7.954h-10.151v24.258h-9.954v-24.258h-10.151z" />
</group>
</vector>
\ No newline at end of file
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;
// 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();
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);
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:
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;
}
// 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);
// 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);
@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);
}
}
})
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);
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);
// 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:
// 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.
// 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 {
}
// 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);
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);
});
// 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() {
// Upload files.
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> 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;
}
// 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.
}
}
- // 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()));
// 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.
@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();
}
// 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 {
/*
- * Copyright © 2018-2020 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2018-2021 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
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:
// 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;
// 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;
// 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;
}
// 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);
// 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);
}
// 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));
}
// 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());
// 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");
// 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");
// 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);
// 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(": ");
// 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");
// 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");
// 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");
// 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");
// 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);
// 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);
}
// `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.
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());
}
// 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));
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
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)
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()) {
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
}
// 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)
}
}
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.
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);
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;
}
@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());
}
});
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:
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.
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:
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
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
}
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")
}
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")
}
// 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.
}
// 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()
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 -> {
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z" />
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z" />
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF202020"
+ android:fillColor="@color/black"
android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z" />
</vector>
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z" />
</vector>
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
</vector>
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M9,3L7.17,5L4,5c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,7c0,-1.1 -0.9,-2 -2,-2h-3.17L15,3L9,3zM12,18c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5zM12,17l1.25,-2.75L16,13l-2.75,-1.25L12,9l-1.25,2.75L8,13l2.75,1.25z"/>
</vector>
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M9,3L7.17,5L4,5c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,7c0,-1.1 -0.9,-2 -2,-2h-3.17L15,3L9,3zM12,18c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5zM12,17l1.25,-2.75L16,13l-2.75,-1.25L12,9l-1.25,2.75L8,13l2.75,1.25z"/>
</vector>
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M9,3L7.17,5L4,5c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,7c0,-1.1 -0.9,-2 -2,-2h-3.17L15,3L9,3zM12,18c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5zM12,17l1.25,-2.75L16,13l-2.75,-1.25L12,9l-1.25,2.75L8,13l2.75,1.25z"/>
</vector>
<!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M9,3L7.17,5L4,5c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,7c0,-1.1 -0.9,-2 -2,-2h-3.17L15,3L9,3zM12,18c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5zM12,17l1.25,-2.75L16,13l-2.75,-1.25L12,9l-1.25,2.75L8,13l2.75,1.25z"/>
</vector>
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M20,4L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,6c0,-1.11 -0.89,-2 -2,-2zM20,18L4,18v-6h16v6zM20,8L4,8L4,6h16v2z" />
</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M20,4L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,6c0,-1.11 -0.89,-2 -2,-2zM20,18L4,18v-6h16v6zM20,8L4,8L4,6h16v2z" />
</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M20,4L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,6c0,-1.11 -0.89,-2 -2,-2zM20,18L4,18v-6h16v6zM20,8L4,8L4,6h16v2z" />
</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M20,4L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,6c0,-1.11 -0.89,-2 -2,-2zM20,18L4,18v-6h16v6zM20,8L4,8L4,6h16v2z" />
</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFB7B7B7"
+ android:fillColor="@color/gray_425"
android:pathData="M20,4L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,6c0,-1.11 -0.89,-2 -2,-2zM20,18L4,18v-6h16v6zM20,8L4,8L4,6h16v2z" />
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF616161"
+ android:fillColor="@color/gray_700"
android:pathData="M20,4L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,6c0,-1.11 -0.89,-2 -2,-2zM20,18L4,18v-6h16v6zM20,8L4,8L4,6h16v2z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `style`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true">
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M2.53,19.65l1.34,0.56v-9.03l-2.43,5.86c-0.41,1.02 0.08,2.19 1.09,2.61zM22.03,15.95L17.07,3.98c-0.31,-0.75 -1.04,-1.21 -1.81,-1.23 -0.26,0 -0.53,0.04 -0.79,0.15L7.1,5.95c-0.75,0.31 -1.21,1.03 -1.23,1.8 -0.01,0.27 0.04,0.54 0.15,0.8l4.96,11.97c0.31,0.76 1.05,1.22 1.83,1.23 0.26,0 0.52,-0.05 0.77,-0.15l7.36,-3.05c1.02,-0.42 1.51,-1.59 1.09,-2.6zM7.88,8.75c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1 1,0.45 1,1 -0.45,1 -1,1zM5.88,19.75c0,1.1 0.9,2 2,2h1.45l-3.45,-8.34v6.34z"/>
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `style`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M2.53,19.65l1.34,0.56v-9.03l-2.43,5.86c-0.41,1.02 0.08,2.19 1.09,2.61zM22.03,15.95L17.07,3.98c-0.31,-0.75 -1.04,-1.21 -1.81,-1.23 -0.26,0 -0.53,0.04 -0.79,0.15L7.1,5.95c-0.75,0.31 -1.21,1.03 -1.23,1.8 -0.01,0.27 0.04,0.54 0.15,0.8l4.96,11.97c0.31,0.76 1.05,1.22 1.83,1.23 0.26,0 0.52,-0.05 0.77,-0.15l7.36,-3.05c1.02,-0.42 1.51,-1.59 1.09,-2.6zM7.88,8.75c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1 1,0.45 1,1 -0.45,1 -1,1zM5.88,19.75c0,1.1 0.9,2 2,2h1.45l-3.45,-8.34v6.34z"/>
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `arrow_back`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF000000"
+ android:fillColor="@color/black"
android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z" />
</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M20,12c0,-1.1 0.9,-2 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2L4,4c-1.1,0 -1.99,0.9 -1.99,2v4c1.1,0 1.99,0.9 1.99,2s-0.89,2 -2,2v4c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2v-4c-1.1,0 -2,-0.9 -2,-2zM15.58,16.8L12,14.5l-3.58,2.3 1.08,-4.12 -3.29,-2.69 4.24,-0.25L12,5.8l1.54,3.95 4.24,0.25 -3.29,2.69 1.09,4.11z"/>
</vector>
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M20,12c0,-1.1 0.9,-2 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2L4,4c-1.1,0 -1.99,0.9 -1.99,2v4c1.1,0 1.99,0.9 1.99,2s-0.89,2 -2,2v4c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2v-4c-1.1,0 -2,-0.9 -2,-2zM15.58,16.8L12,14.5l-3.58,2.3 1.08,-4.12 -3.29,-2.69 4.24,-0.25L12,5.8l1.54,3.95 4.24,0.25 -3.29,2.69 1.09,4.11z"/>
</vector>
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M20,12c0,-1.1 0.9,-2 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2L4,4c-1.1,0 -1.99,0.9 -1.99,2v4c1.1,0 1.99,0.9 1.99,2s-0.89,2 -2,2v4c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2v-4c-1.1,0 -2,-0.9 -2,-2zM15.58,16.8L12,14.5l-3.58,2.3 1.08,-4.12 -3.29,-2.69 4.24,-0.25L12,5.8l1.54,3.95 4.24,0.25 -3.29,2.69 1.09,4.11z"/>
</vector>
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M20,12c0,-1.1 0.9,-2 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2L4,4c-1.1,0 -1.99,0.9 -1.99,2v4c1.1,0 1.99,0.9 1.99,2s-0.89,2 -2,2v4c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2v-4c-1.1,0 -2,-0.9 -2,-2zM15.58,16.8L12,14.5l-3.58,2.3 1.08,-4.12 -3.29,-2.69 4.24,-0.25L12,5.8l1.54,3.95 4.24,0.25 -3.29,2.69 1.09,4.11z"/>
</vector>
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M23,12l-2.44,-2.78 0.34,-3.68 -3.61,-0.82 -1.89,-3.18L12,3 8.6,1.54 6.71,4.72l-3.61,0.81 0.34,3.68L1,12l2.44,2.78 -0.34,3.69 3.61,0.82 1.89,3.18L12,21l3.4,1.46 1.89,-3.18 3.61,-0.82 -0.34,-3.68L23,12zM13,17h-2v-2h2v2zM13,13h-2L11,7h2v6z"/>
</vector>
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M23,12l-2.44,-2.78 0.34,-3.68 -3.61,-0.82 -1.89,-3.18L12,3 8.6,1.54 6.71,4.72l-3.61,0.81 0.34,3.68L1,12l2.44,2.78 -0.34,3.69 3.61,0.82 1.89,3.18L12,21l3.4,1.46 1.89,-3.18 3.61,-0.82 -0.34,-3.68L23,12zM13,17h-2v-2h2v2zM13,13h-2L11,7h2v6z"/>
</vector>
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M23,12l-2.44,-2.78 0.34,-3.68 -3.61,-0.82 -1.89,-3.18L12,3 8.6,1.54 6.71,4.72l-3.61,0.81 0.34,3.68L1,12l2.44,2.78 -0.34,3.69 3.61,0.82 1.89,3.18L12,21l3.4,1.46 1.89,-3.18 3.61,-0.82 -0.34,-3.68L23,12zM13,17h-2v-2h2v2zM13,13h-2L11,7h2v6z"/>
</vector>
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M23,12l-2.44,-2.78 0.34,-3.68 -3.61,-0.82 -1.89,-3.18L12,3 8.6,1.54 6.71,4.72l-3.61,0.81 0.34,3.68L1,12l2.44,2.78 -0.34,3.69 3.61,0.82 1.89,3.18L12,21l3.4,1.46 1.89,-3.18 3.61,-0.82 -0.34,-3.68L23,12zM13,17h-2v-2h2v2zM13,13h-2L11,7h2v6z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `location_off`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
- android:viewportWidth="24"
- tools:ignore="VectorRaster" >
+ android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M12,6.5c1.38,0 2.5,1.12 2.5,2.5 0,0.74 -0.33,1.39 -0.83,1.85l3.63,3.63c0.98,-1.86 1.7,-3.8 1.7,-5.48 0,-3.87 -3.13,-7 -7,-7 -1.98,0 -3.76,0.83 -5.04,2.15l3.19,3.19c0.46,-0.52 1.11,-0.84 1.85,-0.84zM16.37,16.1l-4.63,-4.63 -0.11,-0.11L3.27,3 2,4.27l3.18,3.18C5.07,7.95 5,8.47 5,9c0,5.25 7,13 7,13s1.67,-1.85 3.38,-4.35L18.73,21 20,19.73l-3.63,-3.63z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `location_off`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
- android:viewportWidth="24"
- tools:ignore="VectorRaster" >
+ android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M12,6.5c1.38,0 2.5,1.12 2.5,2.5 0,0.74 -0.33,1.39 -0.83,1.85l3.63,3.63c0.98,-1.86 1.7,-3.8 1.7,-5.48 0,-3.87 -3.13,-7 -7,-7 -1.98,0 -3.76,0.83 -5.04,2.15l3.19,3.19c0.46,-0.52 1.11,-0.84 1.85,-0.84zM16.37,16.1l-4.63,-4.63 -0.11,-0.11L3.27,3 2,4.27l3.18,3.18C5.07,7.95 5,8.47 5,9c0,5.25 7,13 7,13s1.67,-1.85 3.38,-4.35L18.73,21 20,19.73l-3.63,-3.63z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `location_off`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
- android:viewportWidth="24"
- tools:ignore="VectorRaster" >
+ android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M12,6.5c1.38,0 2.5,1.12 2.5,2.5 0,0.74 -0.33,1.39 -0.83,1.85l3.63,3.63c0.98,-1.86 1.7,-3.8 1.7,-5.48 0,-3.87 -3.13,-7 -7,-7 -1.98,0 -3.76,0.83 -5.04,2.15l3.19,3.19c0.46,-0.52 1.11,-0.84 1.85,-0.84zM16.37,16.1l-4.63,-4.63 -0.11,-0.11L3.27,3 2,4.27l3.18,3.18C5.07,7.95 5,8.47 5,9c0,5.25 7,13 7,13s1.67,-1.85 3.38,-4.35L18.73,21 20,19.73l-3.63,-3.63z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `location_off`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M12,6.5c1.38,0 2.5,1.12 2.5,2.5 0,0.74 -0.33,1.39 -0.83,1.85l3.63,3.63c0.98,-1.86 1.7,-3.8 1.7,-5.48 0,-3.87 -3.13,-7 -7,-7 -1.98,0 -3.76,0.83 -5.04,2.15l3.19,3.19c0.46,-0.52 1.11,-0.84 1.85,-0.84zM16.37,16.1l-4.63,-4.63 -0.11,-0.11L3.27,3 2,4.27l3.18,3.18C5.07,7.95 5,8.47 5,9c0,5.25 7,13 7,13s1.67,-1.85 3.38,-4.35L18.73,21 20,19.73l-3.63,-3.63z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `bookmarks`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
- android:viewportWidth="24"
- tools:ignore="VectorRaster"
- android:autoMirrored="true" >
+ android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M19,18l2,1V3c0,-1.1 -0.9,-2 -2,-2H8.99C7.89,1 7,1.9 7,3h10c1.1,0 2,0.9 2,2v13zM15,5H5c-1.1,0 -2,0.9 -2,2v16l7,-3 7,3V7c0,-1.1 -0.9,-2 -2,-2z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `bookmarks`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
- android:viewportWidth="24"
- tools:ignore="VectorRaster"
- android:autoMirrored="true" >
+ android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M19,18l2,1V3c0,-1.1 -0.9,-2 -2,-2H8.99C7.89,1 7,1.9 7,3h10c1.1,0 2,0.9 2,2v13zM15,5H5c-1.1,0 -2,0.9 -2,2v16l7,-3 7,3V7c0,-1.1 -0.9,-2 -2,-2z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19v-3h18v3z"/>
</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19v-3h18v3z"/>
</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19v-3h18v3z"/>
</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19v-3h18v3z"/>
</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF000000"
+ android:fillColor="@color/black"
android:pathData="M20,8h-2.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96L17,4.41 15.59,3l-2.17,2.17C12.96,5.06 12.49,5 12,5c-0.49,0 -0.96,0.06 -1.41,0.17L8.41,3 7,4.41l1.62,1.63C7.88,6.55 7.26,7.22 6.81,8L4,8v2h2.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L4,12v2h2v1c0,0.34 0.04,0.67 0.09,1L4,16v2h2.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L20,18v-2h-2.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h2v-2h-2v-1c0,-0.34 -0.04,-0.67 -0.09,-1L20,10L20,8zM14,16h-4v-2h4v2zM14,12h-4v-2h4v2z"/>
</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M20,8h-2.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96L17,4.41 15.59,3l-2.17,2.17C12.96,5.06 12.49,5 12,5c-0.49,0 -0.96,0.06 -1.41,0.17L8.41,3 7,4.41l1.62,1.63C7.88,6.55 7.26,7.22 6.81,8L4,8v2h2.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L4,12v2h2v1c0,0.34 0.04,0.67 0.09,1L4,16v2h2.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L20,18v-2h-2.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h2v-2h-2v-1c0,-0.34 -0.04,-0.67 -0.09,-1L20,10L20,8zM14,16h-4v-2h4v2zM14,12h-4v-2h4v2z"/>
</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M20,8h-2.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96L17,4.41 15.59,3l-2.17,2.17C12.96,5.06 12.49,5 12,5c-0.49,0 -0.96,0.06 -1.41,0.17L8.41,3 7,4.41l1.62,1.63C7.88,6.55 7.26,7.22 6.81,8L4,8v2h2.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L4,12v2h2v1c0,0.34 0.04,0.67 0.09,1L4,16v2h2.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L20,18v-2h-2.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h2v-2h-2v-1c0,-0.34 -0.04,-0.67 -0.09,-1L20,10L20,8zM14,16h-4v-2h4v2zM14,12h-4v-2h4v2z"/>
</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFB71C1C"
+ android:fillColor="@color/red_900"
android:pathData="M20,8h-2.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96L17,4.41 15.59,3l-2.17,2.17C12.96,5.06 12.49,5 12,5c-0.49,0 -0.96,0.06 -1.41,0.17L8.41,3 7,4.41l1.62,1.63C7.88,6.55 7.26,7.22 6.81,8L4,8v2h2.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L4,12v2h2v1c0,0.34 0.04,0.67 0.09,1L4,16v2h2.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L20,18v-2h-2.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h2v-2h-2v-1c0,-0.34 -0.04,-0.67 -0.09,-1L20,10L20,8zM14,16h-4v-2h4v2zM14,12h-4v-2h4v2z"/>
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `donut_small`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M11,9.16V2c-5,0.5 -9,4.79 -9,10s4,9.5 9,10v-7.16c-1,-0.41 -2,-1.52 -2,-2.84s1,-2.43 2,-2.84zM14.86,11H22c-0.48,-4.75 -4,-8.53 -9,-9v7.16c1,0.3 1.52,0.98 1.86,1.84zM13,14.84V22c5,-0.47 8.52,-4.25 9,-9h-7.14c-0.34,0.86 -0.86,1.54 -1.86,1.84z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `donut_small`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M11,9.16V2c-5,0.5 -9,4.79 -9,10s4,9.5 9,10v-7.16c-1,-0.41 -2,-1.52 -2,-2.84s1,-2.43 2,-2.84zM14.86,11H22c-0.48,-4.75 -4,-8.53 -9,-9v7.16c1,0.3 1.52,0.98 1.86,1.84zM13,14.84V22c5,-0.47 8.52,-4.25 9,-9h-7.14c-0.34,0.86 -0.86,1.54 -1.86,1.84z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `donut_small`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFB71C1C"
+ android:fillColor="@color/red_900"
android:pathData="M11,9.16V2c-5,0.5 -9,4.79 -9,10s4,9.5 9,10v-7.16c-1,-0.41 -2,-1.52 -2,-2.84s1,-2.43 2,-2.84zM14.86,11H22c-0.48,-4.75 -4,-8.53 -9,-9v7.16c1,0.3 1.52,0.98 1.86,1.84zM13,14.84V22c5,-0.47 8.52,-4.25 9,-9h-7.14c-0.34,0.86 -0.86,1.54 -1.86,1.84z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFB71C1C"
+ android:fillColor="@color/red_900"
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2L18,7L6,7v12zM8.46,11.88l1.41,-1.41L12,12.59l2.12,-2.12 1.41,1.41L13.41,14l2.12,2.12 -1.41,1.41L12,15.41l-2.12,2.12 -1.41,-1.41L10.59,14l-2.13,-2.12zM15.5,4l-1,-1h-5l-1,1L5,4v2h14L19,4z"/>
</vector>
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2L18,7L6,7v12zM8.46,11.88l1.41,-1.41L12,12.59l2.12,-2.12 1.41,1.41L13.41,14l2.12,2.12 -1.41,1.41L12,15.41l-2.12,2.12 -1.41,-1.41L10.59,14l-2.13,-2.12zM15.5,4l-1,-1h-5l-1,1L5,4v2h14L19,4z"/>
</vector>
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2L18,7L6,7v12zM8.46,11.88l1.41,-1.41L12,12.59l2.12,-2.12 1.41,1.41L13.41,14l2.12,2.12 -1.41,1.41L12,15.41l-2.12,2.12 -1.41,-1.41L10.59,14l-2.13,-2.12zM15.5,4l-1,-1h-5l-1,1L5,4v2h14L19,4z"/>
</vector>
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z" />
</vector>
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z" />
</vector>
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF202020"
+ android:fillColor="@color/black"
android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z" />
</vector>
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z" />
</vector>
<!-- This file was created by Google and downloaded from <https://materialdesignicons.com/icon/cookie>. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A9,9 0 0,0 21,12C21,11.5 20.96,11 20.87,10.5C20.6,10 20,10 20,10H18V9C18,8 17,8 17,8H15V7C15,6 14,6 14,6H13V4C13,3 12,3 12,3M9.5,6A1.5,1.5 0 0,1 11,7.5A1.5,1.5 0 0,1 9.5,9A1.5,1.5 0 0,1 8,7.5A1.5,1.5 0 0,1 9.5,6M6.5,10A1.5,1.5 0 0,1 8,11.5A1.5,1.5 0 0,1 6.5,13A1.5,1.5 0 0,1 5,11.5A1.5,1.5 0 0,1 6.5,10M11.5,11A1.5,1.5 0 0,1 13,12.5A1.5,1.5 0 0,1 11.5,14A1.5,1.5 0 0,1 10,12.5A1.5,1.5 0 0,1 11.5,11M16.5,13A1.5,1.5 0 0,1 18,14.5A1.5,1.5 0 0,1 16.5,16H16.5A1.5,1.5 0 0,1 15,14.5H15A1.5,1.5 0 0,1 16.5,13M11,16A1.5,1.5 0 0,1 12.5,17.5A1.5,1.5 0 0,1 11,19A1.5,1.5 0 0,1 9.5,17.5A1.5,1.5 0 0,1 11,16Z" />
</vector>
\ No newline at end of file
<!-- This file was created by Google and downloaded from <https://materialdesignicons.com/icon/cookie>. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A9,9 0 0,0 21,12C21,11.5 20.96,11 20.87,10.5C20.6,10 20,10 20,10H18V9C18,8 17,8 17,8H15V7C15,6 14,6 14,6H13V4C13,3 12,3 12,3M9.5,6A1.5,1.5 0 0,1 11,7.5A1.5,1.5 0 0,1 9.5,9A1.5,1.5 0 0,1 8,7.5A1.5,1.5 0 0,1 9.5,6M6.5,10A1.5,1.5 0 0,1 8,11.5A1.5,1.5 0 0,1 6.5,13A1.5,1.5 0 0,1 5,11.5A1.5,1.5 0 0,1 6.5,10M11.5,11A1.5,1.5 0 0,1 13,12.5A1.5,1.5 0 0,1 11.5,14A1.5,1.5 0 0,1 10,12.5A1.5,1.5 0 0,1 11.5,11M16.5,13A1.5,1.5 0 0,1 18,14.5A1.5,1.5 0 0,1 16.5,16H16.5A1.5,1.5 0 0,1 15,14.5H15A1.5,1.5 0 0,1 16.5,13M11,16A1.5,1.5 0 0,1 12.5,17.5A1.5,1.5 0 0,1 11,19A1.5,1.5 0 0,1 9.5,17.5A1.5,1.5 0 0,1 11,16Z" />
</vector>
\ No newline at end of file
<!-- This file was created by Google and downloaded from <https://materialdesignicons.com/icon/cookie>. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A9,9 0 0,0 21,12C21,11.5 20.96,11 20.87,10.5C20.6,10 20,10 20,10H18V9C18,8 17,8 17,8H15V7C15,6 14,6 14,6H13V4C13,3 12,3 12,3M9.5,6A1.5,1.5 0 0,1 11,7.5A1.5,1.5 0 0,1 9.5,9A1.5,1.5 0 0,1 8,7.5A1.5,1.5 0 0,1 9.5,6M6.5,10A1.5,1.5 0 0,1 8,11.5A1.5,1.5 0 0,1 6.5,13A1.5,1.5 0 0,1 5,11.5A1.5,1.5 0 0,1 6.5,10M11.5,11A1.5,1.5 0 0,1 13,12.5A1.5,1.5 0 0,1 11.5,14A1.5,1.5 0 0,1 10,12.5A1.5,1.5 0 0,1 11.5,11M16.5,13A1.5,1.5 0 0,1 18,14.5A1.5,1.5 0 0,1 16.5,16H16.5A1.5,1.5 0 0,1 15,14.5H15A1.5,1.5 0 0,1 16.5,13M11,16A1.5,1.5 0 0,1 12.5,17.5A1.5,1.5 0 0,1 11,19A1.5,1.5 0 0,1 9.5,17.5A1.5,1.5 0 0,1 11,16Z" />
</vector>
\ No newline at end of file
<!-- This file was created by Google and downloaded from <https://materialdesignicons.com/icon/cookie>. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A9,9 0 0,0 21,12C21,11.5 20.96,11 20.87,10.5C20.6,10 20,10 20,10H18V9C18,8 17,8 17,8H15V7C15,6 14,6 14,6H13V4C13,3 12,3 12,3M9.5,6A1.5,1.5 0 0,1 11,7.5A1.5,1.5 0 0,1 9.5,9A1.5,1.5 0 0,1 8,7.5A1.5,1.5 0 0,1 9.5,6M6.5,10A1.5,1.5 0 0,1 8,11.5A1.5,1.5 0 0,1 6.5,13A1.5,1.5 0 0,1 5,11.5A1.5,1.5 0 0,1 6.5,10M11.5,11A1.5,1.5 0 0,1 13,12.5A1.5,1.5 0 0,1 11.5,14A1.5,1.5 0 0,1 10,12.5A1.5,1.5 0 0,1 11.5,11M16.5,13A1.5,1.5 0 0,1 18,14.5A1.5,1.5 0 0,1 16.5,16H16.5A1.5,1.5 0 0,1 15,14.5H15A1.5,1.5 0 0,1 16.5,13M11,16A1.5,1.5 0 0,1 12.5,17.5A1.5,1.5 0 0,1 11,19A1.5,1.5 0 0,1 9.5,17.5A1.5,1.5 0 0,1 11,16Z" />
</vector>
\ No newline at end of file
<!-- This file was created by Google and downloaded from <https://materialdesignicons.com/icon/cookie>. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFF57F17"
+ android:fillColor="@color/yellow_900"
android:pathData="M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A9,9 0 0,0 21,12C21,11.5 20.96,11 20.87,10.5C20.6,10 20,10 20,10H18V9C18,8 17,8 17,8H15V7C15,6 14,6 14,6H13V4C13,3 12,3 12,3M9.5,6A1.5,1.5 0 0,1 11,7.5A1.5,1.5 0 0,1 9.5,9A1.5,1.5 0 0,1 8,7.5A1.5,1.5 0 0,1 9.5,6M6.5,10A1.5,1.5 0 0,1 8,11.5A1.5,1.5 0 0,1 6.5,13A1.5,1.5 0 0,1 5,11.5A1.5,1.5 0 0,1 6.5,10M11.5,11A1.5,1.5 0 0,1 13,12.5A1.5,1.5 0 0,1 11.5,14A1.5,1.5 0 0,1 10,12.5A1.5,1.5 0 0,1 11.5,11M16.5,13A1.5,1.5 0 0,1 18,14.5A1.5,1.5 0 0,1 16.5,16H16.5A1.5,1.5 0 0,1 15,14.5H15A1.5,1.5 0 0,1 16.5,13M11,16A1.5,1.5 0 0,1 12.5,17.5A1.5,1.5 0 0,1 11,19A1.5,1.5 0 0,1 9.5,17.5A1.5,1.5 0 0,1 11,16Z" />
</vector>
\ No newline at end of file
<!-- This file was created by Google and downloaded from <https://materialdesignicons.com/icon/cookie>. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFB71C1C"
+ android:fillColor="@color/red_900"
android:pathData="M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A9,9 0 0,0 21,12C21,11.5 20.96,11 20.87,10.5C20.6,10 20,10 20,10H18V9C18,8 17,8 17,8H15V7C15,6 14,6 14,6H13V4C13,3 12,3 12,3M9.5,6A1.5,1.5 0 0,1 11,7.5A1.5,1.5 0 0,1 9.5,9A1.5,1.5 0 0,1 8,7.5A1.5,1.5 0 0,1 9.5,6M6.5,10A1.5,1.5 0 0,1 8,11.5A1.5,1.5 0 0,1 6.5,13A1.5,1.5 0 0,1 5,11.5A1.5,1.5 0 0,1 6.5,10M11.5,11A1.5,1.5 0 0,1 13,12.5A1.5,1.5 0 0,1 11.5,14A1.5,1.5 0 0,1 10,12.5A1.5,1.5 0 0,1 11.5,11M16.5,13A1.5,1.5 0 0,1 18,14.5A1.5,1.5 0 0,1 16.5,16H16.5A1.5,1.5 0 0,1 15,14.5H15A1.5,1.5 0 0,1 16.5,13M11,16A1.5,1.5 0 0,1 12.5,17.5A1.5,1.5 0 0,1 11,19A1.5,1.5 0 0,1 9.5,17.5A1.5,1.5 0 0,1 11,16Z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `file_copy`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF202020"
+ android:fillColor="@color/gray_925"
android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM15,5l6,6v10c0,1.1 -0.9,2 -2,2L7.99,23C6.89,23 6,22.1 6,21l0.01,-14c0,-1.1 0.89,-2 1.99,-2h7zM14,12h5.5L14,6.5L14,12z"/>
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `file_copy`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM15,5l6,6v10c0,1.1 -0.9,2 -2,2L7.99,23C6.89,23 6,22.1 6,21l0.01,-14c0,-1.1 0.89,-2 1.99,-2h7zM14,12h5.5L14,6.5L14,12z"/>
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `file_copy`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM15,5l6,6v10c0,1.1 -0.9,2 -2,2L7.99,23C6.89,23 6,22.1 6,21l0.01,-14c0,-1.1 0.89,-2 1.99,-2h7zM14,12h5.5L14,6.5L14,12z"/>
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `file_copy`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM15,5l6,6v10c0,1.1 -0.9,2 -2,2L7.99,23C6.89,23 6,22.1 6,21l0.01,-14c0,-1.1 0.89,-2 1.99,-2h7zM14,12h5.5L14,6.5L14,12z"/>
</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M7,3C5.9,3 5.01,3.9 5.01,5L5,21L12,18L19,21L19,5C19,3.9 18.1,3 17,3L7,3zM11,7L13,7L13,10L16,10L16,12L13,12L13,15L11,15L11,12L8,12L8,10L11,10L11,7z" />
-
</vector>
<!-- This file comes from the Android Material icon set, where it is called `create_new_folder`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M4,4C2.89,4 2.01,4.89 2.01,6L2,18C2,19.11 2.89,20 4,20L20,20C21.11,20 22,19.11 22,18L22,8C22,6.89 21.11,6 20,6L12,6L10,4L4,4zM11,9L13,9L13,12L16,12L16,14L13,14L13,17L11,17L11,14L8,14L8,12L11,12L11,9z" />
</vector>
<!-- This file comes from the Android Material icon set, where it is called `important_devices_off`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M23,11.01L18,11c-0.55,0 -1,0.45 -1,1v9c0,0.55 0.45,1 1,1h5c0.55,0 1,-0.45 1,-1v-9c0,-0.55 -0.45,-0.99 -1,-0.99zM23,20h-5v-7h5v7zM20,2L2,2C0.89,2 0,2.89 0,4v12c0,1.1 0.89,2 2,2h7v2L7,20v2h8v-2h-2v-2h2v-2L2,16L2,4h18v5h2L22,4c0,-1.11 -0.9,-2 -2,-2zM11.97,9L11,6l-0.97,3L7,9l2.47,1.76 -0.94,2.91 2.47,-1.8 2.47,1.8 -0.94,-2.91L15,9h-3.03z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `important_devices_off`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M23,11.01L18,11c-0.55,0 -1,0.45 -1,1v9c0,0.55 0.45,1 1,1h5c0.55,0 1,-0.45 1,-1v-9c0,-0.55 -0.45,-0.99 -1,-0.99zM23,20h-5v-7h5v7zM20,2L2,2C0.89,2 0,2.89 0,4v12c0,1.1 0.89,2 2,2h7v2L7,20v2h8v-2h-2v-2h2v-2L2,16L2,4h18v5h2L22,4c0,-1.11 -0.9,-2 -2,-2zM11.97,9L11,6l-0.97,3L7,9l2.47,1.76 -0.94,2.91 2.47,-1.8 2.47,1.8 -0.94,-2.91L15,9h-3.03z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `important_devices_off`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFB7B7B7"
+ android:fillColor="@color/gray_425"
android:pathData="M23,11.01L18,11c-0.55,0 -1,0.45 -1,1v9c0,0.55 0.45,1 1,1h5c0.55,0 1,-0.45 1,-1v-9c0,-0.55 -0.45,-0.99 -1,-0.99zM23,20h-5v-7h5v7zM20,2L2,2C0.89,2 0,2.89 0,4v12c0,1.1 0.89,2 2,2h7v2L7,20v2h8v-2h-2v-2h2v-2L2,16L2,4h18v5h2L22,4c0,-1.11 -0.9,-2 -2,-2zM11.97,9L11,6l-0.97,3L7,9l2.47,1.76 -0.94,2.91 2.47,-1.8 2.47,1.8 -0.94,-2.91L15,9h-3.03z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `important_devices_off`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- tools:ignore="VectorRaster">
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF616161"
+ android:fillColor="@color/gray_700"
android:pathData="M23,11.01L18,11c-0.55,0 -1,0.45 -1,1v9c0,0.55 0.45,1 1,1h5c0.55,0 1,-0.45 1,-1v-9c0,-0.55 -0.45,-0.99 -1,-0.99zM23,20h-5v-7h5v7zM20,2L2,2C0.89,2 0,2.89 0,4v12c0,1.1 0.89,2 2,2h7v2L7,20v2h8v-2h-2v-2h2v-2L2,16L2,4h18v5h2L22,4c0,-1.11 -0.9,-2 -2,-2zM11.97,9L11,6l-0.97,3L7,9l2.47,1.76 -0.94,2.91 2.47,-1.8 2.47,1.8 -0.94,-2.91L15,9h-3.03z"/>
</vector>
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF202020"
+ android:fillColor="@color/gray_925"
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"/>
</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM15,18L4,18v-4h11v4zM15,13L4,13L4,9h11v4zM20,18h-4L16,9h4v9z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM15,18L4,18v-4h11v4zM15,13L4,13L4,9h11v4zM20,18h-4L16,9h4v9z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM15,18L4,18v-4h11v4zM15,13L4,13L4,9h11v4zM20,18h-4L16,9h4v9z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM15,18L4,18v-4h11v4zM15,13L4,13L4,9h11v4zM20,18h-4L16,9h4v9z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFF57F17"
+ android:fillColor="@color/yellow_900"
android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM15,18L4,18v-4h11v4zM15,13L4,13L4,9h11v4zM20,18h-4L16,9h4v9z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFB7B7B7"
+ android:fillColor="@color/gray_425"
android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM15,18L4,18v-4h11v4zM15,13L4,13L4,9h11v4zM20,18h-4L16,9h4v9z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF616161"
+ android:fillColor="@color/gray_700"
android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM15,18L4,18v-4h11v4zM15,13L4,13L4,9h11v4zM20,18h-4L16,9h4v9z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFB71C1C"
+ android:fillColor="@color/red_900"
android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM15,18L4,18v-4h11v4zM15,13L4,13L4,9h11v4zM20,18h-4L16,9h4v9z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `import_contacts`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M20,13H4c-0.55,0 -1,0.45 -1,1v6c0,0.55 0.45,1 1,1h16c0.55,0 1,-0.45 1,-1v-6c0,-0.55 -0.45,-1 -1,-1zM7,19c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM20,3H4c-0.55,0 -1,0.45 -1,1v6c0,0.55 0.45,1 1,1h16c0.55,0 1,-0.45 1,-1V4c0,-0.55 -0.45,-1 -1,-1zM7,9c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2z" />
</vector>
<!-- This file comes from the Android Material icon set, where it is called `import_contacts`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M20,13H4c-0.55,0 -1,0.45 -1,1v6c0,0.55 0.45,1 1,1h16c0.55,0 1,-0.45 1,-1v-6c0,-0.55 -0.45,-1 -1,-1zM7,19c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM20,3H4c-0.55,0 -1,0.45 -1,1v6c0,0.55 0.45,1 1,1h16c0.55,0 1,-0.45 1,-1V4c0,-0.55 -0.45,-1 -1,-1zM7,9c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2z" />
</vector>
<!-- This file is derived from `exit_to_app`, which is part of the Android Material icon set. It is released under the Apache License 2.0.
- Modifications copyright © 2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
+ Modifications copyright © 2017,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
- 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:strokeWidth="0.95815897" />
+ 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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
- 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"
- android:strokeWidth="0.95815897" />
+ 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" />
</vector>
\ No newline at end of file
<!-- This file is derived from `exit_to_app`, which is part of the Android Material icon set. It is released under the Apache License 2.0.
- Modifications copyright © 2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
+ Modifications copyright © 2017,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
- 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:strokeWidth="0.95815897" />
+ 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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
- 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"
- android:strokeWidth="0.95815897" />
+ 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" />
</vector>
\ No newline at end of file
<!-- This file is derived from `exit_to_app`, which is part of the Android Material icon set. It is released under the Apache License 2.0.
- Modifications copyright © 2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
+ Modifications copyright © 2017,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
- 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:strokeWidth="0.95815897" />
+ 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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
- 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"
- android:strokeWidth="0.95815897" />
+ 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" />
</vector>
\ No newline at end of file
<!-- This file is derived from `exit_to_app`, which is part of the Android Material icon set. It is released under the Apache License 2.0.
- Modifications copyright © 2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
+ Modifications copyright © 2017,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
- 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:strokeWidth="0.95815897" />
+ 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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
- 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"
- android:strokeWidth="0.95815897" />
+ 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" />
</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z" />
</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `edit`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF202020"
+ android:fillColor="@color/gray_925"
android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `edit`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"/>
</vector>
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF0D47A1"
+ android:fillColor="@color/blue_900"
android:pathData="M10,4H4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2V8c0,-1.1 -0.9,-2 -2,-2h-8l-2,-2z"/>
</vector>
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M10,4H4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2V8c0,-1.1 -0.9,-2 -2,-2h-8l-2,-2z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `text_fields`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M2.5,4v3h5v12h3L10.5,7h5L15.5,4h-13zM21.5,9h-9v3h3v7h3v-7h3L21.5,9z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `text_fields`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M2.5,4v3h5v12h3L10.5,7h5L15.5,4h-13zM21.5,9h-9v3h3v7h3v-7h3L21.5,9z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `subtitles`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M20,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM4,12h4v2L4,14v-2zM14,18L4,18v-2h10v2zM20,18h-4v-2h4v2zM20,14L10,14v-2h10v2z"/>
</vector>
<!-- This file comes from the Android Material icon set, where it is called `subtitles`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M20,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM4,12h4v2L4,14v-2zM14,18L4,18v-2h10v2zM20,18h-4v-2h4v2zM20,14L10,14v-2h10v2z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `subtitles`. It is released under the Apache License 2.0. -->
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M20,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM4,12h4v2L4,14v-2zM14,18L4,18v-2h10v2zM20,18h-4v-2h4v2zM20,14L10,14v-2h10v2z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `subtitles`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M20,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM4,12h4v2L4,14v-2zM14,18L4,18v-2h10v2zM20,18h-4v-2h4v2zM20,14L10,14v-2h10v2z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `subtitles`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFF57F17"
+ android:fillColor="@color/yellow_900"
android:pathData="M20,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM4,12h4v2L4,14v-2zM14,18L4,18v-2h10v2zM20,18h-4v-2h4v2zM20,14L10,14v-2h10v2z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `subtitles`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="26dp"
android:width="26dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFB71C1C"
+ android:fillColor="@color/red_900"
android:pathData="M20,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM4,12h4v2L4,14v-2zM14,18L4,18v-2h10v2zM20,18h-4v-2h4v2zM20,14L10,14v-2h10v2z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `arrow_forward`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF000000"
+ android:fillColor="@color/black"
android:pathData="M12,4l-1.41,1.41L16.17,11H4v2h12.17l-5.58,5.59L12,20l8,-8z" />
</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M17,1.01L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V3c0,-1.1 -0.9,-1.99 -2,-1.99zM17,19H7V5h10v14z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M17,1.01L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V3c0,-1.1 -0.9,-1.99 -2,-1.99zM17,19H7V5h10v14z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M17,1.01L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V3c0,-1.1 -0.9,-1.99 -2,-1.99zM17,19H7V5h10v14z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M17,1.01L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V3c0,-1.1 -0.9,-1.99 -2,-1.99zM17,19H7V5h10v14z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `import_contacts`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF000000"
+ android:fillColor="@color/black"
android:pathData="M21,5c-1.11,-0.35 -2.33,-0.5 -3.5,-0.5 -1.95,0 -4.05,0.4 -5.5,1.5 -1.45,-1.1 -3.55,-1.5 -5.5,-1.5S2.45,4.9 1,6v14.65c0,0.25 0.25,0.5 0.5,0.5 0.1,0 0.15,-0.05 0.25,-0.05C3.1,20.45 5.05,20 6.5,20c1.95,0 4.05,0.4 5.5,1.5 1.35,-0.85 3.8,-1.5 5.5,-1.5 1.65,0 3.35,0.3 4.75,1.05 0.1,0.05 0.15,0.05 0.25,0.05 0.25,0 0.5,-0.25 0.5,-0.5L23,6c-0.6,-0.45 -1.25,-0.75 -2,-1zM21,18.5c-1.1,-0.35 -2.3,-0.5 -3.5,-0.5 -1.7,0 -4.15,0.65 -5.5,1.5L12,8c1.35,-0.85 3.8,-1.5 5.5,-1.5 1.2,0 2.4,0.15 3.5,0.5v11.5z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `list`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF000000"
+ android:fillColor="@color/black"
android:pathData="M3,13h2v-2L3,11v2zM3,17h2v-2L3,15v2zM3,9h2L5,7L3,7v2zM7,13h14v-2L7,11v2zM7,17h14v-2L7,15v2zM7,7v2h14L21,7L7,7z" />
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `image`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `image`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `image`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `image`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `image`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF202020"
+ android:fillColor="@color/gray_925"
android:pathData="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `image`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `import_export`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF5785C5"
+ android:fillColor="@color/black"
android:pathData="M9,3L5,6.99h3L8,14h2L10,6.99h3L9,3zM16,17.01L16,10h-2v7.01h-3L15,21l4,-3.99h-3z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `visibility_off`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
- android:viewportWidth="24"
- tools:ignore="VectorRaster">
+ android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M12,7c2.76,0 5,2.24 5,5 0,0.65 -0.13,1.26 -0.36,1.83l2.92,2.92c1.51,-1.26 2.7,-2.89 3.43,-4.75 -1.73,-4.39 -6,-7.5 -11,-7.5 -1.4,0 -2.74,0.25 -3.98,0.7l2.16,2.16C10.74,7.13 11.35,7 12,7zM2,4.27l2.28,2.28 0.46,0.46C3.08,8.3 1.78,10.02 1,12c1.73,4.39 6,7.5 11,7.5 1.55,0 3.03,-0.3 4.38,-0.84l0.42,0.42L19.73,22 21,20.73 3.27,3 2,4.27zM7.53,9.8l1.55,1.55c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.66 1.34,3 3,3 0.22,0 0.44,-0.03 0.65,-0.08l1.55,1.55c-0.67,0.33 -1.41,0.53 -2.2,0.53 -2.76,0 -5,-2.24 -5,-5 0,-0.79 0.2,-1.53 0.53,-2.2zM11.84,9.02l3.15,3.15 0.02,-0.16c0,-1.66 -1.34,-3 -3,-3l-0.17,0.01z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `visibility_off`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
- android:viewportWidth="24"
- tools:ignore="VectorRaster">
+ android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M12,7c2.76,0 5,2.24 5,5 0,0.65 -0.13,1.26 -0.36,1.83l2.92,2.92c1.51,-1.26 2.7,-2.89 3.43,-4.75 -1.73,-4.39 -6,-7.5 -11,-7.5 -1.4,0 -2.74,0.25 -3.98,0.7l2.16,2.16C10.74,7.13 11.35,7 12,7zM2,4.27l2.28,2.28 0.46,0.46C3.08,8.3 1.78,10.02 1,12c1.73,4.39 6,7.5 11,7.5 1.55,0 3.03,-0.3 4.38,-0.84l0.42,0.42L19.73,22 21,20.73 3.27,3 2,4.27zM7.53,9.8l1.55,1.55c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.66 1.34,3 3,3 0.22,0 0.44,-0.03 0.65,-0.08l1.55,1.55c-0.67,0.33 -1.41,0.53 -2.2,0.53 -2.76,0 -5,-2.24 -5,-5 0,-0.79 0.2,-1.53 0.53,-2.2zM11.84,9.02l3.15,3.15 0.02,-0.16c0,-1.66 -1.34,-3 -3,-3l-0.17,0.01z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `visibility_off`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
- android:viewportWidth="24"
- tools:ignore="VectorRaster">
+ android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M12,7c2.76,0 5,2.24 5,5 0,0.65 -0.13,1.26 -0.36,1.83l2.92,2.92c1.51,-1.26 2.7,-2.89 3.43,-4.75 -1.73,-4.39 -6,-7.5 -11,-7.5 -1.4,0 -2.74,0.25 -3.98,0.7l2.16,2.16C10.74,7.13 11.35,7 12,7zM2,4.27l2.28,2.28 0.46,0.46C3.08,8.3 1.78,10.02 1,12c1.73,4.39 6,7.5 11,7.5 1.55,0 3.03,-0.3 4.38,-0.84l0.42,0.42L19.73,22 21,20.73 3.27,3 2,4.27zM7.53,9.8l1.55,1.55c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.66 1.34,3 3,3 0.22,0 0.44,-0.03 0.65,-0.08l1.55,1.55c-0.67,0.33 -1.41,0.53 -2.2,0.53 -2.76,0 -5,-2.24 -5,-5 0,-0.79 0.2,-1.53 0.53,-2.2zM11.84,9.02l3.15,3.15 0.02,-0.16c0,-1.66 -1.34,-3 -3,-3l-0.17,0.01z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `visibility_off`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
- android:viewportWidth="24"
- tools:ignore="VectorRaster">
+ android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M12,7c2.76,0 5,2.24 5,5 0,0.65 -0.13,1.26 -0.36,1.83l2.92,2.92c1.51,-1.26 2.7,-2.89 3.43,-4.75 -1.73,-4.39 -6,-7.5 -11,-7.5 -1.4,0 -2.74,0.25 -3.98,0.7l2.16,2.16C10.74,7.13 11.35,7 12,7zM2,4.27l2.28,2.28 0.46,0.46C3.08,8.3 1.78,10.02 1,12c1.73,4.39 6,7.5 11,7.5 1.55,0 3.03,-0.3 4.38,-0.84l0.42,0.42L19.73,22 21,20.73 3.27,3 2,4.27zM7.53,9.8l1.55,1.55c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.66 1.34,3 3,3 0.22,0 0.44,-0.03 0.65,-0.08l1.55,1.55c-0.67,0.33 -1.41,0.53 -2.2,0.53 -2.76,0 -5,-2.24 -5,-5 0,-0.79 0.2,-1.53 0.53,-2.2zM11.84,9.02l3.15,3.15 0.02,-0.16c0,-1.66 -1.34,-3 -3,-3l-0.17,0.01z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- `javascript_enabled.xml` is derived from `security` and `language`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
- Modifications copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
+ Modifications copyright © 2016-2017,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="26dp"
android:viewportHeight="256.0"
android:viewportWidth="256.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Inner shield. -->
<path
- android:fillAlpha="1"
- android:fillColor="#b71c1c"
- 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:strokeColor="#00000000" />
+ 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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Outer shield. -->
<path
- android:fillAlpha="1"
- android:fillColor="#d32f2f"
- 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"
- android:strokeColor="#00000000" />
+ 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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Globe. -->
<path
- android:fillAlpha="1"
- android:fillColor="#ffffff"
+ android:fillColor="@color/white"
android:pathData="m127.92,48.21c-44.04,0 -79.71,35.74 -79.71,79.79 0,44.04 35.66,79.79 79.71,79.79 44.12,0 79.87,-35.74 79.87,-79.79 0,-44.04 -35.74,-79.79 -79.87,-79.79zM183.21,96.09 L159.67,96.09c-2.55,-9.97 -6.22,-19.55 -11.01,-28.4 14.68,5.03 26.89,15.24 34.55,28.4zM128,64.49c6.62,9.57 11.81,20.19 15.24,31.6l-30.48,0c3.43,-11.41 8.62,-22.02 15.24,-31.6zM66.25,143.96C64.97,138.85 64.17,133.51 64.17,128c0,-5.51 0.8,-10.85 2.07,-15.96l26.97,0c-0.64,5.27 -1.12,10.53 -1.12,15.96 0,5.43 0.48,10.69 1.12,15.96l-26.97,0zM72.79,159.91 L96.33,159.91c2.55,9.97 6.22,19.55 11.01,28.4 -14.68,-5.03 -26.89,-15.16 -34.55,-28.4zM96.33,96.09 L72.79,96.09c7.66,-13.24 19.87,-23.38 34.55,-28.4 -4.79,8.86 -8.46,18.43 -11.01,28.4zM128,191.51c-6.62,-9.57 -11.81,-20.19 -15.24,-31.6l30.48,0C139.81,171.32 134.62,181.94 128,191.51ZM146.67,143.96 L109.33,143.96c-0.72,-5.27 -1.28,-10.53 -1.28,-15.96 0,-5.43 0.56,-10.77 1.28,-15.96l37.34,0c0.72,5.19 1.28,10.53 1.28,15.96 0,5.43 -0.56,10.69 -1.28,15.96zM148.66,188.32c4.79,-8.86 8.46,-18.43 11.01,-28.4l23.54,0c-7.66,13.16 -19.87,23.38 -34.55,28.4zM162.79,143.96c0.64,-5.27 1.12,-10.53 1.12,-15.96 0,-5.43 -0.48,-10.69 -1.12,-15.96l26.97,0c1.28,5.11 2.07,10.45 2.07,15.96 0,5.51 -0.8,10.85 -2.07,15.96l-26.97,0z" />
</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM12,17c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM15.1,8L8.9,8L8.9,6c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM12,17c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM15.1,8L8.9,8L8.9,6c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `link_off`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M17,7h-4v1.9h4c1.71,0 3.1,1.39 3.1,3.1 0,1.43 -0.98,2.63 -2.31,2.98l1.46,1.46C20.88,15.61 22,13.95 22,12c0,-2.76 -2.24,-5 -5,-5zM16,11h-2.19l2,2L16,13zM2,4.27l3.11,3.11C3.29,8.12 2,9.91 2,12c0,2.76 2.24,5 5,5h4v-1.9L7,15.1c-1.71,0 -3.1,-1.39 -3.1,-3.1 0,-1.59 1.21,-2.9 2.76,-3.07L8.73,11L8,11v2h2.73L13,15.27L13,17h1.73l4.01,4L20,19.74 3.27,3 2,4.27z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `link_off`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M17,7h-4v1.9h4c1.71,0 3.1,1.39 3.1,3.1 0,1.43 -0.98,2.63 -2.31,2.98l1.46,1.46C20.88,15.61 22,13.95 22,12c0,-2.76 -2.24,-5 -5,-5zM16,11h-2.19l2,2L16,13zM2,4.27l3.11,3.11C3.29,8.12 2,9.91 2,12c0,2.76 2.24,5 5,5h4v-1.9L7,15.1c-1.71,0 -3.1,-1.39 -3.1,-3.1 0,-1.59 1.21,-2.9 2.76,-3.07L8.73,11L8,11v2h2.73L13,15.27L13,17h1.73l4.01,4L20,19.74 3.27,3 2,4.27z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `link_off`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M17,7h-4v1.9h4c1.71,0 3.1,1.39 3.1,3.1 0,1.43 -0.98,2.63 -2.31,2.98l1.46,1.46C20.88,15.61 22,13.95 22,12c0,-2.76 -2.24,-5 -5,-5zM16,11h-2.19l2,2L16,13zM2,4.27l3.11,3.11C3.29,8.12 2,9.91 2,12c0,2.76 2.24,5 5,5h4v-1.9L7,15.1c-1.71,0 -3.1,-1.39 -3.1,-3.1 0,-1.59 1.21,-2.9 2.76,-3.07L8.73,11L8,11v2h2.73L13,15.27L13,17h1.73l4.01,4L20,19.74 3.27,3 2,4.27z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `link_off`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M17,7h-4v1.9h4c1.71,0 3.1,1.39 3.1,3.1 0,1.43 -0.98,2.63 -2.31,2.98l1.46,1.46C20.88,15.61 22,13.95 22,12c0,-2.76 -2.24,-5 -5,-5zM16,11h-2.19l2,2L16,13zM2,4.27l3.11,3.11C3.29,8.12 2,9.91 2,12c0,2.76 2.24,5 5,5h4v-1.9L7,15.1c-1.71,0 -3.1,-1.39 -3.1,-3.1 0,-1.59 1.21,-2.9 2.76,-3.07L8.73,11L8,11v2h2.73L13,15.27L13,17h1.73l4.01,4L20,19.74 3.27,3 2,4.27z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `more`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
- android:viewportWidth="24"
- tools:ignore="VectorRaster">
+ android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M22,3L7,3c-0.69,0 -1.23,0.35 -1.59,0.88L0,12l5.41,8.11c0.36,0.53 0.97,0.89 1.66,0.89L22,21c1.1,0 2,-0.9 2,-2L24,5c0,-1.1 -0.9,-2 -2,-2zM9,13.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.5zM14,13.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.5zM19,13.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.5z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `more`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
- android:viewportWidth="24"
- tools:ignore="VectorRaster">
+ android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M22,3L7,3c-0.69,0 -1.23,0.35 -1.59,0.88L0,12l5.41,8.11c0.36,0.53 0.97,0.89 1.66,0.89L22,21c1.1,0 2,-0.9 2,-2L24,5c0,-1.1 -0.9,-2 -2,-2zM9,13.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.5zM14,13.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.5zM19,13.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.5z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `more`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:autoMirrored="true"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:width="24dp"
- tools:ignore="VectorRaster">
+ android:width="24dp" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M22,3L7,3c-0.69,0 -1.23,0.35 -1.59,0.88L0,12l5.41,8.11c0.36,0.53 0.97,0.89 1.66,0.89L22,21c1.1,0 2,-0.9 2,-2L24,5c0,-1.1 -0.9,-2 -2,-2zM9,13.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.5zM14,13.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.5zM19,13.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.5z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `more`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:autoMirrored="true"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:width="24dp"
- tools:ignore="VectorRaster">
+ android:width="24dp" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M22,3L7,3c-0.69,0 -1.23,0.35 -1.59,0.88L0,12l5.41,8.11c0.36,0.53 0.97,0.89 1.66,0.89L22,21c1.1,0 2,-0.9 2,-2L24,5c0,-1.1 -0.9,-2 -2,-2zM9,13.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.5zM14,13.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.5zM19,13.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.5z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M16,13h-3V3h-2v10H8l4,4 4,-4zM4,19v2h16v-2H4z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF202020"
+ android:fillColor="@color/gray_925"
android:pathData="M16,13h-3V3h-2v10H8l4,4 4,-4zM4,19v2h16v-2H4z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M16,13h-3V3h-2v10H8l4,4 4,-4zM4,19v2h16v-2H4z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file is derived from elements of `folder` and `exit_to_app`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
- Modifications copyright © 2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
+ Modifications copyright © 2017,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M4,4C2.9,4 2.01,4.9 2.01,6L2,18C2,19.1 2.9,20 4,20L20,20C21.1,20 22,19.1 22,18L22,8C22,6.9 21.1,6 20,6L12,6L10,4L4,4zM13.75,7.83L18.75,12.83L13.75,17.83L12.34,16.421L14.92,13.83L5.25,13.83L5.25,11.83L14.92,11.83L12.34,9.24L13.75,7.83z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file is derived from elements of `folder` and `exit_to_app`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
- Modifications copyright © 2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
+ Modifications copyright © 2017,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M4,4C2.9,4 2.01,4.9 2.01,6L2,18C2,19.1 2.9,20 4,20L20,20C21.1,20 22,19.1 22,18L22,8C22,6.9 21.1,6 20,6L12,6L10,4L4,4zM13.75,7.83L18.75,12.83L13.75,17.83L12.34,16.421L14.92,13.83L5.25,13.83L5.25,11.83L14.92,11.83L12.34,9.24L13.75,7.83z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file is derived from elements of `folder` and `exit_to_app`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
Modifications copyright © 2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF202020"
+ android:fillColor="@color/gray_925"
android:pathData="M4,4C2.9,4 2.01,4.9 2.01,6L2,18C2,19.1 2.9,20 4,20L20,20C21.1,20 22,19.1 22,18L22,8C22,6.9 21.1,6 20,6L12,6L10,4L4,4zM13.75,7.83L18.75,12.83L13.75,17.83L12.34,16.421L14.92,13.83L5.25,13.83L5.25,11.83L14.92,11.83L12.34,9.24L13.75,7.83z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file is derived from elements of `folder` and `exit_to_app`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
Modifications copyright © 2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M4,4C2.9,4 2.01,4.9 2.01,6L2,18C2,19.1 2.9,20 4,20L20,20C21.1,20 22,19.1 22,18L22,8C22,6.9 21.1,6 20,6L12,6L10,4L4,4zM13.75,7.83L18.75,12.83L13.75,17.83L12.34,16.421L14.92,13.83L5.25,13.83L5.25,11.83L14.92,11.83L12.34,9.24L13.75,7.83z" />
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M8,11h3v10h2V11h3l-4,-4 -4,4zM4,3v2h16V3H4z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF202020"
+ android:fillColor="@color/gray_925"
android:pathData="M8,11h3v10h2V11h3l-4,-4 -4,4zM4,3v2h16V3H4z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M8,11h3v10h2V11h3l-4,-4 -4,4zM4,3v2h16V3H4z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF000000"
+ android:fillColor="@color/black"
android:pathData="M16.59,8.59L12,13.17 7.41,8.59 6,10l6,6 6,-6z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF000000"
+ android:fillColor="@color/black"
android:pathData="M12,8l-6,6 1.41,1.41L12,10.83l4.59,4.58L18,14z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file is derived from `security` and `language`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
- Modifications copyright © 2016-2017,2021 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-
+ Modifications copyright © 2016-2017,2021-2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="108dp"
android:translateX="133.81818"
android:translateY="133.81818" >
- <!-- The inner shield. A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Inner shield. -->
<path
- 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="#0d4781" />
+ 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" />
- <!-- The outer shield. A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Outer shield. -->
<path
- 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="#1976d2" />
+ 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" />
- <!-- The globe. A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Globe. -->
<path
- 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="#ffffff" />
+ 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" />
</group>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file is derived from `security` and `language`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
- Modifications copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
+ Modifications copyright © 2016-2017,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="26dp"
android:viewportHeight="256.0"
android:viewportWidth="256.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Inner shield. -->
<path
- android:fillAlpha="1"
- android:fillColor="#0d4781"
- 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:strokeColor="#00000000" />
+ 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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Outer shield. -->
<path
- android:fillAlpha="1"
- android:fillColor="#1976d2"
- 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"
- android:strokeColor="#00000000" />
+ 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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Globe -->
<path
- android:fillAlpha="1"
- android:fillColor="#ffffff"
+ android:fillColor="@color/white"
android:pathData="m127.92,48.21c-44.04,0 -79.71,35.74 -79.71,79.79 0,44.04 35.66,79.79 79.71,79.79 44.12,0 79.87,-35.74 79.87,-79.79 0,-44.04 -35.74,-79.79 -79.87,-79.79zM183.21,96.09 L159.67,96.09c-2.55,-9.97 -6.22,-19.55 -11.01,-28.4 14.68,5.03 26.89,15.24 34.55,28.4zM128,64.49c6.62,9.57 11.81,20.19 15.24,31.6l-30.48,0c3.43,-11.41 8.62,-22.02 15.24,-31.6zM66.25,143.96C64.97,138.85 64.17,133.51 64.17,128c0,-5.51 0.8,-10.85 2.07,-15.96l26.97,0c-0.64,5.27 -1.12,10.53 -1.12,15.96 0,5.43 0.48,10.69 1.12,15.96l-26.97,0zM72.79,159.91 L96.33,159.91c2.55,9.97 6.22,19.55 11.01,28.4 -14.68,-5.03 -26.89,-15.16 -34.55,-28.4zM96.33,96.09 L72.79,96.09c7.66,-13.24 19.87,-23.38 34.55,-28.4 -4.79,8.86 -8.46,18.43 -11.01,28.4zM128,191.51c-6.62,-9.57 -11.81,-20.19 -15.24,-31.6l30.48,0C139.81,171.32 134.62,181.94 128,191.51ZM146.67,143.96 L109.33,143.96c-0.72,-5.27 -1.28,-10.53 -1.28,-15.96 0,-5.43 0.56,-10.77 1.28,-15.96l37.34,0c0.72,5.19 1.28,10.53 1.28,15.96 0,5.43 -0.56,10.69 -1.28,15.96zM148.66,188.32c4.79,-8.86 8.46,-18.43 11.01,-28.4l23.54,0c-7.66,13.16 -19.87,23.38 -34.55,28.4zM162.79,143.96c0.64,-5.27 1.12,-10.53 1.12,-15.96 0,-5.43 -0.48,-10.69 -1.12,-15.96l26.97,0c1.28,5.11 2.07,10.45 2.07,15.96 0,5.51 -0.8,10.85 -2.07,15.96l-26.97,0z" />
</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M19,4L5,4c-1.11,0 -2,0.9 -2,2v12c0,1.1 0.89,2 2,2h4v-2L5,18L5,8h14v10h-4v2h4c1.1,0 2,-0.9 2,-2L21,6c0,-1.1 -0.89,-2 -2,-2zM12,10l-4,4h3v6h2v-6h3l-4,-4z" />
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M19,4L5,4c-1.11,0 -2,0.9 -2,2v12c0,1.1 0.89,2 2,2h4v-2L5,18L5,8h14v10h-4v2h4c1.1,0 2,-0.9 2,-2L21,6c0,-1.1 -0.89,-2 -2,-2zM12,10l-4,4h3v6h2v-6h3l-4,-4z" />
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_700"
android:pathData="M19,4L5,4c-1.11,0 -2,0.9 -2,2v12c0,1.1 0.89,2 2,2h4v-2L5,18L5,8h14v10h-4v2h4c1.1,0 2,-0.9 2,-2L21,6c0,-1.1 -0.89,-2 -2,-2zM12,10l-4,4h3v6h2v-6h3l-4,-4z" />
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M19,4L5,4c-1.11,0 -2,0.9 -2,2v12c0,1.1 0.89,2 2,2h4v-2L5,18L5,8h14v10h-4v2h4c1.1,0 2,-0.9 2,-2L21,6c0,-1.1 -0.89,-2 -2,-2zM12,10l-4,4h3v6h2v-6h3l-4,-4z" />
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFB7B7B7"
+ android:fillColor="@color/gray_425"
android:pathData="M19,4L5,4c-1.11,0 -2,0.9 -2,2v12c0,1.1 0.89,2 2,2h4v-2L5,18L5,8h14v10h-4v2h4c1.1,0 2,-0.9 2,-2L21,6c0,-1.1 -0.89,-2 -2,-2zM12,10l-4,4h3v6h2v-6h3l-4,-4z" />
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF616161"
+ android:fillColor="@color/gray_700"
android:pathData="M19,4L5,4c-1.11,0 -2,0.9 -2,2v12c0,1.1 0.89,2 2,2h4v-2L5,18L5,8h14v10h-4v2h4c1.1,0 2,-0.9 2,-2L21,6c0,-1.1 -0.89,-2 -2,-2zM12,10l-4,4h3v6h2v-6h3l-4,-4z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `refresh`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M17.65,6.35C16.2,4.9 14.21,4 12,4c-4.42,0 -7.99,3.58 -7.99,8s3.57,8 7.99,8c3.73,0 6.84,-2.55 7.73,-6h-2.08c-0.82,2.33 -3.04,4 -5.65,4 -3.31,0 -6,-2.69 -6,-6s2.69,-6 6,-6c1.66,0 3.14,0.69 4.22,1.78L13,11h7V4l-2.35,2.35z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `refresh`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M17.65,6.35C16.2,4.9 14.21,4 12,4c-4.42,0 -7.99,3.58 -7.99,8s3.57,8 7.99,8c3.73,0 6.84,-2.55 7.73,-6h-2.08c-0.82,2.33 -3.04,4 -5.65,4 -3.31,0 -6,-2.69 -6,-6s2.69,-6 6,-6c1.66,0 3.14,0.69 4.22,1.78L13,11h7V4l-2.35,2.35z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `refresh`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M17.65,6.35C16.2,4.9 14.21,4 12,4c-4.42,0 -7.99,3.58 -7.99,8s3.57,8 7.99,8c3.73,0 6.84,-2.55 7.73,-6h-2.08c-0.82,2.33 -3.04,4 -5.65,4 -3.31,0 -6,-2.69 -6,-6s2.69,-6 6,-6c1.66,0 3.14,0.69 4.22,1.78L13,11h7V4l-2.35,2.35z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `refresh`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M17.65,6.35C16.2,4.9 14.21,4 12,4c-4.42,0 -7.99,3.58 -7.99,8s3.57,8 7.99,8c3.73,0 6.84,-2.55 7.73,-6h-2.08c-0.82,2.33 -3.04,4 -5.65,4 -3.31,0 -6,-2.69 -6,-6s2.69,-6 6,-6c1.66,0 3.14,0.69 4.22,1.78L13,11h7V4l-2.35,2.35z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `save`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF202020"
+ android:fillColor="@color/gray_925"
android:pathData="M17,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,7l-4,-4zM12,19c-1.66,0 -3,-1.34 -3,-3s1.34,-3 3,-3 3,1.34 3,3 -1.34,3 -3,3zM15,9L5,9L5,5h10v4z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `save`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M17,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,7l-4,-4zM12,19c-1.66,0 -3,-1.34 -3,-3s1.34,-3 3,-3 3,1.34 3,3 -1.34,3 -3,3zM15,9L5,9L5,5h10v4z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `chrome_reader_mode`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF202020"
+ android:fillColor="@color/gray_925"
android:pathData="M13,12h7v1.5h-7zM13,9.5h7L20,11h-7zM13,14.5h7L20,16h-7zM21,4L3,4c-1.1,0 -2,0.9 -2,2v13c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,6c0,-1.1 -0.9,-2 -2,-2zM21,19h-9L12,6h9v13z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `chrome_reader_mode`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M13,12h7v1.5h-7zM13,9.5h7L20,11h-7zM13,14.5h7L20,16h-7zM21,4L3,4c-1.1,0 -2,0.9 -2,2v13c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,6c0,-1.1 -0.9,-2 -2,-2zM21,19h-9L12,6h9v13z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `find_in_page`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M20,19.59V8l-6,-6H6c-1.1,0 -1.99,0.9 -1.99,2L4,20c0,1.1 0.89,2 1.99,2H18c0.45,0 0.85,-0.15 1.19,-0.4l-4.43,-4.43c-0.8,0.52 -1.74,0.83 -2.76,0.83 -2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5c0,1.02 -0.31,1.96 -0.83,2.75L20,19.59zM9,13c0,1.66 1.34,3 3,3s3,-1.34 3,-3 -1.34,-3 -3,-3 -3,1.34 -3,3z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `find_in_page`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M20,19.59V8l-6,-6H6c-1.1,0 -1.99,0.9 -1.99,2L4,20c0,1.1 0.89,2 1.99,2H18c0.45,0 0.85,-0.15 1.19,-0.4l-4.43,-4.43c-0.8,0.52 -1.74,0.83 -2.76,0.83 -2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5c0,1.02 -0.31,1.96 -0.83,2.75L20,19.59zM9,13c0,1.66 1.34,3 3,3s3,-1.34 3,-3 -1.34,-3 -3,-3 -3,1.34 -3,3z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `find_in_page`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFB7B7B7"
+ android:fillColor="@color/gray_425"
android:pathData="M20,19.59V8l-6,-6H6c-1.1,0 -1.99,0.9 -1.99,2L4,20c0,1.1 0.89,2 1.99,2H18c0.45,0 0.85,-0.15 1.19,-0.4l-4.43,-4.43c-0.8,0.52 -1.74,0.83 -2.76,0.83 -2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5c0,1.02 -0.31,1.96 -0.83,2.75L20,19.59zM9,13c0,1.66 1.34,3 3,3s3,-1.34 3,-3 -1.34,-3 -3,-3 -3,1.34 -3,3z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `find_in_page`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF616161"
+ android:fillColor="@color/gray_700"
android:pathData="M20,19.59V8l-6,-6H6c-1.1,0 -1.99,0.9 -1.99,2L4,20c0,1.1 0.89,2 1.99,2H18c0.45,0 0.85,-0.15 1.19,-0.4l-4.43,-4.43c-0.8,0.52 -1.74,0.83 -2.76,0.83 -2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5c0,1.02 -0.31,1.96 -0.83,2.75L20,19.59zM9,13c0,1.66 1.34,3 3,3s3,-1.34 3,-3 -1.34,-3 -3,-3 -3,1.34 -3,3z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `search`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `search`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF202020"
+ android:fillColor="@color/gray_925"
android:pathData="M3,5h2L5,3c-1.1,0 -2,0.9 -2,2zM3,13h2v-2L3,11v2zM7,21h2v-2L7,19v2zM3,9h2L5,7L3,7v2zM13,3h-2v2h2L13,3zM19,3v2h2c0,-1.1 -0.9,-2 -2,-2zM5,21v-2L3,19c0,1.1 0.9,2 2,2zM3,17h2v-2L3,15v2zM9,3L7,3v2h2L9,3zM11,21h2v-2h-2v2zM19,13h2v-2h-2v2zM19,21c1.1,0 2,-0.9 2,-2h-2v2zM19,9h2L21,7h-2v2zM19,17h2v-2h-2v2zM15,21h2v-2h-2v2zM15,5h2L17,3h-2v2zM7,17h10L17,7L7,7v10zM9,9h6v6L9,15L9,9z"/>
</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M3,5h2L5,3c-1.1,0 -2,0.9 -2,2zM3,13h2v-2L3,11v2zM7,21h2v-2L7,19v2zM3,9h2L5,7L3,7v2zM13,3h-2v2h2L13,3zM19,3v2h2c0,-1.1 -0.9,-2 -2,-2zM5,21v-2L3,19c0,1.1 0.9,2 2,2zM3,17h2v-2L3,15v2zM9,3L7,3v2h2L9,3zM11,21h2v-2h-2v2zM19,13h2v-2h-2v2zM19,21c1.1,0 2,-0.9 2,-2h-2v2zM19,9h2L21,7h-2v2zM19,17h2v-2h-2v2zM15,21h2v-2h-2v2zM15,5h2L17,3h-2v2zM7,17h10L17,7L7,7v10zM9,9h6v6L9,15L9,9z"/>
</vector>
\ No newline at end of file
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF000000"
+ android:fillColor="@color/black"
android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `image`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF202020"
+ android:fillColor="@color/gray_925"
android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `image`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `thumbs_up_down`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M12,6c0,-0.55 -0.45,-1 -1,-1L5.82,5l0.66,-3.18 0.02,-0.23c0,-0.31 -0.13,-0.59 -0.33,-0.8L5.38,0 0.44,4.94C0.17,5.21 0,5.59 0,6v6.5c0,0.83 0.67,1.5 1.5,1.5h6.75c0.62,0 1.15,-0.38 1.38,-0.91l2.26,-5.29c0.07,-0.17 0.11,-0.36 0.11,-0.55L12,6zM22.5,10h-6.75c-0.62,0 -1.15,0.38 -1.38,0.91l-2.26,5.29c-0.07,0.17 -0.11,0.36 -0.11,0.55L12,18c0,0.55 0.45,1 1,1h5.18l-0.66,3.18 -0.02,0.24c0,0.31 0.13,0.59 0.33,0.8l0.79,0.78 4.94,-4.94c0.27,-0.27 0.44,-0.65 0.44,-1.06v-6.5c0,-0.83 -0.67,-1.5 -1.5,-1.5z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `thumbs_up_down`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M12,6c0,-0.55 -0.45,-1 -1,-1L5.82,5l0.66,-3.18 0.02,-0.23c0,-0.31 -0.13,-0.59 -0.33,-0.8L5.38,0 0.44,4.94C0.17,5.21 0,5.59 0,6v6.5c0,0.83 0.67,1.5 1.5,1.5h6.75c0.62,0 1.15,-0.38 1.38,-0.91l2.26,-5.29c0.07,-0.17 0.11,-0.36 0.11,-0.55L12,6zM22.5,10h-6.75c-0.62,0 -1.15,0.38 -1.38,0.91l-2.26,5.29c-0.07,0.17 -0.11,0.36 -0.11,0.55L12,18c0,0.55 0.45,1 1,1h5.18l-0.66,3.18 -0.02,0.24c0,0.31 0.13,0.59 0.33,0.8l0.79,0.78 4.94,-4.94c0.27,-0.27 0.44,-0.65 0.44,-1.06v-6.5c0,-0.83 -0.67,-1.5 -1.5,-1.5z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `thumbs_up_down`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M12,6c0,-0.55 -0.45,-1 -1,-1L5.82,5l0.66,-3.18 0.02,-0.23c0,-0.31 -0.13,-0.59 -0.33,-0.8L5.38,0 0.44,4.94C0.17,5.21 0,5.59 0,6v6.5c0,0.83 0.67,1.5 1.5,1.5h6.75c0.62,0 1.15,-0.38 1.38,-0.91l2.26,-5.29c0.07,-0.17 0.11,-0.36 0.11,-0.55L12,6zM22.5,10h-6.75c-0.62,0 -1.15,0.38 -1.38,0.91l-2.26,5.29c-0.07,0.17 -0.11,0.36 -0.11,0.55L12,18c0,0.55 0.45,1 1,1h5.18l-0.66,3.18 -0.02,0.24c0,0.31 0.13,0.59 0.33,0.8l0.79,0.78 4.94,-4.94c0.27,-0.27 0.44,-0.65 0.44,-1.06v-6.5c0,-0.83 -0.67,-1.5 -1.5,-1.5z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `thumbs_up_down`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M12,6c0,-0.55 -0.45,-1 -1,-1L5.82,5l0.66,-3.18 0.02,-0.23c0,-0.31 -0.13,-0.59 -0.33,-0.8L5.38,0 0.44,4.94C0.17,5.21 0,5.59 0,6v6.5c0,0.83 0.67,1.5 1.5,1.5h6.75c0.62,0 1.15,-0.38 1.38,-0.91l2.26,-5.29c0.07,-0.17 0.11,-0.36 0.11,-0.55L12,6zM22.5,10h-6.75c-0.62,0 -1.15,0.38 -1.38,0.91l-2.26,5.29c-0.07,0.17 -0.11,0.36 -0.11,0.55L12,18c0,0.55 0.45,1 1,1h5.18l-0.66,3.18 -0.02,0.24c0,0.31 0.13,0.59 0.33,0.8l0.79,0.78 4.94,-4.94c0.27,-0.27 0.44,-0.65 0.44,-1.06v-6.5c0,-0.83 -0.67,-1.5 -1.5,-1.5z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `thumbs_up_down`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FFB7B7B7"
+ android:fillColor="@color/gray_425"
android:pathData="M12,6c0,-0.55 -0.45,-1 -1,-1L5.82,5l0.66,-3.18 0.02,-0.23c0,-0.31 -0.13,-0.59 -0.33,-0.8L5.38,0 0.44,4.94C0.17,5.21 0,5.59 0,6v6.5c0,0.83 0.67,1.5 1.5,1.5h6.75c0.62,0 1.15,-0.38 1.38,-0.91l2.26,-5.29c0.07,-0.17 0.11,-0.36 0.11,-0.55L12,6zM22.5,10h-6.75c-0.62,0 -1.15,0.38 -1.38,0.91l-2.26,5.29c-0.07,0.17 -0.11,0.36 -0.11,0.55L12,18c0,0.55 0.45,1 1,1h5.18l-0.66,3.18 -0.02,0.24c0,0.31 0.13,0.59 0.33,0.8l0.79,0.78 4.94,-4.94c0.27,-0.27 0.44,-0.65 0.44,-1.06v-6.5c0,-0.83 -0.67,-1.5 -1.5,-1.5z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `thumbs_up_down`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF616161"
+ android:fillColor="@color/gray_700"
android:pathData="M12,6c0,-0.55 -0.45,-1 -1,-1L5.82,5l0.66,-3.18 0.02,-0.23c0,-0.31 -0.13,-0.59 -0.33,-0.8L5.38,0 0.44,4.94C0.17,5.21 0,5.59 0,6v6.5c0,0.83 0.67,1.5 1.5,1.5h6.75c0.62,0 1.15,-0.38 1.38,-0.91l2.26,-5.29c0.07,-0.17 0.11,-0.36 0.11,-0.55L12,6zM22.5,10h-6.75c-0.62,0 -1.15,0.38 -1.38,0.91l-2.26,5.29c-0.07,0.17 -0.11,0.36 -0.11,0.55L12,18c0,0.55 0.45,1 1,1h5.18l-0.66,3.18 -0.02,0.24c0,0.31 0.13,0.59 0.33,0.8l0.79,0.78 4.94,-4.94c0.27,-0.27 0.44,-0.65 0.44,-1.06v-6.5c0,-0.83 -0.67,-1.5 -1.5,-1.5z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `sort`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF202020"
+ android:fillColor="@color/gray_925"
android:pathData="M3,18h6v-2L3,16v2zM3,6v2h18L21,6L3,6zM3,13h12v-2L3,11v2z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `sort`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M3,18h6v-2L3,16v2zM3,6v2h18L21,6L3,6zM3,13h12v-2L3,11v2z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file is derived from `sort`, which is part of the Android Material icon set and is released under the Apache License 2.0.
- Modifications copyright © 2019 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
+ Modifications copyright © 2019,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- tools:ignore="VectorRaster">
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFE0E0E0"
+ android:fillColor="@color/gray_300"
android:pathData="M3.1525,0L20.8475,0A3.1525,3.1525 0,0 1,24 3.1525L24,20.8475A3.1525,3.1525 0,0 1,20.8475 24L3.1525,24A3.1525,3.1525 0,0 1,0 20.8475L0,3.1525A3.1525,3.1525 0,0 1,3.1525 0z" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF000000"
+ android:fillColor="@color/black"
android:pathData="M3,18H9V16H3ZM3,6v2h18v-2zM3,13H15V11H3Z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file is derived from `sort`, which is part of the Android Material icon set and is released under the Apache License 2.0.
- Modifications copyright © 2019 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
+ Modifications copyright © 2019,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:autoMirrored="true"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- tools:ignore="VectorRaster">
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FF616161"
+ android:fillColor="@color/gray_700"
android:pathData="M3.1525,0L20.8475,0A3.1525,3.1525 0,0 1,24 3.1525L24,20.8475A3.1525,3.1525 0,0 1,20.8475 24L3.1525,24A3.1525,3.1525 0,0 1,0 20.8475L0,3.1525A3.1525,3.1525 0,0 1,3.1525 0z" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFFFFFFF"
+ android:fillColor="@color/white"
android:pathData="M3,18H9V16H3ZM3,6v2h18v-2zM3,13H15V11H3Z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `vpn_lock`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M22,4v-0.5C22,2.12 20.88,1 19.5,1S17,2.12 17,3.5L17,4c-0.55,0 -1,0.45 -1,1v4c0,0.55 0.45,1 1,1h5c0.55,0 1,-0.45 1,-1L23,5c0,-0.55 -0.45,-1 -1,-1zM21.2,4h-3.4v-0.5c0,-0.94 0.76,-1.7 1.7,-1.7s1.7,0.76 1.7,1.7L21.2,4zM18.92,12c0.04,0.33 0.08,0.66 0.08,1 0,2.08 -0.8,3.97 -2.1,5.39 -0.26,-0.81 -1,-1.39 -1.9,-1.39h-1v-3c0,-0.55 -0.45,-1 -1,-1L7,13v-2h2c0.55,0 1,-0.45 1,-1L10,8h2c1.1,0 2,-0.9 2,-2L14,3.46c-0.95,-0.3 -1.95,-0.46 -3,-0.46C5.48,3 1,7.48 1,13s4.48,10 10,10 10,-4.48 10,-10c0,-0.34 -0.02,-0.67 -0.05,-1h-2.03zM10,20.93c-3.95,-0.49 -7,-3.85 -7,-7.93 0,-0.62 0.08,-1.21 0.21,-1.79L8,16v1c0,1.1 0.9,2 2,2v1.93z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `vpn_lock`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M22,4v-0.5C22,2.12 20.88,1 19.5,1S17,2.12 17,3.5L17,4c-0.55,0 -1,0.45 -1,1v4c0,0.55 0.45,1 1,1h5c0.55,0 1,-0.45 1,-1L23,5c0,-0.55 -0.45,-1 -1,-1zM21.2,4h-3.4v-0.5c0,-0.94 0.76,-1.7 1.7,-1.7s1.7,0.76 1.7,1.7L21.2,4zM18.92,12c0.04,0.33 0.08,0.66 0.08,1 0,2.08 -0.8,3.97 -2.1,5.39 -0.26,-0.81 -1,-1.39 -1.9,-1.39h-1v-3c0,-0.55 -0.45,-1 -1,-1L7,13v-2h2c0.55,0 1,-0.45 1,-1L10,8h2c1.1,0 2,-0.9 2,-2L14,3.46c-0.95,-0.3 -1.95,-0.46 -3,-0.46C5.48,3 1,7.48 1,13s4.48,10 10,10 10,-4.48 10,-10c0,-0.34 -0.02,-0.67 -0.05,-1h-2.03zM10,20.93c-3.95,-0.49 -7,-3.85 -7,-7.93 0,-0.62 0.08,-1.21 0.21,-1.79L8,16v1c0,1.1 0.9,2 2,2v1.93z" />
-</vector>
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `vpn_lock`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M22,4v-0.5C22,2.12 20.88,1 19.5,1S17,2.12 17,3.5L17,4c-0.55,0 -1,0.45 -1,1v4c0,0.55 0.45,1 1,1h5c0.55,0 1,-0.45 1,-1L23,5c0,-0.55 -0.45,-1 -1,-1zM21.2,4h-3.4v-0.5c0,-0.94 0.76,-1.7 1.7,-1.7s1.7,0.76 1.7,1.7L21.2,4zM18.92,12c0.04,0.33 0.08,0.66 0.08,1 0,2.08 -0.8,3.97 -2.1,5.39 -0.26,-0.81 -1,-1.39 -1.9,-1.39h-1v-3c0,-0.55 -0.45,-1 -1,-1L7,13v-2h2c0.55,0 1,-0.45 1,-1L10,8h2c1.1,0 2,-0.9 2,-2L14,3.46c-0.95,-0.3 -1.95,-0.46 -3,-0.46C5.48,3 1,7.48 1,13s4.48,10 10,10 10,-4.48 10,-10c0,-0.34 -0.02,-0.67 -0.05,-1h-2.03zM10,20.93c-3.95,-0.49 -7,-3.85 -7,-7.93 0,-0.62 0.08,-1.21 0.21,-1.79L8,16v1c0,1.1 0.9,2 2,2v1.93z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `vpn_lock`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M22,4v-0.5C22,2.12 20.88,1 19.5,1S17,2.12 17,3.5L17,4c-0.55,0 -1,0.45 -1,1v4c0,0.55 0.45,1 1,1h5c0.55,0 1,-0.45 1,-1L23,5c0,-0.55 -0.45,-1 -1,-1zM21.2,4h-3.4v-0.5c0,-0.94 0.76,-1.7 1.7,-1.7s1.7,0.76 1.7,1.7L21.2,4zM18.92,12c0.04,0.33 0.08,0.66 0.08,1 0,2.08 -0.8,3.97 -2.1,5.39 -0.26,-0.81 -1,-1.39 -1.9,-1.39h-1v-3c0,-0.55 -0.45,-1 -1,-1L7,13v-2h2c0.55,0 1,-0.45 1,-1L10,8h2c1.1,0 2,-0.9 2,-2L14,3.46c-0.95,-0.3 -1.95,-0.46 -3,-0.46C5.48,3 1,7.48 1,13s4.48,10 10,10 10,-4.48 10,-10c0,-0.34 -0.02,-0.67 -0.05,-1h-2.03zM10,20.93c-3.95,-0.49 -7,-3.85 -7,-7.93 0,-0.62 0.08,-1.21 0.21,-1.79L8,16v1c0,1.1 0.9,2 2,2v1.93z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `tab`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19L3,5h10v4h8v10z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `tab`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19L3,5h10v4h8v10z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `tab`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19L3,5h10v4h8v10z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `tab`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19L3,5h10v4h8v10z" />
</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `devices_other`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
- 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"/>
-</vector>
+ 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" />
+</vector>
\ No newline at end of file
<!-- This file comes from the Android Material icon set, where it is called `devices_other`. It is released under the Apache License 2.0. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
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"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file is derived from `security` and `language`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
- Modifications copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
+ Modifications copyright © 2016-2017,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="26dp"
android:viewportHeight="256.0"
android:viewportWidth="256.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Inner shield. -->
<path
- android:fillAlpha="1"
- android:fillColor="#f57f17"
- 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:strokeColor="#00000000" />
+ 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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Outer shield. -->
<path
- android:fillAlpha="1"
- android:fillColor="#fbc02d"
- 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"
- android:strokeColor="#00000000" />
+ 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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <!-- Globe. -->
<path
- android:fillAlpha="1"
- android:fillColor="#ffffff"
+ android:fillColor="@color/white"
android:pathData="m127.92,48.21c-44.04,0 -79.71,35.74 -79.71,79.79 0,44.04 35.66,79.79 79.71,79.79 44.12,0 79.87,-35.74 79.87,-79.79 0,-44.04 -35.74,-79.79 -79.87,-79.79zM183.21,96.09 L159.67,96.09c-2.55,-9.97 -6.22,-19.55 -11.01,-28.4 14.68,5.03 26.89,15.24 34.55,28.4zM128,64.49c6.62,9.57 11.81,20.19 15.24,31.6l-30.48,0c3.43,-11.41 8.62,-22.02 15.24,-31.6zM66.25,143.96C64.97,138.85 64.17,133.51 64.17,128c0,-5.51 0.8,-10.85 2.07,-15.96l26.97,0c-0.64,5.27 -1.12,10.53 -1.12,15.96 0,5.43 0.48,10.69 1.12,15.96l-26.97,0zM72.79,159.91 L96.33,159.91c2.55,9.97 6.22,19.55 11.01,28.4 -14.68,-5.03 -26.89,-15.16 -34.55,-28.4zM96.33,96.09 L72.79,96.09c7.66,-13.24 19.87,-23.38 34.55,-28.4 -4.79,8.86 -8.46,18.43 -11.01,28.4zM128,191.51c-6.62,-9.57 -11.81,-20.19 -15.24,-31.6l30.48,0C139.81,171.32 134.62,181.94 128,191.51ZM146.67,143.96 L109.33,143.96c-0.72,-5.27 -1.28,-10.53 -1.28,-15.96 0,-5.43 0.56,-10.77 1.28,-15.96l37.34,0c0.72,5.19 1.28,10.53 1.28,15.96 0,5.43 -0.56,10.69 -1.28,15.96zM148.66,188.32c4.79,-8.86 8.46,-18.43 11.01,-28.4l23.54,0c-7.66,13.16 -19.87,23.38 -34.55,28.4zM162.79,143.96c0.64,-5.27 1.12,-10.53 1.12,-15.96 0,-5.43 -0.48,-10.69 -1.12,-15.96l26.97,0c1.28,5.11 2.07,10.45 2.07,15.96 0,5.51 -0.8,10.85 -2.07,15.96l-26.97,0z" />
</vector>
\ No newline at end of file
<!-- This file is derived from `compare`, which is part of the Android Material icon set. It is released under the Apache License 2.0.
- Modifications copyright © 2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
+ Modifications copyright © 2017,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="m14,3h5c1.1,0 2,0.9 2,2v14c0,1.1 -0.9,2 -2,2h-5v2L12,23L12,1h2zM14,18h5L14,12ZM5,3h5L10,5L5,5v13l5,-6v9L5,21C3.9,21 3,20.1 3,19L3,5C3,3.9 3.9,3 5,3Z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file is derived from `compare`, which is part of the Android Material icon set. It is released under the Apache License 2.0.
- Modifications copyright © 2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
+ Modifications copyright © 2017,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="m14,3h5c1.1,0 2,0.9 2,2v14c0,1.1 -0.9,2 -2,2h-5v2L12,23L12,1h2zM14,18h5L14,12ZM5,3h5L10,5L5,5v13l5,-6v9L5,21C3.9,21 3,20.1 3,19L3,5C3,3.9 3.9,3 5,3Z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file is derived from `compare`, which is part of the Android Material icon set. It is released under the Apache License 2.0.
- Modifications copyright © 2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
+ Modifications copyright © 2017,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="m14,3h5c1.1,0 2,0.9 2,2v14c0,1.1 -0.9,2 -2,2h-5v2L12,23L12,1h2zM14,18h5L14,12ZM5,3h5L10,5L5,5v13l5,-6v9L5,21C3.9,21 3,20.1 3,19L3,5C3,3.9 3.9,3 5,3Z"/>
-</vector>
+</vector>
\ No newline at end of file
<!-- This file is derived from `compare`, which is part of the Android Material icon set. It is released under the Apache License 2.0.
- Modifications copyright © 2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-
-<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
+ Modifications copyright © 2017,2022 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:height="24dp"
android:width="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
+ android:autoMirrored="true" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="m14,3h5c1.1,0 2,0.9 2,2v14c0,1.1 -0.9,2 -2,2h-5v2L12,23L12,1h2zM14,18h5L14,12ZM5,3h5L10,5L5,5v13l5,-6v9L5,21C3.9,21 3,20.1 3,19L3,5C3,3.9 3.9,3 5,3Z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF757575"
+ android:fillColor="@color/gray_600"
android:pathData="M12.01,5.5L10,8h4l-1.99,-2.5zM18,10v4l2.5,-1.99L18,10zM6,10l-2.5,2.01L6,14v-4zM14,16h-4l2.01,2.5L14,16zM21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19.01L3,19.01L3,4.99h18v14.02z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF9E9E9E"
+ android:fillColor="@color/gray_500"
android:pathData="M12.01,5.5L10,8h4l-1.99,-2.5zM18,10v4l2.5,-1.99L18,10zM6,10l-2.5,2.01L6,14v-4zM14,16h-4l2.01,2.5L14,16zM21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19.01L3,19.01L3,4.99h18v14.02z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF1565C0"
+ android:fillColor="@color/blue_800"
android:pathData="M12.01,5.5L10,8h4l-1.99,-2.5zM18,10v4l2.5,-1.99L18,10zM6,10l-2.5,2.01L6,14v-4zM14,16h-4l2.01,2.5L14,16zM21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19.01L3,19.01L3,4.99h18v14.02z"/>
-</vector>
+</vector>
\ No newline at end of file
android:viewportHeight="24"
android:viewportWidth="24" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
- android:fillColor="#FF8AB4F8"
+ android:fillColor="@color/violet_500"
android:pathData="M12.01,5.5L10,8h4l-1.99,-2.5zM18,10v4l2.5,-1.99L18,10zM6,10l-2.5,2.01L6,14v-4zM14,16h-4l2.01,2.5L14,16zM21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19.01L3,19.01L3,4.99h18v14.02z"/>
-</vector>
+</vector>
\ No newline at end of file
android:inputType="textPassword"/>
</com.google.android.material.textfield.TextInputLayout>
- <!-- KitKat password encryption message. -->
- <TextView
- android:id="@+id/kitkat_password_encryption_textview"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_gravity="center_horizontal"
- android:layout_marginTop="10dp"
- android:text="@string/kitkat_password_encryption_message"
- android:textAlignment="center" />
-
<!-- OpenKeychain required message. -->
<TextView
android:id="@+id/openkeychain_required_textview"
android:inputType="textPassword"/>
</com.google.android.material.textfield.TextInputLayout>
- <!-- KitKat password encryption message. -->
- <TextView
- android:id="@+id/kitkat_password_encryption_textview"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_gravity="center_horizontal"
- android:layout_marginTop="10dp"
- android:text="@string/kitkat_password_encryption_message"
- android:textAlignment="center" />
-
<!-- OpenKeychain required message. -->
<TextView
android:id="@+id/openkeychain_required_textview"
<item>Passwort</item>
<item>OpenPGP</item>
</string-array>
- <string name="kitkat_password_encryption_message">Passwort-Verschlüsselung ist mit Android KitKat nicht möglich.</string>
<string name="openkeychain_required">Für die OpenPGP-Verschlüsselung muss OpenKeychain installiert sein.</string>
<string name="openkeychain_import_instructions">Die unverschlüsselte Datei muss in einem weiteren Schritt importiert werden, nachdem sie entschlüsselt wurde.</string>
<string name="file_location">Datei-Ordner</string>
<string name="i2p_not_installed_message">Der I2P-Proxy kann erst nach Installation der I2P-App genutzt werden.</string>
<string name="waiting_for_orbot">Warte auf die Verbindung zum Orbot-Proxy.</string>
<string name="custom_proxy_invalid">Die benutzerdefinierte Proxy-URL ist ungültig.</string>
- <string name="socks_proxies_do_not_work_on_kitkat">SOCKS-Proxies funktionieren nicht unter Android KitKat.</string>
<!-- About Activity. The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
<string name="about_privacy_browser">Über Privacy Browser</string>
</string-array>
<string name="no_proxy_enabled">Keiner - direkte Verbindung zum Internet.</string>
<string name="tor_enabled">Tor - Verbidnung über socks://localhost:9050.</string>
- <string name="tor_enabled_kitkat">Tor - Verbidnung über http://localhost:8118.</string>
<string name="i2p_enabled">I2P - Verbindung über http://localhost:4444.</string>
<string name="custom_proxy">Benutzerdefinierter Proxy</string>
<string name="proxy_custom_url">Benutzerdefinierte Proxy-URL</string>
<item>Contraseña</item>
<item>OpenPGP</item>
</string-array>
- <string name="kitkat_password_encryption_message">El cifrado de contraseñas no funciona en Android KitKat.</string>
<string name="openkeychain_required">El cifrado OpenPGP requiere que esté instalado OpenKeychain.</string>
<string name="openkeychain_import_instructions">El archivo sin cifrar tendrá que ser importado en un paso separado después de ser descifrado.</string>
<string name="file_location">Ubicación del archivo</string>
<string name="i2p_not_installed_message">El proxy a través de I2P no funcionará a menos que la aplicación I2P esté instalada.</string>
<string name="waiting_for_orbot">Esperando a que Orbot se conecte.</string>
<string name="custom_proxy_invalid">La URL del proxy personalizado no es válida.</string>
- <string name="socks_proxies_do_not_work_on_kitkat">SOCKS proxies do not work on Android KitKat.</string>
<!-- About Activity. The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
<string name="about_privacy_browser">Acerca de Navegador Privado</string>
</string-array>
<string name="no_proxy_enabled">Ninguno - conectar directamente a Internet.</string>
<string name="tor_enabled">Tor - conectar a través de socks://localhost:9050.</string>
- <string name="tor_enabled_kitkat">Tor - conectar a través de http://localhost:8118.</string>
<string name="i2p_enabled">I2P - conectar a través de http://localhost:4444.</string>
<string name="custom_proxy">Proxy personalizado</string>
<string name="proxy_custom_url">URL personalizada del proxy</string>
<item>Mot de passe</item>
<item>OpenPGP</item>
</string-array>
- <string name="kitkat_password_encryption_message">Le chiffrement par mot de passe ne fonctionne pas sous Android KitKat.</string>
<string name="openkeychain_required">Le chiffrement OpenPGP nécessite l\'installation d\'OpenKeychain.</string>
<string name="openkeychain_import_instructions">Le fichier non-chiffré devra être importé dans un deuxième temps, après son déchiffrement.</string>
<string name="file_location">Emplacement du fichier</string>
<string name="i2p_not_installed_message">Le proxy via I2P ne fonctionnera que si l\'application I2P est installée.</string>
<string name="waiting_for_orbot">En attente de la connexion d\'Orbot.</string>
<string name="custom_proxy_invalid">L\'URL du proxy personnalisé n\'est pas valide.</string>
- <string name="socks_proxies_do_not_work_on_kitkat">Les proxys de type SOCKS ne fonctionnent pas sur Android KitKat.</string>
<!-- About Activity. The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
<string name="about_privacy_browser">À propos</string>
</string-array>
<string name="no_proxy_enabled">Aucun - Se connecter directement à Internet.</string>
<string name="tor_enabled">Tor - Se connecter via socks://localhost:9050.</string>
- <string name="tor_enabled_kitkat">Tor - Se connecter via http://localhost:8118.</string>
<string name="i2p_enabled">I2P - Se connecter via http://localhost:4444.</string>
<string name="custom_proxy">Proxy personnalisé</string>
<string name="proxy_custom_url">URL personnalisée du proxy</string>
<item>Password</item>
<item>OpenPGP</item>
</string-array>
- <string name="kitkat_password_encryption_message">La cifratura delle Password non funziona su Android KitKat.</string>
<string name="openkeychain_required">La cifratura OpenPGP richiede l\'installazione di OpenKeychain.</string>
<string name="openkeychain_import_instructions">Il file non cifrato deve essere importato in un secondo momento dopo che è stato decriptato.</string>
<string name="file_location">Posizione del File</string>
<string name="i2p_not_installed_message">Il Proxy con I2P non funziona se non è installata la app I2P.</string>
<string name="waiting_for_orbot">In attesa della connessione di Orbot.</string>
<string name="custom_proxy_invalid">La URL del proxy personalizzato non è valida.</string>
- <string name="socks_proxies_do_not_work_on_kitkat">I proxy SOCKS non funzionano con Android KitKat.</string>
<!-- About Activity. The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
<string name="about_privacy_browser">Informazioni su Privacy Browser</string>
</string-array>
<string name="no_proxy_enabled">Nessuno - connessione diretta a internet.</string>
<string name="tor_enabled">Tor - connessione con socks://localhost:9050.</string>
- <string name="tor_enabled_kitkat">Tor - connessione con http://localhost:8118.</string>
<string name="i2p_enabled">I2P - connessione con http://localhost:4444.</string>
<string name="custom_proxy">Proxy personalizzato</string>
<string name="proxy_custom_url">URL personalizzata del Proxy</string>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- Copyright © 2015-2021 Soren Stoutner <soren@stoutner.com>.
-
- This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
-
- Privacy Browser is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Privacy Browser is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
-
-<resources>
- <style name="PrivacyBrowser" parent="Theme.AppCompat.DayNight.NoActionBar" >
- <!-- Main Items. -->
- <item name="android:statusBarColor">?android:attr/colorBackground</item>
- <item name="android:windowLightStatusBar">false</item>
-
- <!-- Colors. -->
- <item name="android:actionModeBackground">?android:attr/colorBackground</item>
- <item name="android:textColorHighlight">@color/violet_700</item>
- <item name="blueTextColor">@color/violet_700</item>
- <item name="blueTitleTextColor">@color/violet_500</item>
- <item name="buttonBackgroundColorSelector">@color/button_background_color_selector_night</item>
- <item name="buttonTextColorSelector">@color/button_text_color_selector_night</item>
- <item name="colorAccent">@color/violet_500</item>
- <item name="redTextColor">@color/red_900</item>
-
- <!-- Tints. -->
- <item name="addTabIconTintColor">@color/white</item>
- <item name="domainSettingsIconTintColor">@color/violet_500</item>
- <item name="fabIconTintColor">@color/gray_875</item>
- <item name="findOnPageIconTintColor">@color/violet_500</item>
- <item name="navigationIconTintColor">@color/violet_500</item>
- <item name="progressTintColor">@color/violet_500</item>
-
- <!-- Drawables. -->
- <item name="listSelectorDrawable">@drawable/list_selector_night</item>
-
- <!-- Main App Bar Icons. -->
- <item name="bookmarksAppBarIcon">@drawable/bookmarks_night</item>
-
- <!-- Options Icons. -->
- <item name="aboutIcon">@drawable/about_night</item>
- <item name="closeIcon">@drawable/close_night</item>
- <item name="copyIcon">@drawable/copy_night</item>
- <item name="deleteIcon">@drawable/delete_night</item>
- <item name="editIcon">@drawable/edit_night</item>
- <item name="moveToFolderIcon">@drawable/move_to_folder_night</item>
- <item name="saveIcon">@drawable/save_night</item>
- <item name="saveImageIcon">@drawable/images_options_night</item>
- <item name="saveTextIcon">@drawable/save_text_night</item>
- <item name="selectAllIcon">@drawable/select_all_night</item>
- <item name="shareIcon">@drawable/share_night</item>
- <item name="sortIcon">@drawable/sort_night</item>
- </style>
-
- <style name="PrivacyBrowserAppBar" parent="ThemeOverlay.AppCompat.DayNight.ActionBar" >
- <item name="android:textColorHighlight">@color/violet_700</item>
- </style>
-
- <style name="PrivacyBrowserSettings" parent="Theme.AppCompat.DayNight" >
- <!-- Main Items. -->
- <item name="android:statusBarColor">?android:attr/colorBackground</item>
- <item name="android:windowLightStatusBar">?attr/isLightTheme</item>
-
- <!-- Colors. -->
- <item name="colorAccent">@color/violet_500</item>
- <item name="colorPrimary">?android:attr/colorBackground</item> <!-- `colorPrimary` sets the background color of the app bar. -->
-
- <!-- Icons. -->
- <item name="appThemeIcon">@drawable/app_theme_night</item>
- <item name="downloadIcon">@drawable/downloads_enabled_night</item>
- <item name="fontSizeIcon">@drawable/font_size_night</item>
- <item name="homepageIcon">@drawable/home_enabled_night</item>
- <item name="searchIcon">@drawable/search_enabled_night</item>
- <item name="userAgentIcon">@drawable/user_agent_night</item>
- </style>
-
- <style name="PrivacyBrowserAlertDialog" parent="Theme.AppCompat.DayNight.Dialog.Alert" >
- <!-- Colors. -->
- <item name="colorAccent">@color/violet_500</item>
-
- <!-- Dialog Icons. -->
- <item name="aboutBlueIcon">@drawable/about_blue_night</item>
- <item name="blockAdsBlueIcon">@drawable/block_ads_enabled_night</item>
- <item name="copyBlueIcon">@drawable/copy_enabled_night</item>
- <item name="domainsBlueIcon">@drawable/domains_night</item>
- <item name="fontSizeBlueIcon">@drawable/font_size_night</item>
- <item name="lockBlueIcon">@drawable/lock_night</item>
- <item name="moveToFolderBlueIcon">@drawable/move_to_folder_blue_night</item>
- <item name="proxyBlueIcon">@drawable/proxy_enabled_night</item>
- <item name="sslCertificateBlueIcon">@drawable/ssl_certificate_enabled_night</item>
- </style>
-</resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2016-2017,2020 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2016-2017,2020,2022 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
<color name="white">#FFFFFFFF</color>
<color name="yellow_100">#FFFFF9C4</color>
+ <color name="yellow_700">#FFFBC02D</color>
<color name="yellow_700_50">#88FBC02D</color>
<color name="yellow_900">#FFF57F17</color>
<color name="yellow_a700">#FFFFD600</color>
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2015-2021 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2015-2022 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
<resources>
<style name="PrivacyBrowser" parent="Theme.AppCompat.DayNight.NoActionBar" >
+ <!-- Main Items. -->
+ <item name="android:statusBarColor">?android:attr/colorBackground</item>
+ <item name="android:windowLightStatusBar">false</item>
+
<!-- Colors. -->
<item name="android:actionModeBackground">?android:attr/colorBackground</item>
<item name="android:textColorHighlight">@color/violet_700</item>
</style>
<style name="PrivacyBrowserSettings" parent="Theme.AppCompat.DayNight" >
+ <!-- Main Items. -->
+ <item name="android:statusBarColor">?android:attr/colorBackground</item>
+ <item name="android:windowLightStatusBar">?attr/isLightTheme</item>
+
<!-- Colors. -->
<item name="colorAccent">@color/violet_500</item>
<item name="colorPrimary">?android:attr/colorBackground</item> <!-- `colorPrimary` sets the background color of the app bar. -->
<item>Senha</item>
<item>OpenPGP</item>
</string-array>
- <string name="kitkat_password_encryption_message">A criptografia de senha não funciona no Android KitKat.</string>
<string name="openkeychain_required">A criptografia OpenPGP requer que o OpenKeychain seja instalado.</string>
<string name="openkeychain_import_instructions">O arquivo não criptografado terá que ser importado em uma etapa separada após ser descriptografado.</string>
<string name="file_location">Localização do Arquivo</string>
<string name="i2p_not_installed_message">O proxy através do I2P não funcionará a menos que o aplicativo I2P esteja instalado.</string>
<string name="waiting_for_orbot">Esperando que o Orbot se conecte.</string>
<string name="custom_proxy_invalid">O URL do proxy personalizado é inválido.</string>
- <string name="socks_proxies_do_not_work_on_kitkat">Os proxies SOCKS não funcionam no Android KitKat.</string>
<!-- About Activity. The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
<string name="about_privacy_browser">Sobre o Privacy Browser</string>
</string-array>
<string name="no_proxy_enabled">Nenhum - conecte-se diretamente à Internet.</string>
<string name="tor_enabled">Tor - conecte-se por meio do socks://localhost:9050.</string>
- <string name="tor_enabled_kitkat">Tor - conecte-se por meio de http://localhost:8118.</string>
<string name="i2p_enabled">I2P - conecte-se por meio de http://localhost:4444.</string>
<string name="custom_proxy">Personalizar proxy</string>
<string name="proxy_custom_url">URL de proxy personalizado</string>
<item>Пароль</item>
<item>OpenPGP</item>
</string-array>
- <string name="kitkat_password_encryption_message">Шифрование паролем не работает на Android KitKat.</string>
<string name="openkeychain_required">Для использования шифрования OpenPGP необходимо приложение OpenKeychain.</string>
<string name="openkeychain_import_instructions">Незашифрованный файл должен быть импортирован на отдельном шаге после его дешифрования.</string>
<string name="file_location">Расположение файла</string>
<string name="i2p_not_installed_message">Прокси через I2P работать не будет, если приложение I2P не установлено.</string>
<string name="waiting_for_orbot">Ожидание подключения Orbot.</string>
<string name="custom_proxy_invalid">URL пользовательского прокси недействителен.</string>
- <string name="socks_proxies_do_not_work_on_kitkat">SOCKS-прокси не работает на Android KitKat.</string>
<!-- About Activity. The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
<string name="about_privacy_browser">О Privacy Browser</string>
</string-array>
<string name="no_proxy_enabled">Нет - подключиться к интернету напрямую.</string>
<string name="tor_enabled">Tor - connect through socks://localhost:9050.</string>
- <string name="tor_enabled_kitkat">Tor - подключиться через http://localhost:8118.</string>
<string name="i2p_enabled">I2P - подключиться через http://localhost:4444.</string>
<string name="custom_proxy">Пользовательский прокси</string>
<string name="proxy_custom_url">URL пользовательского прокси</string>
<item>Parola</item>
<item>OpenPGP</item>
</string-array>
- <string name="kitkat_password_encryption_message">Android KitKat sürümünde parola şifrelemesi çalışmaz.</string>
<string name="openkeychain_required">OpenPGP şifrelemesinin çalışması için OpenKeychain yüklü olmalıdır.</string>
<string name="openkeychain_import_instructions">Şifresi çözüldükten sonra, şifrelenmemiş dosya ayrı bir adımda içeri aktarılmak zorundadır.</string>
<string name="file_location">Dosya Konumu</string>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- Copyright © 2015-2021 Soren Stoutner <soren@stoutner.com>.
-
- This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
-
- Privacy Browser is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Privacy Browser is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
-
-<resources>
- <style name="PrivacyBrowser" parent="Theme.AppCompat.DayNight.NoActionBar" >
- <!-- Main Items. -->
- <item name="android:statusBarColor">?android:attr/colorBackground</item>
- <item name="android:windowLightStatusBar">true</item>
-
- <!-- Colors. -->
- <item name="android:actionModeBackground">?android:attr/colorBackground</item>
- <item name="android:textColorHighlight">@color/blue_200</item>
- <item name="blueTextColor">@color/blue_700</item>
- <item name="blueTitleTextColor">@color/blue_900</item>
- <item name="buttonBackgroundColorSelector">@color/button_background_color_selector_day</item>
- <item name="buttonTextColorSelector">@color/button_text_color_selector_day</item>
- <item name="colorAccent">@color/blue_700</item>
- <item name="redTextColor">@color/red_a700</item>
-
- <!-- Tints. -->
- <item name="addTabIconTintColor">@color/gray_925</item>
- <item name="domainSettingsIconTintColor">@color/blue_800</item>
- <item name="fabIconTintColor">@color/white</item>
- <item name="findOnPageIconTintColor">@color/blue_800</item>
- <item name="navigationIconTintColor">@color/blue_800</item>
- <item name="progressTintColor">@color/blue_700</item>
-
- <!-- Drawables. -->
- <item name="listSelectorDrawable">@drawable/list_selector_day</item>
-
- <!-- Main App Bar Icons. -->
- <item name="bookmarksAppBarIcon">@drawable/bookmarks_day</item>
-
- <!-- Options Icons. -->
- <item name="aboutIcon">@drawable/about_day</item>
- <item name="closeIcon">@drawable/close_day</item>
- <item name="copyIcon">@drawable/copy_day</item>
- <item name="deleteIcon">@drawable/delete_day</item>
- <item name="editIcon">@drawable/edit_day</item>
- <item name="moveToFolderIcon">@drawable/move_to_folder_day</item>
- <item name="saveIcon">@drawable/save_day</item>
- <item name="saveImageIcon">@drawable/images_options_day</item>
- <item name="saveTextIcon">@drawable/save_text_day</item>
- <item name="selectAllIcon">@drawable/select_all_day</item>
- <item name="shareIcon">@drawable/share_day</item>
- <item name="sortIcon">@drawable/sort_day</item>
- </style>
-
- <style name="PrivacyBrowserAppBar" parent="ThemeOverlay.AppCompat.DayNight.ActionBar" >
- <item name="android:textColorHighlight">@color/blue_200</item>
- </style>
-
- <style name="PrivacyBrowserSettings" parent="Theme.AppCompat.DayNight" >
- <!-- Main Items. -->
- <item name="android:statusBarColor">?android:attr/colorBackground</item>
- <item name="android:windowLightStatusBar">?attr/isLightTheme</item>
-
- <!-- Colors. -->
- <item name="colorAccent">@color/blue_700</item>
- <item name="colorPrimary">?android:attr/colorBackground</item> <!-- `colorPrimary` sets the background color of the app bar. -->
-
- <!-- Icons. -->
- <item name="appThemeIcon">@drawable/app_theme_day</item>
- <item name="downloadIcon">@drawable/downloads_enabled_day</item>
- <item name="fontSizeIcon">@drawable/font_size_day</item>
- <item name="homepageIcon">@drawable/home_enabled_day</item>
- <item name="searchIcon">@drawable/search_enabled_day</item>
- <item name="userAgentIcon">@drawable/user_agent_day</item>
- </style>
-
- <style name="PrivacyBrowserAlertDialog" parent="Theme.AppCompat.DayNight.Dialog.Alert" >
- <!-- Colors. -->
- <item name="colorAccent">@color/blue_700</item>
-
- <!-- Dialog Icons. -->
- <item name="aboutBlueIcon">@drawable/about_blue_day</item>
- <item name="blockAdsBlueIcon">@drawable/block_ads_enabled_day</item>
- <item name="copyBlueIcon">@drawable/copy_enabled_day</item>
- <item name="domainsBlueIcon">@drawable/domains_day</item>
- <item name="fontSizeBlueIcon">@drawable/font_size_day</item>
- <item name="lockBlueIcon">@drawable/lock_day</item>
- <item name="moveToFolderBlueIcon">@drawable/move_to_folder_blue_day</item>
- <item name="proxyBlueIcon">@drawable/proxy_enabled_day</item>
- <item name="sslCertificateBlueIcon">@drawable/ssl_certificate_enabled_day</item>
- </style>
-</resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2016-2017,2020 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2016-2017,2020,2022 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
<color name="white">#FFFFFFFF</color>
<color name="yellow_100">#FFFFF9C4</color>
+ <color name="yellow_700">#FFFBC02D</color>
<color name="yellow_700_50">#88FBC02D</color>
<color name="yellow_900">#FFF57F17</color>
<color name="yellow_a700">#FFFFD600</color>
<item>Password</item>
<item>OpenPGP</item>
</string-array>
- <string name="kitkat_password_encryption_message">Password encryption does not work on Android KitKat.</string>
<string name="openkeychain_required">OpenPGP encryption requires that OpenKeychain be installed.</string>
<string name="openkeychain_import_instructions">The unencrypted file will have to be imported in a separate step after it is decrypted.</string>
<string name="file_location">File Location</string>
<string name="i2p_not_installed_message">Proxying through I2P will not work unless the I2P app is installed.</string>
<string name="waiting_for_orbot">Waiting for Orbot to connect.</string>
<string name="custom_proxy_invalid">The custom proxy URL is invalid.</string>
- <string name="socks_proxies_do_not_work_on_kitkat">SOCKS proxies do not work on Android KitKat.</string>
<!-- About Activity. The `%1$s` code inserts variables into the displayed text and should be preserved in translation. -->
<string name="about_privacy_browser">About Privacy Browser</string>
</string-array>
<string name="no_proxy_enabled">None - connect directly to the internet.</string>
<string name="tor_enabled">Tor - connect through socks://localhost:9050.</string>
- <string name="tor_enabled_kitkat">Tor - connect through http://localhost:8118.</string>
<string name="i2p_enabled">I2P - connect through http://localhost:4444.</string>
<string name="custom_proxy">Custom proxy</string>
<string name="proxy_custom_url">Proxy custom URL</string>
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2015-2021 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2015-2022 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
<resources>
<style name="PrivacyBrowser" parent="Theme.AppCompat.DayNight.NoActionBar" >
+ <!-- Main Items. -->
+ <item name="android:statusBarColor">?android:attr/colorBackground</item>
+ <item name="android:windowLightStatusBar">true</item>
+
<!-- Colors. -->
<item name="android:actionModeBackground">?android:attr/colorBackground</item>
<item name="android:textColorHighlight">@color/blue_200</item>
</style>
<style name="PrivacyBrowserSettings" parent="Theme.AppCompat.DayNight" >
+ <!-- Main Items. -->
+ <item name="android:statusBarColor">?android:attr/colorBackground</item>
+ <item name="android:windowLightStatusBar">?attr/isLightTheme</item>
+
<!-- Colors. -->
<item name="colorAccent">@color/blue_700</item>
<item name="colorPrimary">?android:attr/colorBackground</item> <!-- `colorPrimary` sets the background color of the app bar. -->