<w>glitchy</w>
<w>googleplay</w>
<w>homescreen</w>
+ <w>hsts</w>
<w>huawei</w>
<w>imageview</w>
<w>inet</w>
/*
- * Copyright © 2018-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2018-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
package com.stoutner.privacybrowser.dialogs;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.WindowManager;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import com.stoutner.privacybrowser.R;
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
-
// Use a builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog);
+
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
- // Set the style and the icon according to the theme.
- if (darkTheme) {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark);
- dialogBuilder.setIcon(R.drawable.block_ads_enabled_dark);
+ // Set the icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ dialogBuilder.setIcon(R.drawable.block_ads_enabled_night);
} else {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogLight);
- dialogBuilder.setIcon(R.drawable.block_ads_enabled_light);
+ dialogBuilder.setIcon(R.drawable.block_ads_enabled_day);
}
// Remove the incorrect lint warning below that `getApplicationContext()` might be null.
// Create an alert dialog from the alert dialog builder.
AlertDialog alertDialog = dialogBuilder.create();
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
// Remove the warning below that `getWindow()` might be null.
// Close Privacy Browser Free if the dialog is cancelled without selecting a button (by tapping on the background).
@Override
- public void onCancel(DialogInterface dialogInterface) {
+ public void onCancel(@NonNull DialogInterface dialogInterface) {
// Remove the incorrect lint warning below that `getApplicationContext()` might be null.
assert getActivity() != null;
// Update the ad consent database.
adConsentDatabaseHelper.updateAdConsent(false);
- // Close the browser. `finishAndRemoveTask` also removes Privacy Browser from the recent app list.
+ // Close the browser. `finishAndRemoveTask()` also removes Privacy Browser from the recent app list.
if (Build.VERSION.SDK_INT >= 21) {
getActivity().finishAndRemoveTask();
} else {
-<!-- `privacy_browser_foreground.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.
+<!-- 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. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="108dp"
android:height="108dp"
- android:viewportWidth="523.63635"
- android:viewportHeight="523.63635" >
+ android:width="108dp"
+ android:viewportHeight="523.63635"
+ android:viewportWidth="523.63635" >
- <group android:translateX="133.81818"
- android:translateY="133.81818" >
+ <group
+ android:translateX="133.81818"
+ android:translateY="133.81818" >
- <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:strokeColor="#00000000"
- android:fillAlpha="1" />
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <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:strokeColor="#00000000"
+ android:fillAlpha="1" />
- <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:strokeColor="#00000000"
- android:fillAlpha="1" />
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <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:strokeColor="#00000000"
+ android:fillAlpha="1" />
- <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:fillAlpha="1" />
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <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:fillAlpha="1" />
- <path
- android:pathData="M50.491,201.267h155.02v54.763h-155.02z"
- android:strokeAlpha="1"
- android:strokeWidth="0.74080104"
- android:fillColor="#b71c1c"
- android:strokeColor="#00000000"
- android:fillAlpha="1" />
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:pathData="M50.491,201.267h155.02v54.763h-155.02z"
+ android:strokeAlpha="1"
+ android:strokeWidth="0.74080104"
+ android:fillColor="#b71c1c"
+ android:strokeColor="#00000000"
+ android:fillAlpha="1" />
- <path
- android:pathData="m65.675,212.543h24.609v6.921L75.672,219.465v5.625h12.48v6.504L75.672,231.593L75.672,244.755h-9.998z"
- android:strokeAlpha="1"
- android:strokeLineJoin="miter"
- android:strokeWidth="1"
- android:fillColor="#ffffff"
- android:strokeColor="#00000000"
- android:fillAlpha="1"
- android:strokeLineCap="butt" />
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:pathData="m65.675,212.543h24.609v6.921L75.672,219.465v5.625h12.48v6.504L75.672,231.593L75.672,244.755h-9.998z"
+ android:strokeAlpha="1"
+ android:strokeLineJoin="miter"
+ android:strokeWidth="1"
+ android:fillColor="#ffffff"
+ android:strokeColor="#00000000"
+ android:fillAlpha="1"
+ android:strokeLineCap="butt" />
- <path
- android:pathData="M95.821,244.755L95.821,212.543L112.41,212.543q4.614,0 7.053,0.791 2.439,0.791 3.933,2.944 1.494,2.131 1.494,5.208 0,2.681 -1.143,4.636 -1.143,1.934 -3.142,3.142 -1.274,0.769 -3.494,1.274 1.78,0.593 2.593,1.187 0.549,0.396 1.582,1.692 1.055,1.296 1.406,2l4.812,9.338h-11.25l-5.317,-9.844q-1.011,-1.912 -1.802,-2.483 -1.077,-0.747 -2.439,-0.747L105.819,231.681L105.819,244.755ZM105.819,225.595h4.197q0.681,0 2.637,-0.439 0.989,-0.198 1.604,-1.011 0.637,-0.813 0.637,-1.868 0,-1.56 -0.989,-2.395 -0.989,-0.835 -3.713,-0.835h-4.373z"
- android:strokeAlpha="1"
- android:strokeLineJoin="miter"
- android:strokeWidth="1"
- android:fillColor="#ffffff"
- android:strokeColor="#00000000"
- android:fillAlpha="1"
- android:strokeLineCap="butt" />
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:pathData="M95.821,244.755L95.821,212.543L112.41,212.543q4.614,0 7.053,0.791 2.439,0.791 3.933,2.944 1.494,2.131 1.494,5.208 0,2.681 -1.143,4.636 -1.143,1.934 -3.142,3.142 -1.274,0.769 -3.494,1.274 1.78,0.593 2.593,1.187 0.549,0.396 1.582,1.692 1.055,1.296 1.406,2l4.812,9.338h-11.25l-5.317,-9.844q-1.011,-1.912 -1.802,-2.483 -1.077,-0.747 -2.439,-0.747L105.819,231.681L105.819,244.755ZM105.819,225.595h4.197q0.681,0 2.637,-0.439 0.989,-0.198 1.604,-1.011 0.637,-0.813 0.637,-1.868 0,-1.56 -0.989,-2.395 -0.989,-0.835 -3.713,-0.835h-4.373z"
+ android:strokeAlpha="1"
+ android:strokeLineJoin="miter"
+ android:strokeWidth="1"
+ android:fillColor="#ffffff"
+ android:strokeColor="#00000000"
+ android:fillAlpha="1"
+ android:strokeLineCap="butt" />
- <path
- android:pathData="m130.648,212.543h26.675v6.877h-16.699v5.12h15.491v6.57L140.623,231.11L140.623,237.46h17.183v7.295h-27.158z"
- android:strokeAlpha="1"
- android:strokeLineJoin="miter"
- android:strokeWidth="1"
- android:fillColor="#ffffff"
- android:strokeColor="#00000000"
- android:fillAlpha="1"
- android:strokeLineCap="butt" />
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:pathData="m130.648,212.543h26.675v6.877h-16.699v5.12h15.491v6.57L140.623,231.11L140.623,237.46h17.183v7.295h-27.158z"
+ android:strokeAlpha="1"
+ android:strokeLineJoin="miter"
+ android:strokeWidth="1"
+ android:fillColor="#ffffff"
+ android:strokeColor="#00000000"
+ android:fillAlpha="1"
+ android:strokeLineCap="butt" />
- <path
- android:pathData="m163.167,212.543h26.675v6.877h-16.699v5.12h15.491v6.57L173.143,231.11L173.143,237.46h17.183v7.295h-27.158z"
- android:strokeAlpha="1"
- android:strokeLineJoin="miter"
- android:strokeWidth="1"
- android:fillColor="#ffffff"
- android:strokeColor="#00000000"
- android:fillAlpha="1"
- android:strokeLineCap="butt" />
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:pathData="m163.167,212.543h26.675v6.877h-16.699v5.12h15.491v6.57L173.143,231.11L173.143,237.46h17.183v7.295h-27.158z"
+ android:strokeAlpha="1"
+ android:strokeLineJoin="miter"
+ android:strokeWidth="1"
+ android:fillColor="#ffffff"
+ android:strokeColor="#00000000"
+ android:fillAlpha="1"
+ android:strokeLineCap="butt" />
</group>
</vector>
<activity
android:name=".activities.MainWebViewActivity"
android:label="@string/short_name"
- android:theme="@style/PrivacyBrowserLight"
+ android:theme="@style/PrivacyBrowser"
android:configChanges="orientation|screenSize|screenLayout|keyboard|keyboardHidden"
android:launchMode="singleTask"
android:screenOrientation="fullUser"
<p>More information about the blocklists can be found on the <a href="https://easylist.to/">EasyList website</a>.</p>
<h3>Libraries</h3>
- <p>Privacy Browser is built with the <a href="https://developer.android.com/jetpack/androidx/">AndroidX Libraries</a>
+ <p>Privacy Browser is built with the <a href="https://developer.android.com/jetpack/androidx/">AndroidX Libraries</a>,
+ the <a href="https://github.com/JetBrains/kotlin/tree/master/license">Kotlin libraries</a>,
and code from the <a href="https://mvnrepository.com/artifact/com.google.android.material/material">Google Material Maven repository</a>,
which are released under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p>
<p>More information about the blocklists can be found on the <a href="https://easylist.to/">EasyList website</a>.</p>
<h3>Libraries</h3>
- <p>Privacy Browser is built with the <a href="https://developer.android.com/jetpack/androidx/">AndroidX Libraries</a>
+ <p>Privacy Browser is built with the <a href="https://developer.android.com/jetpack/androidx/">AndroidX Libraries</a>,
+ the <a href="https://github.com/JetBrains/kotlin/tree/master/license">Kotlin libraries</a>,
and code from the <a href="https://mvnrepository.com/artifact/com.google.android.material/material">Google Material Maven repository</a>,
which are released under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p>
<p>More information about the blocklists can be found on the <a href="https://easylist.to/">EasyList website</a>.</p>
<h3>Libraries</h3>
- <p>Privacy Browser is built with the <a href="https://developer.android.com/jetpack/androidx/">AndroidX Libraries</a>
+ <p>Privacy Browser is built with the <a href="https://developer.android.com/jetpack/androidx/">AndroidX Libraries</a>,
+ the <a href="https://github.com/JetBrains/kotlin/tree/master/license">Kotlin libraries</a>,
and code from the <a href="https://mvnrepository.com/artifact/com.google.android.material/material">Google Material Maven repository</a>,
which are released under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p>
<p>More information about the blocklists can be found on the <a href="https://easylist.to/">EasyList website</a>.</p>
<h3>Libraries</h3>
- <p>Privacy Browser is built with the <a href="https://developer.android.com/jetpack/androidx/">AndroidX Libraries</a>
+ <p>Privacy Browser is built with the <a href="https://developer.android.com/jetpack/androidx/">AndroidX Libraries</a>,
+ the <a href="https://github.com/JetBrains/kotlin/tree/master/license">Kotlin libraries</a>,
and code from the <a href="https://mvnrepository.com/artifact/com.google.android.material/material">Google Material Maven repository</a>,
which are released under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p>
<p>Más información sobre las listas de bloqueo puede encontrarse en la <a href="https://easylist.to/">página web de EasyList</a>.</p>
<h3>Librerías</h3>
- <p>Navegador Privado está construido con las <a href="https://developer.android.com/jetpack/androidx/">librerías de AndroidX</a>
+ <p>Navegador Privado está construido con las <a href="https://developer.android.com/jetpack/androidx/">librerías de AndroidX</a>,
+ the <a href="https://github.com/JetBrains/kotlin/tree/master/license">Kotlin libraries</a>,
y código del <a href="https://mvnrepository.com/artifact/com.google.android.material/material">repositorio de Google Material Maven</a>,
que se publican bajo la <a href="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.</p>
<p>Más información sobre las listas de bloqueo puede encontrarse en la <a href="https://easylist.to/">página web de EasyList</a>.</p>
<h3>Librerías</h3>
- <p>Navegador Privado está construido con las <a href="https://developer.android.com/jetpack/androidx/">librerías de AndroidX</a>
+ <p>Navegador Privado está construido con las <a href="https://developer.android.com/jetpack/androidx/">librerías de AndroidX</a>,
+ the <a href="https://github.com/JetBrains/kotlin/tree/master/license">Kotlin libraries</a>,
y código del <a href="https://mvnrepository.com/artifact/com.google.android.material/material">repositorio de Google Material Maven</a>,
que se publican bajo la <a href="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.</p>
<p>Pour plus d'informations sur les listes de blocage, consultez le <a href="https://easylist.to/">site web EasyList</a>.</p>
<h3>Librairies</h3>
- <p>Privacy Browser est construit avec les <a href="https://developer.android.com/jetpack/androidx/">librairies AndroidX</a>
+ <p>Privacy Browser est construit avec les <a href="https://developer.android.com/jetpack/androidx/">librairies AndroidX</a>,
+ the <a href="https://github.com/JetBrains/kotlin/tree/master/license">Kotlin libraries</a>,
et le code du <a href="https://mvnrepository.com/artifact/com.google.android.material/material">référentiel Google Material Maven</a>,
publiées sous la <a href="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.</p>
<p>Pour plus d'informations sur les listes de blocage, consultez le <a href="https://easylist.to/">site web EasyList</a>.</p>
<h3>Librairies</h3>
- <p>Privacy Browser est construit avec les <a href="https://developer.android.com/jetpack/androidx/">librairies AndroidX</a>
+ <p>Privacy Browser est construit avec les <a href="https://developer.android.com/jetpack/androidx/">librairies AndroidX</a>,
+ the <a href="https://github.com/JetBrains/kotlin/tree/master/license">Kotlin libraries</a>,
et le code du <a href="https://mvnrepository.com/artifact/com.google.android.material/material">référentiel Google Material Maven</a>,
publiées sous la <a href="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.</p>
<p>E' possibile reperire maggiori informazioni sulle block list sul <a href="https://easylist.to/">sito web EasyList</a>.</p>
<h3>Librerie</h3>
- <p>Privacy Browser è compilato utilizzando le <a href="https://developer.android.com/jetpack/androidx/">Librerie AndroidX</a>
+ <p>Privacy Browser è compilato utilizzando le <a href="https://developer.android.com/jetpack/androidx/">Librerie AndroidX</a>,
+ the <a href="https://github.com/JetBrains/kotlin/tree/master/license">Kotlin libraries</a>,
e il codice disponibile nella <a href="https://mvnrepository.com/artifact/com.google.android.material/material">Google Material Maven repository</a>,
entrambi rilasciati con <a href="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.</p>
<p>E' possibile reperire maggiori informazioni sulle block list sul <a href="https://easylist.to/">sito web EasyList</a>.</p>
<h3>Librerie</h3>
- <p>Privacy Browser è compilato utilizzando le <a href="https://developer.android.com/jetpack/androidx/">Librerie AndroidX</a>
+ <p>Privacy Browser è compilato utilizzando le <a href="https://developer.android.com/jetpack/androidx/">Librerie AndroidX</a>,
+ the <a href="https://github.com/JetBrains/kotlin/tree/master/license">Kotlin libraries</a>,
e il codice disponibile nella <a href="https://mvnrepository.com/artifact/com.google.android.material/material">Google Material Maven repository</a>,
entrambi rilasciati con <a href="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.</p>
<p>Более подробную информацию о списках блокировки можно найти на <a href="https://easylist.to/">веб-сайте EasyList</a>.</p>
<h3>Библиотеки</h3>
- <p>Privacy Browser создан на базе библиотек <a href="https://developer.android.com/jetpack/androidx/">AndroidX</a>
+ <p>Privacy Browser создан на базе библиотек <a href="https://developer.android.com/jetpack/androidx/">AndroidX</a>,
+ the <a href="https://github.com/JetBrains/kotlin/tree/master/license">Kotlin libraries</a>,
и кодовой базы из репозитория <a href="https://mvnrepository.com/artifact/com.google.android.material/material">Google Material Maven</a>,
которые выпущены под лицензией <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.</p>
<p>Более подробную информацию о списках блокировки можно найти на <a href="https://easylist.to/">веб-сайте EasyList</a>.</p>
<h3>Библиотеки</h3>
- <p>Privacy Browser создан на базе библиотек <a href="https://developer.android.com/jetpack/androidx/">AndroidX</a>
+ <p>Privacy Browser создан на базе библиотек <a href="https://developer.android.com/jetpack/androidx/">AndroidX</a>,
+ the <a href="https://github.com/JetBrains/kotlin/tree/master/license">Kotlin libraries</a>,
и кодовой базы из репозитория <a href="https://mvnrepository.com/artifact/com.google.android.material/material">Google Material Maven</a>,
которые выпущены под лицензией <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.</p>
<p>Engel listeleri hakkında daha fazla bilgiyi <a href="https://easylist.to/">EasyList</a> adresinde bulabilirsiniz.</p>
<h3>Kütüphaneler</h3>
- <p>Privacy Browser <a href="https://developer.android.com/jetpack/androidx/">AndroidX Kütüphaneleri</a> ile ve
- <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> altında yayınlanan
- <a href="https://mvnrepository.com/artifact/com.google.android.material/material">Google Material Maven</a> veri havuzundaki kodlardan oluşturulmuştur.</p>
+ <p>Privacy Browser is built with the <a href="https://developer.android.com/jetpack/androidx/">AndroidX Libraries</a>,
+ the <a href="https://github.com/JetBrains/kotlin/tree/master/license">Kotlin libraries</a>,
+ and code from the <a href="https://mvnrepository.com/artifact/com.google.android.material/material">Google Material Maven repository</a>,
+ which are released under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p>
<p>Privacy Browser ücretsiz versiyonu <a href="https://developer.android.com/studio/terms">Android Software Development Kit</a> lisansı altında yayınlanan
<a href="https://mvnrepository.com/artifact/com.google.firebase/firebase-ads">Firebase Ads</a> ile oluşturulmuştur.</p>
<p>Engel listeleri hakkında daha fazla bilgiyi <a href="https://easylist.to/">EasyList</a> adresinde bulabilirsiniz.</p>
<h3>Kütüphaneler</h3>
- <p>Privacy Browser <a href="https://developer.android.com/jetpack/androidx/">AndroidX Kütüphaneleri</a> ile ve
- <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> altında yayınlanan
- <a href="https://mvnrepository.com/artifact/com.google.android.material/material">Google Material Maven</a> veri havuzundaki kodlardan oluşturulmuştur.</p>
+ <p>Privacy Browser is built with the <a href="https://developer.android.com/jetpack/androidx/">AndroidX Libraries</a>,
+ the <a href="https://github.com/JetBrains/kotlin/tree/master/license">Kotlin libraries</a>,
+ and code from the <a href="https://mvnrepository.com/artifact/com.google.android.material/material">Google Material Maven repository</a>,
+ which are released under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p>
<p>Privacy Browser ücretsiz versiyonu <a href="https://developer.android.com/studio/terms">Android Software Development Kit</a> lisansı altında yayınlanan
<a href="https://mvnrepository.com/artifact/com.google.firebase/firebase-ads">Firebase Ads</a> ile oluşturulmuştur.</p>
/*
- * Copyright © 2016-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
// Get a handle for the shared preferences.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
- // Get the theme and screenshot preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+ // Get the screenshot preference.
boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
// Disable screenshots if not allowed.
}
// Set the theme.
- if (darkTheme) {
- setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
- } else {
- setTheme(R.style.PrivacyBrowserLight_SecondaryActivity);
- }
+ setTheme(R.style.PrivacyBrowser);
// Run the default commands.
super.onCreate(savedInstanceState);
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
// Get a handle for the shared preferences.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
- // Get the theme and screenshot preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+ // Get the screenshot preference.
boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
// Disable screenshots if not allowed.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
- // Set the activity theme.
- if (darkTheme) {
- setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
- } else {
- setTheme(R.style.PrivacyBrowserLight_SecondaryActivity);
- }
+ // Set the theme.
+ setTheme(R.style.PrivacyBrowser);
// Run the default commands.
super.onCreate(savedInstanceState);
}
private void updateMoveIcons() {
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
-
- // Get the theme and screenshot preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
-
// Get a long array of the selected bookmarks.
long[] selectedBookmarksLongArray = bookmarksListView.getCheckedItemIds();
// bookmarksListView is 0 indexed.
int lastBookmarkDatabaseId = (int) bookmarksListView.getItemIdAtPosition(bookmarksListView.getCount() - 1);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
// Update the move bookmark up `MenuItem`.
if (selectedBookmarkDatabaseId == firstBookmarkDatabaseId) { // The selected bookmark is in the first position.
// Disable the move bookmark up `MenuItem`.
// Set the move bookmark up icon to be ghosted.
moveBookmarkUpMenuItem.setIcon(R.drawable.move_up_disabled);
} else { // The selected bookmark is not in the first position.
- // Enable the move bookmark up `MenuItem`.
+ // Enable the move bookmark up menu item.
moveBookmarkUpMenuItem.setEnabled(true);
// Set the icon according to the theme.
- if (darkTheme) {
- moveBookmarkUpMenuItem.setIcon(R.drawable.move_up_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ moveBookmarkUpMenuItem.setIcon(R.drawable.move_up_enabled_night);
} else {
- moveBookmarkUpMenuItem.setIcon(R.drawable.move_up_enabled_light);
+ moveBookmarkUpMenuItem.setIcon(R.drawable.move_up_enabled_day);
}
}
moveBookmarkDownMenuItem.setEnabled(true);
// Set the icon according to the theme.
- if (darkTheme) {
- moveBookmarkDownMenuItem.setIcon(R.drawable.move_down_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ moveBookmarkDownMenuItem.setIcon(R.drawable.move_down_enabled_night);
} else {
- moveBookmarkDownMenuItem.setIcon(R.drawable.move_down_enabled_light);
+ moveBookmarkDownMenuItem.setIcon(R.drawable.move_down_enabled_day);
}
}
}
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.database.MergeCursor;
// Get a handle for the shared preferences.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
- // Get the theme and screenshot preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+ // Get the screenshot preference.
boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
// Disable screenshots if not allowed.
}
// Set the activity theme.
- if (darkTheme) {
- setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
- } else {
- setTheme(R.style.PrivacyBrowserLight_SecondaryActivity);
- }
+ setTheme(R.style.PrivacyBrowser);
// Run the default commands.
super.onCreate(savedInstanceState);
parentFolderImageView.setImageDrawable(ContextCompat.getDrawable(getApplicationContext(), R.drawable.folder_dark_blue));
bookmarkParentFolderTextView.setText(bookmarkParentFolder);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
// Set the text color according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ // This color is a little darker than the default night mode text. But the effect is rather nice.
bookmarkParentFolderTextView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.gray_300));
} else {
bookmarkParentFolderTextView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.black));
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
-
- // Get the theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
-
// Get the ID of the menu item that was selected.
int menuItemId = menuItem.getItemId();
// Update the sort by display order tracker.
sortByDisplayOrder = !sortByDisplayOrder;
- // Get a handle for the bookmarks `ListView`.
+ // Get a handle for the bookmarks list view.
ListView bookmarksListView = findViewById(R.id.bookmarks_databaseview_listview);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
// Update the icon and display a snackbar.
if (sortByDisplayOrder) { // Sort by display order.
// Update the icon according to the theme.
- if (darkTheme) {
- menuItem.setIcon(R.drawable.sort_selected_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ menuItem.setIcon(R.drawable.sort_selected_night);
} else {
- menuItem.setIcon(R.drawable.sort_selected_light);
+ menuItem.setIcon(R.drawable.sort_selected_day);
}
// Display a Snackbar indicating the current sort type.
Snackbar.make(bookmarksListView, R.string.sorted_by_display_order, Snackbar.LENGTH_SHORT).show();
} else { // Sort by database id.
// Update the icon according to the theme.
- if (darkTheme) {
- menuItem.setIcon(R.drawable.sort_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ menuItem.setIcon(R.drawable.sort_night);
} else {
- menuItem.setIcon(R.drawable.sort_light);
+ menuItem.setIcon(R.drawable.sort_day);
}
// Display a Snackbar indicating the current sort type.
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.content.res.Resources;
import android.database.Cursor;
import android.os.Bundle;
// Get a handle for the shared preferences.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
- // Get the theme and screenshot preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+ // Get the screenshot preference.
boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
// Disable screenshots if not allowed.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
- // Set the activity theme.
- if (darkTheme) {
- setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
- } else {
- setTheme(R.style.PrivacyBrowserLight_SecondaryActivity);
- }
+ // Set the theme.
+ setTheme(R.style.PrivacyBrowser);
// Run the default commands.
super.onCreate(savedInstanceState);
// Disable the options `MenuItems`.
deleteMenuItem.setEnabled(false);
- deleteMenuItem.setIcon(R.drawable.delete_blue);
+ deleteMenuItem.setIcon(R.drawable.delete_disabled);
// Remove the domain settings fragment.
fragmentManager.beginTransaction().remove(Objects.requireNonNull(fragmentManager.findFragmentById(R.id.domain_settings_fragment_container))).commit();
// Get a handle for the activity.
Activity activity = this;
- // Display a `Snackbar`.
+ // Display a snackbar.
undoDeleteSnackbar = Snackbar.make(domainsListView, R.string.domain_deleted, Snackbar.LENGTH_LONG)
.setAction(R.string.undo, (View v) -> {
// Do nothing because everything will be handled by `onDismissed()` below.
}
};
- // Update the `ListView`.
+ // Update the domains list view.
domainsListView.setAdapter(undoDeleteDomainsCursorAdapter);
- // Select the previously deleted domain in `domainsListView`.
+
+ // Select the previously deleted domain in the list view.
domainsListView.setItemChecked(deletedDomainPosition, true);
- // Display `domainSettingsFragment`.
+ // Display the domain settings fragment.
fragmentManager.beginTransaction().replace(R.id.domain_settings_fragment_container, domainSettingsFragment).commit();
- // Enable the options `MenuItems`.
+ // Enable the options delete menu item.
deleteMenuItem.setEnabled(true);
- deleteMenuItem.setIcon(R.drawable.delete_light);
+
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ // Set the delete menu item icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ deleteMenuItem.setIcon(R.drawable.delete_night);
+ } else {
+ deleteMenuItem.setIcon(R.drawable.delete_day);
+ }
} else { // The device in in one-paned mode.
// Display `domainSettingsFragment`.
fragmentManager.beginTransaction().replace(R.id.domains_listview_fragment_container, domainSettingsFragment).commit();
if (dismissingSnackbar) {
// Create a `Runnable` to enable the delete menu item.
Runnable enableDeleteMenuItemRunnable = () -> {
- // Enable `deleteMenuItem` according to the display mode.
+ // Enable the delete menu item according to the display mode.
if (twoPanedMode) { // Two-paned mode.
// Enable the delete menu item.
deleteMenuItem.setEnabled(true);
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
-
- // Get the theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
- // Set the delete icon according to the theme.
- if (darkTheme) {
- deleteMenuItem.setIcon(R.drawable.delete_dark);
+ // Set the delete menu item icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ deleteMenuItem.setIcon(R.drawable.delete_night);
} else {
- deleteMenuItem.setIcon(R.drawable.delete_light);
+ deleteMenuItem.setIcon(R.drawable.delete_day);
}
} else { // Single-paned mode.
- // Show `deleteMenuItem`.
+ // Show the delete menu item.
deleteMenuItem.setVisible(true);
}
- // Reset `dismissingSnackbar`.
+ // Reset the dismissing snackbar tracker.
dismissingSnackbar = false;
};
// Enable the delete options menu items.
deleteMenuItem.setEnabled(true);
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
-
- // Get the theme and screenshot preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
// Set the delete icon according to the theme.
- if (darkTheme) {
- deleteMenuItem.setIcon(R.drawable.delete_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ deleteMenuItem.setIcon(R.drawable.delete_night);
} else {
- deleteMenuItem.setIcon(R.drawable.delete_light);
+ deleteMenuItem.setIcon(R.drawable.delete_day);
}
} else if (twoPanedMode) { // Two-paned mode is enabled but there are no domains.
// Disable the options `MenuItems`.
deleteMenuItem.setEnabled(false);
- deleteMenuItem.setIcon(R.drawable.delete_blue);
+ deleteMenuItem.setIcon(R.drawable.delete_disabled);
}
}
// Get a handle for the shared preferences.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
- // Get the theme and screenshot preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+ // Get the screenshot preference.
boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
// Disable screenshots if not allowed.
}
// Set the theme.
- if (darkTheme) {
- setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
- } else {
- setTheme(R.style.PrivacyBrowserLight_SecondaryActivity);
- }
+ setTheme(R.style.PrivacyBrowser);
// Run the default commands.
super.onCreate(savedInstanceState);
// Get a handle for the shared preferences.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
- // Get the theme and screenshot preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+ // Get the screenshot preference.
boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
// Disable screenshots if not allowed.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
- // Set the activity theme.
- if (darkTheme) {
- setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
- } else {
- setTheme(R.style.PrivacyBrowserLight_SecondaryActivity);
- }
+ // Set the theme.
+ setTheme(R.style.PrivacyBrowser);
// Run the default commands.
super.onCreate(savedInstanceState);
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
+import android.content.res.Configuration;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
+import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
// Get a handle for the shared preferences.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
- // Get the theme and screenshot preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+ // Get the screenshot preference.
boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
// Disable screenshots if not allowed.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
- // Set the activity theme.
- if (darkTheme) {
- setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
- } else {
- setTheme(R.style.PrivacyBrowserLight_SecondaryActivity);
- }
+ // Set the theme.
+ setTheme(R.style.PrivacyBrowser);
// Run the default commands.
super.onCreate(savedInstanceState);
// Set the content view.
setContentView(R.layout.logcat_coordinatorlayout);
- // The AndroidX toolbar must be used until the minimum API is >= 21.
+ // Set the toolbar as the action bar.
Toolbar toolbar = findViewById(R.id.logcat_toolbar);
setSupportActionBar(toolbar);
new GetLogcat(this).execute();
});
- // Set the swipe to refresh color according to the theme.
- if (darkTheme) {
- swipeRefreshLayout.setColorSchemeResources(R.color.blue_600);
- swipeRefreshLayout.setProgressBackgroundColorSchemeResource(R.color.gray_800);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ // Set the refresh color scheme according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ swipeRefreshLayout.setColorSchemeResources(R.color.blue_500);
} else {
swipeRefreshLayout.setColorSchemeResources(R.color.blue_700);
}
+ // Initialize a color background typed value.
+ TypedValue colorBackgroundTypedValue = new TypedValue();
+
+ // Get the color background from the theme.
+ getTheme().resolveAttribute(android.R.attr.colorBackground, colorBackgroundTypedValue, true);
+
+ // Get the color background int from the typed value.
+ int colorBackgroundInt = colorBackgroundTypedValue.data;
+
+ // Set the swipe refresh background color.
+ swipeRefreshLayout.setProgressBackgroundColorSchemeColor(colorBackgroundInt);
+
// Get the logcat.
new GetLogcat(this).execute();
}
import android.text.TextWatcher;
import android.text.style.ForegroundColorSpan;
import android.util.Patterns;
+import android.util.TypedValue;
import android.view.ContextMenu;
import android.view.GestureDetector;
import android.view.KeyEvent;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.widget.Toolbar;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.app.ActivityCompat;
import com.stoutner.privacybrowser.dialogs.CreateBookmarkDialog;
import com.stoutner.privacybrowser.dialogs.CreateBookmarkFolderDialog;
import com.stoutner.privacybrowser.dialogs.CreateHomeScreenShortcutDialog;
-import com.stoutner.privacybrowser.dialogs.EditBookmarkDialog;
import com.stoutner.privacybrowser.dialogs.EditBookmarkFolderDialog;
import com.stoutner.privacybrowser.dialogs.FontSizeDialog;
import com.stoutner.privacybrowser.dialogs.HttpAuthenticationDialog;
import java.util.Set;
public class MainWebViewActivity extends AppCompatActivity implements CreateBookmarkDialog.CreateBookmarkListener, CreateBookmarkFolderDialog.CreateBookmarkFolderListener,
- EditBookmarkDialog.EditBookmarkListener, EditBookmarkFolderDialog.EditBookmarkFolderListener, FontSizeDialog.UpdateFontSizeListener, NavigationView.OnNavigationItemSelectedListener,
- OpenDialog.OpenListener, PinnedMismatchDialog.PinnedMismatchListener, PopulateBlocklists.PopulateBlocklistsListener, SaveDialog.SaveWebpageListener,
- StoragePermissionDialog.StoragePermissionDialogListener, UrlHistoryDialog.NavigateHistoryListener, WebViewTabFragment.NewTabListener {
+ EditBookmarkFolderDialog.EditBookmarkFolderListener, FontSizeDialog.UpdateFontSizeListener, NavigationView.OnNavigationItemSelectedListener, OpenDialog.OpenListener,
+ PinnedMismatchDialog.PinnedMismatchListener, PopulateBlocklists.PopulateBlocklistsListener, SaveDialog.SaveWebpageListener, StoragePermissionDialog.StoragePermissionDialogListener,
+ UrlHistoryDialog.NavigateHistoryListener, WebViewTabFragment.NewTabListener {
// `orbotStatus` is public static so it can be accessed from `OrbotProxyHelper`. It is also used in `onCreate()`, `onResume()`, and `applyProxy()`.
public static String orbotStatus = "unknown";
private ForegroundColorSpan initialGrayColorSpan;
private ForegroundColorSpan finalGrayColorSpan;
- // The drawer header padding variables are used in `onCreate()` and `onConfigurationChanged()`.
- private int drawerHeaderPaddingLeftAndRight;
- private int drawerHeaderPaddingTop;
- private int drawerHeaderPaddingBottom;
-
// `bookmarksDatabaseHelper` is used in `onCreate()`, `onDestroy`, `onOptionsItemSelected()`, `onCreateBookmark()`, `onCreateBookmarkFolder()`, `onSaveEditBookmark()`, `onSaveEditBookmarkFolder()`,
// and `loadBookmarksFolder()`.
private BookmarksDatabaseHelper bookmarksDatabaseHelper;
private ValueCallback<Uri[]> fileChooserCallback;
// The default progress view offsets are set in `onCreate()` and used in `initializeWebView()`.
+ private int appBarHeight;
private int defaultProgressViewStartOffset;
private int defaultProgressViewEndOffset;
- // The swipe refresh layout top padding is used when exiting full screen browsing mode. It is used in an inner class in `initializeWebView()`.
- private int swipeRefreshLayoutPaddingTop;
-
// The URL sanitizers are set in `applyAppSettings()` and used in `sanitizeUrl()`.
private boolean sanitizeGoogleAnalytics;
private boolean sanitizeFacebookClickIds;
// Remove the warning about needing to override `performClick()` when using an `OnTouchListener` with `WebView`.
@SuppressLint("ClickableViewAccessibility")
protected void onCreate(Bundle savedInstanceState) {
- // 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();
- }
+ // Run the default commands.
+ super.onCreate(savedInstanceState);
// Initialize the default preference values the first time the program is run. `false` keeps this command from resetting any current preferences back to default.
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
// Get a handle for the shared preferences.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
- // Get the theme and screenshot preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+ // Get the screenshot preference.
+ String appTheme = sharedPreferences.getString("app_theme", getString(R.string.app_theme_default_value));
boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+ // Get the theme entry values string array.
+ String[] appThemeEntryValuesStringArray = getResources().getStringArray(R.array.app_theme_entry_values);
+
+ // Set the app theme according to the preference. A switch statement cannot be used because the theme entry values string array is not a compile time constant.
+ if (appTheme.equals(appThemeEntryValuesStringArray[1])) { // The light theme is selected.
+ // Apply the light theme.
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
+ } else if (appTheme.equals(appThemeEntryValuesStringArray[2])) { // The dark theme is selected.
+ // Apply the dark theme.
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
+ } else { // The system default theme is selected.
+ if (Build.VERSION.SDK_INT >= 28) { // The system default theme is supported.
+ // Follow the system default theme.
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
+ } else { // The system default theme is not supported.
+ // Follow the battery saver mode.
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY);
+ }
+ }
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
- // Set the activity theme.
- if (darkTheme) {
- setTheme(R.style.PrivacyBrowserDark);
- } else {
- setTheme(R.style.PrivacyBrowserLight);
+ // 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();
}
- // Run the default commands.
- super.onCreate(savedInstanceState);
+ // Set the theme.
+ setTheme(R.style.PrivacyBrowser);
// Set the content view.
setContentView(R.layout.main_framelayout);
Toolbar toolbar = findViewById(R.id.toolbar);
ViewPager webViewPager = findViewById(R.id.webviewpager);
- // Set the action bar. `SupportActionBar` must be used until the minimum API is >= 21.
- setSupportActionBar(toolbar);
+ // Get a handle for the app compat delegate.
+ AppCompatDelegate appCompatDelegate = getDelegate();
+
+ // Set the support action bar.
+ appCompatDelegate.setSupportActionBar(toolbar);
// Get a handle for the action bar.
- ActionBar actionBar = getSupportActionBar();
+ ActionBar actionBar = appCompatDelegate.getSupportActionBar();
// This is needed to get rid of the Android Studio warning that the action bar might be null.
assert actionBar != null;
actionBar.setCustomView(R.layout.url_app_bar);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
- // Initially disable the sliding drawers. They will be enabled once the blocklists are loaded.
- drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
-
// Create the hamburger icon at the start of the AppBar.
actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.open_navigation_drawer, R.string.close_navigation_drawer);
+ // Initially disable the sliding drawers. They will be enabled once the blocklists are loaded.
+ drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
+
// Initialize the web view pager adapter.
webViewPagerAdapter = new WebViewPagerAdapter(getSupportFragmentManager());
// Get a handle for the root frame layouts.
FrameLayout rootFrameLayout = findViewById(R.id.root_framelayout);
- // Remove the translucent status flag. This is necessary so the root frame layout can fill the entire screen.
- getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
-
/* 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.
@Override
public void onDestroy() {
- // Unregister the orbot status broadcast receiver.
- this.unregisterReceiver(orbotStatusBroadcastReceiver);
+ // Unregister the orbot status broadcast receiver if it exists.
+ if (orbotStatusBroadcastReceiver != null) {
+ this.unregisterReceiver(orbotStatusBroadcastReceiver);
+ }
- // Close the bookmarks cursor and database.
- bookmarksCursor.close();
- bookmarksDatabaseHelper.close();
+ // Close the bookmarks cursor if it exists.
+ if (bookmarksCursor != null) {
+ bookmarksCursor.close();
+ }
+
+ // Close the bookmarks database if it exists.
+ if (bookmarksDatabaseHelper != null) {
+ bookmarksDatabaseHelper.close();
+ }
// Run the default commands.
super.onDestroy();
// Get the dark theme and app bar preferences..
boolean displayAdditionalAppBarIcons = sharedPreferences.getBoolean("display_additional_app_bar_icons", false);
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
// Set the status of the additional app bar icons. Setting the refresh menu item to `SHOW_AS_ACTION_ALWAYS` makes it appear even on small devices like phones.
if (displayAdditionalAppBarIcons) {
// Set the title.
refreshMenuItem.setTitle(R.string.stop);
- // If the icon is displayed in the AppBar, set it according to the theme.
+ // Set the icon if it is displayed in the app bar.
if (displayAdditionalAppBarIcons) {
- if (darkTheme) {
- refreshMenuItem.setIcon(R.drawable.close_dark);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ // Set the icon according to the current theme status.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ // Set the dark stop icon.
+ refreshMenuItem.setIcon(R.drawable.close_night);
} else {
- refreshMenuItem.setIcon(R.drawable.close_light);
+ // Set the light stop icon.
+ refreshMenuItem.setIcon(R.drawable.close_day);
}
}
}
// Run the default commands.
super.onConfigurationChanged(newConfig);
- // Get the status bar pixel size.
- int statusBarResourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
- int statusBarPixelSize = getResources().getDimensionPixelSize(statusBarResourceId);
-
- // Get the resource density.
- float screenDensity = getResources().getDisplayMetrics().density;
-
- // Recalculate the drawer header padding.
- drawerHeaderPaddingLeftAndRight = (int) (15 * screenDensity);
- drawerHeaderPaddingTop = statusBarPixelSize + (int) (4 * screenDensity);
- drawerHeaderPaddingBottom = (int) (8 * screenDensity);
-
// Reload the ad for the free flavor if not in full screen mode.
if (BuildConfig.FLAVOR.contentEquals("free") && !inFullScreenBrowsingMode) {
// Reload the ad. The AdView is destroyed and recreated, which changes the ID, every time it is reloaded to handle possible rotations.
bookmarksListView.setSelection(0);
}
- @Override
- public void onSaveBookmark(DialogFragment dialogFragment, int selectedBookmarkDatabaseId, Bitmap favoriteIconBitmap) {
- // Get the dialog.
- Dialog dialog = dialogFragment.getDialog();
-
- // Remove the incorrect lint warning below that the dialog might be null.
- assert dialog != null;
-
- // Get handles for the views from the dialog.
- EditText editBookmarkNameEditText = dialog.findViewById(R.id.edit_bookmark_name_edittext);
- EditText editBookmarkUrlEditText = dialog.findViewById(R.id.edit_bookmark_url_edittext);
- RadioButton currentBookmarkIconRadioButton = dialog.findViewById(R.id.edit_bookmark_current_icon_radiobutton);
-
- // Store the bookmark strings.
- String bookmarkNameString = editBookmarkNameEditText.getText().toString();
- String bookmarkUrlString = editBookmarkUrlEditText.getText().toString();
-
- // Update the bookmark.
- if (currentBookmarkIconRadioButton.isChecked()) { // Update the bookmark without changing the favorite icon.
- bookmarksDatabaseHelper.updateBookmark(selectedBookmarkDatabaseId, bookmarkNameString, bookmarkUrlString);
- } else { // Update the bookmark using the `WebView` favorite icon.
- // Create a favorite icon byte array output stream.
- ByteArrayOutputStream newFavoriteIconByteArrayOutputStream = new ByteArrayOutputStream();
-
- // Convert the favorite icon bitmap to a byte array. `0` is for lossless compression (the only option for a PNG).
- favoriteIconBitmap.compress(Bitmap.CompressFormat.PNG, 0, newFavoriteIconByteArrayOutputStream);
-
- // Convert the favorite icon byte array stream to a byte array.
- byte[] newFavoriteIconByteArray = newFavoriteIconByteArrayOutputStream.toByteArray();
-
- // Update the bookmark and the favorite icon.
- bookmarksDatabaseHelper.updateBookmark(selectedBookmarkDatabaseId, bookmarkNameString, bookmarkUrlString, newFavoriteIconByteArray);
- }
-
- // Update the bookmarks cursor with the current contents of this folder.
- bookmarksCursor = bookmarksDatabaseHelper.getBookmarksByDisplayOrder(currentBookmarksFolder);
-
- // Update the list view.
- bookmarksCursorAdapter.changeCursor(bookmarksCursor);
- }
-
@Override
public void onSaveBookmarkFolder(DialogFragment dialogFragment, int selectedFolderDatabaseId, Bitmap favoriteIconBitmap) {
// Get the dialog.
// Apply the appropriate full screen mode flags.
if (fullScreenBrowsingModeEnabled && inFullScreenBrowsingMode) { // Privacy Browser is currently in full screen browsing mode.
- // Hide the app bar if specified.
- if (hideAppBar) {
- // Get handles for the views.
- LinearLayout tabsLinearLayout = findViewById(R.id.tabs_linearlayout);
- ActionBar actionBar = getSupportActionBar();
-
- // Remove the incorrect lint warning below that the action bar might be null.
- assert actionBar != null;
-
- // Hide the tab linear layout.
- tabsLinearLayout.setVisibility(View.GONE);
-
- // Hide the action bar.
- actionBar.hide();
- }
-
// Hide the banner ad in the free flavor.
if (BuildConfig.FLAVOR.contentEquals("free")) {
AdHelper.hideAd(findViewById(R.id.adview));
}
- // Remove the translucent status flag. This is necessary so the root frame layout can fill the entire screen.
- getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
-
/* 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.
*/
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);
+
+ // Reload the website if the app bar is hidden. Otherwise, there is some bug in Android that causes the WebView to be entirely black.
+ if (hideAppBar) {
+ // Reload the WebView.
+ currentWebView.reload();
+ }
} else { // Switch to normal viewing mode.
// Remove the `SYSTEM_UI` flags from the root frame layout.
rootFrameLayout.setSystemUiVisibility(0);
-
- // Add the translucent status flag.
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
// Reload the ad for the free flavor if not in full screen mode.
searchURL = searchString;
}
+ // Get a handle for the app compat delegate.
+ AppCompatDelegate appCompatDelegate = getDelegate();
+
// Get handles for the views that need to be modified.
FrameLayout rootFrameLayout = findViewById(R.id.root_framelayout);
AppBarLayout appBarLayout = findViewById(R.id.appbar_layout);
- ActionBar actionBar = getSupportActionBar();
+ ActionBar actionBar = appCompatDelegate.getSupportActionBar();
Toolbar toolbar = findViewById(R.id.toolbar);
LinearLayout findOnPageLinearLayout = findViewById(R.id.find_on_page_linearlayout);
LinearLayout tabsLinearLayout = findViewById(R.id.tabs_linearlayout);
AdHelper.hideAd(findViewById(R.id.adview));
}
- // Remove the translucent status flag. This is necessary so the root frame layout can fill the entire screen.
- getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
-
/* 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.
// Remove the `SYSTEM_UI` flags from the root frame layout.
rootFrameLayout.setSystemUiVisibility(0);
-
- // Add the translucent status flag.
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
}
private void initializeApp() {
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
-
- // Get the theme preference.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
-
// Get a handle for the input method.
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
}
});
- // Set the bookmarks drawer resources according to the theme. This can't be done in the layout due to compatibility issues with the `DrawerLayout` support widget.
- // The deprecated `getResources().getDrawable()` must be used until the minimum API >= 21 and and `getResources().getColor()` must be used until the minimum API >= 23.
- if (darkTheme) {
- launchBookmarksActivityFab.setImageDrawable(getResources().getDrawable(R.drawable.bookmarks_dark));
- createBookmarkFolderFab.setImageDrawable(getResources().getDrawable(R.drawable.create_folder_dark));
- createBookmarkFab.setImageDrawable(getResources().getDrawable(R.drawable.create_bookmark_dark));
- bookmarksListView.setBackgroundColor(getResources().getColor(R.color.gray_850));
- } else {
- launchBookmarksActivityFab.setImageDrawable(getResources().getDrawable(R.drawable.bookmarks_light));
- createBookmarkFolderFab.setImageDrawable(getResources().getDrawable(R.drawable.create_folder_light));
- createBookmarkFab.setImageDrawable(getResources().getDrawable(R.drawable.create_bookmark_light));
- bookmarksListView.setBackgroundColor(getResources().getColor(R.color.white));
- }
-
// Set the launch bookmarks activity FAB to launch the bookmarks activity.
launchBookmarksActivityFab.setOnClickListener(v -> {
// Get a copy of the favorite icon bitmap.
defaultProgressViewStartOffset = swipeRefreshLayout.getProgressViewStartOffset();
defaultProgressViewEndOffset = swipeRefreshLayout.getProgressViewEndOffset();
- // Set the swipe to refresh color according to the theme.
- if (darkTheme) {
- swipeRefreshLayout.setColorSchemeResources(R.color.blue_800);
- swipeRefreshLayout.setProgressBackgroundColorSchemeResource(R.color.gray_850);
- } else {
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ // Set the refresh color scheme according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
swipeRefreshLayout.setColorSchemeResources(R.color.blue_500);
+ } else {
+ swipeRefreshLayout.setColorSchemeResources(R.color.blue_700);
}
- // `DrawerTitle` identifies the `DrawerLayouts` in accessibility mode.
+ // Initialize a color background typed value.
+ TypedValue colorBackgroundTypedValue = new TypedValue();
+
+ // Get the color background from the theme.
+ getTheme().resolveAttribute(android.R.attr.colorBackground, colorBackgroundTypedValue, true);
+
+ // Get the color background int from the typed value.
+ int colorBackgroundInt = colorBackgroundTypedValue.data;
+
+ // Set the swipe refresh background color.
+ swipeRefreshLayout.setProgressBackgroundColorSchemeColor(colorBackgroundInt);
+
+ // The drawer titles identify the drawer layouts in accessibility mode.
drawerLayout.setDrawerTitle(GravityCompat.START, getString(R.string.navigation_drawer));
drawerLayout.setDrawerTitle(GravityCompat.END, getString(R.string.bookmarks));
return true;
});
- // Get the status bar pixel size.
- int statusBarResourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
- int statusBarPixelSize = getResources().getDimensionPixelSize(statusBarResourceId);
-
- // Get the resource density.
- float screenDensity = getResources().getDisplayMetrics().density;
-
- // Calculate the drawer header padding. This is used to move the text in the drawer headers below any cutouts.
- drawerHeaderPaddingLeftAndRight = (int) (15 * screenDensity);
- drawerHeaderPaddingTop = statusBarPixelSize + (int) (4 * screenDensity);
- drawerHeaderPaddingBottom = (int) (8 * screenDensity);
-
// The drawer listener is used to update the navigation menu.
drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
@Override
public void onDrawerStateChanged(int newState) {
if ((newState == DrawerLayout.STATE_SETTLING) || (newState == DrawerLayout.STATE_DRAGGING)) { // A drawer is opening or closing.
- // Get handles for the drawer headers.
- TextView navigationHeaderTextView = findViewById(R.id.navigationText);
- TextView bookmarksHeaderTextView = findViewById(R.id.bookmarks_title_textview);
-
- // Apply the navigation header paddings if the view is not null (sometimes it is null if another activity has already started). This moves the text in the header below any cutouts.
- if (navigationHeaderTextView != null) {
- navigationHeaderTextView.setPadding(drawerHeaderPaddingLeftAndRight, drawerHeaderPaddingTop, drawerHeaderPaddingLeftAndRight, drawerHeaderPaddingBottom);
- }
-
- // Apply the bookmarks header paddings if the view is not null (sometimes it is null if another activity has already started). This moves the text in the header below any cutouts.
- if (bookmarksHeaderTextView != null) {
- bookmarksHeaderTextView.setPadding(drawerHeaderPaddingLeftAndRight, drawerHeaderPaddingTop, drawerHeaderPaddingLeftAndRight, drawerHeaderPaddingBottom);
- }
-
// Update the navigation menu items if the WebView is not null.
if (currentWebView != null) {
navigationBackMenuItem.setEnabled(currentWebView.canGoBack());
String defaultFontSizeString = sharedPreferences.getString("font_size", getString(R.string.font_size_default_value));
String defaultUserAgentName = sharedPreferences.getString("user_agent", getString(R.string.user_agent_default_value));
boolean defaultSwipeToRefresh = sharedPreferences.getBoolean("swipe_to_refresh", true);
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
boolean wideViewport = sharedPreferences.getBoolean("wide_viewport", true);
boolean displayWebpageImages = sharedPreferences.getBoolean("display_webpage_images", true);
break;
}
- // Set a green background on the URL relative layout to indicate that custom domain settings are being used. The deprecated `.getDrawable()` must be used until the minimum API >= 21.
- if (darkTheme) {
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ // Set a background on the URL relative layout to indicate that custom domain settings are being used. The deprecated `.getDrawable()` must be used until the minimum API >= 21.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
urlRelativeLayout.setBackground(getResources().getDrawable(R.drawable.url_bar_background_dark_blue));
} else {
urlRelativeLayout.setBackground(getResources().getDrawable(R.drawable.url_bar_background_light_green));
}
private void applyProxy(boolean reloadWebViews) {
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
-
- // Get the theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
-
// Get a handle for the app bar layout.
AppBarLayout appBarLayout = findViewById(R.id.appbar_layout);
// Reset the waiting for proxy tracker.
waitingForProxy = false;
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
// Update the user interface and reload the WebViews if requested.
switch (proxyMode) {
case ProxyHelper.NONE:
+ // Initialize a color background typed value.
+ TypedValue colorBackgroundTypedValue = new TypedValue();
+
+ // Get the color background from the theme.
+ getTheme().resolveAttribute(android.R.attr.colorBackground, colorBackgroundTypedValue, true);
+
+ // Get the color background int from the typed value.
+ int colorBackgroundInt = colorBackgroundTypedValue.data;
+
// Set the default app bar layout background.
- if (darkTheme) {
- appBarLayout.setBackgroundResource(R.color.gray_900);
- } else {
- appBarLayout.setBackgroundResource(R.color.gray_100);
- }
+ appBarLayout.setBackgroundColor(colorBackgroundInt);
break;
case ProxyHelper.TOR:
// Set the app bar background to indicate proxying through Orbot is enabled.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
appBarLayout.setBackgroundResource(R.color.dark_blue_30);
} else {
appBarLayout.setBackgroundResource(R.color.blue_50);
case ProxyHelper.I2P:
// Set the app bar background to indicate proxying through Orbot is enabled.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
appBarLayout.setBackgroundResource(R.color.dark_blue_30);
} else {
appBarLayout.setBackgroundResource(R.color.blue_50);
case ProxyHelper.CUSTOM:
// Set the app bar background to indicate proxying through Orbot is enabled.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
appBarLayout.setBackgroundResource(R.color.dark_blue_30);
} else {
appBarLayout.setBackgroundResource(R.color.blue_50);
private void updatePrivacyIcons(boolean runInvalidateOptionsMenu) {
// Only update the privacy icons if the options menu and the current WebView have already been populated.
if ((optionsMenu != null) && (currentWebView != null)) {
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
-
- // Get the theme and screenshot preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
-
// Get handles for the menu items.
MenuItem privacyMenuItem = optionsMenu.findItem(R.id.toggle_javascript);
MenuItem firstPartyCookiesMenuItem = optionsMenu.findItem(R.id.toggle_first_party_cookies);
privacyMenuItem.setIcon(R.drawable.privacy_mode);
}
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
// Update the first-party cookies icon.
if (currentWebView.getAcceptFirstPartyCookies()) { // First-party cookies are enabled.
firstPartyCookiesMenuItem.setIcon(R.drawable.cookies_enabled);
} else { // First-party cookies are disabled.
- if (darkTheme) {
- firstPartyCookiesMenuItem.setIcon(R.drawable.cookies_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ firstPartyCookiesMenuItem.setIcon(R.drawable.cookies_disabled_night);
} else {
- firstPartyCookiesMenuItem.setIcon(R.drawable.cookies_disabled_light);
+ firstPartyCookiesMenuItem.setIcon(R.drawable.cookies_disabled_day);
}
}
if (currentWebView.getSettings().getJavaScriptEnabled() && currentWebView.getSettings().getDomStorageEnabled()) { // Both JavaScript and DOM storage are enabled.
domStorageMenuItem.setIcon(R.drawable.dom_storage_enabled);
} else if (currentWebView.getSettings().getJavaScriptEnabled()) { // JavaScript is enabled but DOM storage is disabled.
- if (darkTheme) {
- domStorageMenuItem.setIcon(R.drawable.dom_storage_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStorageMenuItem.setIcon(R.drawable.dom_storage_disabled_night);
} else {
- domStorageMenuItem.setIcon(R.drawable.dom_storage_disabled_light);
+ domStorageMenuItem.setIcon(R.drawable.dom_storage_disabled_day);
}
} else { // JavaScript is disabled, so DOM storage is ghosted.
- if (darkTheme) {
- domStorageMenuItem.setIcon(R.drawable.dom_storage_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStorageMenuItem.setIcon(R.drawable.dom_storage_ghosted_night);
} else {
- domStorageMenuItem.setIcon(R.drawable.dom_storage_ghosted_light);
+ domStorageMenuItem.setIcon(R.drawable.dom_storage_ghosted_day);
}
}
// Update the refresh icon.
- if (darkTheme) {
- refreshMenuItem.setIcon(R.drawable.refresh_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ refreshMenuItem.setIcon(R.drawable.refresh_enabled_night);
} else {
- refreshMenuItem.setIcon(R.drawable.refresh_enabled_light);
+ refreshMenuItem.setIcon(R.drawable.refresh_enabled_day);
}
- // `invalidateOptionsMenu` calls `onPrepareOptionsMenu()` and redraws the icons in the `AppBar`.
+ // `invalidateOptionsMenu()` calls `onPrepareOptionsMenu()` and redraws the icons in the app bar.
if (runInvalidateOptionsMenu) {
invalidateOptionsMenu();
}
}
private void setCurrentWebView(int pageNumber) {
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
-
- // Get the theme preference.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
-
// Get handles for the URL views.
RelativeLayout urlRelativeLayout = findViewById(R.id.url_relativelayout);
EditText urlEditText = findViewById(R.id.url_edittext);
// Set the background to indicate the domain settings status.
if (currentWebView.getDomainSettingsApplied()) {
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
// Set a green background on the URL relative layout to indicate that custom domain settings are being used. The deprecated `.getDrawable()` must be used until the minimum API >= 21.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
urlRelativeLayout.setBackground(getResources().getDrawable(R.drawable.url_bar_background_dark_blue));
} else {
urlRelativeLayout.setBackground(getResources().getDrawable(R.drawable.url_bar_background_light_green));
@Override
public void initializeWebView(NestedScrollWebView nestedScrollWebView, int pageNumber, ProgressBar progressBar, String url) {
+ // Get a handle for the app compat delegate.
+ AppCompatDelegate appCompatDelegate = getDelegate();
+
// Get handles for the activity views.
FrameLayout rootFrameLayout = findViewById(R.id.root_framelayout);
DrawerLayout drawerLayout = findViewById(R.id.drawerlayout);
RelativeLayout mainContentRelativeLayout = findViewById(R.id.main_content_relativelayout);
- ActionBar actionBar = getSupportActionBar();
+ ActionBar actionBar = appCompatDelegate.getSupportActionBar();
LinearLayout tabsLinearLayout = findViewById(R.id.tabs_linearlayout);
EditText urlEditText = findViewById(R.id.url_edittext);
TabLayout tabLayout = findViewById(R.id.tablayout);
// Toggle the full screen browsing mode.
if (inFullScreenBrowsingMode) { // Switch to full screen mode.
- // Store the swipe refresh layout top padding.
- swipeRefreshLayoutPaddingTop = swipeRefreshLayout.getPaddingTop();
-
// Hide the app bar if specified.
if (hideAppBar) {
// Close the find on page bar if it is visible.
// Hide the action bar.
actionBar.hide();
- // Check to see if app bar scrolling is disabled.
+ // If the app bar is not being scrolled, the swipe refresh layout needs to be adjusted.
if (!scrollAppBar) {
// Remove the padding from the top of the swipe refresh layout.
swipeRefreshLayout.setPadding(0, 0, 0, 0);
+
+ // The swipe refresh circle must be moved above the now removed status bar location.
+ swipeRefreshLayout.setProgressViewOffset(false, -200, defaultProgressViewEndOffset);
}
}
AdHelper.hideAd(findViewById(R.id.adview));
}
- // Remove the translucent status flag. This is necessary so the root frame layout can fill the entire screen.
- getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
-
/* 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.
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 { // Switch to normal viewing mode.
- // Show the tab linear layout.
- tabsLinearLayout.setVisibility(View.VISIBLE);
+ // Show the app bar if it was hidden.
+ if (hideAppBar) {
+ // Show the tab linear layout.
+ tabsLinearLayout.setVisibility(View.VISIBLE);
- // Show the action bar.
- actionBar.show();
+ // Show the action bar.
+ actionBar.show();
+
+ // If the app bar is not being scrolled, the swipe refresh layout needs to be adjusted.
+ if (!scrollAppBar) {
+ // The swipe refresh layout must be manually moved below the app bar layout.
+ swipeRefreshLayout.setPadding(0, appBarHeight, 0, 0);
- // Check to see if app bar scrolling is disabled.
- if (!scrollAppBar) {
- // Add the padding from the top of the swipe refresh layout.
- swipeRefreshLayout.setPadding(0, swipeRefreshLayoutPaddingTop, 0, 0);
+ // The swipe to refresh circle doesn't always hide itself completely unless it is moved up 10 pixels.
+ swipeRefreshLayout.setProgressViewOffset(false, defaultProgressViewStartOffset - 10 + appBarHeight, defaultProgressViewEndOffset + appBarHeight);
+ }
}
// Show the banner ad in the free flavor.
// Remove the `SYSTEM_UI` flags from the root frame layout.
rootFrameLayout.setSystemUiVisibility(0);
-
- // Add the translucent status flag.
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
// Consume the double-tap.
// Hide the main content relative layout.
mainContentRelativeLayout.setVisibility(View.GONE);
- // Remove the translucent status bar overlay on the `Drawer Layout`, which is special and needs its own command.
- drawerLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
-
- // Remove the translucent status flag. This is necessary so the root frame layout can fill the entire screen.
- getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
-
/* 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.
AdHelper.hideAd(findViewById(R.id.adview));
}
- // Remove the translucent status flag. This is necessary so the root frame layout can fill the entire screen.
- getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
-
/* 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.
} else { // Switch to normal viewing mode.
// Remove the `SYSTEM_UI` flags from the root frame layout.
rootFrameLayout.setSystemUiVisibility(0);
-
- // Add the translucent status flag.
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
// Reload the ad for the free flavor if not in full screen mode.
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// Get the preferences.
boolean scrollAppBar = sharedPreferences.getBoolean("scroll_app_bar", true);
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
// Get a handler for the app bar layout.
AppBarLayout appBarLayout = findViewById(R.id.appbar_layout);
- // Set the top padding of the swipe refresh layout according to the app bar scrolling preference.
- if (scrollAppBar) {
+ // Set the top padding of the swipe refresh layout according to the app bar scrolling preference. This can't be done in `appAppSettings()` because the app bar is not yet populated there.
+ if (scrollAppBar || (inFullScreenBrowsingMode && hideAppBar)) {
// No padding is needed because it will automatically be placed below the app bar layout due to the scrolling layout behavior.
swipeRefreshLayout.setPadding(0, 0, 0, 0);
// The swipe to refresh circle doesn't always hide itself completely unless it is moved up 10 pixels.
swipeRefreshLayout.setProgressViewOffset(false, defaultProgressViewStartOffset - 10, defaultProgressViewEndOffset);
} else {
- // Get the app bar layout height. This can't be done in `applyAppSettings()` because the app bar is not yet populated.
- int appBarHeight = appBarLayout.getHeight();
+ // Get the app bar layout height. This can't be done in `applyAppSettings()` because the app bar is not yet populated there.
+ appBarHeight = appBarLayout.getHeight();
// The swipe refresh layout must be manually moved below the app bar layout.
swipeRefreshLayout.setPadding(0, appBarHeight, 0, 0);
// Reset the requests counters.
nestedScrollWebView.resetRequestsCounters();
+ // TODO. Make the background of a new tab match the theme.
// If night mode is enabled, hide `mainWebView` until after the night mode CSS is applied.
if (nestedScrollWebView.getNightMode()) {
nestedScrollWebView.setVisibility(View.INVISIBLE);
// If the icon is displayed in the AppBar, set it according to the theme.
if (displayAdditionalAppBarIcons) {
- if (darkTheme) {
- refreshMenuItem.setIcon(R.drawable.close_dark);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ // Set the stop icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ refreshMenuItem.setIcon(R.drawable.close_night);
} else {
- refreshMenuItem.setIcon(R.drawable.close_light);
+ refreshMenuItem.setIcon(R.drawable.close_day);
}
}
}
// Get the app bar and theme preferences.
boolean displayAdditionalAppBarIcons = sharedPreferences.getBoolean("display_additional_app_bar_icons", false);
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- // If the icon is displayed in the AppBar, reset it according to the theme.
+ // If the icon is displayed in the app bar, reset it according to the theme.
if (displayAdditionalAppBarIcons) {
- if (darkTheme) {
- refreshMenuItem.setIcon(R.drawable.refresh_enabled_dark);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ // Set the icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ refreshMenuItem.setIcon(R.drawable.refresh_enabled_night);
} else {
- refreshMenuItem.setIcon(R.drawable.refresh_enabled_light);
+ refreshMenuItem.setIcon(R.drawable.refresh_enabled_day);
}
}
}
/*
- * Copyright © 2018-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2018-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
// Get a handle for the shared preferences.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
- // Get the screenshot and theme preferences.
+ // Get the screenshot preference.
boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
// Disable screenshots if not allowed.
if (!allowScreenshots) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
- // Set the activity theme.
- if (darkTheme) {
- setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
- } else {
- setTheme(R.style.PrivacyBrowserLight_SecondaryActivity);
- }
+ // Set the theme.
+ setTheme(R.style.PrivacyBrowser);
// Run the default commands.
super.onCreate(savedInstanceState);
/*
- * Copyright © 2016-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
// Get the screenshot and theme preferences.
boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
// Disable screenshots if not allowed.
if (!allowScreenshots) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
- // Set the activity theme.
- if (darkTheme) {
- setTheme(R.style.PrivacyBrowserSettingsDark);
- } else {
- setTheme(R.style.PrivacyBrowserSettingsLight);
- }
+ // Set the theme.
+ setTheme(R.style.PrivacyBrowserSettings);
// Run the default commands.
super.onCreate(savedInstanceState);
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
+import android.util.TypedValue;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
// Get a handle for the shared preferences.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
- // Get the screenshot and theme preferences.
+ // Get the screenshot preference.
boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
// Disable screenshots if not allowed.
if (!allowScreenshots) {
}
// Set the theme.
- if (darkTheme) {
- setTheme(R.style.PrivacyBrowserDark);
- } else {
- setTheme(R.style.PrivacyBrowserLight);
- }
+ setTheme(R.style.PrivacyBrowser);
// Run the default commands.
super.onCreate(savedInstanceState);
}
});
- // Set the swipe to refresh color according to the theme.
- if (darkTheme) {
- swipeRefreshLayout.setColorSchemeResources(R.color.blue_600);
- swipeRefreshLayout.setProgressBackgroundColorSchemeResource(R.color.gray_800);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
+ // Set the refresh color scheme according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ swipeRefreshLayout.setColorSchemeResources(R.color.blue_500);
} else {
swipeRefreshLayout.setColorSchemeResources(R.color.blue_700);
}
+ // Initialize a color background typed value.
+ TypedValue colorBackgroundTypedValue = new TypedValue();
+
+ // Get the color background from the theme.
+ getTheme().resolveAttribute(android.R.attr.colorBackground, colorBackgroundTypedValue, true);
+
+ // Get the color background int from the typed value.
+ int colorBackgroundInt = colorBackgroundTypedValue.data;
+
+ // Set the swipe refresh background color.
+ swipeRefreshLayout.setProgressBackgroundColorSchemeColor(colorBackgroundInt);
+
// Get the source using an AsyncTask if the URL begins with `http`.
if ((currentUrl != null) && currentUrl.startsWith("http")) {
new GetSource(this, this, userAgent).execute(currentUrl);
/*
- * Copyright © 2018-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2018-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
package com.stoutner.privacybrowser.adapters;
import android.content.Context;
-import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
+import android.content.res.Configuration;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@Override
@NonNull
public View getView(int position, View view, @NonNull ViewGroup parent) {
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
-
// Get a handle for the context.
Context context = getContext();
// The ID is one greater than the position because it is 0 based.
int id = position + 1;
+ // Get the current theme status.
+ int currentThemeStatus = context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
// Set the action text and the background color.
switch (entryStringArray[0]) {
case BlocklistHelper.REQUEST_DEFAULT:
dispositionTextView.setText(requestAllowed);
// Set the background color.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
linearLayout.setBackgroundColor(context.getResources().getColor(R.color.blue_700_50));
} else {
linearLayout.setBackgroundColor(context.getResources().getColor(R.color.blue_100));
dispositionTextView.setText(requestThirdParty);
// Set the background color.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
linearLayout.setBackgroundColor(context.getResources().getColor(R.color.yellow_700_50));
} else {
linearLayout.setBackgroundColor(context.getResources().getColor(R.color.yellow_100));
dispositionTextView.setText(requestBlocked);
// Set the background color.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
linearLayout.setBackgroundColor(context.getResources().getColor(R.color.red_700_40));
} else {
linearLayout.setBackgroundColor(context.getResources().getColor(R.color.red_100));
urlTextView.setText(entryStringArray[1]);
// Set the text color. For some unexplained reason, `android:textColor="?android:textColorPrimary"` doesn't work in the layout file. Probably some bug relating to array adapters.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
dispositionTextView.setTextColor(context.getResources().getColor(R.color.gray_200));
urlTextView.setTextColor(context.getResources().getColor(R.color.gray_200));
} else {
package com.stoutner.privacybrowser.asynctasks;
-import android.app.AlertDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.webkit.CookieManager;
import android.widget.TextView;
+import androidx.appcompat.app.AlertDialog;
+
import com.stoutner.privacybrowser.R;
import com.stoutner.privacybrowser.helpers.ProxyHelper;
// Get a handle for the file size text view.
TextView fileSizeTextView = alertDialog.findViewById(R.id.file_size_textview);
+ // Remove the incorrect warning below that the file size text view might be null.
+ assert fileSizeTextView != null;
+
// Update the file size.
fileSizeTextView.setText(fileSize);
}
package com.stoutner.privacybrowser.dialogs
-import android.app.AlertDialog
import android.app.Dialog
+import android.content.res.Configuration
import android.os.Bundle
import android.view.WindowManager
+import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import androidx.preference.PreferenceManager
class AboutViewSourceDialog: DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
- // Get a handle for the shared preferences.
- val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
-
- // Get the screenshot and theme preferences.
- val allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false)
- val darkTheme = sharedPreferences.getBoolean("dark_theme", false)
-
// Use a builder to create the alert dialog.
- val dialogBuilder: AlertDialog.Builder
+ val dialogBuilder: AlertDialog.Builder = AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog)
- // Set the style and the icon according to the theme.
- if (darkTheme) {
- // Use a dark style.
- dialogBuilder = AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialogDark)
+ // Get the current theme status.
+ val currentThemeStatus = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
+ // Set the style and the icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
// Set a dark icon.
- dialogBuilder.setIcon(R.drawable.about_dark)
+ dialogBuilder.setIcon(R.drawable.about_night)
} else {
- // Use a light style.
- dialogBuilder = AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialogLight)
-
// Set a light icon.
- dialogBuilder.setIcon(R.drawable.about_light)
+ dialogBuilder.setIcon(R.drawable.about_day)
}
// Set the title.
// Create an alert dialog from the alert dialog builder.
val alertDialog = dialogBuilder.create()
+ // Get a handle for the shared preferences.
+ val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
+
+ // Get the screenshot preference.
+ val allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false)
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
alertDialog.window!!.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
package com.stoutner.privacybrowser.dialogs
import android.annotation.SuppressLint
-import android.app.AlertDialog
import android.app.Dialog
import android.content.Context
import android.content.DialogInterface
+import android.content.res.Configuration
import android.net.Uri
import android.os.Bundle
import android.text.Editable
import android.widget.EditText
import android.widget.TextView
+import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import androidx.preference.PreferenceManager
// Get the URL from the bundle.
val urlString = arguments.getString("url_string")
- // Get a handle for the shared preferences.
- val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
-
- // Get the screenshot and theme preferences.
- val allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false)
- val darkTheme = sharedPreferences.getBoolean("dark_theme", false)
-
// Use an alert dialog builder to create the alert dialog.
- val dialogBuilder: AlertDialog.Builder
+ val dialogBuilder: AlertDialog.Builder = AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog)
- // USet the style and the icon according to the theme.
- if (darkTheme) {
- // Set the dark style.
- dialogBuilder = AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialogDark)
+ // Get the current theme status.
+ val currentThemeStatus = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
+ // Set the icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
// Set the dark icon.
- dialogBuilder.setIcon(R.drawable.domains_dark)
+ dialogBuilder.setIcon(R.drawable.domains_night)
} else {
- // Set the light style.
- dialogBuilder = AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialogLight)
-
// Set the light icon.
dialogBuilder.setIcon(R.drawable.domains_light)
}
// Create an alert dialog from the builder.
val alertDialog = dialogBuilder.create()
+ // Get a handle for the shared preferences.
+ val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
+
+ // Get the screenshot preference.
+ val allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false)
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
alertDialog.window!!.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
val domainsDatabaseHelper = DomainsDatabaseHelper(context, null, null, 0)
// Get handles for the views in the alert dialog.
- val addDomainEditText = alertDialog.findViewById<EditText>(R.id.domain_name_edittext)
- val domainNameAlreadyExistsTextView = alertDialog.findViewById<TextView>(R.id.domain_name_already_exists_textview)
+ val addDomainEditText = alertDialog.findViewById<EditText>(R.id.domain_name_edittext)!!
+ val domainNameAlreadyExistsTextView = alertDialog.findViewById<TextView>(R.id.domain_name_already_exists_textview)!!
val addButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE)
// Update the status of the warning text and the add button when the domain name changes.
package com.stoutner.privacybrowser.dialogs
import android.annotation.SuppressLint
-import android.app.AlertDialog
import android.app.Dialog
import android.content.Context
import android.content.DialogInterface
import android.view.WindowManager
import android.widget.EditText
+import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import androidx.preference.PreferenceManager
// Convert the favorite icon byte array to a bitmap.
val favoriteIconBitmap = BitmapFactory.decodeByteArray(favoriteIconByteArray, 0, favoriteIconByteArray.size)
- // Get a handle for the shared preferences.
- val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
-
- // Get the screenshot and theme preferences.
- val allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false)
- val darkTheme = sharedPreferences.getBoolean("dark_theme", false)
-
- // Use an alert dialog builder to create the dialog and set the style according to the theme.
- val dialogBuilder = if (darkTheme) {
- AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialogDark)
- } else {
- AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialogLight)
- }
+ // Use an alert dialog builder to create the dialog.
+ val dialogBuilder = AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog)
// Set the title.
dialogBuilder.setTitle(R.string.create_bookmark)
// Create an alert dialog from the builder.
val alertDialog = dialogBuilder.create()
+
+ // Get a handle for the shared preferences.
+ val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
+
+ // Get the screenshot preference.
+ val allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false)
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
alertDialog.window!!.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
alertDialog.show()
// Get a handle for the edit texts.
- val createBookmarkNameEditText = alertDialog.findViewById<EditText>(R.id.create_bookmark_name_edittext)
- val createBookmarkUrlEditText = alertDialog.findViewById<EditText>(R.id.create_bookmark_url_edittext)
+ val createBookmarkNameEditText = alertDialog.findViewById<EditText>(R.id.create_bookmark_name_edittext)!!
+ val createBookmarkUrlEditText = alertDialog.findViewById<EditText>(R.id.create_bookmark_url_edittext)!!
// Set the initial texts for the edit texts.
createBookmarkNameEditText.setText(titleString)
package com.stoutner.privacybrowser.dialogs
import android.annotation.SuppressLint
-import android.app.AlertDialog
import android.app.Dialog
import android.content.Context
import android.content.DialogInterface
import android.view.WindowManager
import android.widget.EditText
import android.widget.ImageView
+import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import androidx.preference.PreferenceManager
// Convert the favorite icon byte array to a bitmap.
val favoriteIconBitmap = BitmapFactory.decodeByteArray(favoriteIconByteArray, 0, favoriteIconByteArray.size)
- // Get a handle for the shared preferences.
- val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
-
- // Get the screenshot and theme preferences.
- val allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false)
- val darkTheme = sharedPreferences.getBoolean("dark_theme", false)
-
- // Use an alert dialog builder to create the dialog and set the style according to the theme.
- val dialogBuilder = if (darkTheme) {
- AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialogDark)
- } else {
- AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialogLight)
- }
+ // Use an alert dialog builder to create the dialog.
+ val dialogBuilder = AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog)
// Set the title.
dialogBuilder.setTitle(R.string.create_folder)
// Create an alert dialog from the builder.
val alertDialog = dialogBuilder.create()
+ // Get a handle for the shared preferences.
+ val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
+
+ // Get the screenshot preference.
+ val allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false)
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
alertDialog.window!!.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
alertDialog.show()
// Get handles for the views in the dialog.
- val webPageIconImageView = alertDialog.findViewById<ImageView>(R.id.create_folder_web_page_icon)
- val folderNameEditText = alertDialog.findViewById<EditText>(R.id.create_folder_name_edittext)
+ val webPageIconImageView = alertDialog.findViewById<ImageView>(R.id.create_folder_web_page_icon)!!
+ val folderNameEditText = alertDialog.findViewById<EditText>(R.id.create_folder_name_edittext)!!
val createButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE)
// Display the current favorite icon.
// Convert the favorite icon byte array to a bitmap.
val favoriteIconBitmap = BitmapFactory.decodeByteArray(favoriteIconByteArray, 0, favoriteIconByteArray.size)
- // Get a handle for the shared preferences.
- val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
-
- // Get the theme and screenshot preferences.
- val allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false)
- val darkTheme = sharedPreferences.getBoolean("dark_theme", false)
-
- // Use an alert dialog builder to create the dialog and set the style according to the theme.
- val dialogBuilder = if (darkTheme) {
- AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialogDark)
- } else {
- AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialogLight)
- }
+ // Use an alert dialog builder to create the dialog.
+ val dialogBuilder = AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog)
// Create a drawable version of the favorite icon.
val favoriteIconDrawable: Drawable = BitmapDrawable(resources, favoriteIconBitmap)
// Create an alert dialog from the alert dialog builder.
val alertDialog = dialogBuilder.create()
+ // Get a handle for the shared preferences.
+ val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
+
+ // Get the screenshot preference.
+ val allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false)
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
alertDialog.window!!.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
package com.stoutner.privacybrowser.dialogs
import android.annotation.SuppressLint
-import android.app.AlertDialog
import android.app.Dialog
import android.content.Context
import android.content.DialogInterface
import android.widget.*
import android.widget.AdapterView.OnItemSelectedListener
+import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat
import androidx.fragment.app.DialogFragment
import androidx.preference.PreferenceManager
// Move the cursor to the first position.
bookmarkCursor.moveToFirst()
- // Get a handle for the shared preferences.
- val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
-
- // Get the screenshot and theme preferences.
- val allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false)
- val darkTheme = sharedPreferences.getBoolean("dark_theme", false)
-
// Use an alert dialog builder to create the dialog and set the style according to the theme.
- val dialogBuilder = if (darkTheme) {
- AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialogDark)
- } else {
- AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialogLight)
- }
+ val dialogBuilder = AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog)
// Set the title.
dialogBuilder.setTitle(R.string.edit_bookmark)
// Create an alert dialog from the alert dialog builder.
val alertDialog = dialogBuilder.create()
+ // Get a handle for the shared preferences.
+ val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
+
+ // Get the screenshot preference.
+ val allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false)
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
alertDialog.window!!.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
alertDialog.show()
// Get handles for the layout items.
- val databaseIdTextView = alertDialog.findViewById<TextView>(R.id.edit_bookmark_database_id_textview)
- val iconRadioGroup = alertDialog.findViewById<RadioGroup>(R.id.edit_bookmark_icon_radiogroup)
- val currentIconImageView = alertDialog.findViewById<ImageView>(R.id.edit_bookmark_current_icon)
- val newFavoriteIconImageView = alertDialog.findViewById<ImageView>(R.id.edit_bookmark_webpage_favorite_icon)
- newIconRadioButton = alertDialog.findViewById(R.id.edit_bookmark_webpage_favorite_icon_radiobutton)
- nameEditText = alertDialog.findViewById(R.id.edit_bookmark_name_edittext)
- urlEditText = alertDialog.findViewById(R.id.edit_bookmark_url_edittext)
- folderSpinner = alertDialog.findViewById(R.id.edit_bookmark_folder_spinner)
- displayOrderEditText = alertDialog.findViewById(R.id.edit_bookmark_display_order_edittext)
+ val databaseIdTextView = alertDialog.findViewById<TextView>(R.id.edit_bookmark_database_id_textview)!!
+ val iconRadioGroup = alertDialog.findViewById<RadioGroup>(R.id.edit_bookmark_icon_radiogroup)!!
+ val currentIconImageView = alertDialog.findViewById<ImageView>(R.id.edit_bookmark_current_icon)!!
+ val newFavoriteIconImageView = alertDialog.findViewById<ImageView>(R.id.edit_bookmark_webpage_favorite_icon)!!
+ newIconRadioButton = alertDialog.findViewById(R.id.edit_bookmark_webpage_favorite_icon_radiobutton)!!
+ nameEditText = alertDialog.findViewById(R.id.edit_bookmark_name_edittext)!!
+ urlEditText = alertDialog.findViewById(R.id.edit_bookmark_url_edittext)!!
+ folderSpinner = alertDialog.findViewById(R.id.edit_bookmark_folder_spinner)!!
+ displayOrderEditText = alertDialog.findViewById(R.id.edit_bookmark_display_order_edittext)!!
editButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE)
// Store the current bookmark values.
/*
- * Copyright © 2016-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
package com.stoutner.privacybrowser.dialogs;
import android.annotation.SuppressLint;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.widget.RadioGroup;
import androidx.annotation.NonNull;
-import androidx.fragment.app.DialogFragment; // The AndroidX dialog fragment must be used or an error is produced on API <=22.
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.DialogFragment;
import com.stoutner.privacybrowser.R;
import com.stoutner.privacybrowser.helpers.BookmarksDatabaseHelper;
bookmarkCursor.moveToFirst();
// Use an alert dialog builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
-
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
-
- // Set the style according to the theme.
- if (darkTheme) {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark);
- } else {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogLight);
- }
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog);
// Set the title.
dialogBuilder.setTitle(R.string.edit_bookmark);
// remove the incorrect lint warning below that `getWindow().addFlags()` might be null.
assert alertDialog.getWindow() != null;
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
EditText urlEditText = alertDialog.findViewById(R.id.edit_bookmark_url_edittext);
Button editButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
+ // Remove the incorrect lint warnings below that the views might be null.
+ assert iconRadioGroup != null;
+ assert currentIconImageView != null;
+ assert newFavoriteIconImageView != null;
+ assert nameEditText != null;
+ assert urlEditText != null;
+
// Get the current favorite icon byte array from the cursor.
byte[] currentIconByteArray = bookmarkCursor.getBlob(bookmarkCursor.getColumnIndex(BookmarksDatabaseHelper.FAVORITE_ICON));
RadioButton newIconRadioButton = alertdialog.findViewById(R.id.edit_bookmark_webpage_favorite_icon_radiobutton);
Button editButton = alertdialog.getButton(AlertDialog.BUTTON_POSITIVE);
+ // Remove the incorrect lint warnings below that the views might be null.
+ assert nameEditText != null;
+ assert urlEditText != null;
+ assert newIconRadioButton != null;
+
// Get the text from the edit texts.
String newName = nameEditText.getText().toString();
String newUrl = urlEditText.getText().toString();
/*
- * Copyright © 2016-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
package com.stoutner.privacybrowser.dialogs;
import android.annotation.SuppressLint;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.widget.TextView;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.DialogFragment; // The AndroidX dialog fragment must be used or an error is produced on API <=22.
folderCursor.moveToFirst();
// Use an alert dialog builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
-
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
-
- // Set the style according to the theme.
- if (darkTheme) {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark);
- } else {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogLight);
- }
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog);
// Set the title.
dialogBuilder.setTitle(R.string.edit_folder);
// Remove the warning below that `getWindow()` might be null.
assert alertDialog.getWindow() != null;
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
EditText displayOrderEditText = alertDialog.findViewById(R.id.edit_folder_display_order_edittext);
Button editButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
+ // Remove the incorrect lint warnings below that the views might be null.
+ assert databaseIdTextView != null;
+ assert iconRadioGroup != null;
+ assert currentIconImageView != null;
+ assert newFavoriteIconImageView != null;
+ assert nameEditText != null;
+ assert folderSpinner != null;
+ assert displayOrderEditText != null;
+
// Store the current folder values.
String currentFolderName = folderCursor.getString(folderCursor.getColumnIndex(BookmarksDatabaseHelper.BOOKMARK_NAME));
int currentDisplayOrder = folderCursor.getInt(folderCursor.getColumnIndex(BookmarksDatabaseHelper.DISPLAY_ORDER));
RadioButton currentIconRadioButton = alertDialog.findViewById(R.id.edit_folder_current_icon_radiobutton);
Button editButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
+ // Remove the incorrect lint warning below that the views might be null.
+ assert nameEditText != null;
+ assert folderSpinner != null;
+ assert displayOrderEditText != null;
+ assert currentIconRadioButton != null;
+
// Get the values from the dialog.
String newFolderName = nameEditText.getText().toString();
int newParentFolderDatabaseId = (int) folderSpinner.getSelectedItemId();
/*
- * Copyright © 2016-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
package com.stoutner.privacybrowser.dialogs;
import android.annotation.SuppressLint;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.widget.RadioGroup;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment; // The AndroidX dialog fragment must be used or an error is produced on API <=22.
import com.stoutner.privacybrowser.R;
folderCursor.moveToFirst();
// Use an alert dialog builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
-
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
-
- // Set the style according to the theme.
- if (darkTheme) {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark);
- } else {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogLight);
- }
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog);
// Set the title.
dialogBuilder.setTitle(R.string.edit_folder);
// Remove the warning below that `getWindow()` might be null.
assert alertDialog.getWindow() != null;
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
EditText folderNameEditText = alertDialog.findViewById(R.id.edit_folder_name_edittext);
Button editButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
+ // Remove the incorrect lint warnings below that the views might be null.
+ assert iconRadioGroup != null;
+ assert currentIconRadioButton != null;
+ assert currentIconImageView != null;
+ assert webPageFavoriteIconImageView != null;
+ assert folderNameEditText != null;
+
// Initially disable the edit button.
editButton.setEnabled(false);
/*
- * Copyright © 2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2019-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
import android.annotation.SuppressLint;
import android.app.Activity;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import androidx.preference.PreferenceManager;
assert activity != null;
assert context != null;
- // Use a builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
-
// Get the arguments.
Bundle arguments = getArguments();
// Get the current font size.
int currentFontSize = arguments.getInt("font_size");
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+ // Use a builder to create the alert dialog.
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialog);
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
- // Set the style and icon according to the theme.
- if (darkTheme) {
- dialogBuilder = new AlertDialog.Builder(activity, R.style.PrivacyBrowserAlertDialogDark);
- dialogBuilder.setIcon(R.drawable.font_size_dark);
+ // Set the icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ dialogBuilder.setIcon(R.drawable.font_size_night);
} else {
- dialogBuilder = new AlertDialog.Builder(activity, R.style.PrivacyBrowserAlertDialogLight);
- dialogBuilder.setIcon(R.drawable.font_size_light);
+ dialogBuilder.setIcon(R.drawable.font_size_day);
}
// Set the title.
// Remove the incorrect lint warning below that the dialog window might be null.
assert dialogWindow != null;
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+
+ // Get the screenshot preferences.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
dialogWindow.addFlags(WindowManager.LayoutParams.FLAG_SECURE);
// Get a handle for the font size edit text.
EditText fontSizeEditText = alertDialog.findViewById(R.id.font_size_edittext);
+ // Remove the incorrect lint warning below that the edit text might be null.
+ assert fontSizeEditText != null;
+
// Display the current font size.
fontSizeEditText.setText(String.valueOf(currentFontSize));
/*
- * Copyright © 2017-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2017-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
package com.stoutner.privacybrowser.dialogs;
import android.annotation.SuppressLint;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.text.SpannableStringBuilder;
import android.widget.TextView;
import androidx.annotation.NonNull;
-import androidx.fragment.app.DialogFragment; // The AndroidX dialog fragment must be used or an error is produced on API <=22.
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.DialogFragment;
import com.stoutner.privacybrowser.R;
import com.stoutner.privacybrowser.activities.MainWebViewActivity;
LayoutInflater layoutInflater = getActivity().getLayoutInflater();
// Use an alert dialog builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialog);
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
-
- // Set the style according to the theme.
- if (darkTheme) {
- // Set the dialog theme.
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
- // Set the icon.
- dialogBuilder.setIcon(R.drawable.lock_dark);
+ // Set the icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ dialogBuilder.setIcon(R.drawable.lock_night);
} else {
- // Set the dialog theme.
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogLight);
-
- // Set the icon.
- dialogBuilder.setIcon(R.drawable.lock_light);
+ dialogBuilder.setIcon(R.drawable.lock_day);
}
// Set the title.
// Remove the incorrect lint warning below that the dialog window might be null.
assert dialogWindow != null;
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
usernameEditText = alertDialog.findViewById(R.id.http_authentication_username);
passwordEditText = alertDialog.findViewById(R.id.http_authentication_password);
+ // Remove the incorrect lint warnings below that the views might be null.
+ assert realmTextView != null;
+ assert hostTextView != null;
+
// Set the realm text.
realmTextView.setText(httpAuthRealm);
- // Set the realm text color according to the theme. The deprecated `.getColor()` must be used until API >= 23.
- if (darkTheme) {
+ // Set the realm text color according to the theme. The deprecated `getResources()` must be used until API >= 23.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
realmTextView.setTextColor(getResources().getColor(R.color.gray_300));
} else {
realmTextView.setTextColor(getResources().getColor(R.color.black));
// Create a blue `ForegroundColorSpan`.
ForegroundColorSpan blueColorSpan;
- // Set `blueColorSpan` according to the theme. The deprecated `getColor()` must be used until API >= 23.
- if (darkTheme) {
+ // Set `blueColorSpan` according to the theme. The deprecated `getResources()` must be used until API >= 23.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_400));
} else {
blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_700));
/*
- * Copyright © 2016-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
package com.stoutner.privacybrowser.dialogs;
import android.annotation.SuppressLint;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.widget.TextView;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
-import androidx.fragment.app.DialogFragment; // The AndroidX dialog fragment must be used or an error is produced on API <= 22.
+import androidx.fragment.app.DialogFragment;
import com.stoutner.privacybrowser.R;
import com.stoutner.privacybrowser.activities.BookmarksActivity;
bookmarksDatabaseHelper = new BookmarksDatabaseHelper(getContext(), null, null, 0);
// Use an alert dialog builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
-
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
-
- // Set the style according to the theme.
- if (darkTheme) {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark);
- } else {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogLight);
- }
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog);
// Set the title.
dialogBuilder.setTitle(R.string.move_to_folder);
// Create an alert dialog from the alert dialog builder.
final AlertDialog alertDialog = dialogBuilder.create();
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
// Remove the warning below that `getWindow()` might be null.
};
}
- // Display the ListView
+ // Get a handle for the folders list view.
ListView foldersListView = alertDialog.findViewById(R.id.move_to_folder_listview);
+
+ // Remove the incorrect lint warning below that the view might be null.
+ assert foldersListView != null;
+
+ // Set the folder list view adapter.
foldersListView.setAdapter(foldersCursorAdapter);
// Enable the move button when a folder is selected.
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
+import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.widget.TextView;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.DialogFragment;
import androidx.preference.PreferenceManager;
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Get a handle for the activity and the context.
- Activity activity = getActivity();
- Context context = getContext();
-
- // Remove the incorrect lint warnings below that the activity and the context might be null.
- assert activity != null;
- assert context != null;
-
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+ Activity activity = requireActivity();
+ Context context = requireContext();
// Use an alert dialog builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialog);
- // Set the style and icon according to the theme.
- if (darkTheme) {
- // Set the style.
- dialogBuilder = new AlertDialog.Builder(activity, R.style.PrivacyBrowserAlertDialogDark);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
- // Set the icon.
- dialogBuilder.setIcon(R.drawable.proxy_enabled_dark);
+ // Set the icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ dialogBuilder.setIcon(R.drawable.proxy_enabled_night);
} else {
- // Set the style.
- dialogBuilder = new AlertDialog.Builder(activity, R.style.PrivacyBrowserAlertDialogLight);
-
- // Set the icon.
- dialogBuilder.setIcon(R.drawable.proxy_enabled_light);
+ dialogBuilder.setIcon(R.drawable.proxy_enabled_day);
}
// Set the title.
// Remove the incorrect lint warning below that the window might be null.
assert alertDialog.getWindow() != null;
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
TextView storagePermissionTextView = alertDialog.findViewById(R.id.storage_permission_textview);
Button openButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
+ // Remove the incorrect lint warnings below that the views might be null.
+ assert fileNameEditText != null;
+ assert browseButton != null;
+ assert fileDoesNotExistTextView != null;
+ assert storagePermissionTextView != null;
+
// Update the status of the open button when the file name changes.
fileNameEditText.addTextChangedListener(new TextWatcher() {
@Override
/*
- * Copyright © 2017-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2017-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
package com.stoutner.privacybrowser.dialogs;
import android.annotation.SuppressLint;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import java.util.Date;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.DialogFragment; // The AndroidX dialog fragment must be used or an error is produced on API <=22.
import androidx.viewpager.widget.PagerAdapter;
nestedScrollWebView = fragmentView.findViewById(R.id.nestedscroll_webview);
// Use an alert dialog builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
-
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
-
- // Set the style according to the theme.
- if (darkTheme) {
- // Set the dialog theme.
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark);
- } else {
- // Set the dialog theme.
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogLight);
- }
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog);
// Get the context.
Context context = getContext();
// Set the favorite icon as the dialog icon if it exists.
if (favoriteIconBitmap.sameAs(defaultFavoriteIconBitmap)) { // There is no website favorite icon.
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
// Set the icon according to the theme.
- if (darkTheme) {
- dialogBuilder.setIcon(R.drawable.ssl_certificate_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ dialogBuilder.setIcon(R.drawable.ssl_certificate_enabled_night);
} else {
- dialogBuilder.setIcon(R.drawable.ssl_certificate_enabled_light);
+ dialogBuilder.setIcon(R.drawable.ssl_certificate_enabled_day);
}
} else { // There is a favorite icon.
// Create a drawable version of the favorite icon.
// Create an alert dialog from the alert dialog builder.
final AlertDialog alertDialog = dialogBuilder.create();
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
// Remove the warning below that `getWindow()` might be null.
// Show the alert dialog so the items in the layout can be modified.
alertDialog.show();
- // Setup the view pager.
+ // Get a handle for the views.
WrapVerticalContentViewPager wrapVerticalContentViewPager = alertDialog.findViewById(R.id.pinned_ssl_certificate_mismatch_viewpager);
+ TabLayout tabLayout = alertDialog.findViewById(R.id.pinned_ssl_certificate_mismatch_tablayout);
+
+ // Remove the incorrect lint warning below that the views might be null.
+ assert wrapVerticalContentViewPager != null;
+ assert tabLayout != null;
+
+ // Set the view pager adapter.
wrapVerticalContentViewPager.setAdapter(new pagerAdapter());
- // Setup the tab layout and connect it to the view pager.
- TabLayout tabLayout = alertDialog.findViewById(R.id.pinned_ssl_certificate_mismatch_tablayout);
+ // Connect the tab layout to the view pager.
tabLayout.setupWithViewPager(wrapVerticalContentViewPager);
- // `onCreateDialog()` requires the return of an `AlertDialog`.
+ // Return the alert dialog.
return alertDialog;
}
}
}
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
-
- // Create a red foreground color span. The deprecated `getResources().getColor` must be used until the minimum API >= 23.
- ForegroundColorSpan redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_a700));
-
- // Create a blue foreground color span.
+ // Define the color spans.
ForegroundColorSpan blueColorSpan;
+ ForegroundColorSpan redColorSpan;
+
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
- // Set the blue color span according to the theme. The deprecated `getResources().getColor` must be used until the minimum API >= 23.
- if (darkTheme) {
+ // Set the color spans according to the theme. The deprecated `getResources()` must be used until the minimum API >= 23.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_400));
+ redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_900));
} else {
blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_700));
+ redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_a700));
}
// Set the domain name to be blue.
/*
- * Copyright © 2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2019-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
package com.stoutner.privacybrowser.dialogs;
-import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.os.Bundle;
import android.view.WindowManager;
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
- // Get the context and the activity.
- Context context = getContext();
- Activity activity = getActivity();
-
- // Remove the incorrect lint warnings below that the context or the activity might be null.
- assert context != null;
- assert activity != null;
+ // Get the context.
+ Context context = requireContext();
// Get the arguments.
Bundle arguments = getArguments();
// Get the proxy mode from the arguments.
String proxyMode = arguments.getString("proxy_mode");
- // Remove the incorrect lint warning below tha tth eproxy mode migth be null.
+ // Remove the incorrect lint warning below that the proxy mode might be null.
assert proxyMode != null;
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
-
- // Get the screenshot and the theme preferences.
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
-
// Use a builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialog);
- // Set the style and the icon according to the theme.
- if (darkTheme) {
- // Set the style.
- dialogBuilder = new AlertDialog.Builder(activity, R.style.PrivacyBrowserAlertDialogDark);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
- // Set the icon.
- dialogBuilder.setIcon(R.drawable.proxy_enabled_dark);
+ // Set the icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ dialogBuilder.setIcon(R.drawable.proxy_enabled_night);
} else {
- // Set the style.
- dialogBuilder = new AlertDialog.Builder(activity, R.style.PrivacyBrowserAlertDialogLight);
-
- // Set the icon.
- dialogBuilder.setIcon(R.drawable.proxy_enabled_light);
+ dialogBuilder.setIcon(R.drawable.proxy_enabled_day);
}
// Set the title and the message according to the proxy mode.
// Create an alert dialog from the alert dialog builder.
AlertDialog alertDialog = dialogBuilder.create();
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
// Remove the warning below that `getWindows()` might be null.
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
+import android.content.res.Configuration;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.widget.TextView;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.DialogFragment;
import androidx.preference.PreferenceManager;
boolean cookiesEnabled = arguments.getBoolean("cookies_enabled");
// Get a handle for the activity and the context.
- Activity activity = getActivity();
- Context context = getContext();
-
- // Remove the incorrect lint warnings below that the activity and context might be null.
- assert activity != null;
- assert context != null;
-
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+ Activity activity = requireActivity();
+ Context context = requireContext();
// Use an alert dialog builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialog);
- // Set the style and icon according to the theme.
- if (darkTheme) {
- // Set the style.
- dialogBuilder = new AlertDialog.Builder(activity, R.style.PrivacyBrowserAlertDialogDark);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+ // Set the icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { // The night theme is enabled.
// Set the icon according to the save type.
switch (saveType) {
case StoragePermissionDialog.SAVE_URL:
- dialogBuilder.setIcon(R.drawable.copy_enabled_dark);
+ dialogBuilder.setIcon(R.drawable.copy_enabled_night);
break;
case StoragePermissionDialog.SAVE_AS_ARCHIVE:
- dialogBuilder.setIcon(R.drawable.dom_storage_cleared_dark);
+ dialogBuilder.setIcon(R.drawable.dom_storage_cleared_night);
break;
case StoragePermissionDialog.SAVE_AS_IMAGE:
- dialogBuilder.setIcon(R.drawable.images_enabled_dark);
+ dialogBuilder.setIcon(R.drawable.images_enabled_night);
break;
}
- } else {
- // Set the style.
- dialogBuilder = new AlertDialog.Builder(activity, R.style.PrivacyBrowserAlertDialogLight);
-
+ } else { // The day theme is enabled.
// Set the icon according to the save type.
switch (saveType) {
case StoragePermissionDialog.SAVE_URL:
- dialogBuilder.setIcon(R.drawable.copy_enabled_light);
+ dialogBuilder.setIcon(R.drawable.copy_enabled_day);
break;
case StoragePermissionDialog.SAVE_AS_ARCHIVE:
- dialogBuilder.setIcon(R.drawable.dom_storage_cleared_light);
+ dialogBuilder.setIcon(R.drawable.dom_storage_cleared_day);
break;
case StoragePermissionDialog.SAVE_AS_IMAGE:
- dialogBuilder.setIcon(R.drawable.images_enabled_light);
+ dialogBuilder.setIcon(R.drawable.images_enabled_day);
break;
}
}
// Remove the incorrect lint warning below that the window might be null.
assert alertDialog.getWindow() != null;
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
TextView storagePermissionTextView = alertDialog.findViewById(R.id.storage_permission_textview);
Button saveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
+ // Remove the incorrect warnings that the views might be null.
+ assert urlEditText != null;
+ assert fileNameEditText != null;
+ assert browseButton != null;
+ assert fileSizeTextView != null;
+ assert fileExistsWarningTextView != null;
+ assert storagePermissionTextView != null;
+
// Set the file size text view.
fileSizeTextView.setText(fileSizeString);
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
+import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.widget.TextView;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
-import androidx.fragment.app.DialogFragment; // The AndroidX dialog fragment is required or an error is produced on API <=22. It is also required for the browse button to work correctly.
+import androidx.fragment.app.DialogFragment;
import com.stoutner.privacybrowser.R;
import com.stoutner.privacybrowser.helpers.DownloadLocationHelper;
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
-
- // Use an alert dialog builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
-
// Get a handle for the activity and the context.
- Activity activity = getActivity();
- Context context = getContext();
-
- // Remove the incorrect lint warnings.
- assert activity != null;
- assert context != null;
-
- // Set the style according to the theme.
- if (darkTheme) {
- dialogBuilder = new AlertDialog.Builder(activity, R.style.PrivacyBrowserAlertDialogDark);
- } else {
- dialogBuilder = new AlertDialog.Builder(activity, R.style.PrivacyBrowserAlertDialogLight);
- }
+ Activity activity = requireActivity();
+ Context context = requireContext();
+ // Use an alert dialog builder to create the alert dialog.
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialog);
// Set the title.
dialogBuilder.setTitle(R.string.save_logcat);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
// Set the icon according to the theme.
- if (darkTheme) {
- dialogBuilder.setIcon(R.drawable.save_dialog_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ dialogBuilder.setIcon(R.drawable.save_dialog_night);
} else {
- dialogBuilder.setIcon(R.drawable.save_dialog_light);
+ dialogBuilder.setIcon(R.drawable.save_dialog_day);
}
// Set the view. The parent view is null because it will be assigned by the alert dialog.
// Remove the incorrect lint warning below that `getWindow()` might be null.
assert alertDialog.getWindow() != null;
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
TextView storagePermissionTextView = alertDialog.findViewById(R.id.storage_permission_textview);
Button saveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
+ // Remove the incorrect lint warnings below that the views might be null.
+ assert fileNameEditText != null;
+ assert browseButton != null;
+ assert fileExistsWarningTextView != null;
+ assert storagePermissionTextView != null;
+
// Update the status of the save button when the file name changes.
fileNameEditText.addTextChangedListener(new TextWatcher() {
@Override
/*
- * Copyright © 2016-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
import android.annotation.SuppressLint;
import android.app.Activity;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.net.Uri;
import android.net.http.SslCertificate;
import android.net.http.SslError;
import android.widget.TextView;
import androidx.annotation.NonNull;
-import androidx.fragment.app.DialogFragment; // The AndroidX dialog fragment must be used or an error is produced on API <=22.
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.DialogFragment;
import com.stoutner.privacybrowser.R;
import com.stoutner.privacybrowser.activities.MainWebViewActivity;
// Get a handle for the SSL error handler.
SslErrorHandler sslErrorHandler = nestedScrollWebView.getSslErrorHandler();
- // Remove the incorrect lint warning that `getActivity()` might be null.
- assert getActivity() != null;
-
// Get the activity's layout inflater.
- LayoutInflater layoutInflater = getActivity().getLayoutInflater();
+ LayoutInflater layoutInflater = requireActivity().getLayoutInflater();
// Use an alert dialog builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
-
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog);
- // Set the style and icon according to the theme.
- if (darkTheme) {
- // Set the style.
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
- // Set the icon.
- dialogBuilder.setIcon(R.drawable.ssl_certificate_enabled_dark);
+ // Set the icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ dialogBuilder.setIcon(R.drawable.ssl_certificate_enabled_night);
} else {
- // Set the style.
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogLight);
-
- // Set the icon.
- dialogBuilder.setIcon(R.drawable.ssl_certificate_enabled_light);
+ dialogBuilder.setIcon(R.drawable.ssl_certificate_enabled_day);
}
// Set the title.
// Create an alert dialog from the alert dialog builder.
AlertDialog alertDialog = dialogBuilder.create();
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
// Remove the warning below that `getWindow()` might be null.
TextView startDateTextView = alertDialog.findViewById(R.id.start_date);
TextView endDateTextView = alertDialog.findViewById(R.id.end_date);
+ // Remove the incorrect lint warnings below that the views might be null.
+ assert primaryErrorTextView != null;
+ assert urlTextView != null;
+ assert issuedToCNameTextView != null;
+ assert issuedToONameTextView != null;
+ assert issuedToUNameTextView != null;
+ assert issuedByTextView != null;
+ assert issuedByCNameTextView != null;
+ assert issuedByONameTextView != null;
+ assert issuedByUNameTextView != null;
+ assert validDatesTextView != null;
+ assert startDateTextView != null;
+ assert endDateTextView != null;
+
// Setup the common strings.
String urlLabel = getString(R.string.url_label) + " ";
String cNameLabel = getString(R.string.common_name) + " ";
SpannableStringBuilder startDateStringBuilder = new SpannableStringBuilder(startDateLabel + startDate);
SpannableStringBuilder endDateStringBuilder = new SpannableStringBuilder((endDateLabel + endDate));
- // Create a red foreground color span. The deprecated `getResources().getColor` must be used until the minimum API >= 23.
- ForegroundColorSpan redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_a700));
-
- // Create a blue `ForegroundColorSpan`.
+ // Define the color spans.
ForegroundColorSpan blueColorSpan;
+ ForegroundColorSpan redColorSpan;
- // Set a blue color span according to the theme. The deprecated `getResources().getColor` must be used until the minimum API >= 23.
- if (darkTheme) {
+ // Set the color spans according to the theme. The deprecated `getResources()` must be used until the minimum API >= 23.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_400));
+ redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_900));
} else {
blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_700));
+ redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_a700));
}
// Setup the spans to display the certificate information in blue. `SPAN_INCLUSIVE_INCLUSIVE` allows the span to grow in either direction.
case SslError.SSL_UNTRUSTED:
// Change the issued by text view text to red. The deprecated `getResources().getColor` must be used until the minimum API >= 23.
- issuedByTextView.setTextColor(getResources().getColor(R.color.red_a700));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ issuedByTextView.setTextColor(getResources().getColor(R.color.red_900));
+ } else {
+ issuedByTextView.setTextColor(getResources().getColor(R.color.red_a700));
+ }
// Change the issued by span color to red.
issuedByCNameStringBuilder.setSpan(redColorSpan, cNameLabel.length(), issuedByCNameStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
case SslError.SSL_DATE_INVALID:
// Change the valid dates text view text to red. The deprecated `getResources().getColor` must be used until the minimum API >= 23.
- validDatesTextView.setTextColor(getResources().getColor(R.color.red_a700));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ validDatesTextView.setTextColor(getResources().getColor(R.color.red_900));
+ } else {
+ validDatesTextView.setTextColor(getResources().getColor(R.color.red_a700));
+ }
// Change the date span colors to red.
startDateStringBuilder.setSpan(redColorSpan, startDateLabel.length(), startDateStringBuilder.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
// Create a spannable string builder.
SpannableStringBuilder ipAddressesStringBuilder = new SpannableStringBuilder(ipAddressesLabel + ipAddresses);
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(activity.getApplicationContext());
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
-
// Create a blue foreground color span.
ForegroundColorSpan blueColorSpan;
+ // Get the current theme status.
+ int currentThemeStatus = activity.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
// Set the blue color span according to the theme. The deprecated `getColor()` must be used until the minimum API >= 23.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
blueColorSpan = new ForegroundColorSpan(activity.getResources().getColor(R.color.blue_400));
} else {
blueColorSpan = new ForegroundColorSpan(activity.getResources().getColor(R.color.blue_700));
// Get a handle for the IP addresses text view.
TextView ipAddressesTextView = alertDialog.findViewById(R.id.ip_addresses);
+ // Remove the incorrect lint warning below that the view might be null.
+ assert ipAddressesTextView != null;
+
// Populate the IP addresses text view.
ipAddressesTextView.setText(ipAddresses);
}
package com.stoutner.privacybrowser.dialogs;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.WindowManager;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import com.stoutner.privacybrowser.R;
// Get the save type.
int requestType = arguments.getInt("request_type");
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
-
// Use a builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog);
+
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
- // Set the style and the icon according to the theme.
- if (darkTheme) {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark);
- dialogBuilder.setIcon(R.drawable.import_export_dark);
+ // Set the icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ dialogBuilder.setIcon(R.drawable.import_export_night);
} else {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogLight);
- dialogBuilder.setIcon(R.drawable.import_export_light);
+ dialogBuilder.setIcon(R.drawable.import_export_day);
}
// Set the title.
// Create an alert dialog from the builder.
final AlertDialog alertDialog = dialogBuilder.create();
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
// Remove the warning below that `getWindow()` might be null.
/*
- * Copyright © 2016-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
package com.stoutner.privacybrowser.dialogs;
import android.annotation.SuppressLint;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.widget.TextView;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.DialogFragment; // The AndroidX dialog fragment must be used or an error is produced on API <=22.
// `@SuppressLing("InflateParams")` removes the warning about using `null` as the parent view group when inflating the `AlertDialog`.
@SuppressLint("InflateParams")
public Dialog onCreateDialog(Bundle savedInstanceState) {
- // Remove the incorrect lint warning that `getActivity()` might be null.
- assert getActivity() != null;
-
// Get the activity's layout inflater.
- LayoutInflater layoutInflater = getActivity().getLayoutInflater();
+ LayoutInflater layoutInflater = requireActivity().getLayoutInflater();
// Get the arguments.
Bundle arguments = getArguments();
int currentPageId = webBackForwardList.getSize() - 1 - currentPageIndex;
// Use an alert dialog builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
-
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
-
- // Set the style according to the theme.
- if (darkTheme) {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark);
- } else {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogLight);
- }
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog);
// Set the title.
dialogBuilder.setTitle(R.string.history);
// Create an alert dialog from the alert dialog builder.
final AlertDialog alertDialog = dialogBuilder.create();
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
// Remove the warning below that `getWindow()` might be null.
// Get a handle for the list view.
ListView listView = alertDialog.findViewById(R.id.history_listview);
+ // Remove the incorrect lint warning below that the view might be null.
+ assert listView != null;
+
// Set the list view adapter.
listView.setAdapter(historyArrayAdapter);
/*
- * Copyright © 2018-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2018-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
package com.stoutner.privacybrowser.dialogs;
import android.annotation.SuppressLint;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import com.stoutner.privacybrowser.R;
// `@SuppressLing("InflateParams")` removes the warning about using `null` as the parent view group when inflating the `AlertDialog`.
@SuppressLint("InflateParams")
public Dialog onCreateDialog(Bundle savedInstanceState) {
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the theme and screenshot preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
-
// Remove the incorrect lint warning that `getInt()` might be null.
assert getArguments() != null;
String[] requestDetails = getArguments().getStringArray("request_details");
// Use an alert dialog builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog);
+
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
- // Set the style and icon according to the theme.
- if (darkTheme) {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark);
- dialogBuilder.setIcon(R.drawable.block_ads_enabled_dark);
+ // Set the icon according to the theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ dialogBuilder.setIcon(R.drawable.block_ads_enabled_night);
} else {
- dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogLight);
- dialogBuilder.setIcon(R.drawable.block_ads_enabled_light);
+ dialogBuilder.setIcon(R.drawable.block_ads_enabled_day);
}
// Create the dialog title.
// Create an alert dialog from the alert dialog builder.
final AlertDialog alertDialog = dialogBuilder.create();
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
// Remove the warning below that `getWindow()` might be null.
Button previousButton = alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE);
Button nextButton = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
+ // Remove the incorrect lint warnings below that the views might be null.
+ assert requestDisposition != null;
+ assert requestUrl != null;
+ assert requestBlockListLabel != null;
+ assert requestBlockList != null;
+ assert requestSubListLabel != null;
+ assert requestSubList != null;
+ assert requestBlockListEntriesLabel != null;
+ assert requestBlockListEntries != null;
+ assert requestBlockListOriginalEntryLabel != null;
+ assert requestBlockListOriginalEntry != null;
+
// Disable the previous button if the first resource request is displayed.
previousButton.setEnabled(!(id == 1));
requestDisposition.setText(R.string.allowed);
// Set the background color.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
requestDisposition.setBackgroundColor(getResources().getColor(R.color.blue_700_50));
} else {
requestDisposition.setBackgroundColor(getResources().getColor(R.color.blue_100));
requestDisposition.setText(R.string.third_party_blocked);
// Set the background color.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
requestDisposition.setBackgroundColor(getResources().getColor(R.color.yellow_700_50));
} else {
requestDisposition.setBackgroundColor(getResources().getColor(R.color.yellow_100));
requestDisposition.setText(R.string.blocked);
// Set the background color.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
requestDisposition.setBackgroundColor(getResources().getColor(R.color.red_700_40));
} else {
requestDisposition.setBackgroundColor(getResources().getColor(R.color.red_100));
import android.annotation.SuppressLint;
import android.app.Activity;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.widget.TextView;
import androidx.annotation.NonNull;
-import androidx.fragment.app.DialogFragment; // The AndroidX dialog fragment must be used or an error is produced on API <=22.
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.DialogFragment;
import androidx.preference.PreferenceManager;
import com.stoutner.privacybrowser.activities.MainWebViewActivity;
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Get a handle for the activity and the context.
- Activity activity = getActivity();
- Context context = getContext();
-
- // Remove the incorrect lint warnings below that the activity and context might be null.
- assert activity != null;
- assert context != null;
+ Activity activity = requireActivity();
+ Context context = requireContext();
// Get the activity's layout inflater.
LayoutInflater layoutInflater = activity.getLayoutInflater();
// Use a builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
-
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
-
- // Get the screenshot and theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
-
- // Set the style according to the theme.
- if (darkTheme) {
- dialogBuilder = new AlertDialog.Builder(activity, R.style.PrivacyBrowserAlertDialogDark);
- } else {
- dialogBuilder = new AlertDialog.Builder(activity, R.style.PrivacyBrowserAlertDialogLight);
- }
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialog);
// Create a drawable version of the favorite icon.
Drawable favoriteIconDrawable = new BitmapDrawable(getResources(), nestedScrollWebView.getFavoriteOrDefaultIcon());
// Get the SSL certificate.
SslCertificate sslCertificate = nestedScrollWebView.getCertificate();
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Check to see if the website is encrypted.
if (sslCertificate == null) { // The website is not encrypted.
// Set the title.
TextView startDateTextView = alertDialog.findViewById(R.id.start_date);
TextView endDateTextView = alertDialog.findViewById(R.id.end_date);
+ // Remove the incorrect warning that the views might be null.
+ assert domainTextView != null;
+ assert ipAddressesTextView != null;
+ assert issuedToCNameTextView != null;
+ assert issuedToONameTextView != null;
+ assert issuedToUNameTextView != null;
+ assert issuedByCNameTextView != null;
+ assert issuedByONameTextView != null;
+ assert issuedByUNameTextView != null;
+ assert startDateTextView != null;
+ assert endDateTextView != null;
+
// Setup the labels.
String domainLabel = getString(R.string.domain_label) + " ";
String ipAddressesLabel = getString(R.string.ip_addresses) + " ";
SpannableStringBuilder startDateStringBuilder = new SpannableStringBuilder(startDateLabel + DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.LONG).format(startDate));
SpannableStringBuilder endDateStringBuilder = new SpannableStringBuilder(endDateLabel + DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.LONG).format(endDate));
- // Create a red foreground color span. The deprecated `getColor` must be used until the minimum API >= 23.
- ForegroundColorSpan redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_a700));
-
- // Create a blue foreground color span.
+ // Define the color spans.
ForegroundColorSpan blueColorSpan;
+ ForegroundColorSpan redColorSpan;
+
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
- // Set the blue color span according to the theme. The deprecated `getColor()` must be used until the minimum API >= 23.
- if (darkTheme) {
+ // Set the color spans according to the theme. The deprecated `getResources()` must be used until the minimum API >= 23.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_400));
+ redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_900));
} else {
blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_700));
+ redColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.red_a700));
}
// Remove the incorrect lint error that `.equals` might produce a NullPointerException.
/*
- * Copyright © 2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2019-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
package com.stoutner.privacybrowser.dialogs;
import android.annotation.SuppressLint;
-import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.SharedPreferences;
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
- // Get the context and the activity.
- Context context = getContext();
- Activity activity = getActivity();
-
- // Remove the incorrect lint warnings below that the context or the activity might be null.
- assert context != null;
- assert activity != null;
+ // Get a handle for the context.
+ Context context = requireContext();
// Get the activity's layout inflater.
- LayoutInflater layoutInflater = activity.getLayoutInflater();
-
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
-
- // Get the screenshot and theme preferences.
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+ LayoutInflater layoutInflater = requireActivity().getLayoutInflater();
// Use a builder to create the alert dialog.
- AlertDialog.Builder dialogBuilder;
-
- // Set the style according to the theme.
- if (darkTheme) {
- dialogBuilder = new AlertDialog.Builder(activity, R.style.PrivacyBrowserAlertDialogDark);
- } else {
- dialogBuilder = new AlertDialog.Builder(activity, R.style.PrivacyBrowserAlertDialogLight);
- }
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context, R.style.PrivacyBrowserAlertDialog);
// Set the layout. The parent view is `null` because it will be assigned by the alert dialog.
dialogBuilder.setView(layoutInflater.inflate(R.layout.waiting_for_proxy_dialog, null));
// Create an alert dialog from the alert dialog builder.
AlertDialog alertDialog = dialogBuilder.create();
+ // Get a handle for the shared preferences.
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+
+ // Get the screenshot preference.
+ boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
// Disable screenshots if not allowed.
if (!allowScreenshots) {
// Remove the warning below that `getWindow()` might be null.
/*
- * Copyright © 2016-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
import android.annotation.SuppressLint;
import android.content.Context;
-import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
+import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
-import android.preference.PreferenceManager;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
+import androidx.webkit.WebViewCompat;
import com.stoutner.privacybrowser.BuildConfig;
import com.stoutner.privacybrowser.R;
Context context = getContext();
assert context != null;
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
-
- // Get the theme preference.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
// Load the tabs. Tab numbers start at 0.
if (tabNumber == 0) { // Load the about tab.
// Create the `blueColorSpan` variable.
ForegroundColorSpan blueColorSpan;
- // Set `blueColorSpan` according to the theme. We have to use the deprecated `getColor()` until API >= 23.
- if (darkTheme) {
+ // Set the blue color span according to the theme. The deprecated `getResources()` must be used until the minimum API >= 23.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_400));
} else {
blueColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.blue_700));
securityPatchTextView.setVisibility(View.GONE);
}
- // Only populate the WebView provider if the SDK >= 26.
- if (Build.VERSION.SDK_INT >= 26) {
+ // Only populate the WebView provider if the SDK >= 21.
+ if (Build.VERSION.SDK_INT >= 21) {
// Create the WebView provider label.
String webViewProviderLabel = getString(R.string.webview_provider) + " ";
// Get the current WebView package info.
- PackageInfo webViewPackageInfo = WebView.getCurrentWebViewPackage();
+ PackageInfo webViewPackageInfo = WebViewCompat.getCurrentWebViewPackage(context);
// Remove the warning below that the package info might be null.
assert webViewPackageInfo != null;
// Display the WebView provider.
webViewProviderTextView.setText(webViewProviderStringBuilder);
- } else { // The API < 26.
+ } else { // The API < 21.
// Hide the WebView provider text view.
webViewProviderTextView.setVisibility(View.GONE);
}
WebView tabWebView = (WebView) tabLayout;
// Load the tabs according to the theme.
- if (darkTheme) { // The dark theme is applied.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { // The dark theme is applied.
// Set the background color. The deprecated `.getColor()` must be used until the minimum API >= 23.
tabWebView.setBackgroundColor(getResources().getColor(R.color.gray_850));
/*
- * Copyright © 2017-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2017-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.content.res.Resources;
import android.database.Cursor;
import android.os.Build;
// Remove the error below that the context might be null.
assert context != null;
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
// Get a handle for the shared preference.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
String defaultCustomUserAgentString = sharedPreferences.getString("custom_user_agent", getString(R.string.custom_user_agent_default_value));
String defaultFontSizeString = sharedPreferences.getString("font_size", getString(R.string.font_size_default_value));
boolean defaultSwipeToRefresh = sharedPreferences.getBoolean("swipe_to_refresh", true);
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
boolean defaultNightMode = sharedPreferences.getBoolean("night_mode", false);
boolean defaultWideViewport = sharedPreferences.getBoolean("wide_viewport", true);
boolean defaultDisplayWebpageImages = sharedPreferences.getBoolean("display_webpage_images", true);
// Create a blue foreground color span.
final ForegroundColorSpan blueColorSpan;
- // Set the blue color span according to the theme. The deprecated `resources.getColor` must be used until the minimum API >= 23.
- if (darkTheme) {
+ // Set the blue color span according to the theme. The deprecated `resources` must be used until the minimum API >= 23.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
blueColorSpan = new ForegroundColorSpan(resources.getColor(R.color.blue_400));
} else {
blueColorSpan = new ForegroundColorSpan(resources.getColor(R.color.blue_700));
firstPartyCookiesSwitch.setChecked(false);
// Set the icon according to the theme.
- if (darkTheme) {
- firstPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ firstPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_night));
} else {
- firstPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_light));
+ firstPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_day));
}
}
thirdPartyCookiesSwitch.setChecked(false);
// Set the icon according to the theme.
- if (darkTheme) {
- thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_night));
} else {
- thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_light));
+ thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_day));
}
}
} else { // First-party cookies are disabled.
thirdPartyCookiesSwitch.setEnabled(false);
// Set the icon according to the theme.
- if (darkTheme) {
- thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_ghosted_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_ghosted_night));
} else {
- thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_ghosted_light));
+ thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_ghosted_day));
}
}
} else { // Third-party cookies cannot be configured for API <= 21.
domStorageSwitch.setChecked(false);
// Set the icon according to the theme.
- if (darkTheme) {
- domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_night));
} else {
- domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_light));
+ domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_day));
}
}
} else { // JavaScript is disabled.
}
// Set the icon according to the theme.
- if (darkTheme) {
- domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_ghosted_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_ghosted_night));
} else {
- domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_ghosted_light));
+ domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_ghosted_day));
}
}
formDataSwitch.setChecked(false);
// Set the icon according to the theme.
- if (darkTheme) {
- formDataImageView.setImageDrawable(resources.getDrawable(R.drawable.form_data_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ formDataImageView.setImageDrawable(resources.getDrawable(R.drawable.form_data_disabled_night));
} else {
- formDataImageView.setImageDrawable(resources.getDrawable(R.drawable.form_data_disabled_light));
+ formDataImageView.setImageDrawable(resources.getDrawable(R.drawable.form_data_disabled_day));
}
}
}
easyListSwitch.setChecked(true);
// Set the icon according to the theme.
- if (darkTheme) {
- easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_night));
} else {
- easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_light));
+ easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_day));
}
} else { // EasyList is off.
// Turn the switch off.
easyListSwitch.setChecked(false);
// Set the icon according to the theme.
- if (darkTheme) {
- easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_night));
} else {
- easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_light));
+ easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_day));
}
}
easyPrivacySwitch.setChecked(true);
// Set the icon according to the theme.
- if (darkTheme) {
- easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_night));
} else {
- easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_light));
+ easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_day));
}
} else { // EasyPrivacy is off.
// Turn the switch off.
easyPrivacySwitch.setChecked(false);
// Set the icon according to the theme.
- if (darkTheme) {
- easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_night));
} else {
- easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_light));
+ easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_day));
}
}
fanboysAnnoyanceListSwitch.setChecked(true);
// Set the icon according to the theme.
- if (darkTheme) {
- fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_night));
} else {
- fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_light));
+ fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_day));
}
} else { // Fanboy's Annoyance List is off.
// Turn the switch off.
fanboysAnnoyanceListSwitch.setChecked(false);
// Set the icon according to the theme.
- if (darkTheme) {
- fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_night));
} else {
- fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_light));
+ fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_day));
}
}
fanboysSocialBlockingListSwitch.setChecked(true);
// Set the icon according to the theme.
- if (darkTheme) {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_night));
} else {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_light));
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_day));
}
} else { // Fanboy's Social Blocking List is off.
// Enable the switch but turn it off.
fanboysSocialBlockingListSwitch.setChecked(false);
// Set the icon according to the theme.
- if (darkTheme) {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_night));
} else {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_light));
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_day));
}
}
} else { // Fanboy's Annoyance List is on.
}
// Set the icon according to the theme.
- if (darkTheme) {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_ghosted_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_ghosted_night));
} else {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_ghosted_light));
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_ghosted_day));
}
}
ultraListSwitch.setChecked(true);
// Set the icon according to the theme.
- if (darkTheme) {
- ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_night));
} else {
- ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_light));
+ ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_day));
}
} else { // UltraList is off.
// Turn the switch off.
ultraListSwitch.setChecked(false);
// Set the icon according to the theme.
- if (darkTheme) {
- ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_night));
} else {
- ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_light));
+ ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_day));
}
}
ultraPrivacySwitch.setChecked(true);
// Set the icon according to the theme.
- if (darkTheme) {
- ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_night));
} else {
- ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_light));
+ ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_day));
}
} else { // EasyPrivacy is off.
// Turn the switch off.
ultraPrivacySwitch.setChecked(false);
// Set the icon according to the theme.
- if (darkTheme) {
- ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_night));
} else {
- ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_light));
+ ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_day));
}
}
blockAllThirdPartyRequestsSwitch.setChecked(true);
// Set the icon according to the theme.
- if (darkTheme) {
- blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_enabled_night));
} else {
- blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_enabled_light));
+ blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_enabled_day));
}
} else { // Blocking all third-party requests is off.
// Turn the switch off.
blockAllThirdPartyRequestsSwitch.setChecked(false);
// Set the icon according to the theme.
- if (darkTheme) {
- blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_disabled_night));
} else {
- blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_disabled_light));
+ blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_disabled_day));
}
}
case DomainsDatabaseHelper.SYSTEM_DEFAULT:
if (defaultSwipeToRefresh) { // Swipe to refresh is enabled by default.
// Set the icon according to the theme.
- if (darkTheme) {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_night));
} else {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_light));
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_day));
}
} else { // Swipe to refresh is disabled by default
// Set the icon according to the theme.
- if (darkTheme) {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_night));
} else {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_light));
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_day));
}
}
case DomainsDatabaseHelper.ENABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_night));
} else {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_light));
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_day));
}
// Hide the swipe to refresh TextView.`
case DomainsDatabaseHelper.DISABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_night));
} else {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_light));
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_day));
}
// Hide the swipe to refresh TextView.
case DomainsDatabaseHelper.SYSTEM_DEFAULT:
if (defaultNightMode) { // Night mode enabled by default.
// Set the icon according to the theme.
- if (darkTheme) {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_night));
} else {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_light));
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_day));
}
} else { // Night mode disabled by default.
// Set the icon according to the theme.
- if (darkTheme) {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_night));
} else {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_light));
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_day));
}
}
case DomainsDatabaseHelper.ENABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_night));
} else {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_light));
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_day));
}
// Hide the night mode TextView.
case DomainsDatabaseHelper.DISABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_night));
} else {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_light));
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_day));
}
// Hide the night mode TextView.
case DomainsDatabaseHelper.SYSTEM_DEFAULT:
if (defaultWideViewport) { // Wide viewport enabled by default.
// Set the icon according to the theme.
- if (darkTheme) {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_night));
} else {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_light));
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_day));
}
} else { // Wide viewport disabled by default.
- if (darkTheme) {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_night));
} else {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_light));
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_day));
}
}
case DomainsDatabaseHelper.ENABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_night));
} else {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_light));
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_day));
}
// Hide the wide viewport text view.
case DomainsDatabaseHelper.DISABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_night));
} else {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_light));
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_day));
}
// Hide the wide viewport text view.
case DomainsDatabaseHelper.SYSTEM_DEFAULT:
if (defaultDisplayWebpageImages) { // Display webpage images enabled by default.
// Set the icon according to the theme.
- if (darkTheme) {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_night));
} else {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_light));
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_day));
}
} else { // Display webpage images disabled by default.
// Set the icon according to the theme.
- if (darkTheme) {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_night));
} else {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_light));
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_day));
}
}
case DomainsDatabaseHelper.ENABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_night));
} else {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_light));
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_day));
}
// Hide the display images text view.
case DomainsDatabaseHelper.DISABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_night));
} else {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_light));
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_day));
}
// Hide the display images text view.
pinnedSslCertificateSwitch.setChecked(true);
// Set the icon according to the theme.
- if (darkTheme) {
- pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_night));
} else {
- pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_light));
+ pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_day));
}
} else { // Pinned SSL certificate is disabled.
// Uncheck the switch.
pinnedSslCertificateSwitch.setChecked(false);
// Set the icon according to the theme.
- if (darkTheme) {
- pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_night));
} else {
- pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_light));
+ pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_day));
}
}
currentWebsiteCertificateRadioButton.setChecked(false);
// Darken the background of the current website SSL certificate linear layout according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
currentWebsiteCertificateLinearLayout.setBackgroundResource(R.color.black_translucent_33);
} else {
currentWebsiteCertificateLinearLayout.setBackgroundResource(R.color.black_translucent_11);
pinnedIpAddressesSwitch.setChecked(true);
// Set the icon according to the theme.
- if (darkTheme) {
- pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_night));
} else {
- pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_light));
+ pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_day));
}
} else { // Pinned IP Addresses is disabled.
// Uncheck the switch.
pinnedIpAddressesSwitch.setChecked(false);
// Set the icon according to the theme.
- if (darkTheme) {
- pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_night));
} else {
- pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_light));
+ pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_day));
}
}
currentIpAddressesRadioButton.setChecked(false);
// Darken the background of the current IP addresses linear layout according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
currentIpAddressesLinearLayout.setBackgroundResource(R.color.black_translucent_33);
} else {
currentIpAddressesLinearLayout.setBackgroundResource(R.color.black_translucent_11);
domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_enabled));
} else { // DOM storage is disabled.
// Set the icon according to the theme.
- if (darkTheme) {
- domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_night));
} else {
- domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_light));
+ domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_day));
}
}
} else { // JavaScript is disabled.
domStorageSwitch.setEnabled(false);
// Set the DOM storage icon according to the theme.
- if (darkTheme) {
- domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_ghosted_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_ghosted_night));
} else {
- domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_ghosted_light));
+ domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_ghosted_day));
}
}
});
thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_warning));
} else { // Third-party cookies are disabled.
// Set the third-party cookies icon according to the theme.
- if (darkTheme) {
- thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_night));
} else {
- thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_light));
+ thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_day));
}
}
} else { // First-party cookies are disabled.
// Update the first-party cookies icon according to the theme.
- if (darkTheme) {
- firstPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ firstPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_night));
} else {
- firstPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_light));
+ firstPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_day));
}
// Disable the third-party cookies switch.
thirdPartyCookiesSwitch.setEnabled(false);
// Set the third-party cookies icon according to the theme.
- if (darkTheme) {
- thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_ghosted_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_ghosted_night));
} else {
- thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_ghosted_light));
+ thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_ghosted_day));
}
}
});
thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_warning));
} else {
// Update the third-party cookies icon according to the theme.
- if (darkTheme) {
- thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_night));
} else {
- thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_light));
+ thirdPartyCookiesImageView.setImageDrawable(resources.getDrawable(R.drawable.cookies_disabled_day));
}
}
});
domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_enabled));
} else {
// Set the icon according to the theme.
- if (darkTheme) {
- domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_night));
} else {
- domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_light));
+ domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_day));
}
}
});
formDataImageView.setImageDrawable(resources.getDrawable(R.drawable.form_data_enabled));
} else {
// Set the icon according to the theme.
- if (darkTheme) {
- formDataImageView.setImageDrawable(resources.getDrawable(R.drawable.form_data_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ formDataImageView.setImageDrawable(resources.getDrawable(R.drawable.form_data_disabled_night));
} else {
- formDataImageView.setImageDrawable(resources.getDrawable(R.drawable.form_data_disabled_light));
+ formDataImageView.setImageDrawable(resources.getDrawable(R.drawable.form_data_disabled_day));
}
}
});
// Update the icon.
if (isChecked) { // EasyList is on.
// Set the icon according to the theme.
- if (darkTheme) {
- easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_night));
} else {
- easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_light));
+ easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_day));
}
} else { // EasyList is off.
// Set the icon according to the theme.
- if (darkTheme) {
- easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_night));
} else {
- easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_light));
+ easyListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_day));
}
}
});
// Update the icon.
if (isChecked) { // EasyPrivacy is on.
// Set the icon according to the theme.
- if (darkTheme) {
- easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_night));
} else {
- easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_light));
+ easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_day));
}
} else { // EasyPrivacy is off.
// Set the icon according to the theme.
- if (darkTheme) {
- easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_night));
} else {
- easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_light));
+ easyPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_day));
}
}
});
// Update the icon and Fanboy's Social Blocking List.
if (isChecked) { // Fanboy's Annoyance List is on.
// Set the icon according to the theme.
- if (darkTheme) {
- fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_night));
} else {
- fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_light));
+ fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_day));
}
// Disable the Fanboy's Social Blocking List switch.
fanboysSocialBlockingListSwitch.setEnabled(false);
// Update the Fanboy's Social Blocking List icon according to the theme.
- if (darkTheme) {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_ghosted_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_ghosted_night));
} else {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_ghosted_light));
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_ghosted_day));
}
} else { // Fanboy's Annoyance List is off.
// Set the icon according to the theme.
- if (darkTheme) {
- fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_night));
} else {
- fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_light));
+ fanboysAnnoyanceListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_day));
}
// Enable the Fanboy's Social Blocking List switch.
// Update the Fanboy's Social Blocking List icon.
if (fanboysSocialBlockingListSwitch.isChecked()) { // Fanboy's Social Blocking List is on.
// Update the icon according to the theme.
- if (darkTheme) {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_night));
} else {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_light));
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_day));
}
} else { // Fanboy's Social Blocking List is off.
// Update the icon according to the theme.
- if (darkTheme) {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_night));
} else {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_light));
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_day));
}
}
}
// Update the icon.
if (isChecked) { // Fanboy's Social Blocking List is on.
// Set the icon according to the theme.
- if (darkTheme) {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_night));
} else {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_light));
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_enabled_day));
}
} else { // Fanboy's Social Blocking List is off.
// Set the icon according to the theme.
- if (darkTheme) {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_night));
} else {
- fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_light));
+ fanboysSocialBlockingListImageView.setImageDrawable(resources.getDrawable(R.drawable.social_media_disabled_day));
}
}
});
// Update the icon.
if (isChecked) { // UltraList is on.
// Set the icon according to the theme.
- if (darkTheme) {
- ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_night));
} else {
- ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_light));
+ ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_enabled_day));
}
} else { // UltraList is off.
// Set the icon according to the theme.
- if (darkTheme) {
- ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_night));
} else {
- ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_light));
+ ultraListImageView.setImageDrawable(resources.getDrawable(R.drawable.block_ads_disabled_day));
}
}
});
// Update the icon.
if (isChecked) { // UltraPrivacy is on.
// Set the icon according to the theme.
- if (darkTheme) {
- ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_night));
} else {
- ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_light));
+ ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_enabled_day));
}
} else { // UltraPrivacy is off.
// Set the icon according to the theme.
- if (darkTheme) {
- ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_night));
} else {
- ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_light));
+ ultraPrivacyImageView.setImageDrawable(resources.getDrawable(R.drawable.block_tracking_disabled_day));
}
}
});
// Update the icon.
if (isChecked) { // Blocking all third-party requests is on.
// Set the icon according to the theme.
- if (darkTheme) {
- blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_enabled_night));
} else {
- blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_enabled_light));
+ blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_enabled_day));
}
} else { // Blocking all third-party requests is off.
// Set the icon according to the theme.
- if (darkTheme) {
- blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_disabled_night));
} else {
- blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_disabled_light));
+ blockAllThirdPartyRequestsImageView.setImageDrawable(resources.getDrawable(R.drawable.block_all_third_party_requests_disabled_day));
}
}
});
case DomainsDatabaseHelper.SYSTEM_DEFAULT:
if (defaultSwipeToRefresh) { // Swipe to refresh enabled by default.
// Set the icon according to the theme.
- if (darkTheme) {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_night));
} else {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_light));
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_day));
}
} else { // Swipe to refresh disabled by default.
// Set the icon according to the theme.
- if (darkTheme) {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_night));
} else {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_light));
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_day));
}
}
case DomainsDatabaseHelper.ENABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_night));
} else {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_light));
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_enabled_day));
}
// Hide the swipe to refresh TextView.
case DomainsDatabaseHelper.DISABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_night));
} else {
- swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_light));
+ swipeToRefreshImageView.setImageDrawable(resources.getDrawable(R.drawable.refresh_disabled_day));
}
// Hide the swipe to refresh TextView.
case DomainsDatabaseHelper.SYSTEM_DEFAULT:
if (defaultNightMode) { // Night mode enabled by default.
// Set the icon according to the theme.
- if (darkTheme) {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_night));
} else {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_light));
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_day));
}
} else { // Night mode disabled by default.
// Set the icon according to the theme.
- if (darkTheme) {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_night));
} else {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_light));
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_day));
}
}
case DomainsDatabaseHelper.ENABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_night));
} else {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_light));
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_enabled_day));
}
// Hide `nightModeTextView`.
case DomainsDatabaseHelper.DISABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_night));
} else {
- nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_light));
+ nightModeImageView.setImageDrawable(resources.getDrawable(R.drawable.night_mode_disabled_day));
}
// Hide `nightModeTextView`.
domStorageSwitch.setChecked(false);
// Set the icon according to the theme.
- if (darkTheme) {
- domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_night));
} else {
- domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_light));
+ domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_disabled_day));
}
}
} else { // JavaScript is disabled.
}
// Set the icon according to the theme.
- if (darkTheme) {
- domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_ghosted_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_ghosted_night));
} else {
- domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_ghosted_light));
+ domStorageImageView.setImageDrawable(resources.getDrawable(R.drawable.dom_storage_ghosted_day));
}
}
}
case DomainsDatabaseHelper.SYSTEM_DEFAULT:
if (defaultWideViewport) { // Wide viewport is enabled by default.
// Set the icon according to the theme.
- if (darkTheme) {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_night));
} else {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_light));
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_day));
}
} else { // Wide viewport is disabled by default.
- if (darkTheme) {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_night));
} else {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_light));
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_day));
}
}
case DomainsDatabaseHelper.ENABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_night));
} else {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_light));
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_enabled_day));
}
// Hide the wide viewport text view.
case DomainsDatabaseHelper.DISABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_night));
} else {
- wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_light));
+ wideViewportImageView.setImageDrawable(resources.getDrawable(R.drawable.wide_viewport_disabled_day));
}
// Hid ethe wide viewport text view.
case DomainsDatabaseHelper.SYSTEM_DEFAULT:
if (defaultDisplayWebpageImages) { // Display webpage images is enabled by default.
// Set the icon according to the theme.
- if (darkTheme) {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_night));
} else {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_light));
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_day));
}
} else { // Display webpage images is disabled by default.
// Set the icon according to the theme.
- if (darkTheme) {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_night));
} else {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_light));
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_day));
}
}
case DomainsDatabaseHelper.ENABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_night));
} else {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_light));
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_enabled_day));
}
// Hide the display images text view.
case DomainsDatabaseHelper.DISABLED:
// Set the icon according to the theme.
- if (darkTheme) {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_night));
} else {
- displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_light));
+ displayWebpageImagesImageView.setImageDrawable(resources.getDrawable(R.drawable.images_disabled_day));
}
// Hide the display images text view.
// Update the icon.
if (isChecked) { // SSL certificate pinning is enabled.
// Set the icon according to the theme.
- if (darkTheme) {
- pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_night));
} else {
- pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_light));
+ pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_day));
}
// Update the visibility of the saved SSL certificate.
savedSslCertificateLinearLayout.setBackgroundResource(R.color.transparent);
// Darken the background of the current website SSL certificate linear layout according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
currentWebsiteCertificateLinearLayout.setBackgroundResource(R.color.black_translucent_33);
} else {
currentWebsiteCertificateLinearLayout.setBackgroundResource(R.color.black_translucent_11);
currentWebsiteCertificateLinearLayout.setBackgroundResource(R.color.transparent);
// Darken the background of the saved SSL certificate linear layout according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
savedSslCertificateLinearLayout.setBackgroundResource(R.color.black_translucent_33);
} else {
savedSslCertificateLinearLayout.setBackgroundResource(R.color.black_translucent_11);
}
} else { // SSL certificate pinning is disabled.
// Set the icon according to the theme.
- if (darkTheme) {
- pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_night));
} else {
- pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_light));
+ pinnedSslCertificateImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_day));
}
// Hide the SSl certificates and instructions.
savedSslCertificateLinearLayout.setBackgroundResource(R.color.transparent);
// Darken the background of the current website SSL certificate linear layout according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
currentWebsiteCertificateLinearLayout.setBackgroundResource(R.color.black_translucent_33);
} else {
currentWebsiteCertificateLinearLayout.setBackgroundResource(R.color.black_translucent_11);
savedSslCertificateLinearLayout.setBackgroundResource(R.color.transparent);
// Darken the background of the current website SSL certificate linear layout according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
currentWebsiteCertificateLinearLayout.setBackgroundResource(R.color.black_translucent_33);
} else {
currentWebsiteCertificateLinearLayout.setBackgroundResource(R.color.black_translucent_11);
currentWebsiteCertificateLinearLayout.setBackgroundResource(R.color.transparent);
// Darken the background of the saved SSL certificate linear layout according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
savedSslCertificateLinearLayout.setBackgroundResource(R.color.black_translucent_33);
} else {
savedSslCertificateLinearLayout.setBackgroundResource(R.color.black_translucent_11);
currentWebsiteCertificateLinearLayout.setBackgroundResource(R.color.transparent);
// Darken the background of the saved SSL certificate linear layout according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
savedSslCertificateLinearLayout.setBackgroundResource(R.color.black_translucent_33);
} else {
savedSslCertificateLinearLayout.setBackgroundResource(R.color.black_translucent_11);
// Update the icon.
if (isChecked) { // IP addresses pinning is enabled.
// Set the icon according to the theme.
- if (darkTheme) {
- pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_night));
} else {
- pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_light));
+ pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_enabled_day));
}
// Update the visibility of the saved IP addresses card view.
savedSslCertificateLinearLayout.setBackgroundResource(R.color.transparent);
// Darken the background of the current IP addresses linear layout according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
currentIpAddressesLinearLayout.setBackgroundResource(R.color.black_translucent_33);
} else {
currentIpAddressesLinearLayout.setBackgroundResource(R.color.black_translucent_11);
currentIpAddressesLinearLayout.setBackgroundResource(R.color.transparent);
// Darken the background of the saved IP addresses linear layout according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
savedIpAddressesLinearLayout.setBackgroundResource(R.color.black_translucent_33);
} else {
savedIpAddressesLinearLayout.setBackgroundResource(R.color.black_translucent_11);
currentIpAddressesCardView.getParent().requestChildFocus(currentIpAddressesCardView, currentIpAddressesCardView);
} else { // IP addresses pinning is disabled.
// Set the icon according to the theme.
- if (darkTheme) {
- pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_dark));
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_night));
} else {
- pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_light));
+ pinnedIpAddressesImageView.setImageDrawable(resources.getDrawable(R.drawable.ssl_certificate_disabled_day));
}
// Hide the IP addresses card views.
savedIpAddressesLinearLayout.setBackgroundResource(R.color.transparent);
// Darken the background of the current IP addresses linear layout according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
currentIpAddressesLinearLayout.setBackgroundResource(R.color.black_translucent_33);
} else {
currentIpAddressesLinearLayout.setBackgroundResource(R.color.black_translucent_11);
savedIpAddressesLinearLayout.setBackgroundResource(R.color.transparent);
// Darken the background of the current IP addresses linear layout according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
currentIpAddressesLinearLayout.setBackgroundResource(R.color.black_translucent_33);
} else {
currentIpAddressesLinearLayout.setBackgroundResource(R.color.black_translucent_11);
currentIpAddressesLinearLayout.setBackgroundResource(R.color.transparent);
// Darken the background of the saved IP addresses linear layout according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
savedIpAddressesLinearLayout.setBackgroundResource(R.color.black_translucent_33);
} else {
savedIpAddressesLinearLayout.setBackgroundResource(R.color.black_translucent_11);
currentIpAddressesLinearLayout.setBackgroundResource(R.color.transparent);
// Darken the background of the saved IP addresses linear layout according to the theme.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
savedIpAddressesLinearLayout.setBackgroundResource(R.color.black_translucent_33);
} else {
savedIpAddressesLinearLayout.setBackgroundResource(R.color.black_translucent_11);
/*
- * Copyright © 2017-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2017-2020 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
package com.stoutner.privacybrowser.fragments;
import android.content.Context;
-import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.os.Bundle;
-import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import androidx.annotation.NonNull;
-import androidx.fragment.app.Fragment; // The AndroidX fragment must be used until minimum API >= 23. Otherwise `getContext()` does not work.
+import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
void dismissSnackbar();
}
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
// Run the default commands.
super.onAttach(context);
// Get a handle for the domain settings fragment.
Fragment domainSettingsFragment = supportFragmentManager.findFragmentById(R.id.domain_settings_fragment_container);
- // Remove the incorrect lint error below that the domain settings fragment might be null.
+ // Remove the incorrect lint warning below that the domain settings fragment might be null.
assert domainSettingsFragment != null;
// Get a handle for the domain settings fragment view.
View domainSettingsFragmentView = domainSettingsFragment.getView();
+ // Remove the incorrect lint warning below that the domain settings fragment view might be null.
+ assert domainSettingsFragmentView != null;
+
// Get a handle for the domains activity.
DomainsActivity domainsActivity = new DomainsActivity();
// Enable the delete menu item.
DomainsActivity.deleteMenuItem.setEnabled(true);
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the theme preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
// Set the delete icon according to the theme.
- if (darkTheme) {
- DomainsActivity.deleteMenuItem.setIcon(R.drawable.delete_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ DomainsActivity.deleteMenuItem.setIcon(R.drawable.delete_night);
} else {
- DomainsActivity.deleteMenuItem.setIcon(R.drawable.delete_light);
+ DomainsActivity.deleteMenuItem.setIcon(R.drawable.delete_day);
}
}
package com.stoutner.privacybrowser.fragments;
import android.annotation.SuppressLint;
-import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.os.Bundle;
-import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@SuppressLint("SetJavaScriptEnabled")
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- // Get a handle for the shared preferences.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
-
- // Get the theme preference.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
-
// Setting false at the end of inflater.inflate does not attach the inflated layout as a child of container. The fragment will take care of attaching the root automatically.
View tabLayout = inflater.inflate(R.layout.bare_webview, container, false);
- // Get a handle for `tabWebView`.
+ // Get a handle for the tab WebView.
WebView tabWebView = (WebView) tabLayout;
+ // Get the current theme status.
+ int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
// Load the tabs according to the theme.
- if (darkTheme) { // The dark theme is applied.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { // The dark theme is applied.
tabWebView.setBackgroundColor(getResources().getColor(R.color.gray_850));
// Tab numbers start at 0.
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
import android.os.Bundle;
import android.webkit.WebView;
import android.widget.ArrayAdapter;
+import androidx.appcompat.app.AppCompatDelegate;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceFragmentCompat;
// Define the class variables.
private SharedPreferences.OnSharedPreferenceChangeListener preferencesListener;
private SharedPreferences savedPreferences;
+ private int currentThemeStatus;
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
Context context = activity.getApplicationContext();
Resources resources = getResources();
+ // Get the current theme status.
+ currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+
// Initialize savedPreferences.
savedPreferences = getPreferenceScreen().getSharedPreferences();
Preference swipeToRefreshPreference = findPreference("swipe_to_refresh");
Preference scrollAppBarPreference = findPreference("scroll_app_bar");
Preference displayAdditionalAppBarIconsPreference = findPreference("display_additional_app_bar_icons");
- Preference darkThemePreference = findPreference("dark_theme");
+ Preference appThemePreference = findPreference("app_theme");
Preference nightModePreference = findPreference("night_mode");
Preference wideViewportPreference = findPreference("wide_viewport");
Preference displayWebpageImagesPreference = findPreference("display_webpage_images");
assert swipeToRefreshPreference != null;
assert scrollAppBarPreference != null;
assert displayAdditionalAppBarIconsPreference != null;
- assert darkThemePreference != null;
+ assert appThemePreference != null;
assert nightModePreference != null;
assert wideViewportPreference != null;
assert displayWebpageImagesPreference != null;
boolean fanboySocialBlockingEnabled = savedPreferences.getBoolean("fanboys_social_blocking_list", true);
boolean fullScreenBrowsingMode = savedPreferences.getBoolean("full_screen_browsing_mode", false);
boolean clearEverything = savedPreferences.getBoolean("clear_everything", true);
- boolean darkTheme = savedPreferences.getBoolean("dark_theme", false);
boolean nightMode = savedPreferences.getBoolean("night_mode", false);
// Only enable the third-party cookies preference if first-party cookies are enabled and API >= 21.
fontSizePreference.setSummary(savedPreferences.getString("font_size", getString(R.string.font_size_default_value)) + "%");
+ // Get the theme string arrays.
+ String[] appThemeEntriesStringArray = resources.getStringArray(R.array.app_theme_entries);
+ String[] appThemeEntryValuesStringArray = resources.getStringArray(R.array.app_theme_entry_values);
+
+ // Get the current theme.
+ String currentAppTheme = savedPreferences.getString("app_theme", getString(R.string.app_theme_default_value));
+
+ // Define a theme entry number.
+ int appThemeEntryNumber;
+
+ // Get the theme entry number that matches the current theme. A switch statement cannot be used because the theme entry values string array is not a compile time constant.
+ if (currentAppTheme.equals(appThemeEntryValuesStringArray[1])) { // The light theme is selected.
+ appThemeEntryNumber = 1;
+ } else if (currentAppTheme.equals(appThemeEntryValuesStringArray[2])) { // The dark theme is selected.
+ appThemeEntryNumber = 2;
+ } else { // The system default theme is selected.
+ appThemeEntryNumber = 0;
+ }
+
+ // Set the current theme as the summary text for the preference.
+ appThemePreference.setSummary(appThemeEntriesStringArray[appThemeEntryNumber]);
+
+
// Disable the JavaScript preference if Night Mode is enabled. JavaScript will be enabled for all web pages.
javaScriptPreference.setEnabled(!nightMode);
if (firstPartyCookiesEnabled) {
firstPartyCookiesPreference.setIcon(R.drawable.cookies_enabled);
} else {
- if (darkTheme) {
- firstPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ firstPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_night);
} else {
- firstPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_light);
+ firstPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_day);
}
}
if (thirdPartyCookiesEnabled) {
thirdPartyCookiesPreference.setIcon(R.drawable.cookies_warning);
} else {
- if (darkTheme) {
- thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_night);
} else {
- thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_light);
+ thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_day);
}
}
} else {
- if (darkTheme) {
- thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted_night);
} else {
- thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted_light);
+ thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted_day);
}
}
if (savedPreferences.getBoolean("dom_storage", false)) { // DOM storage is enabled.
domStoragePreference.setIcon(R.drawable.dom_storage_enabled);
} else { // DOM storage is disabled.
- if (darkTheme) {
- domStoragePreference.setIcon(R.drawable.dom_storage_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStoragePreference.setIcon(R.drawable.dom_storage_disabled_night);
} else {
- domStoragePreference.setIcon(R.drawable.dom_storage_disabled_light);
+ domStoragePreference.setIcon(R.drawable.dom_storage_disabled_day);
}
}
} else { // The preference is disabled. The icon should be ghosted.
- if (darkTheme) {
- domStoragePreference.setIcon(R.drawable.dom_storage_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStoragePreference.setIcon(R.drawable.dom_storage_ghosted_night);
} else {
- domStoragePreference.setIcon(R.drawable.dom_storage_ghosted_light);
+ domStoragePreference.setIcon(R.drawable.dom_storage_ghosted_day);
}
}
if (savedPreferences.getBoolean("save_form_data", false)) {
formDataPreference.setIcon(R.drawable.form_data_enabled);
} else {
- if (darkTheme) {
- formDataPreference.setIcon(R.drawable.form_data_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ formDataPreference.setIcon(R.drawable.form_data_disabled_night);
} else {
- formDataPreference.setIcon(R.drawable.form_data_disabled_light);
+ formDataPreference.setIcon(R.drawable.form_data_disabled_day);
}
}
}
// Set the custom user agent icon.
if (customUserAgentPreference.isEnabled()) {
- if (darkTheme) {
- customUserAgentPreference.setIcon(R.drawable.custom_user_agent_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ customUserAgentPreference.setIcon(R.drawable.custom_user_agent_enabled_night);
} else {
- customUserAgentPreference.setIcon(R.drawable.custom_user_agent_enabled_light);
+ customUserAgentPreference.setIcon(R.drawable.custom_user_agent_enabled_day);
}
} else {
- if (darkTheme) {
- customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_night);
} else {
- customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_light);
+ customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_day);
}
}
// Set the incognito mode icon.
if (savedPreferences.getBoolean("incognito_mode", false)) {
- if (darkTheme) {
- incognitoModePreference.setIcon(R.drawable.incognito_mode_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ incognitoModePreference.setIcon(R.drawable.incognito_mode_enabled_night);
} else {
- incognitoModePreference.setIcon(R.drawable.incognito_mode_enabled_light);
+ incognitoModePreference.setIcon(R.drawable.incognito_mode_enabled_day);
}
} else {
- if (darkTheme) {
- incognitoModePreference.setIcon(R.drawable.incognito_mode_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ incognitoModePreference.setIcon(R.drawable.incognito_mode_disabled_night);
} else {
- incognitoModePreference.setIcon(R.drawable.incognito_mode_disabled_light);
+ incognitoModePreference.setIcon(R.drawable.incognito_mode_disabled_day);
}
}
// Set the Do Not Track icon.
if (savedPreferences.getBoolean("do_not_track", false)) {
- if (darkTheme) {
- doNotTrackPreference.setIcon(R.drawable.block_tracking_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ doNotTrackPreference.setIcon(R.drawable.block_tracking_enabled_night);
} else {
- doNotTrackPreference.setIcon(R.drawable.block_tracking_enabled_light);
+ doNotTrackPreference.setIcon(R.drawable.block_tracking_enabled_day);
}
} else {
- if (darkTheme) {
- doNotTrackPreference.setIcon(R.drawable.block_tracking_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ doNotTrackPreference.setIcon(R.drawable.block_tracking_disabled_night);
} else {
- doNotTrackPreference.setIcon(R.drawable.block_tracking_disabled_light);
+ doNotTrackPreference.setIcon(R.drawable.block_tracking_disabled_day);
}
}
// Set the allow screenshots icon.
if (savedPreferences.getBoolean("allow_screenshots", false)) {
- if (darkTheme) {
- allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_night);
} else {
- allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_light);
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_day);
}
} else {
- if (darkTheme) {
- allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_night);
} else {
- allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_light);
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_day);
}
}
// Set the EasyList icon.
if (savedPreferences.getBoolean("easylist", true)) {
- if (darkTheme) {
- easyListPreference.setIcon(R.drawable.block_ads_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyListPreference.setIcon(R.drawable.block_ads_enabled_night);
} else {
- easyListPreference.setIcon(R.drawable.block_ads_enabled_light);
+ easyListPreference.setIcon(R.drawable.block_ads_enabled_day);
}
} else {
- if (darkTheme) {
- easyListPreference.setIcon(R.drawable.block_ads_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyListPreference.setIcon(R.drawable.block_ads_disabled_night);
} else {
- easyListPreference.setIcon(R.drawable.block_ads_disabled_light);
+ easyListPreference.setIcon(R.drawable.block_ads_disabled_day);
}
}
// Set the EasyPrivacy icon.
if (savedPreferences.getBoolean("easyprivacy", true)) {
- if (darkTheme) {
- easyPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_night);
} else {
- easyPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_light);
+ easyPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_day);
}
} else {
- if (darkTheme) {
- easyPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_night);
} else {
- easyPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_light);
+ easyPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_day);
}
}
// Set the Fanboy lists icons.
if (fanboyAnnoyanceListEnabled) {
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
// Set the Fanboy annoyance list icon.
- fanboyAnnoyanceListPreference.setIcon(R.drawable.social_media_enabled_dark);
+ fanboyAnnoyanceListPreference.setIcon(R.drawable.social_media_enabled_night);
// Set the Fanboy social blocking list icon.
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_ghosted_dark);
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_ghosted_night);
} else {
// Set the Fanboy annoyance list icon.
- fanboyAnnoyanceListPreference.setIcon(R.drawable.social_media_enabled_light);
+ fanboyAnnoyanceListPreference.setIcon(R.drawable.social_media_enabled_day);
// Set the Fanboy social blocking list icon.
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_ghosted_light);
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_ghosted_day);
}
} else {
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
// Set the Fanboy annoyance list icon.
- fanboyAnnoyanceListPreference.setIcon(R.drawable.social_media_disabled_dark);
+ fanboyAnnoyanceListPreference.setIcon(R.drawable.social_media_disabled_night);
// Set the Fanboy social blocking list icon.
if (fanboySocialBlockingEnabled) {
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_enabled_dark);
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_enabled_night);
} else {
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_disabled_dark);
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_disabled_night);
}
} else {
// Set the Fanboy annoyance list icon.
- fanboyAnnoyanceListPreference.setIcon(R.drawable.block_ads_disabled_light);
+ fanboyAnnoyanceListPreference.setIcon(R.drawable.block_ads_disabled_day);
// Set the Fanboy social blocking list icon.
if (fanboySocialBlockingEnabled) {
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_enabled_light);
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_enabled_day);
} else {
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_disabled_light);
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_disabled_day);
}
}
}
// Set the UltraList icon.
if (savedPreferences.getBoolean("ultralist", true)){
- if (darkTheme) {
- ultraListPreference.setIcon(R.drawable.block_ads_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraListPreference.setIcon(R.drawable.block_ads_enabled_night);
} else {
- ultraListPreference.setIcon(R.drawable.block_ads_enabled_light);
+ ultraListPreference.setIcon(R.drawable.block_ads_enabled_day);
}
} else {
- if (darkTheme) {
- ultraListPreference.setIcon(R.drawable.block_ads_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraListPreference.setIcon(R.drawable.block_ads_disabled_night);
} else {
- ultraListPreference.setIcon(R.drawable.block_ads_disabled_light);
+ ultraListPreference.setIcon(R.drawable.block_ads_disabled_day);
}
}
// Set the UltraPrivacy icon.
if (savedPreferences.getBoolean("ultraprivacy", true)) {
- if (darkTheme) {
- ultraPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_night);
} else {
- ultraPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_light);
+ ultraPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_day);
}
} else {
- if (darkTheme) {
- ultraPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_night);
} else {
- ultraPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_light);
+ ultraPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_day);
}
}
// Set the block all third-party requests icon.
if (savedPreferences.getBoolean("block_all_third_party_requests", false)) {
- if (darkTheme) {
- blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_enabled_night);
} else {
- blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_enabled_light);
+ blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_enabled_day);
}
} else {
- if (darkTheme) {
- blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_disabled_night);
} else {
- blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_disabled_light);
+ blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_disabled_day);
}
}
// Set the Google Analytics icon according to the theme.
if (savedPreferences.getBoolean("google_analytics", true)) {
- if (darkTheme) {
- googleAnalyticsPreference.setIcon(R.drawable.modify_url_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ googleAnalyticsPreference.setIcon(R.drawable.modify_url_enabled_night);
} else {
- googleAnalyticsPreference.setIcon(R.drawable.modify_url_enabled_light);
+ googleAnalyticsPreference.setIcon(R.drawable.modify_url_enabled_day);
}
} else {
- if (darkTheme) {
- googleAnalyticsPreference.setIcon(R.drawable.modify_url_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ googleAnalyticsPreference.setIcon(R.drawable.modify_url_disabled_night);
} else {
- googleAnalyticsPreference.setIcon(R.drawable.modify_url_disabled_light);
+ googleAnalyticsPreference.setIcon(R.drawable.modify_url_disabled_day);
}
}
// Set the Facebook Click IDs icon according to the theme.
if (savedPreferences.getBoolean("facebook_click_ids", true)) {
- if (darkTheme) {
- facebookClickIdsPreference.setIcon(R.drawable.modify_url_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ facebookClickIdsPreference.setIcon(R.drawable.modify_url_enabled_night);
} else {
- facebookClickIdsPreference.setIcon(R.drawable.modify_url_enabled_light);
+ facebookClickIdsPreference.setIcon(R.drawable.modify_url_enabled_day);
}
} else {
- if (darkTheme) {
- facebookClickIdsPreference.setIcon(R.drawable.modify_url_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ facebookClickIdsPreference.setIcon(R.drawable.modify_url_disabled_night);
} else {
- facebookClickIdsPreference.setIcon(R.drawable.modify_url_disabled_light);
+ facebookClickIdsPreference.setIcon(R.drawable.modify_url_disabled_day);
}
}
// Set the Twitter AMP redirects icon according to the theme.
if (savedPreferences.getBoolean("twitter_amp_redirects", true)) {
- if (darkTheme) {
- twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_enabled_night);
} else {
- twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_enabled_light);
+ twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_enabled_day);
}
} else {
- if (darkTheme) {
- twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_disabled_night);
} else {
- twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_disabled_light);
+ twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_disabled_day);
}
}
// Set the search custom URL icon.
if (searchCustomURLPreference.isEnabled()) {
- if (darkTheme) {
- searchCustomURLPreference.setIcon(R.drawable.search_custom_url_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ searchCustomURLPreference.setIcon(R.drawable.search_custom_url_enabled_night);
} else {
- searchCustomURLPreference.setIcon(R.drawable.search_custom_url_enabled_light);
+ searchCustomURLPreference.setIcon(R.drawable.search_custom_url_enabled_day);
}
} else {
- if (darkTheme) {
- searchCustomURLPreference.setIcon(R.drawable.search_custom_url_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ searchCustomURLPreference.setIcon(R.drawable.search_custom_url_ghosted_night);
} else {
- searchCustomURLPreference.setIcon(R.drawable.search_custom_url_ghosted_light);
+ searchCustomURLPreference.setIcon(R.drawable.search_custom_url_ghosted_day);
}
}
// Set the Proxy icons according to the theme and status.
if (proxyString.equals("None")) { // Proxying is disabled.
- if (darkTheme) { // Dark theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { // Dark theme.
// Set the main proxy icon to be disabled.
- proxyPreference.setIcon(R.drawable.proxy_disabled_dark);
+ proxyPreference.setIcon(R.drawable.proxy_disabled_night);
// Set the custom proxy URL icon to be ghosted.
- proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_dark);
+ proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_night);
} else { // Light theme.
// Set the main proxy icon to be disabled.
- proxyPreference.setIcon(R.drawable.proxy_disabled_light);
+ proxyPreference.setIcon(R.drawable.proxy_disabled_day);
// Set the custom proxy URL icon to be ghosted.
- proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_light);
+ proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_day);
}
} else { // Proxying is enabled.
- if (darkTheme) { // Dark theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { // Dark theme.
// Set the main proxy icon to be enabled.
- proxyPreference.setIcon(R.drawable.proxy_enabled_dark);
+ proxyPreference.setIcon(R.drawable.proxy_enabled_night);
// Set the custom proxy URL icon according to its status.
if (proxyCustomUrlPreference.isEnabled()) { // Custom proxy is enabled.
- proxyCustomUrlPreference.setIcon(R.drawable.proxy_enabled_dark);
+ proxyCustomUrlPreference.setIcon(R.drawable.proxy_enabled_night);
} else { // Custom proxy is disabled.
- proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_dark);
+ proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_night);
}
} else { // Light theme.
// Set the main proxy icon to be enabled.
- proxyPreference.setIcon(R.drawable.proxy_enabled_light);
+ proxyPreference.setIcon(R.drawable.proxy_enabled_day);
// Set the custom proxy URL icon according to its status.
if (proxyCustomUrlPreference.isEnabled()) { // Custom proxy is enabled.
- proxyCustomUrlPreference.setIcon(R.drawable.proxy_enabled_light);
+ proxyCustomUrlPreference.setIcon(R.drawable.proxy_enabled_day);
} else { // Custom proxy is disabled.
- proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_light);
+ proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_day);
}
}
}
// Set the full screen browsing mode icons.
if (fullScreenBrowsingMode) { // Full screen browsing mode is enabled.
// Set the `fullScreenBrowsingModePreference` icon according to the theme.
- if (darkTheme) {
- fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_enabled_night);
} else {
- fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_enabled_light);
+ fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_enabled_day);
}
// Set the hide app bar icon.
if (savedPreferences.getBoolean("hide_app_bar", true)) { // Hide app bar is enabled.
// Set the icon according to the theme.
- if (darkTheme) {
- hideAppBarPreference.setIcon(R.drawable.app_bar_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ hideAppBarPreference.setIcon(R.drawable.app_bar_enabled_night);
} else {
- hideAppBarPreference.setIcon(R.drawable.app_bar_enabled_light);
+ hideAppBarPreference.setIcon(R.drawable.app_bar_enabled_day);
}
} else { // Hide app bar is disabled.
// Set the icon according to the theme.
- if (darkTheme) {
- hideAppBarPreference.setIcon(R.drawable.app_bar_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ hideAppBarPreference.setIcon(R.drawable.app_bar_disabled_night);
} else {
- hideAppBarPreference.setIcon(R.drawable.app_bar_disabled_light);
+ hideAppBarPreference.setIcon(R.drawable.app_bar_disabled_day);
}
}
} else { // Full screen browsing mode is disabled.
// Set the icons according to the theme.
- if (darkTheme) {
- fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_disabled_dark);
- hideAppBarPreference.setIcon(R.drawable.app_bar_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_disabled_night);
+ hideAppBarPreference.setIcon(R.drawable.app_bar_ghosted_night);
} else {
- fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_disabled_light);
- hideAppBarPreference.setIcon(R.drawable.app_bar_ghosted_light);
+ fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_disabled_day);
+ hideAppBarPreference.setIcon(R.drawable.app_bar_ghosted_day);
}
}
// Set the clear everything preference icon.
if (clearEverything) {
- if (darkTheme) {
- clearEverythingPreference.setIcon(R.drawable.clear_everything_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ clearEverythingPreference.setIcon(R.drawable.clear_everything_enabled_night);
} else {
- clearEverythingPreference.setIcon(R.drawable.clear_everything_enabled_light);
+ clearEverythingPreference.setIcon(R.drawable.clear_everything_enabled_day);
}
} else {
clearEverythingPreference.setIcon(R.drawable.clear_everything_disabled);
// Set the clear cookies preference icon.
if (clearEverything || savedPreferences.getBoolean("clear_cookies", true)) {
- if (darkTheme) {
- clearCookiesPreference.setIcon(R.drawable.cookies_cleared_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ clearCookiesPreference.setIcon(R.drawable.cookies_cleared_night);
} else {
- clearCookiesPreference.setIcon(R.drawable.cookies_cleared_light);
+ clearCookiesPreference.setIcon(R.drawable.cookies_cleared_day);
}
} else {
clearCookiesPreference.setIcon(R.drawable.cookies_warning);
// Set the clear DOM storage preference icon.
if (clearEverything || savedPreferences.getBoolean("clear_dom_storage", true)) {
- if (darkTheme) {
- clearDomStoragePreference.setIcon(R.drawable.dom_storage_cleared_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ clearDomStoragePreference.setIcon(R.drawable.dom_storage_cleared_night);
} else {
- clearDomStoragePreference.setIcon(R.drawable.dom_storage_cleared_light);
+ clearDomStoragePreference.setIcon(R.drawable.dom_storage_cleared_day);
}
} else {
clearDomStoragePreference.setIcon(R.drawable.dom_storage_warning);
// Set the clear form data preference icon if the API < 26. It has no effect on newer versions of Android.
if (Build.VERSION.SDK_INT < 26) {
if (clearEverything || savedPreferences.getBoolean("clear_form_data", true)) {
- if (darkTheme) {
- clearFormDataPreference.setIcon(R.drawable.form_data_cleared_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ clearFormDataPreference.setIcon(R.drawable.form_data_cleared_night);
} else {
- clearFormDataPreference.setIcon(R.drawable.form_data_cleared_light);
+ clearFormDataPreference.setIcon(R.drawable.form_data_cleared_day);
}
} else {
clearFormDataPreference.setIcon(R.drawable.form_data_warning);
// Set the clear cache preference icon.
if (clearEverything || savedPreferences.getBoolean("clear_cache", true)) {
- if (darkTheme) {
- clearCachePreference.setIcon(R.drawable.cache_cleared_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ clearCachePreference.setIcon(R.drawable.cache_cleared_night);
} else {
- clearCachePreference.setIcon(R.drawable.cache_cleared_light);
+ clearCachePreference.setIcon(R.drawable.cache_cleared_day);
}
} else {
clearCachePreference.setIcon(R.drawable.cache_warning);
// Set the download custom location icon.
if (downloadCustomLocationPreference.isEnabled()) {
- if (darkTheme) {
- downloadCustomLocationPreference.setIcon(R.drawable.downloads_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ downloadCustomLocationPreference.setIcon(R.drawable.downloads_enabled_night);
} else {
- downloadCustomLocationPreference.setIcon(R.drawable.downloads_enabled_light);
+ downloadCustomLocationPreference.setIcon(R.drawable.downloads_enabled_day);
}
} else {
- if (darkTheme) {
- downloadCustomLocationPreference.setIcon(R.drawable.downloads_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ downloadCustomLocationPreference.setIcon(R.drawable.downloads_ghosted_night);
} else {
- downloadCustomLocationPreference.setIcon(R.drawable.downloads_ghosted_light);
+ downloadCustomLocationPreference.setIcon(R.drawable.downloads_ghosted_day);
}
}
// Set the open intents in new tab preference icon.
if (savedPreferences.getBoolean("open_intents_in_new_tab", true)) {
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
openIntentsInNewTabPreference.setIcon(R.drawable.tab_enabled_dark);
} else {
openIntentsInNewTabPreference.setIcon(R.drawable.tab_enabled_light);
}
} else {
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
openIntentsInNewTabPreference.setIcon(R.drawable.tab_disabled_dark);
} else {
openIntentsInNewTabPreference.setIcon(R.drawable.tab_disabled_light);
// Set the swipe to refresh preference icon.
if (savedPreferences.getBoolean("swipe_to_refresh", true)) {
- if (darkTheme) {
- swipeToRefreshPreference.setIcon(R.drawable.refresh_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ swipeToRefreshPreference.setIcon(R.drawable.refresh_enabled_night);
} else {
- swipeToRefreshPreference.setIcon(R.drawable.refresh_enabled_light);
+ swipeToRefreshPreference.setIcon(R.drawable.refresh_enabled_day);
}
} else {
- if (darkTheme) {
- swipeToRefreshPreference.setIcon(R.drawable.refresh_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ swipeToRefreshPreference.setIcon(R.drawable.refresh_disabled_night);
} else {
- swipeToRefreshPreference.setIcon(R.drawable.refresh_disabled_light);
+ swipeToRefreshPreference.setIcon(R.drawable.refresh_disabled_day);
}
}
// Set the scroll app bar preference icon.
if (savedPreferences.getBoolean("scroll_app_bar", true)) {
- if (darkTheme) {
- scrollAppBarPreference.setIcon(R.drawable.app_bar_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ scrollAppBarPreference.setIcon(R.drawable.app_bar_enabled_night);
} else {
- scrollAppBarPreference.setIcon(R.drawable.app_bar_enabled_light);
+ scrollAppBarPreference.setIcon(R.drawable.app_bar_enabled_day);
}
} else {
- if (darkTheme) {
- scrollAppBarPreference.setIcon(R.drawable.app_bar_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ scrollAppBarPreference.setIcon(R.drawable.app_bar_disabled_night);
} else {
- scrollAppBarPreference.setIcon(R.drawable.app_bar_disabled_light);
+ scrollAppBarPreference.setIcon(R.drawable.app_bar_disabled_day);
}
}
// Set the display additional app bar icons preference icon.
if (savedPreferences.getBoolean("display_additional_app_bar_icons", false)) {
- if (darkTheme) {
- displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_enabled_night);
} else {
- displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_enabled_light);
+ displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_enabled_day);
}
} else {
- if (darkTheme) {
- displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_disabled_night);
} else {
- displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_disabled_light);
+ displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_disabled_day);
}
}
- // Set the dark theme preference icon.
- if (savedPreferences.getBoolean("dark_theme", false)) {
- darkThemePreference.setIcon(R.drawable.theme_dark);
- } else {
- darkThemePreference.setIcon(R.drawable.theme_light);
- }
-
// Set the night mode preference icon.
if (nightMode) {
- if (darkTheme) {
- nightModePreference.setIcon(R.drawable.night_mode_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ nightModePreference.setIcon(R.drawable.night_mode_enabled_night);
} else {
- nightModePreference.setIcon(R.drawable.night_mode_enabled_light);
+ nightModePreference.setIcon(R.drawable.night_mode_enabled_day);
}
} else {
- if (darkTheme) {
- nightModePreference.setIcon(R.drawable.night_mode_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ nightModePreference.setIcon(R.drawable.night_mode_disabled_night);
} else {
- nightModePreference.setIcon(R.drawable.night_mode_disabled_light);
+ nightModePreference.setIcon(R.drawable.night_mode_disabled_day);
}
}
// Set the wide viewport preference icon.
if (savedPreferences.getBoolean("wide_viewport", true)) {
- if (darkTheme) {
- wideViewportPreference.setIcon(R.drawable.wide_viewport_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ wideViewportPreference.setIcon(R.drawable.wide_viewport_enabled_night);
} else {
- wideViewportPreference.setIcon(R.drawable.wide_viewport_enabled_light);
+ wideViewportPreference.setIcon(R.drawable.wide_viewport_enabled_day);
}
} else {
- if (darkTheme) {
- wideViewportPreference.setIcon(R.drawable.wide_viewport_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ wideViewportPreference.setIcon(R.drawable.wide_viewport_disabled_night);
} else {
- wideViewportPreference.setIcon(R.drawable.wide_viewport_disabled_light);
+ wideViewportPreference.setIcon(R.drawable.wide_viewport_disabled_day);
}
}
// Set the display webpage images preference icon.
if (savedPreferences.getBoolean("display_webpage_images", true)) {
- if (darkTheme) {
- displayWebpageImagesPreference.setIcon(R.drawable.images_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayWebpageImagesPreference.setIcon(R.drawable.images_enabled_night);
} else {
- displayWebpageImagesPreference.setIcon(R.drawable.images_enabled_light);
+ displayWebpageImagesPreference.setIcon(R.drawable.images_enabled_day);
}
} else {
- if (darkTheme) {
- displayWebpageImagesPreference.setIcon(R.drawable.images_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayWebpageImagesPreference.setIcon(R.drawable.images_disabled_night);
} else {
- displayWebpageImagesPreference.setIcon(R.drawable.images_disabled_light);
+ displayWebpageImagesPreference.setIcon(R.drawable.images_disabled_day);
}
}
if (sharedPreferences.getBoolean("dom_storage", false)) {
domStoragePreference.setIcon(R.drawable.dom_storage_enabled);
} else {
- if (darkTheme) {
- domStoragePreference.setIcon(R.drawable.dom_storage_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStoragePreference.setIcon(R.drawable.dom_storage_disabled_night);
} else {
- domStoragePreference.setIcon(R.drawable.dom_storage_disabled_light);
+ domStoragePreference.setIcon(R.drawable.dom_storage_disabled_day);
}
}
} else { // The JavaScript preference is disabled.
domStoragePreference.setEnabled(false);
// Set the icon for DOM storage preference to be ghosted.
- if (darkTheme) {
- domStoragePreference.setIcon(R.drawable.dom_storage_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStoragePreference.setIcon(R.drawable.dom_storage_ghosted_night);
} else {
- domStoragePreference.setIcon(R.drawable.dom_storage_ghosted_light);
+ domStoragePreference.setIcon(R.drawable.dom_storage_ghosted_day);
}
}
break;
if (sharedPreferences.getBoolean("third_party_cookies", false)) {
thirdPartyCookiesPreference.setIcon(R.drawable.cookies_warning);
} else {
- if (darkTheme) {
- thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_night);
} else {
- thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_light);
+ thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_day);
}
}
} else {
- if (darkTheme) {
- thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted_night);
} else {
- thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted_light);
+ thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted_day);
}
}
} else { // `first_party_cookies` is `false`.
// Update the icon for `first_party_cookies`.
- if (darkTheme) {
- firstPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ firstPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_night);
} else {
- firstPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_light);
+ firstPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_day);
}
// Set the icon for `third_party_cookies` to be ghosted.
- if (darkTheme) {
- thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted_night);
} else {
- thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted_light);
+ thirdPartyCookiesPreference.setIcon(R.drawable.cookies_ghosted_day);
}
}
if (sharedPreferences.getBoolean("third_party_cookies", false)) {
thirdPartyCookiesPreference.setIcon(R.drawable.cookies_warning);
} else {
- if (darkTheme) {
- thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_night);
} else {
- thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_light);
+ thirdPartyCookiesPreference.setIcon(R.drawable.cookies_disabled_day);
}
}
break;
if (sharedPreferences.getBoolean("dom_storage", false)) {
domStoragePreference.setIcon(R.drawable.dom_storage_enabled);
} else {
- if (darkTheme) {
- domStoragePreference.setIcon(R.drawable.dom_storage_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStoragePreference.setIcon(R.drawable.dom_storage_disabled_night);
} else {
- domStoragePreference.setIcon(R.drawable.dom_storage_disabled_light);
+ domStoragePreference.setIcon(R.drawable.dom_storage_disabled_day);
}
}
break;
if (sharedPreferences.getBoolean("save_form_data", false)) {
formDataPreference.setIcon(R.drawable.form_data_enabled);
} else {
- if (darkTheme) {
- formDataPreference.setIcon(R.drawable.form_data_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ formDataPreference.setIcon(R.drawable.form_data_disabled_night);
} else {
- formDataPreference.setIcon(R.drawable.form_data_disabled_light);
+ formDataPreference.setIcon(R.drawable.form_data_disabled_day);
}
}
break;
customUserAgentPreference.setEnabled(false);
// Set the custom user agent preference icon according to the theme.
- if (darkTheme) {
- customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_night);
} else {
- customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_light);
+ customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_day);
}
break;
customUserAgentPreference.setEnabled(true);
// Set the custom user agent preference icon according to the theme.
- if (darkTheme) {
- customUserAgentPreference.setIcon(R.drawable.custom_user_agent_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ customUserAgentPreference.setIcon(R.drawable.custom_user_agent_enabled_night);
} else {
- customUserAgentPreference.setIcon(R.drawable.custom_user_agent_enabled_light);
+ customUserAgentPreference.setIcon(R.drawable.custom_user_agent_enabled_day);
}
break;
customUserAgentPreference.setEnabled(false);
// Set the custom user agent preference icon according to the theme.
- if (darkTheme) {
- customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_night);
} else {
- customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_light);
+ customUserAgentPreference.setIcon(R.drawable.custom_user_agent_ghosted_day);
}
}
break;
case "incognito_mode":
// Update the icon.
if (sharedPreferences.getBoolean("incognito_mode", false)) {
- if (darkTheme) {
- incognitoModePreference.setIcon(R.drawable.incognito_mode_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ incognitoModePreference.setIcon(R.drawable.incognito_mode_enabled_night);
} else {
- incognitoModePreference.setIcon(R.drawable.incognito_mode_enabled_light);
+ incognitoModePreference.setIcon(R.drawable.incognito_mode_enabled_day);
}
} else {
- if (darkTheme) {
- incognitoModePreference.setIcon(R.drawable.incognito_mode_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ incognitoModePreference.setIcon(R.drawable.incognito_mode_disabled_night);
} else {
- incognitoModePreference.setIcon(R.drawable.incognito_mode_disabled_light);
+ incognitoModePreference.setIcon(R.drawable.incognito_mode_disabled_day);
}
}
break;
case "do_not_track":
// Update the icon.
if (sharedPreferences.getBoolean("do_not_track", false)) {
- if (darkTheme) {
- doNotTrackPreference.setIcon(R.drawable.block_tracking_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ doNotTrackPreference.setIcon(R.drawable.block_tracking_enabled_night);
} else {
- doNotTrackPreference.setIcon(R.drawable.block_tracking_enabled_light);
+ doNotTrackPreference.setIcon(R.drawable.block_tracking_enabled_day);
}
} else {
- if (darkTheme) {
- doNotTrackPreference.setIcon(R.drawable.block_tracking_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ doNotTrackPreference.setIcon(R.drawable.block_tracking_disabled_night);
} else {
- doNotTrackPreference.setIcon(R.drawable.block_tracking_disabled_light);
+ doNotTrackPreference.setIcon(R.drawable.block_tracking_disabled_day);
}
}
case "allow_screenshots":
// Update the icon.
if (sharedPreferences.getBoolean("allow_screenshots", false)) {
- if (darkTheme) {
- allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_night);
} else {
- allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_light);
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_day);
}
} else {
- if (darkTheme) {
- allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_night);
} else {
- allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_light);
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_day);
}
}
case "easylist":
// Update the icon.
if (sharedPreferences.getBoolean("easylist", true)) {
- if (darkTheme) {
- easyListPreference.setIcon(R.drawable.block_ads_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyListPreference.setIcon(R.drawable.block_ads_enabled_night);
} else {
- easyListPreference.setIcon(R.drawable.block_ads_enabled_light);
+ easyListPreference.setIcon(R.drawable.block_ads_enabled_day);
}
} else {
- if (darkTheme) {
- easyListPreference.setIcon(R.drawable.block_ads_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyListPreference.setIcon(R.drawable.block_ads_disabled_night);
} else {
- easyListPreference.setIcon(R.drawable.block_ads_disabled_light);
+ easyListPreference.setIcon(R.drawable.block_ads_disabled_day);
}
}
break;
case "easyprivacy":
// Update the icon.
if (sharedPreferences.getBoolean("easyprivacy", true)) {
- if (darkTheme) {
- easyPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_night);
} else {
- easyPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_light);
+ easyPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_day);
}
} else {
- if (darkTheme) {
- easyPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ easyPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_night);
} else {
- easyPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_light);
+ easyPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_day);
}
}
break;
// Update the Fanboy icons.
if (currentFanboyAnnoyanceList) { // Fanboy's annoyance list is enabled.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
// Update the Fanboy's annoyance list icon.
- fanboyAnnoyanceListPreference.setIcon(R.drawable.social_media_enabled_dark);
+ fanboyAnnoyanceListPreference.setIcon(R.drawable.social_media_enabled_night);
// Update the Fanboy's social blocking list icon.
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_ghosted_dark);
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_ghosted_night);
} else {
// Update the Fanboy's annoyance list icon.
- fanboyAnnoyanceListPreference.setIcon(R.drawable.social_media_enabled_light);
+ fanboyAnnoyanceListPreference.setIcon(R.drawable.social_media_enabled_day);
// Update the Fanboy's social blocking list icon.
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_ghosted_light);
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_ghosted_day);
}
} else { // Fanboy's annoyance list is disabled.
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
// Update the Fanboy's annoyance list icon.
- fanboyAnnoyanceListPreference.setIcon(R.drawable.social_media_disabled_dark);
+ fanboyAnnoyanceListPreference.setIcon(R.drawable.social_media_disabled_night);
// Update the Fanboy's social blocking list icon.
if (currentFanboySocialBlockingList) {
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_enabled_dark);
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_enabled_night);
} else {
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_disabled_dark);
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_disabled_night);
}
} else {
// Update the Fanboy's annoyance list icon.
- fanboyAnnoyanceListPreference.setIcon(R.drawable.social_media_disabled_light);
+ fanboyAnnoyanceListPreference.setIcon(R.drawable.social_media_disabled_day);
// Update the Fanboy's social blocking list icon.
if (currentFanboySocialBlockingList) {
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_enabled_light);
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_enabled_day);
} else {
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_disabled_light);
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_disabled_day);
}
}
}
case "fanboys_social_blocking_list":
// Update the icon.
if (sharedPreferences.getBoolean("fanboys_social_blocking_list", true)) {
- if (darkTheme) {
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_enabled_night);
} else {
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_enabled_light);
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_enabled_day);
}
} else {
- if (darkTheme) {
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_disabled_night);
} else {
- fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_disabled_light);
+ fanboySocialBlockingListPreference.setIcon(R.drawable.social_media_disabled_day);
}
}
break;
case "ultralist":
// Update the icon.
if (sharedPreferences.getBoolean("ultralist", true)) {
- if (darkTheme) {
- ultraListPreference.setIcon(R.drawable.block_ads_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraListPreference.setIcon(R.drawable.block_ads_enabled_night);
} else {
- ultraListPreference.setIcon(R.drawable.block_ads_enabled_light);
+ ultraListPreference.setIcon(R.drawable.block_ads_enabled_day);
}
} else {
- if (darkTheme) {
- ultraListPreference.setIcon(R.drawable.block_ads_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraListPreference.setIcon(R.drawable.block_ads_disabled_night);
} else {
- ultraListPreference.setIcon(R.drawable.block_ads_disabled_light);
+ ultraListPreference.setIcon(R.drawable.block_ads_disabled_day);
}
}
break;
case "ultraprivacy":
// Update the icon.
if (sharedPreferences.getBoolean("ultraprivacy", true)) {
- if (darkTheme) {
- ultraPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_night);
} else {
- ultraPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_light);
+ ultraPrivacyPreference.setIcon(R.drawable.block_tracking_enabled_day);
}
} else {
- if (darkTheme) {
- ultraPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ ultraPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_night);
} else {
- ultraPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_light);
+ ultraPrivacyPreference.setIcon(R.drawable.block_tracking_disabled_day);
}
}
break;
case "block_all_third_party_requests":
// Update the icon.
if (sharedPreferences.getBoolean("block_all_third_party_requests", false)) {
- if (darkTheme) {
- blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_enabled_night);
} else {
- blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_enabled_light);
+ blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_enabled_day);
}
} else {
- if (darkTheme) {
- blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_disabled_night);
} else {
- blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_disabled_light);
+ blockAllThirdPartyRequestsPreference.setIcon(R.drawable.block_all_third_party_requests_disabled_day);
}
}
break;
case "google_analytics":
// Update the icon.
if (sharedPreferences.getBoolean("google_analytics", true)) {
- if (darkTheme) {
- googleAnalyticsPreference.setIcon(R.drawable.modify_url_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ googleAnalyticsPreference.setIcon(R.drawable.modify_url_enabled_night);
} else {
- googleAnalyticsPreference.setIcon(R.drawable.modify_url_enabled_light);
+ googleAnalyticsPreference.setIcon(R.drawable.modify_url_enabled_day);
}
} else {
- if (darkTheme) {
- googleAnalyticsPreference.setIcon(R.drawable.modify_url_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ googleAnalyticsPreference.setIcon(R.drawable.modify_url_disabled_night);
} else {
- googleAnalyticsPreference.setIcon(R.drawable.modify_url_disabled_light);
+ googleAnalyticsPreference.setIcon(R.drawable.modify_url_disabled_day);
}
}
break;
case "facebook_click_ids":
// Update the icon.
if (sharedPreferences.getBoolean("facebook_click_ids", true)) {
- if (darkTheme) {
- facebookClickIdsPreference.setIcon(R.drawable.modify_url_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ facebookClickIdsPreference.setIcon(R.drawable.modify_url_enabled_night);
} else {
- facebookClickIdsPreference.setIcon(R.drawable.modify_url_enabled_light);
+ facebookClickIdsPreference.setIcon(R.drawable.modify_url_enabled_day);
}
} else {
- if (darkTheme) {
- facebookClickIdsPreference.setIcon(R.drawable.modify_url_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ facebookClickIdsPreference.setIcon(R.drawable.modify_url_disabled_night);
} else {
- facebookClickIdsPreference.setIcon(R.drawable.modify_url_disabled_light);
+ facebookClickIdsPreference.setIcon(R.drawable.modify_url_disabled_day);
}
}
break;
case "twitter_amp_redirects":
// Update the icon.
if (sharedPreferences.getBoolean("twitter_amp_redirects", true)) {
- if (darkTheme) {
- twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_enabled_night);
} else {
- twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_enabled_light);
+ twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_enabled_day);
}
} else {
- if (darkTheme) {
- twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_disabled_night);
} else {
- twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_disabled_light);
+ twitterAmpRedirectsPreference.setIcon(R.drawable.modify_url_disabled_day);
}
}
break;
searchCustomURLPreference.setEnabled(true);
// Set the `searchCustomURLPreference` according to the theme.
- if (darkTheme) {
- searchCustomURLPreference.setIcon(R.drawable.search_custom_url_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ searchCustomURLPreference.setIcon(R.drawable.search_custom_url_enabled_night);
} else {
- searchCustomURLPreference.setIcon(R.drawable.search_custom_url_enabled_light);
+ searchCustomURLPreference.setIcon(R.drawable.search_custom_url_enabled_day);
}
} else { // `Custom URL` is not selected.
// Set the summary text to `newSearchString`.
searchCustomURLPreference.setEnabled(false);
// Set the `searchCustomURLPreference` according to the theme.
- if (darkTheme) {
- searchCustomURLPreference.setIcon(R.drawable.search_custom_url_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ searchCustomURLPreference.setIcon(R.drawable.search_custom_url_ghosted_night);
} else {
- searchCustomURLPreference.setIcon(R.drawable.search_custom_url_ghosted_light);
+ searchCustomURLPreference.setIcon(R.drawable.search_custom_url_ghosted_day);
}
}
break;
// Update the icons.
if (currentProxyString.equals("None")) { // Proxying is disabled.
- if (darkTheme) { // Dark theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { // Dark theme.
// Set the main proxy icon to be disabled
- proxyPreference.setIcon(R.drawable.proxy_disabled_dark);
+ proxyPreference.setIcon(R.drawable.proxy_disabled_night);
// Set the custom proxy URL icon to be ghosted.
- proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_dark);
+ proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_night);
} else { // Light theme.
// Set the main proxy icon to be disabled.
- proxyPreference.setIcon(R.drawable.proxy_disabled_light);
+ proxyPreference.setIcon(R.drawable.proxy_disabled_day);
// Set the custom proxy URL icon to be ghosted.
- proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_light);
+ proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_day);
}
} else { // Proxying is enabled.
- if (darkTheme) { // Dark theme.
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) { // Dark theme.
// Set the main proxy icon to be enabled.
- proxyPreference.setIcon(R.drawable.proxy_enabled_dark);
+ proxyPreference.setIcon(R.drawable.proxy_enabled_night);
/// Set the custom proxy URL icon according to its status.
if (proxyCustomUrlPreference.isEnabled()) { // Custom proxy is enabled.
- proxyCustomUrlPreference.setIcon(R.drawable.proxy_enabled_dark);
+ proxyCustomUrlPreference.setIcon(R.drawable.proxy_enabled_night);
} else { // Custom proxy is disabled.
- proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_dark);
+ proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_night);
}
} else { // Light theme.
// Set the main proxy icon to be enabled.
- proxyPreference.setIcon(R.drawable.proxy_enabled_light);
+ proxyPreference.setIcon(R.drawable.proxy_enabled_day);
// Set the custom proxy URL icon according to its status.
if (proxyCustomUrlPreference.isEnabled()) { // Custom proxy is enabled.
- proxyCustomUrlPreference.setIcon(R.drawable.proxy_enabled_light);
+ proxyCustomUrlPreference.setIcon(R.drawable.proxy_enabled_day);
} else { // Custom proxy is disabled.
- proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_light);
+ proxyCustomUrlPreference.setIcon(R.drawable.proxy_ghosted_day);
}
}
}
case "full_screen_browsing_mode":
if (sharedPreferences.getBoolean("full_screen_browsing_mode", false)) { // Full screen browsing is enabled.
// Set the full screen browsing mode preference icon according to the theme.
- if (darkTheme) {
- fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_enabled_night);
} else {
- fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_enabled_light);
+ fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_enabled_day);
}
// Set the hide app bar preference icon.
if (sharedPreferences.getBoolean("hide_app_bar", true)) { // Hide app bar is enabled.
// Set the icon according to the theme.
- if (darkTheme) {
- hideAppBarPreference.setIcon(R.drawable.app_bar_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ hideAppBarPreference.setIcon(R.drawable.app_bar_enabled_night);
} else {
- hideAppBarPreference.setIcon(R.drawable.app_bar_enabled_light);
+ hideAppBarPreference.setIcon(R.drawable.app_bar_enabled_day);
}
} else { // Hide app bar is disabled.
// Set the icon according to the theme.
- if (darkTheme) {
- hideAppBarPreference.setIcon(R.drawable.app_bar_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ hideAppBarPreference.setIcon(R.drawable.app_bar_disabled_night);
} else {
- hideAppBarPreference.setIcon(R.drawable.app_bar_disabled_light);
+ hideAppBarPreference.setIcon(R.drawable.app_bar_disabled_day);
}
}
} else { // Full screen browsing is disabled.
// Update the icons according to the theme.
- if (darkTheme) {
- fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_disabled_dark);
- hideAppBarPreference.setIcon(R.drawable.app_bar_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_disabled_night);
+ hideAppBarPreference.setIcon(R.drawable.app_bar_ghosted_night);
} else {
- fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_disabled_light);
- hideAppBarPreference.setIcon(R.drawable.app_bar_ghosted_light);
+ fullScreenBrowsingModePreference.setIcon(R.drawable.full_screen_disabled_day);
+ hideAppBarPreference.setIcon(R.drawable.app_bar_ghosted_day);
}
}
break;
// Update the icon.
if (sharedPreferences.getBoolean("hide_app_bar", true)) { // Hide app bar is enabled.
// Set the icon according to the theme.
- if (darkTheme) {
- hideAppBarPreference.setIcon(R.drawable.app_bar_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ hideAppBarPreference.setIcon(R.drawable.app_bar_enabled_night);
} else {
- hideAppBarPreference.setIcon(R.drawable.app_bar_enabled_light);
+ hideAppBarPreference.setIcon(R.drawable.app_bar_enabled_day);
}
} else { // Hide app bar is disabled.
// Set the icon according to the theme.
- if (darkTheme) {
- hideAppBarPreference.setIcon(R.drawable.app_bar_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ hideAppBarPreference.setIcon(R.drawable.app_bar_disabled_night);
} else {
- hideAppBarPreference.setIcon(R.drawable.app_bar_disabled_light);
+ hideAppBarPreference.setIcon(R.drawable.app_bar_disabled_day);
}
}
break;
// Update the `clearEverythingPreference` icon.
if (newClearEverythingBoolean) {
- if (darkTheme) {
- clearEverythingPreference.setIcon(R.drawable.clear_everything_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ clearEverythingPreference.setIcon(R.drawable.clear_everything_enabled_night);
} else {
- clearEverythingPreference.setIcon(R.drawable.clear_everything_enabled_light);
+ clearEverythingPreference.setIcon(R.drawable.clear_everything_enabled_day);
}
} else {
clearEverythingPreference.setIcon(R.drawable.clear_everything_disabled);
// Update the `clearCookiesPreference` icon.
if (newClearEverythingBoolean || sharedPreferences.getBoolean("clear_cookies", true)) {
- if (darkTheme) {
- clearCookiesPreference.setIcon(R.drawable.cookies_cleared_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ clearCookiesPreference.setIcon(R.drawable.cookies_cleared_night);
} else {
- clearCookiesPreference.setIcon(R.drawable.cookies_cleared_light);
+ clearCookiesPreference.setIcon(R.drawable.cookies_cleared_day);
}
} else {
clearCookiesPreference.setIcon(R.drawable.cookies_warning);
// Update the `clearDomStoragePreference` icon.
if (newClearEverythingBoolean || sharedPreferences.getBoolean("clear_dom_storage", true)) {
- if (darkTheme) {
- clearDomStoragePreference.setIcon(R.drawable.dom_storage_cleared_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ clearDomStoragePreference.setIcon(R.drawable.dom_storage_cleared_night);
} else {
- clearDomStoragePreference.setIcon(R.drawable.dom_storage_cleared_light);
+ clearDomStoragePreference.setIcon(R.drawable.dom_storage_cleared_day);
}
} else {
clearDomStoragePreference.setIcon(R.drawable.dom_storage_warning);
// Update the clear form data preference icon if the API < 26.
if (Build.VERSION.SDK_INT < 26) {
if (newClearEverythingBoolean || sharedPreferences.getBoolean("clear_form_data", true)) {
- if (darkTheme) {
- clearFormDataPreference.setIcon(R.drawable.form_data_cleared_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ clearFormDataPreference.setIcon(R.drawable.form_data_cleared_night);
} else {
- clearFormDataPreference.setIcon(R.drawable.form_data_cleared_light);
+ clearFormDataPreference.setIcon(R.drawable.form_data_cleared_day);
}
} else {
clearFormDataPreference.setIcon(R.drawable.form_data_warning);
// Update the `clearCachePreference` icon.
if (newClearEverythingBoolean || sharedPreferences.getBoolean("clear_cache", true)) {
- if (darkTheme) {
- clearCachePreference.setIcon(R.drawable.cache_cleared_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ clearCachePreference.setIcon(R.drawable.cache_cleared_night);
} else {
- clearCachePreference.setIcon(R.drawable.cache_cleared_light);
+ clearCachePreference.setIcon(R.drawable.cache_cleared_day);
}
} else {
clearCachePreference.setIcon(R.drawable.cache_warning);
case "clear_cookies":
// Update the icon.
if (sharedPreferences.getBoolean("clear_cookies", true)) {
- if (darkTheme) {
- clearCookiesPreference.setIcon(R.drawable.cookies_cleared_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ clearCookiesPreference.setIcon(R.drawable.cookies_cleared_night);
} else {
- clearCookiesPreference.setIcon(R.drawable.cookies_cleared_light);
+ clearCookiesPreference.setIcon(R.drawable.cookies_cleared_day);
}
} else {
clearCookiesPreference.setIcon(R.drawable.cookies_warning);
case "clear_dom_storage":
// Update the icon.
if (sharedPreferences.getBoolean("clear_dom_storage", true)) {
- if (darkTheme) {
- clearDomStoragePreference.setIcon(R.drawable.dom_storage_cleared_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ clearDomStoragePreference.setIcon(R.drawable.dom_storage_cleared_night);
} else {
- clearDomStoragePreference.setIcon(R.drawable.dom_storage_cleared_light);
+ clearDomStoragePreference.setIcon(R.drawable.dom_storage_cleared_day);
}
} else {
clearDomStoragePreference.setIcon(R.drawable.dom_storage_warning);
case "clear_form_data":
// Update the icon.
if (sharedPreferences.getBoolean("clear_form_data", true)) {
- if (darkTheme) {
- clearFormDataPreference.setIcon(R.drawable.form_data_cleared_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ clearFormDataPreference.setIcon(R.drawable.form_data_cleared_night);
} else {
- clearFormDataPreference.setIcon(R.drawable.form_data_cleared_light);
+ clearFormDataPreference.setIcon(R.drawable.form_data_cleared_day);
}
} else {
clearFormDataPreference.setIcon(R.drawable.form_data_warning);
case "clear_cache":
// Update the icon.
if (sharedPreferences.getBoolean("clear_cache", true)) {
- if (darkTheme) {
- clearCachePreference.setIcon(R.drawable.cache_cleared_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ clearCachePreference.setIcon(R.drawable.cache_cleared_night);
} else {
- clearCachePreference.setIcon(R.drawable.cache_cleared_light);
+ clearCachePreference.setIcon(R.drawable.cache_cleared_day);
}
} else {
clearCachePreference.setIcon(R.drawable.cache_warning);
// Update the download custom location icon.
if (downloadCustomLocationPreference.isEnabled()) {
- if (darkTheme) {
- downloadCustomLocationPreference.setIcon(R.drawable.downloads_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ downloadCustomLocationPreference.setIcon(R.drawable.downloads_enabled_night);
} else {
- downloadCustomLocationPreference.setIcon(R.drawable.downloads_enabled_light);
+ downloadCustomLocationPreference.setIcon(R.drawable.downloads_enabled_day);
}
} else {
- if (darkTheme) {
- downloadCustomLocationPreference.setIcon(R.drawable.downloads_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ downloadCustomLocationPreference.setIcon(R.drawable.downloads_ghosted_night);
} else {
- downloadCustomLocationPreference.setIcon(R.drawable.downloads_ghosted_light);
+ downloadCustomLocationPreference.setIcon(R.drawable.downloads_ghosted_day);
}
}
break;
case "open_intents_in_new_tab":
// Update the icon.
if (sharedPreferences.getBoolean("open_intents_in_new_tab", true)) {
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
openIntentsInNewTabPreference.setIcon(R.drawable.tab_enabled_dark);
} else {
openIntentsInNewTabPreference.setIcon(R.drawable.tab_enabled_light);
}
} else {
- if (darkTheme) {
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
openIntentsInNewTabPreference.setIcon(R.drawable.tab_disabled_dark);
} else {
openIntentsInNewTabPreference.setIcon(R.drawable.tab_disabled_light);
case "swipe_to_refresh":
// Update the icon.
if (sharedPreferences.getBoolean("swipe_to_refresh", true)) {
- if (darkTheme) {
- swipeToRefreshPreference.setIcon(R.drawable.refresh_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ swipeToRefreshPreference.setIcon(R.drawable.refresh_enabled_night);
} else {
- swipeToRefreshPreference.setIcon(R.drawable.refresh_enabled_light);
+ swipeToRefreshPreference.setIcon(R.drawable.refresh_enabled_day);
}
} else {
- if (darkTheme) {
- swipeToRefreshPreference.setIcon(R.drawable.refresh_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ swipeToRefreshPreference.setIcon(R.drawable.refresh_disabled_night);
} else {
- swipeToRefreshPreference.setIcon(R.drawable.refresh_disabled_light);
+ swipeToRefreshPreference.setIcon(R.drawable.refresh_disabled_day);
}
}
break;
case "scroll_app_bar":
// Update the icon.
if (sharedPreferences.getBoolean("scroll_app_bar", true)) {
- if (darkTheme) {
- scrollAppBarPreference.setIcon(R.drawable.app_bar_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ scrollAppBarPreference.setIcon(R.drawable.app_bar_enabled_night);
} else {
- scrollAppBarPreference.setIcon(R.drawable.app_bar_enabled_light);
+ scrollAppBarPreference.setIcon(R.drawable.app_bar_enabled_day);
}
} else {
- if (darkTheme) {
- scrollAppBarPreference.setIcon(R.drawable.app_bar_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ scrollAppBarPreference.setIcon(R.drawable.app_bar_disabled_night);
} else {
- scrollAppBarPreference.setIcon(R.drawable.app_bar_disabled_light);
+ scrollAppBarPreference.setIcon(R.drawable.app_bar_disabled_day);
}
}
break;
case "display_additional_app_bar_icons":
// Update the icon.
if (sharedPreferences.getBoolean("display_additional_app_bar_icons", false)) {
- if (darkTheme) {
- displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_enabled_night);
} else {
- displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_enabled_light);
+ displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_enabled_day);
}
} else {
- if (darkTheme) {
- displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_disabled_night);
} else {
- displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_disabled_light);
+ displayAdditionalAppBarIconsPreference.setIcon(R.drawable.more_disabled_day);
}
}
break;
- case "dark_theme":
- // Update the icon.
- if (sharedPreferences.getBoolean("dark_theme", false)) {
- darkThemePreference.setIcon(R.drawable.theme_dark);
- } else {
- darkThemePreference.setIcon(R.drawable.theme_light);
+ case "app_theme":
+ // Get the new theme.
+ String newAppTheme = sharedPreferences.getString("app_theme", getString(R.string.app_theme_default_value));
+
+ // Update the system according to the new theme. A switch statement cannot be used because the theme entry values string array is not a compile time constant.
+ if (newAppTheme.equals(appThemeEntryValuesStringArray[1])) { // The light theme is selected.
+ // Update the theme preference summary text.
+ appThemePreference.setSummary(appThemeEntriesStringArray[1]);
+
+ // Apply the new theme.
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
+ } else if (newAppTheme.equals(appThemeEntryValuesStringArray[2])) { // The dark theme is selected.
+ // Update the theme preference summary text.
+ appThemePreference.setSummary(appThemeEntriesStringArray[2]);
+
+ // Apply the new theme.
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
+ } else { // The system default theme is selected.
+ // Update the theme preference summary text.
+ appThemePreference.setSummary(appThemeEntriesStringArray[0]);
+
+ // Apply the new theme.
+ if (Build.VERSION.SDK_INT >= 28) { // The system default theme is supported.
+ // Follow the system default theme.
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
+ } else {// The system default theme is not supported.
+ // Follow the battery saver mode.
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY);
+ }
}
- // Create an intent to restart Privacy Browser.
- Intent changeThemeRestartIntent = getActivity().getParentActivityIntent();
-
- // Assert that the intent is not null to remove the lint error below.
- assert changeThemeRestartIntent != null;
-
- // `Intent.FLAG_ACTIVITY_CLEAR_TASK` removes all activities from the stack. It requires `Intent.FLAG_ACTIVITY_NEW_TASK`.
- changeThemeRestartIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
-
- // Create a handler to restart the activity.
- Handler changeThemeRestartHandler = new Handler();
-
- // Create a runnable to restart the activity.
- Runnable changeThemeRestartRunnable = () -> {
- // Restart the activity.
- startActivity(changeThemeRestartIntent);
-
- // Kill this instance of Privacy Browser. Otherwise, the app exhibits sporadic behavior after the restart.
- System.exit(0);
- };
-
- // Restart the activity after 150 milliseconds, so that the app has enough time to save the change to the preference.
- changeThemeRestartHandler.postDelayed(changeThemeRestartRunnable, 150);
+ // Update the current theme status.
+ currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
break;
case "night_mode":
// Update the icon.
if (currentNightModeBoolean) {
- if (darkTheme) {
- nightModePreference.setIcon(R.drawable.night_mode_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ nightModePreference.setIcon(R.drawable.night_mode_enabled_night);
} else {
- nightModePreference.setIcon(R.drawable.night_mode_enabled_light);
+ nightModePreference.setIcon(R.drawable.night_mode_enabled_day);
}
} else {
- if (darkTheme) {
- nightModePreference.setIcon(R.drawable.night_mode_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ nightModePreference.setIcon(R.drawable.night_mode_disabled_night);
} else {
- nightModePreference.setIcon(R.drawable.night_mode_disabled_light);
+ nightModePreference.setIcon(R.drawable.night_mode_disabled_day);
}
}
if (sharedPreferences.getBoolean("dom_storage", false)) { // DOM storage is enabled.
domStoragePreference.setIcon(R.drawable.dom_storage_enabled);
} else { // DOM storage is disabled.
- if (darkTheme) {
- domStoragePreference.setIcon(R.drawable.dom_storage_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStoragePreference.setIcon(R.drawable.dom_storage_disabled_night);
} else {
- domStoragePreference.setIcon(R.drawable.dom_storage_disabled_light);
+ domStoragePreference.setIcon(R.drawable.dom_storage_disabled_day);
}
}
} else { // The preference is disabled. The icon should be ghosted.
- if (darkTheme) {
- domStoragePreference.setIcon(R.drawable.dom_storage_ghosted_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ domStoragePreference.setIcon(R.drawable.dom_storage_ghosted_night);
} else {
- domStoragePreference.setIcon(R.drawable.dom_storage_ghosted_light);
+ domStoragePreference.setIcon(R.drawable.dom_storage_ghosted_day);
}
}
break;
case "wide_viewport":
// Update the icon.
if (sharedPreferences.getBoolean("wide_viewport", true)) {
- if (darkTheme) {
- wideViewportPreference.setIcon(R.drawable.wide_viewport_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ wideViewportPreference.setIcon(R.drawable.wide_viewport_enabled_night);
} else {
- wideViewportPreference.setIcon(R.drawable.wide_viewport_enabled_light);
+ wideViewportPreference.setIcon(R.drawable.wide_viewport_enabled_day);
}
} else {
- if (darkTheme) {
- wideViewportPreference.setIcon(R.drawable.wide_viewport_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ wideViewportPreference.setIcon(R.drawable.wide_viewport_disabled_night);
} else {
- wideViewportPreference.setIcon(R.drawable.wide_viewport_disabled_light);
+ wideViewportPreference.setIcon(R.drawable.wide_viewport_disabled_day);
}
}
break;
case "display_webpage_images":
// Update the icon.
if (sharedPreferences.getBoolean("display_webpage_images", true)) {
- if (darkTheme) {
- displayWebpageImagesPreference.setIcon(R.drawable.images_enabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayWebpageImagesPreference.setIcon(R.drawable.images_enabled_night);
} else {
- displayWebpageImagesPreference.setIcon(R.drawable.images_enabled_light);
+ displayWebpageImagesPreference.setIcon(R.drawable.images_enabled_day);
}
} else {
- if (darkTheme) {
- displayWebpageImagesPreference.setIcon(R.drawable.images_disabled_dark);
+ if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
+ displayWebpageImagesPreference.setIcon(R.drawable.images_disabled_night);
} else {
- displayWebpageImagesPreference.setIcon(R.drawable.images_disabled_light);
+ displayWebpageImagesPreference.setIcon(R.drawable.images_disabled_day);
}
}
break;
public static final String EXPORT_SUCCESSFUL = "Export Successful";
public static final String IMPORT_SUCCESSFUL = "Import Successful";
- private static final int SCHEMA_VERSION = 10;
+ private static final int SCHEMA_VERSION = 11;
private static final String PREFERENCES_TABLE = "preferences";
// The preferences constants.
private static final String SWIPE_TO_REFRESH = "swipe_to_refresh";
private static final String SCROLL_APP_BAR = "scroll_app_bar";
private static final String DISPLAY_ADDITIONAL_APP_BAR_ICONS = "display_additional_app_bar_icons";
- private static final String DARK_THEME = "dark_theme";
+ private static final String APP_THEME = "app_theme";
private static final String NIGHT_MODE = "night_mode";
private static final String WIDE_VIEWPORT = "wide_viewport";
private static final String DISPLAY_WEBPAGE_IMAGES = "display_webpage_images";
SWIPE_TO_REFRESH + " BOOLEAN, " +
SCROLL_APP_BAR + " BOOLEAN, " +
DISPLAY_ADDITIONAL_APP_BAR_ICONS + " BOOLEAN, " +
- DARK_THEME + " BOOLEAN, " +
+ APP_THEME + " TEXT, " +
NIGHT_MODE + " BOOLEAN, " +
WIDE_VIEWPORT + " BOOLEAN, " +
DISPLAY_WEBPAGE_IMAGES + " BOOLEAN)";
preferencesContentValues.put(SWIPE_TO_REFRESH, sharedPreferences.getBoolean(SWIPE_TO_REFRESH, true));
preferencesContentValues.put(SCROLL_APP_BAR, sharedPreferences.getBoolean(SCROLL_APP_BAR, true));
preferencesContentValues.put(DISPLAY_ADDITIONAL_APP_BAR_ICONS, sharedPreferences.getBoolean(DISPLAY_ADDITIONAL_APP_BAR_ICONS, false));
- preferencesContentValues.put(DARK_THEME, sharedPreferences.getBoolean(DARK_THEME, false));
+ preferencesContentValues.put(APP_THEME, sharedPreferences.getString(APP_THEME, context.getString(R.string.app_theme_default_value)));
preferencesContentValues.put(NIGHT_MODE, sharedPreferences.getBoolean(NIGHT_MODE, false));
preferencesContentValues.put(WIDE_VIEWPORT, sharedPreferences.getBoolean(WIDE_VIEWPORT, true));
preferencesContentValues.put(DISPLAY_WEBPAGE_IMAGES, sharedPreferences.getBoolean(DISPLAY_WEBPAGE_IMAGES, true));
// Populate the preferences table with the current download location values.
importDatabase.execSQL("UPDATE " + PREFERENCES_TABLE + " SET " + DOWNLOAD_LOCATION + " = '" + downloadLocation + "'");
importDatabase.execSQL("UPDATE " + PREFERENCES_TABLE + " SET " + DOWNLOAD_CUSTOM_LOCATION + " = '" + downloadCustomLocation + "'");
+
+ // Upgrade from schema version 10.
+ case 10:
+ // Add the app theme column to the preferences table.
+ importDatabase.execSQL("ALTER TABLE " + PREFERENCES_TABLE + " ADD COLUMN " + APP_THEME + " TEXT");
+
+ // Get a cursor for the dark theme preference.
+ Cursor darkThemePreferencesCursor = importDatabase.rawQuery("SELECT dark_theme FROM " + PREFERENCES_TABLE, null);
+
+ // Move to the first preference.
+ darkThemePreferencesCursor.moveToFirst();
+
+ // Get the old dark theme value, which is in column 0.
+ int darkTheme = darkThemePreferencesCursor.getInt(0);
+
+ // Close the dark theme preference cursor.
+ darkThemePreferencesCursor.close();
+
+ // Populate the app theme according to the old dark theme preference.
+ if (darkTheme == 0) { // A light theme was selected.
+ // Set the app theme to be the system default.
+ importDatabase.execSQL("UPDATE " + PREFERENCES_TABLE + " SET " + APP_THEME + " = 'System default'");
+ } else { // A dark theme was selected.
+ // Set the app theme to be dark.
+ importDatabase.execSQL("UPDATE " + PREFERENCES_TABLE + " SET " + APP_THEME + " = 'Dark'");
+ }
}
}
bookmarksDatabaseHelper.close();
- // Get a cursor for the bookmarks table.
+ // Get a cursor for the preferences table.
Cursor importPreferencesCursor = importDatabase.rawQuery("SELECT * FROM " + PREFERENCES_TABLE, null);
// Move to the first preference.
.putBoolean(SWIPE_TO_REFRESH, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndex(SWIPE_TO_REFRESH)) == 1)
.putBoolean(SCROLL_APP_BAR, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndex(SCROLL_APP_BAR)) == 1)
.putBoolean(DISPLAY_ADDITIONAL_APP_BAR_ICONS, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndex(DISPLAY_ADDITIONAL_APP_BAR_ICONS)) == 1)
- .putBoolean(DARK_THEME, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndex(DARK_THEME)) == 1)
+ .putString(APP_THEME, importPreferencesCursor.getString(importPreferencesCursor.getColumnIndex(APP_THEME)))
.putBoolean(NIGHT_MODE, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndex(NIGHT_MODE)) == 1)
.putBoolean(WIDE_VIEWPORT, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndex(WIDE_VIEWPORT)) == 1)
.putBoolean(DISPLAY_WEBPAGE_IMAGES, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndex(DISPLAY_WEBPAGE_IMAGES)) == 1)
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- Copyright © 2017-2018 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/>. -->
-
-<!-- Highlight the selected item when the spinner is open. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android" >
- <item android:state_checked="true" android:color="@color/gray_300" />
- <item android:color="@color/blue_300" />
-</selector>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- Copyright © 2017-2018 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/>. -->
-
-<!-- Highlight the selected item when the spinner is open. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android" >
- <item android:state_checked="true" android:color="@color/white" />
- <item android:color="@color/blue_100" />
-</selector>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- Copyright © 2017-2018 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/>. -->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android" >
- <item android:state_enabled="true" android:color="@color/blue_600" />
- <item android:color="@color/gray_750" />
-</selector>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ Copyright © 2017-2018,2020 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/>. -->
+
+<!-- Set an background color for a button based on the state. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+ <item android:state_enabled="true" android:color="@color/blue_600" />
+ <item android:color="@color/gray_300" />
+</selector>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- Copyright © 2017-2018 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/>. -->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android" >
- <item android:state_enabled="true" android:color="@color/blue_600" />
- <item android:color="@color/gray_300" />
-</selector>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ Copyright © 2017-2018,2020 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/>. -->
+
+<!-- Set a background color for a button based on the state. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+ <item android:state_enabled="true" android:color="@color/blue_600" />
+ <item android:color="@color/gray_750" />
+</selector>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- Copyright © 2017-2018 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/>. -->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android" >
- <item android:state_enabled="true" android:color="@color/gray_300" />
- <item android:color="@color/gray_500" />
-</selector>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ Copyright © 2017-2018,2020 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/>. -->
+
+<!-- Set the text color for a button based on the state. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+ <item android:state_enabled="true" android:color="@color/white" />
+ <item android:color="@color/gray_400" />
+</selector>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- Copyright © 2017-2018 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/>. -->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android" >
- <item android:state_enabled="true" android:color="@color/white" />
- <item android:color="@color/gray_400" />
-</selector>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ Copyright © 2017-2018,2020 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/>. -->
+
+<!-- Set the text color for a button based on the state. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+ <item android:state_enabled="true" android:color="?android:attr/textColorPrimary" />
+ <item android:color="@color/gray_500" />
+</selector>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ Copyright © 2017-2018,2020 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/>. -->
+
+<!-- Sets the color of non-checked items to be gray. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+ <item android:state_checked="true" android:color="?android:attr/textColorPrimary" />
+ <item android:color="@color/gray_500" />
+</selector>
\ No newline at end of file
+++ /dev/null
-<!-- This file comes from the Android Material icon set, where it is called `info_outline`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFE0E0E0"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `info_outline`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF000000"
+ 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>
+++ /dev/null
-<!-- This file comes from the Android Material icon set, where it is called `info_outline`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF000000"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `info_outline`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FFE0E0E0"
+ 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>
+++ /dev/null
-<!-- This file comes from the Android Material icon set, where it is called `add`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFE0E0E0"
- android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
-</vector>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `add`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
+</vector>
+++ /dev/null
-<!-- This file comes from the Android Material icon set, where it is called `add`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFFFFFFF"
- android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
-</vector>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `add`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FFE0E0E0"
+ android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
+</vector>
+++ /dev/null
-<!-- `allow_screenshots_enabled_dark.xml` comes from the Android Material icon set, where it is called `camera_enhance`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `camera_enhance`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- `allow_screenshots_enabled_dark.xml` comes from the Android Material icon set, where it is called `camera_enhance`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `camera_enhance`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- `allow_screenshots_enabled_dark.xml` comes from the Android Material icon set, where it is called `camera_enhance`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `camera_enhance`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- `allow_screenshots_enabled_dark.xml` comes from the Android Material icon set, where it is called `camera_enhance`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `camera_enhance`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- This icon comes from the Android Material icon set, where it is called `payment`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="24dp"
- android:height="24dp"
- android:viewportWidth="24.0"
- android:viewportHeight="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `payment`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="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: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>
+++ /dev/null
-<!-- This icon comes from the Android Material icon set, where it is called `payment`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="24dp"
- android:height="24dp"
- android:viewportWidth="24.0"
- android:viewportHeight="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `payment`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="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: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>
+++ /dev/null
-<!-- This icon comes from the Android Material icon set, where it is called `payment`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="24dp"
- android:height="24dp"
- android:viewportWidth="24.0"
- android:viewportHeight="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `payment`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- This icon comes from the Android Material icon set, where it is called `payment`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="24dp"
- android:height="24dp"
- android:viewportWidth="24.0"
- android:viewportHeight="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `payment`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- This icon comes from the Android Material icon set, where it is called `payment`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FF616161"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `payment`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- This icon comes from the Android Material icon set, where it is called `payment`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FFB7B7B7"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `payment`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
-<!-- `back.xml` comes from the Android Material icon set, where it is called `arrow_back`. It is released under the Apache License 2.0. -->
+<!-- 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
android:autoMirrored="true"
tools:ignore="VectorRaster" >
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FF000000"
android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z" />
+++ /dev/null
-<!-- `block_ads_disabled_dark.xml` comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF757575"
+ 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>
+++ /dev/null
-<!-- `block_ads_disabled_light.xml` comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- `block_ads_enabled_dark.xml` comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- `block_ads_enabled_light.xml` comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `web`. It is released under the Apache License 2.0. -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- `block_all_third_party_requests_disabled_dark.xml` comes from the Android Material icon set, where it is called `new_releases`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
-
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `new_releases`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF757575"
+ 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>
+++ /dev/null
-<!-- `block_all_third_party_requests_disabled_light.xml` comes from the Android Material icon set, where it is called `new_releases`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
-
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `new_releases`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- `block_all_third_party_requests_enabled_dark.xml` comes from the Android Material icon set, where it is called `new_releases`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
-
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `new_releases`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- `block_all_third_party_requests_enabled_light.xml` comes from the Android Material icon set, where it is called `new_releases`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
-
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `new_releases`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- `block_tracking_disabled_dark.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `block_tracking_disabled_light.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `block_tracking_enabled_dark.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `block_tracking_enabled_light.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- `bookmarks_light.xml` 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" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFE0E0E0"
- 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>
--- /dev/null
+<!-- 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" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FFFFFFFF"
+ 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>
+++ /dev/null
-<!-- `bookmarks_light.xml` 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" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFFFFFFF"
- 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>
--- /dev/null
+<!-- 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" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FFE0E0E0"
+ 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>
-<!-- `bug.xml` comes from the Android Material icon set, where it is called `bug_report`. It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `bug_report`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FF000000"
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"/>
+++ /dev/null
-<!-- `cache_cleared_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `cache_cleared_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
-<!-- `cache_cleared.xml` comes from the Android Material icon set, where it is called `donut_small`. It is released under the Apache License 2.0. -->
+<!-- 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
android:viewportWidth="24.0"
tools:ignore="VectorRaster" >
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FFB71C1C"
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"/>
android:autoMirrored="true"
tools:ignore="VectorRaster" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- 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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- 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"
+++ /dev/null
-<!-- `clear_dark.xml` comes from the Android Material icon set, where it is called `close`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FFE0E0E0"
- 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>
\ No newline at end of file
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `close`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF616161"
+ 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>
\ No newline at end of file
-<!-- `clear_everything_disabled.xml` comes from the Android Material icon set, where it is called `delete_forever`. It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `delete_forever`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FFB71C1C"
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"/>
+++ /dev/null
-<!-- `clear_everything_enabled_dark.xml` comes from the Android Material icon set, where it is called `delete_forever`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `delete_forever`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- `clear_everything_enabled_light.xml` comes from the Android Material icon set, where it is called `delete_forever`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `delete_forever`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- `clear_light.xml` comes from the Android Material icon set, where it is called `close`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FFFFFFFF"
- 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>
\ No newline at end of file
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `close`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FFE0E0E0"
+ 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>
\ No newline at end of file
+++ /dev/null
-<!-- `close_dark.xml` comes from the Android Material icon set, where it is called `close`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `close`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- `close_light.xml` comes from the Android Material icon set, where it is called `close`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `close`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- `cookies_cleared_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF1E88E5"
- 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
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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
+++ /dev/null
-<!-- `cookies_cleared_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF1565C0"
- 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
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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
+++ /dev/null
-<!-- `cookies_disabled_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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
+++ /dev/null
-<!-- `cookies_disabled_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF757575"
- 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
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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
-<!-- `cookies_enabled.xml` was created by Google and downloaded from <https://materialdesignicons.com/icon/cookie>. It is released under the Apache License 2.0. -->
+<!-- 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
android:autoMirrored="true"
tools:ignore="VectorRaster" >
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FFF57F17"
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" />
+++ /dev/null
-<!-- `cookies_ghosted_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF616161"
- 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
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FFB7B7B7"
+ 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
+++ /dev/null
-<!-- `cookies_ghosted_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FFB7B7B7"
- 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
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF616161"
+ 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
-<!-- `cookies_warning.xml` was created by Google and downloaded from <https://materialdesignicons.com/icon/cookie>. It is released under the Apache License 2.0. -->
+<!-- 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
android:autoMirrored="true"
tools:ignore="VectorRaster" >
- <!-- We have to use a hard coded color until the minimum API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FFB71C1C"
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" />
+++ /dev/null
-<!-- 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" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFE0E0E0"
- 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
--- /dev/null
+<!-- 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" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FF616161"
+ 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
+++ /dev/null
-<!-- 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" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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
--- /dev/null
+<!-- 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" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FF1565C0"
+ 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
+++ /dev/null
-<!-- 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" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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
--- /dev/null
+<!-- 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" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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
+++ /dev/null
-<!-- 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" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFFFFFFF"
- 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
--- /dev/null
+<!-- 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" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FFE0E0E0"
+ 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
+++ /dev/null
-<!-- `create_bookmark_dark.xml` is derived from elements of `bookmark` and `create_new_folder`, 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. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFE0E0E0"
- 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>
--- /dev/null
+<!-- This file is derived from elements of `bookmark` and `create_new_folder`, 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. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- `create_bookmark_light.xml` is derived from elements of `bookmark` and `create_new_folder`, 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. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFFFFFFF"
- 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>
--- /dev/null
+<!-- This file is derived from elements of `bookmark` and `create_new_folder`, 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. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FFE0E0E0"
+ 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>
+++ /dev/null
-<!-- `create_folder_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFE0E0E0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FFFFFFFF"
+ 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>
+++ /dev/null
-<!-- `create_folder_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFFFFFFF"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FFE0E0E0"
+ 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>
+++ /dev/null
-<!-- 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster">
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster">
+
+ <!-- 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="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>
+++ /dev/null
-<!-- 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster">
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster">
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster">
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF616161"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster">
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FFB7B7B7"
+ 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>
+++ /dev/null
-<!-- 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster">
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFB7B7B7"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster">
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF616161"
+ 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>
+++ /dev/null
-<!-- `delete_blue.xml` comes from the Android Material icon set, where it is called `delete`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF90CAF9"
- 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
+++ /dev/null
-<!-- `delete_dark.xml` comes from the Android Material icon set, where it is called `delete`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FFE0E0E0"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `delete`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF616161"
+ 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `delete`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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
+++ /dev/null
-<!-- `delete_light.xml` comes from the Android Material icon set, where it is called `delete`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FFFFFFFF"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `delete`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FFE0E0E0"
+ 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>
+++ /dev/null
-<!-- 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- The hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- The hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- The hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- The hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
android:autoMirrored="true"
tools:ignore="VectorRaster" >
- <!-- The hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FFF57F17"
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"/>
+++ /dev/null
-<!-- 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
-
- <!-- The hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF616161"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster">
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FFB7B7B7"
+ 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>
+++ /dev/null
-<!-- 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
-
- <!-- The hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFB7B7B7"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster">
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF616161"
+ 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>
android:autoMirrored="true"
tools:ignore="VectorRaster" >
- <!-- The hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FFB71C1C"
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"/>
+++ /dev/null
-<!-- 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" >
-
- <!-- The hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
android:autoMirrored="true"
tools:ignore="VectorRaster" >
- <!-- The hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- 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="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" />
--- /dev/null
+<!-- 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" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- This file comes from the Android Material icon set, where it is called `file_download`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- The hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z" />
-</vector>
\ No newline at end of file
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `file_download`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z" />
+</vector>
\ No newline at end of file
+++ /dev/null
-<!-- This file comes from the Android Material icon set, where it is called `file_download`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- The hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z" />
-</vector>
\ No newline at end of file
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `file_download`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF1E88E5"
+ android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z" />
+</vector>
\ No newline at end of file
+++ /dev/null
-<!-- This file comes from the Android Material icon set, where it is called `file_download`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- The hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF616161"
- android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z" />
-</vector>
\ No newline at end of file
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `file_download`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FFB7B7B7"
+ android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z" />
+</vector>
\ No newline at end of file
+++ /dev/null
-<!-- This file comes from the Android Material icon set, where it is called `file_download`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- The hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFB7B7B7"
- android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z" />
-</vector>
\ No newline at end of file
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `file_download`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF616161"
+ android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z" />
+</vector>
\ No newline at end of file
+++ /dev/null
-<!-- `edit_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFE0E0E0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FF616161"
+ 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>
+++ /dev/null
-<!-- `edit_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFFFFFFF"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FFE0E0E0"
+ 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>
-<!-- `folder_dark_blue.xml` comes from the Android Material icon set, where it is called `folder`. It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `folder`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FF0D47A1"
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"/>
-<!-- `folder_gray.xml` comes from the Android Material icon set, where it is called `folder`. It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `folder`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- 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="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"/>
+++ /dev/null
-<!-- `font_size_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF1E88E5"
- android:pathData="M2.5,4v3h5v12h3L10.5,7h5L15.5,4h-13zM21.5,9h-9v3h3v7h3v-7h3L21.5,9z" />
-</vector>
\ No newline at end of file
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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.5,4v3h5v12h3L10.5,7h5L15.5,4h-13zM21.5,9h-9v3h3v7h3v-7h3L21.5,9z" />
+</vector>
\ No newline at end of file
+++ /dev/null
-<!-- `font_size_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF1565C0"
- android:pathData="M2.5,4v3h5v12h3L10.5,7h5L15.5,4h-13zM21.5,9h-9v3h3v7h3v-7h3L21.5,9z" />
-</vector>
\ No newline at end of file
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ android:pathData="M2.5,4v3h5v12h3L10.5,7h5L15.5,4h-13zM21.5,9h-9v3h3v7h3v-7h3L21.5,9z" />
+</vector>
\ No newline at end of file
+++ /dev/null
-<!-- `form_data_cleared_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster">
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `form_data_cleared_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster">
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- `form_data_disabled_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster">
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `form_data_disabled_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster">
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster">
+
+ <!-- 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="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>
-<!-- `form_data_enabled.xml` comes from the Android Material icon set, where it is called `subtitles`. It is released under the Apache License 2.0. -->
+<!-- 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
android:autoMirrored="true"
tools:ignore="VectorRaster">
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FFF57F17"
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"/>
-<!-- `form_data_warning.xml` comes from the Android Material icon set, where it is called `subtitles`. It is released under the Apache License 2.0. -->
+<!-- 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
android:autoMirrored="true"
tools:ignore="VectorRaster">
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FFB71C1C"
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"/>
-<!-- `forward.xml` comes from the Android Material icon set, where it is called `arrow_forward`. It is released under the Apache License 2.0. -->
+<!-- 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
android:autoMirrored="true"
tools:ignore="VectorRaster" >
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FF000000"
android:pathData="M12,4l-1.41,1.41L16.17,11H4v2h12.17l-5.58,5.59L12,20l8,-8z" />
+++ /dev/null
-<!-- This file comes from the Android Material icon set, where it is called `smartphone`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `smartphone`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF757575"
+ 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>
+++ /dev/null
-<!-- This file comes from the Android Material icon set, where it is called `smartphone`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `smartphone`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- This file comes from the Android Material icon set, where it is called `smartphone`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `smartphone`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- This file comes from the Android Material icon set, where it is called `smartphone`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `smartphone`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF1E88E5"
+ 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>
-<!-- `guide.xml` comes from the Android Material icon set, where it is called `import_contacts`. It is released under the Apache License 2.0. -->
+<!-- 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
android:autoMirrored="true"
tools:ignore="VectorRaster" >
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FF000000"
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" />
-<!-- `history.xml` comes from the Android Material icon set, where it is called `list`. It is released under the Apache License 2.0. -->
+<!-- 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
android:autoMirrored="true"
tools:ignore="VectorRaster" >
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FF000000"
android:pathData="M3,13h2v-2L3,11v2zM3,17h2v-2L3,15v2zM3,9h2L5,7L3,7v2zM7,13h14v-2L7,11v2zM7,17h14v-2L7,15v2zM7,7v2h14L21,7L7,7z" />
+++ /dev/null
-<!-- This file comes from the Android Material icon set, where it is called `home`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
-</vector>
\ No newline at end of file
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `home`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
+</vector>
\ No newline at end of file
+++ /dev/null
-<!-- This file comes from the Android Material icon set, where it is called `home`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
-</vector>
\ No newline at end of file
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `home`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF1E88E5"
+ android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
+</vector>
\ No newline at end of file
+++ /dev/null
-<!-- `images_disabled_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `images_disabled_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- This drawable 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- This drawable 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- This drawable 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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
+++ /dev/null
-<!-- This drawable 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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
+++ /dev/null
-<!-- `incognito_mode_disabled_dark.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster">
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster">
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `incognito_mode_disabled_light.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster">
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster">
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `incognito_mode_enabled_dark.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster">
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster">
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `incognito_mode_enabled_light.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster">
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster">
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
android:viewportHeight="256.0"
android:viewportWidth="256.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillAlpha="1"
android:fillColor="#ffffff"
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- Copyright © 2017 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/>. -->
-
-<!-- This selector changes the background of activated items in a `ListView`. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_activated="true"
- android:drawable="@color/blue_600" />
-</selector>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ Copyright © 2017,2020 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/>. -->
+
+<!-- This selector changes the background of activated items in a list view. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:state_activated="true"
+ android:drawable="@color/blue_200" />
+</selector>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- Copyright © 2017 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/>. -->
-
-<!-- This selector changes the background of activated items in a `ListView`. -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_activated="true"
- android:drawable="@color/blue_200" />
-</selector>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ Copyright © 2017,2020 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/>. -->
+
+<!-- This selector changes the background of activated items in a list view. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:state_activated="true"
+ android:drawable="@color/blue_600" />
+</selector>
\ No newline at end of file
+++ /dev/null
-<!-- `lock_dark.xml` comes from the Android Material icon set, where it is called `lock`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `lock`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- `lock_light.xml` comes from the Android Material icon set, where it is called `lock`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `lock`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- `modify_url_disabled_dark.xml` 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" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- 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" >
+
+ <!-- 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,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>
+++ /dev/null
-<!-- `modify_url_disabled_light.xml` 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" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- 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" >
+
+ <!-- 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,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>
+++ /dev/null
-<!-- `modify_url_enabled_dark.xml` 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" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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" >
+
+ <!-- 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,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>
+++ /dev/null
-<!-- `modify_url_enabled_light.xml` 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" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- 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" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- `more_disabled_dark.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster">
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster">
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `more_disabled_light.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster">
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster">
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `more_enabled_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:width="24dp"
- tools:ignore="VectorRaster">
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:width="24dp"
+ tools:ignore="VectorRaster">
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `more_enabled_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:width="24dp"
- tools:ignore="VectorRaster">
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:width="24dp"
+ tools:ignore="VectorRaster">
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
-<!-- `move_down_disabled.xml` comes from the Android Material icon set, where it is called `vertical_align_bottom`. It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `vertical_align_bottom`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFBBDEFB"
+ android:fillColor="#FF9E9E9E"
android:pathData="M16,13h-3V3h-2v10H8l4,4 4,-4zM4,19v2h16v-2H4z"/>
</vector>
+++ /dev/null
-<!-- `move_down_enabled_light.xml` comes from the Android Material icon set, where it is called `vertical_align_bottom`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FFE0E0E0"
- android:pathData="M16,13h-3V3h-2v10H8l4,4 4,-4zM4,19v2h16v-2H4z"/>
-</vector>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `vertical_align_bottom`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF616161"
+ android:pathData="M16,13h-3V3h-2v10H8l4,4 4,-4zM4,19v2h16v-2H4z"/>
+</vector>
+++ /dev/null
-<!-- `move_down_enabled_light.xml` comes from the Android Material icon set, where it is called `vertical_align_bottom`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FFFFFFFF"
- android:pathData="M16,13h-3V3h-2v10H8l4,4 4,-4zM4,19v2h16v-2H4z"/>
-</vector>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `vertical_align_bottom`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FFE0E0E0"
+ android:pathData="M16,13h-3V3h-2v10H8l4,4 4,-4zM4,19v2h16v-2H4z"/>
+</vector>
+++ /dev/null
-<!-- `move_to_folder_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFE0E0E0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FF616161"
+ 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>
+++ /dev/null
-<!-- `move_to_folder_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFFFFFFF"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FFE0E0E0"
+ 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>
-<!-- `move_up_disabled.xml` comes from the Android Material icon set, where it is called `vertical_align_top`. It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `vertical_align_top`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
<path
- android:fillColor="#FFBBDEFB"
+ android:fillColor="#FF9E9E9E"
android:pathData="M8,11h3v10h2V11h3l-4,-4 -4,4zM4,3v2h16V3H4z"/>
</vector>
+++ /dev/null
-<!-- `move_up_enabled_dark.xml` comes from the Android Material icon set, where it is called `vertical_align_top`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FFE0E0E0"
- android:pathData="M8,11h3v10h2V11h3l-4,-4 -4,4zM4,3v2h16V3H4z"/>
-</vector>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `vertical_align_top`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF616161"
+ android:pathData="M8,11h3v10h2V11h3l-4,-4 -4,4zM4,3v2h16V3H4z"/>
+</vector>
+++ /dev/null
-<!-- `move_up_enabled_light.xml` comes from the Android Material icon set, where it is called `vertical_align_top`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FFFFFFFF"
- android:pathData="M8,11h3v10h2V11h3l-4,-4 -4,4zM4,3v2h16V3H4z"/>
-</vector>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `vertical_align_top`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FFE0E0E0"
+ android:pathData="M8,11h3v10h2V11h3l-4,-4 -4,4zM4,3v2h16V3H4z"/>
+</vector>
-<!-- `next.xml` comes from the Android Material icon set, where it is called `expand_more`. It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `expand_more`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FF000000"
android:pathData="M16.59,8.59L12,13.17 7.41,8.59 6,10l6,6 6,-6z"/>
+++ /dev/null
-<!-- `night_mode_disabled_dark.xml` 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. -->
-<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" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- 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. -->
+<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" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `night_mode_disabled_dark.xml` 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. -->
-<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" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- 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. -->
+<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" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `night_mode_enabled_dark.xml` 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. -->
-<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" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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. -->
+<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" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `night_mode_enabled_light.xml` 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. -->
-<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" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- 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. -->
+<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" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
-<!-- `previous.xml` comes from the Android Material icon set, where it is called `expand_less`. It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `expand_less`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FF000000"
android:pathData="M12,8l-6,6 1.41,1.41L12,10.83l4.59,4.58L18,14z"/>
-<!-- `privacy_browser_foreground.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.
+<!-- 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. -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="108dp"
- android:width="108dp"
- android:viewportHeight="523.63635"
- android:viewportWidth="523.63635" >
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="108dp"
+ android:width="108dp"
+ android:viewportHeight="523.63635"
+ android:viewportWidth="523.63635" >
- <group android:translateX="133.81818"
- android:translateY="133.81818" >
+ <group
+ android:translateX="133.81818"
+ android:translateY="133.81818" >
- <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:strokeColor="#00000000"
- android:fillAlpha="1" />
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <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:strokeColor="#00000000"
+ android:fillAlpha="1" />
- <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:strokeColor="#00000000"
- android:fillAlpha="1" />
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <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:strokeColor="#00000000"
+ android:fillAlpha="1" />
- <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:fillAlpha="1" />
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <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:fillAlpha="1" />
</group>
</vector>
-<!-- `privacy_mode.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.
+<!-- 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. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportHeight="256.0"
android:viewportWidth="256.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<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" />
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillAlpha="1"
android:fillColor="#ffffff"
+++ /dev/null
-<!-- This icon comes from the Android Material icon set, where it is called `open_in_browser`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- This icon comes from the Android Material icon set, where it is called `open_in_browser`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportHeight="24.0"
+ android:viewportWidth="24.0" >
+
+ <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
+ <path
+ android:fillColor="#FF757575"
+ 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>
+++ /dev/null
-<!-- This icon comes from the Android Material icon set, where it is called `open_in_browser`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `open_in_browser`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- This icon comes from the Android Material icon set, where it is called `open_in_browser`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `open_in_browser`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- This icon comes from the Android Material icon set, where it is called `open_in_browser`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `open_in_browser`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- This icon comes from the Android Material icon set, where it is called `open_in_browser`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FF616161"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `open_in_browser`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- This icon comes from the Android Material icon set, where it is called `open_in_browser`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used instead. -->
- <path
- android:fillColor="#FFB7B7B7"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `open_in_browser`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- `refresh_disabled_dark.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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.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>
+++ /dev/null
-<!-- `refresh_disabled_light.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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.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>
+++ /dev/null
-<!-- `refresh_enabled_dark.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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.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>
+++ /dev/null
-<!-- `refresh_enabled_light.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- `save_dark.xml` 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" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFE0E0E0"
- 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
--- /dev/null
+<!-- 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" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FF616161"
+ 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
+++ /dev/null
-<!-- This drawable 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" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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
--- /dev/null
+<!-- 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" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FF1565C0"
+ 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
+++ /dev/null
-<!-- This drawable 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" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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
--- /dev/null
+<!-- 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" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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
+++ /dev/null
-<!-- `save_light.xml` 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" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFFFFFFF"
- 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
--- /dev/null
+<!-- 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" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FFE0E0E0"
+ 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
+++ /dev/null
-<!-- 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:autoMirrored="true"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- 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:autoMirrored="true"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- 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:autoMirrored="true"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FF616161"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FFB7B7B7"
+ 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>
+++ /dev/null
-<!-- 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:autoMirrored="true"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
- <path
- android:fillColor="#FFB7B7B7"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF616161"
+ 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>
+++ /dev/null
-<!-- 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:autoMirrored="true"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- 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:autoMirrored="true"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- `select_all_dark.xml` comes from the Android Material icon set, where it is called `select_all`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFE0E0E0"
- 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
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `select_all`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF616161"
+ 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
+++ /dev/null
-<!-- `select_all_light.xml` comes from the Android Material icon set, where it is called `select_all`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFFFFFFF"
- 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
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `select_all`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FFE0E0E0"
+ 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
-<!-- `settings.xml` comes from the Android Material icon set, where it is called `settings`. It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `settings`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0" >
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillColor="#FF000000"
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" />
+++ /dev/null
-<!-- `social_media_disabled_dark.xml` 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:autoMirrored="true"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `social_media_disabled_light.xml` 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:autoMirrored="true"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `social_media_enabled_dark.xml` 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:autoMirrored="true"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `social_media_enabled_light.xml` 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:autoMirrored="true"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
+++ /dev/null
-<!-- `social_media_ghosted_dark.xml` 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:autoMirrored="true"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF616161"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FFB7B7B7"
+ 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>
+++ /dev/null
-<!-- `social_media_ghosted_light.xml` 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:autoMirrored="true"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FFB7B7B7"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF616161"
+ 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>
+++ /dev/null
-<!-- `sort_dark.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FFE0E0E0"
- android:pathData="M3,18h6v-2L3,16v2zM3,6v2h18L21,6L3,6zM3,13h12v-2L3,11v2z" />
-</vector>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FF616161"
+ android:pathData="M3,18h6v-2L3,16v2zM3,6v2h18L21,6L3,6zM3,13h12v-2L3,11v2z" />
+</vector>
+++ /dev/null
-<!-- `sort_light.xml` 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.0"
- android:viewportWidth="24.0"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FFFFFFFF"
- android:pathData="M3,18h6v-2L3,16v2zM3,6v2h18L21,6L3,6zM3,13h12v-2L3,11v2z" />
-</vector>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FFE0E0E0"
+ android:pathData="M3,18h6v-2L3,16v2zM3,6v2h18L21,6L3,6zM3,13h12v-2L3,11v2z" />
+</vector>
+++ /dev/null
-<!-- `sort_selected_dark` 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. -->
-<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">
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` can be used. -->
- <path
- android:fillAlpha="0.11635222"
- android:fillColor="#000000"
- 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` can be used. -->
- <path
- android:fillAlpha="1"
- android:fillColor="#E0E0E0"
- android:pathData="M3,18H9V16H3ZM3,6v2h18v-2zM3,13H15V11H3Z" />
-</vector>
--- /dev/null
+<!-- 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. -->
+<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">
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FFE0E0E0"
+ 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="#FF616161"
+ android:pathData="M3,18H9V16H3ZM3,6v2h18v-2zM3,13H15V11H3Z" />
+</vector>
+++ /dev/null
-<!-- `sort_selected_light` 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. -->
-<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">
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` can be used. -->
- <path
- android:fillAlpha="0.11635222"
- android:fillColor="#000000"
- 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` can be used. -->
- <path
- android:fillAlpha="1"
- android:fillColor="#ffffff"
- android:pathData="M3,18H9V16H3ZM3,6v2h18v-2zM3,13H15V11H3Z" />
-</vector>
--- /dev/null
+<!-- 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. -->
+<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">
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FF616161"
+ 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="#FFE0E0E0"
+ android:pathData="M3,18H9V16H3ZM3,6v2h18v-2zM3,13H15V11H3Z" />
+</vector>
+++ /dev/null
-<!-- `ssl_certificate_enabled_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `ssl_certificate_enabled_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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>
+++ /dev/null
-<!-- `ssl_certificate_enabled_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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="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
+++ /dev/null
-<!-- `ssl_certificate_enabled_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` may be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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
-<!-- `tab_disabled_dark.xml` comes from the Android Material icon set, where it is called `tab`. It is released under the Apache License 2.0. -->
+<!-- This icon 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
-<!-- `tab` comes from the Android Material icon set, where it is called `tab`. It is released under the Apache License 2.0. -->
+<!-- This icon 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
-<!-- `tab_enabled_dark.xml` comes from the Android Material icon set, where it is called `tab`. It is released under the Apache License 2.0. -->
+<!-- This icon 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
-<!-- `tab_enabled_light.xml` comes from the Android Material icon set, where it is called `tab`. It is released under the Apache License 2.0. -->
+<!-- This icon 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
+++ /dev/null
-<!-- `theme_dark.xml` 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.0"
- android:viewportHeight="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF616161"
- 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
--- /dev/null
+<!-- 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.0"
+ android:viewportHeight="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FF1565C0"
+ 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
+++ /dev/null
-<!-- `theme_light.xml` 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.0"
- android:viewportHeight="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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
--- /dev/null
+<!-- 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.0"
+ android:viewportHeight="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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
+++ /dev/null
-<!-- `user_agent_dark.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- 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>
+++ /dev/null
-<!-- `user_agent_light.xml` 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.0"
- android:viewportWidth="24.0"
- android:autoMirrored="true"
- tools:ignore="VectorRaster" >
-
- <!-- A hard coded color must be used until API >= 21. Then `@color` can be used. -->
- <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>
--- /dev/null
+<!-- 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.0"
+ android:viewportWidth="24.0"
+ android:autoMirrored="true"
+ tools:ignore="VectorRaster" >
+
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
+ <path
+ android:fillColor="#FF1E88E5"
+ 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>
-<!-- `warning.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.
+<!-- 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. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportHeight="256.0"
android:viewportWidth="256.0" >
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<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" />
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<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" />
- <!-- We have to use a hard coded color until API >= 21. Then we can use `@color`. -->
+ <!-- A hard coded color must be used until API >= 21. Then `@color` or `?attr/colorControlNormal` may be used instead. -->
<path
android:fillAlpha="1"
android:fillColor="#ffffff"
+++ /dev/null
-<!-- `wide_viewport_disabled_dark.xml` comes from the Android Material icon set, where it is called `settings_overscan`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF9E9E9E"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `settings_overscan`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF757575"
+ 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>
+++ /dev/null
-<!-- `wide_viewport` comes from the Android Material icon set, where it is called `settings_overscan`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF757575"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `settings_overscan`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- `wide_viewport_enabled_dark.xml` comes from the Android Material icon set, where it is called `settings_overscan`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF1E88E5"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `settings_overscan`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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: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>
+++ /dev/null
-<!-- `wide_viewport_enabled_light.xml` comes from the Android Material icon set, where it is called `settings_overscan`. It is released under the Apache License 2.0. -->
-<vector
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportHeight="24.0"
- android:viewportWidth="24.0" >
-
- <!-- A hard coded color must be used until the minimum API >= 21. Then `@color` can be used. -->
- <path
- android:fillColor="#FF1565C0"
- 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>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `settings_overscan`. It is released under the Apache License 2.0. -->
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ 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="#FF1E88E5"
+ 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>
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017,2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2017,2019-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>>.
<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
- android:orientation="vertical" >
+ android:orientation="vertical"
+ android:background="?android:attr/colorBackground" >
<TextView
android:id="@+id/bookmarks_title_textview"
android:layout_width="match_parent"
android:textStyle="bold"
android:textSize="20sp"
- android:background="?attr/navigationHeaderBackground"
- android:textColor="?attr/navigationHeaderTextColor" />
+ android:textColor="?android:attr/textColorPrimary"
+ android:layout_margin="10dp" />
<ListView
android:id="@+id/bookmarks_drawer_listview"
android:layout_width="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="16dp"
- android:layout_marginBottom="155dp" />
+ android:layout_marginBottom="155dp"
+ android:src="?attr/bookmarksIcon" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/create_bookmark_folder_fab"
android:layout_width="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="16dp"
- android:layout_marginBottom="85dp" />
+ android:layout_marginBottom="85dp"
+ android:src="?attr/createFolderIcon" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/create_bookmark_fab"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="bottom|end"
- android:layout_margin="16dp" />
+ android:layout_margin="16dp"
+ android:src="?attr/createBookmarkIcon" />
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2016-2017,2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2016-2017,2019-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
You should have received a copy of the GNU General Public License
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
-<!-- android:fitsSystemWindows="true" moves the AppBar below the status bar.
- When it is specified the theme should include <item name="android:windowTranslucentStatus">true</item> to make the status bar a transparent, darkened overlay. -->
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/about_coordinatorlayout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent"
- android:layout_width="match_parent"
- android:fitsSystemWindows="true">
+ android:layout_width="match_parent" >
<!-- The linear layout with `orientation="vertical"` moves the view pager below the app bar layout. -->
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical" >
- <!-- `android:background="?attr/colorPrimaryDark"` must be set here or any space to the right of the tab layout on large devices will be the theme background color. -->
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/about_appbarlayout"
android:layout_height="wrap_content"
android:layout_width="match_parent"
- android:background="?attr/colorPrimaryDark" >
+ android:background="?android:attr/colorBackground" >
- <!-- `android:theme="?attr/appBarTextTheme"` sets the color of the text and icons in the `AppBar`. -->
<androidx.appcompat.widget.Toolbar
android:id="@+id/about_toolbar"
android:layout_height="wrap_content"
- android:layout_width="match_parent"
- android:background="?attr/colorPrimaryDark"
- android:theme="?attr/appBarTextTheme" />
+ android:layout_width="match_parent" />
- <!-- For some reason `tabIndicatorColor` does not pull from the style unless specified explicitly here. -->
<com.google.android.material.tabs.TabLayout
android:id="@+id/about_tablayout"
android:layout_height="wrap_content"
android:layout_width="match_parent"
- app:tabMode="scrollable"
- app:tabIndicatorColor="?attr/tabIndicatorColor"
- android:theme="?attr/tabLayoutTheme" />
+ app:tabMode="scrollable" />
</com.google.android.material.appbar.AppBarLayout>
- <!-- `android:layout_weight="1"` makes `about_viewpager` fill the rest of the screen. -->
+ <!-- `android:layout_weight="1"` makes the view pager fill the rest of the screen. -->
<androidx.viewpager.widget.ViewPager
android:id="@+id/about_viewpager"
android:layout_height="0dp"
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2016-2018,2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
You should have received a copy of the GNU General Public License
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
-<!-- The `ScrollView` allows the `LinearLayout` to scroll if it exceeds the height of the page. -->
+<!-- The scroll view allows the linear layout to scroll if it exceeds the height of the page. -->
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="wrap_content"
- android:layout_width="match_parent"
- android:background="?attr/aboutBackground" >
+ android:layout_width="match_parent" >
<LinearLayout
android:layout_height="wrap_content"
android:layout_height="wrap_content" >
<!--`tools:ignore="RtlSymmetry"` suppressed the lint warning about adding `android:paddingStart`, which wouldn't work with this layout.
- `tools:ignore="ContentDescription"` suppresses the lint warning about supplying a content description for the `ImageView`,
- which isn't needed in this case because the `ImageView` is only decorative. -->
+ `tools:ignore="ContentDescription"` suppresses the lint warning about supplying a content description for the image view,
+ which isn't needed in this case because the image view is only decorative. -->
<ImageView
android:id="@+id/icon"
android:layout_height="wrap_content"
android:text="@string/privacy_browser"
android:textStyle="bold"
android:textSize="22sp"
- android:textColor="?attr/aboutTitle"
+ android:textColor="?attr/blueTitleTextColor"
android:paddingTop="12dp"
android:layout_toEndOf="@id/icon" />
android:id="@+id/version"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
- android:textColor="?attr/aboutText"
+ android:textColor="?attr/blueTextColor"
android:textIsSelectable="true"
android:layout_below="@id/privacy_browser_textview"
android:layout_toEndOf="@id/icon" />
</RelativeLayout>
- <!-- The purpose of this `LinearLayout` is to provide padding on the start of the `TextViews` to make them line up with `about_version_icon`.
+ <!-- The purpose of this linear layout is to provide padding on the start of the text views to make them line up with `about_version_icon`.
Although we don't need it, we have to include `android:paddingEnd` to make lint happy. -->
<LinearLayout
android:layout_height="wrap_content"
android:text="@string/hardware"
android:textStyle="bold"
android:textSize="18sp"
- android:textColor="?attr/aboutTitle" />
+ android:textColor="?attr/blueTitleTextColor" />
<TextView
android:id="@+id/brand"
android:text="@string/software"
android:textStyle="bold"
android:textSize="18sp"
- android:textColor="?attr/aboutTitle"
+ android:textColor="?attr/blueTitleTextColor"
android:paddingTop="12dp" />
<TextView
android:text="@string/blocklists"
android:textStyle="bold"
android:textSize="18sp"
- android:textColor="?attr/aboutTitle"
+ android:textColor="?attr/blueTitleTextColor"
android:paddingTop="12dp" />
<TextView
android:text="@string/package_signature"
android:textStyle="bold"
android:textSize="18sp"
- android:textColor="?attr/aboutTitle"
+ android:textColor="?attr/blueTitleTextColor"
android:paddingTop="12dp" />
<TextView
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2017-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="wrap_content"
android:layout_width="match_parent"
- android:orientation="horizontal"
- android:background="?attr/spinnerBackground" >
+ android:orientation="horizontal" >
<ImageView
android:id="@+id/spinner_item_imageview"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:textSize="18sp"
- android:textColor="?attr/appbarSpinnerTextColorSelector" />
+ android:textColor="@color/checked_text_color_selector" />
</com.stoutner.privacybrowser.views.CheckedLinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2017-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:textSize="18sp"
- android:textColor="?attr/spinnerHeaderTextColor" />
+ android:textColor="?android:attr/textColorPrimary" />
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2016-2017,2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
You should have received a copy of the GNU General Public License
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
-<!-- `tools:ignore="UseCompoundDrawables"` removes the lint warning about using a compound drawable, which doesn't work well with the layout options on the `ImageView`. -->
+<!-- `tools:ignore="UseCompoundDrawables"` removes the lint warning about using a compound drawable, which doesn't work well with the layout options on the image view. -->
<LinearLayout
android:id="@+id/bookmarks_item_linearlayout"
xmlns:android="http://schemas.android.com/apk/res/android"
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2016-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2016-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
You should have received a copy of the GNU General Public License
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
-<!-- `android:fitsSystemWindows="true"` moves the AppBar below the status bar.
- When it is specified the theme should include `<item name="android:windowTranslucentStatus">true</item>` to make the status bar a transparent, darkened overlay. -->
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/bookmarks_coordinatorlayout"
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent"
- android:layout_width="match_parent"
- android:fitsSystemWindows="true" >
+ android:layout_width="match_parent" >
- <!-- the `LinearLayout` with `orientation="vertical"` moves the content below the `AppBarLayout`. -->
+ <!-- The linear layout with `orientation="vertical"` moves the content below the app bar layout. -->
<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/bookmarks_appbarlayout"
android:layout_height="wrap_content"
- android:layout_width="match_parent" >
+ android:layout_width="match_parent"
+ android:background="?android:attr/colorBackground" >
<androidx.appcompat.widget.Toolbar
android:id="@+id/bookmarks_toolbar"
android:layout_height="wrap_content"
- android:layout_width="match_parent"
- android:background="?attr/colorPrimaryDark"
- android:theme="?attr/appBarTextTheme"
- app:popupTheme="?attr/popupsTheme" />
+ android:layout_width="match_parent" />
</com.google.android.material.appbar.AppBarLayout>
<!-- `android:choiceMode="multipleChoiceModal"` allows the contextual action menu to select more than one item at a time.
- `android:dividerHeight` must be at least `1dp` or the `ListView` is inconsistent in calculating how many bookmarks are displayed. -->
+ `android:dividerHeight` must be at least `1dp` or the list view is inconsistent in calculating how many bookmarks are displayed. -->
<ListView
android:id="@+id/bookmarks_listview"
android:layout_height="match_parent"
android:layout_gravity="bottom|end"
android:layout_marginEnd="16dp"
android:layout_marginBottom="85dp"
- android:src="?attr/addFolderIcon" />
+ android:src="?attr/createFolderIcon" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/create_bookmark_fab"
android:layout_width="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
- android:src="?attr/addBookmarkIcon" />
+ android:src="?attr/createBookmarkIcon" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2016-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2016-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
You should have received a copy of the GNU General Public License
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
-<!-- `android:fitsSystemWindows="true"` moves the AppBar below the status bar.
- When it is specified the theme should include `<item name="android:windowTranslucentStatus">true</item>`
- to make the status bar a transparent, darkened overlay. -->
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/bookmarks_databaseview_coordinatorlayout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
- android:layout_width="match_parent"
- android:fitsSystemWindows="true" >
+ android:layout_width="match_parent" >
- <!-- The `LinearLayout` with `orientation="vertical"` moves the list view below the app bar layout. -->
+ <!-- The linear layout with `orientation="vertical"` moves the list view below the app bar layout. -->
<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/bookmarks_databaseview_appbarlayout"
android:layout_height="wrap_content"
- android:layout_width="match_parent" >
+ android:layout_width="match_parent"
+ android:background="?android:attr/colorBackground" >
<androidx.appcompat.widget.Toolbar
android:id="@+id/bookmarks_databaseview_toolbar"
android:layout_height="wrap_content"
- android:layout_width="match_parent"
- android:background="?attr/colorPrimaryDark"
- android:theme="?attr/appBarTextTheme" />
+ android:layout_width="match_parent" />
</com.google.android.material.appbar.AppBarLayout>
<!-- `android:choiceMode="multipleChoiceModal"` allows the contextual action menu to select more than one item at a time. -->
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2017-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>>.
<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
- android:orientation="vertical" >
+ android:orientation="vertical"
+ android:background="?android:attr/colorBackground" >
<TextView
android:id="@+id/bookmarks_title_textview"
android:layout_width="match_parent"
android:textStyle="bold"
android:textSize="20sp"
- android:background="?attr/navigationHeaderBackground"
- android:textColor="?attr/navigationHeaderTextColor" />
+ android:textColor="?android:attr/textColorPrimary"
+ android:layout_margin="10dp" />
<ListView
android:id="@+id/bookmarks_drawer_listview"
android:layout_width="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="16dp"
- android:layout_marginBottom="155dp" />
+ android:layout_marginBottom="155dp"
+ android:src="?attr/bookmarksIcon" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/create_bookmark_folder_fab"
android:layout_width="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="16dp"
- android:layout_marginBottom="85dp" />
+ android:layout_marginBottom="85dp"
+ android:src="?attr/createFolderIcon" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/create_bookmark_fab"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="bottom|end"
- android:layout_margin="16dp" />
+ android:layout_margin="16dp"
+ android:src="?attr/createBookmarkIcon" />
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2016-2017,2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
android:id="@+id/bookmark_name"
android:layout_height="wrap_content"
android:layout_width="match_parent"
- android:textColor="?android:attr/textColorPrimary"
android:textSize="22sp"
+ android:textColor="?android:attr/textColorPrimary"
android:layout_margin="10dp"
android:lines="1"
android:ellipsize="end" />
android:layout_width="wrap_content"
android:layout_marginBottom="4dp"
android:text="@string/open_with_default_browser"
- android:textSize="18sp"
- android:textColor="?android:textColorPrimary" />
+ android:textSize="18sp" />
<RadioButton
android:id="@+id/open_with_privacy_browser_radiobutton"
android:layout_width="wrap_content"
android:layout_marginTop="4dp"
android:text="@string/open_with_privacy_browser"
- android:textSize="18sp"
- android:textColor="?android:textColorPrimary" />
+ android:textSize="18sp" />
</RadioGroup>
</LinearLayout>
</ScrollView>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2017,2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
+<!-- An attribute that points to a drawable has to be used for the `android:background` until the minimum API >= 21.
+ After that, a single drawable may be referenced directly, which can set the background color using an attribute defined inside the drawable. -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2017-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
android:layout_marginTop="1dp"
android:layout_marginEnd="10dp"
android:layout_gravity="center_vertical"
- android:src="@drawable/user_agent_light"
+ android:src="@drawable/user_agent_day"
android:tint="?attr/domainSettingsIconTintColor"
android:contentDescription="@string/user_agent" />
android:layout_marginTop="1dp"
android:layout_marginEnd="10dp"
android:layout_gravity="center_vertical"
- android:src="@drawable/font_size_light"
+ android:src="@drawable/font_size_day"
android:tint="?attr/domainSettingsIconTintColor"
android:contentDescription="@string/font_size" />
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_marginStart="32dp"
- android:textColor="?attr/aboutText" />
+ android:textColor="?attr/blueTextColor" />
</LinearLayout>
</androidx.cardview.widget.CardView>
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_marginStart="32dp"
- android:textColor="?attr/aboutText" />
+ android:textColor="?attr/blueTextColor" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017,2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2017,2019-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
You should have received a copy of the GNU General Public License
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
-<!-- `android:fitsSystemWindows="true"` moves the AppBar below the status bar.
- When it is specified the theme should include `<item name="android:windowTranslucentStatus">true</item>` to make the status bar a transparent, darkened overlay. -->
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/domains_coordinatorlayout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:fitsSystemWindows="true" >
- <!-- The `LinearLayout` with `orientation="vertical"` moves the content below the `AppBarLayout`. -->
+ <!-- The linear layout with `orientation="vertical"` moves the content below the app bar layout. -->
<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
<com.google.android.material.appbar.AppBarLayout
android:layout_height="wrap_content"
- android:layout_width="match_parent" >
+ android:layout_width="match_parent"
+ android:background="?android:attr/colorBackground" >
<androidx.appcompat.widget.Toolbar
android:id="@+id/domains_toolbar"
android:layout_height="wrap_content"
- android:layout_width="match_parent"
- android:background="?attr/colorPrimaryDark"
- android:theme="?attr/appBarTextTheme" />
+ android:layout_width="match_parent" />
</com.google.android.material.appbar.AppBarLayout>
<include layout="@layout/domains_fragments" />
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2016-2017,2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2016-2017,2019-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
You should have received a copy of the GNU General Public License
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
-<!-- android:fitsSystemWindows="true" moves the AppBar below the status bar.
-When it is specified the theme should include <item name="android:windowTranslucentStatus">true</item> to make the status bar a transparent, darkened overlay. -->
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/guide_coordinatorlayout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent"
- android:layout_width="match_parent"
- android:fitsSystemWindows="true" >
+ android:layout_width="match_parent" >
- <!-- The `LinearLayout` with `orientation="vertical"` moves the `ViewPager` below the `AppBarLayout`. -->
+ <!-- The linear layout with `orientation="vertical"` moves the view pager below the app bar layout. -->
<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical" >
- <!-- `android:background="?attr/colorPrimaryDark"` needs to be set here or any space to the right of the `TabLayout` on large devices will be the theme background color. -->
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/guide_appbarlayout"
android:layout_height="wrap_content"
android:layout_width="match_parent"
- android:background="?attr/colorPrimaryDark" >
+ android:background="?android:attr/colorBackground" >
- <!-- `android:theme="?attr/appBarTextTheme"` sets the color of the text and icons in the `AppBar`. -->
<androidx.appcompat.widget.Toolbar
android:id="@+id/guide_toolbar"
android:layout_height="wrap_content"
- android:layout_width="match_parent"
- android:background="?attr/colorPrimaryDark"
- android:theme="?attr/appBarTextTheme" />
+ android:layout_width="match_parent" />
- <!-- For some reason `tabIndicatorColor` does not pull from the style unless specified explicitly here. -->
<com.google.android.material.tabs.TabLayout
android:id="@+id/guide_tablayout"
android:layout_height="wrap_content"
android:layout_width="match_parent"
- app:tabMode="scrollable"
- app:tabIndicatorColor="?attr/tabIndicatorColor"
- android:theme="?attr/tabLayoutTheme" />
+ app:tabMode="scrollable" />
</com.google.android.material.appbar.AppBarLayout>
<!-- `android:layout_weight="1"` makes `about_viewpager` fill the rest of the screen. -->
You should have received a copy of the GNU General Public License
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
-<!-- `android:fitsSystemWindows="true"` moves the AppBar below the status bar.
- When it is specified the theme should include `<item name="android:windowTranslucentStatus">true</item>` to make the status bar a transparent, darkened overlay. -->
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/import_export_coordinatorlayout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent"
- android:layout_width="match_parent"
- android:fitsSystemWindows="true" >
+ android:layout_width="match_parent" >
- <!-- the `LinearLayout` with `orientation="vertical"` moves the content below the `AppBarLayout`. -->
+ <!-- the linear layout with `orientation="vertical"` moves the content below the app bar layout. -->
<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/import_export_appbarlayout"
android:layout_height="wrap_content"
- android:layout_width="match_parent" >
+ android:layout_width="match_parent"
+ android:background="?android:attr/colorBackground" >
<androidx.appcompat.widget.Toolbar
android:id="@+id/import_export_toolbar"
android:layout_height="wrap_content"
- android:layout_width="match_parent"
- android:background="?attr/colorPrimaryDark"
- android:theme="?attr/appBarTextTheme"
- app:popupTheme="?attr/popupsTheme" />
+ android:layout_width="match_parent" />
</com.google.android.material.appbar.AppBarLayout>
<ScrollView
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="@string/kitkat_password_encryption_message"
- android:textColor="?android:textColorPrimary"
android:textAlignment="center" />
<!-- OpenKeychain required message. -->
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="@string/openkeychain_required"
- android:textColor="?android:textColorPrimary"
android:textAlignment="center" />
</LinearLayout>
</androidx.cardview.widget.CardView>
android:layout_gravity="center_horizontal"
android:layout_margin="5dp"
android:text="@string/openkeychain_import_instructions"
- android:textColor="?android:textColorPrimary"
android:textAlignment="center" />
<Button
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:text="@string/storage_permission_explanation"
- android:textColor="?android:textColorPrimary"
android:textAlignment="center" />
</LinearLayout>
</ScrollView>
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2018-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2018-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
You should have received a copy of the GNU General Public License
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
-<!-- `android:fitsSystemWindows="true"` moves the AppBar below the status bar.
- When it is specified the theme should include `<item name="android:windowTranslucentStatus">true</item>` to make the status bar a transparent, darkened overlay. -->
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/logcat_coordinatorlayout"
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent"
- android:layout_width="match_parent"
- android:fitsSystemWindows="true" >
+ android:layout_width="match_parent" >
<!-- the LinearLayout with `orientation="vertical"` moves the content below the AppBarLayout. -->
<LinearLayout
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/logcat_appbarlayout"
android:layout_height="wrap_content"
- android:layout_width="match_parent" >
+ android:layout_width="match_parent"
+ android:background="?android:attr/colorBackground" >
<androidx.appcompat.widget.Toolbar
android:id="@+id/logcat_toolbar"
android:layout_height="wrap_content"
- android:layout_width="match_parent"
- android:background="?attr/colorPrimaryDark"
- android:theme="?attr/appBarTextTheme"
- app:popupTheme="?attr/popupsTheme" />
+ android:layout_width="match_parent" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2015-2017,2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2015-2017,2019-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>>.
android:layout_height="match_parent"
android:layout_width="match_parent" >
- <!-- The relative layout contains the AdView and the coordinator layout, which contains the rest of the views.
- `android:fitsSystemWindows="true"` moves the toolbar below the system status bar but lets the drawers slide under the translucent status bar.
- When it is specified, the theme should include `<item name="android:windowTranslucentStatus">true</item>`. -->
+ <!-- The relative layout contains the AdView and the coordinator layout, which contains the rest of the views. -->
<RelativeLayout
android:id="@+id/main_content_relativelayout"
android:layout_height="match_parent"
- android:layout_width="match_parent"
- android:fitsSystemWindows="true" >
+ android:layout_width="match_parent" >
<!-- Include the AdView. For the standard flavor, this just includes a TextView with `visibility="gone"`. -->
<include layout="@layout/adview" />
android:focusable="true"
android:focusableInTouchMode="true" >
- <!-- The theme has to be defined here because the activity uses a `NoActionBar` theme. -->
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar_layout"
android:layout_height="wrap_content"
- android:layout_width="match_parent"
- android:theme="@style/PrivacyBrowserAppBarLight" >
+ android:layout_width="match_parent" >
+ <!-- The toolbar. It is initially `visibility="gone"` so it doesn't display while the blocklists are loading. -->
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
- app:layout_scrollFlags="scroll|enterAlways|snap"
- android:visibility="gone" />
+ android:visibility="gone"
+ app:layout_scrollFlags="scroll|enterAlways|snap" />
- <!-- The find on page linear layout. It is initially `visibility="gone"`. -->
+ <!-- The find on page linear layout. It is initially `visibility="gone"` so it doesn't display while the blocklists are loading. -->
<LinearLayout
android:id="@+id/find_on_page_linearlayout"
android:layout_height="wrap_content"
<ImageView
android:id="@+id/close_find"
- android:src="@drawable/close_light"
+ android:src="@drawable/close_day"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_marginStart="4dp"
android:onClick="closeFindOnPage" />
</LinearLayout>
+ <!-- The tab linear layout. It sets the background to the right of the add tab button. It is initially `visibility="gone"` so it doesn't display while the blocklists are loading. -->
<LinearLayout
android:id="@+id/tabs_linearlayout"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal"
- app:layout_scrollFlags="scroll|enterAlways|snap"
- android:visibility="gone" >
+ android:visibility="gone"
+ app:layout_scrollFlags="scroll|enterAlways|snap" >
<!-- `android:background="?attr/selectableItemBackground"` adds a ripple animation on touch. -->
<ImageView
android:layout_gravity="center_vertical"
android:paddingStart="10dp"
android:paddingEnd="10dp"
- android:src="@drawable/close_light"
+ android:src="@drawable/close_day"
android:tint="?attr/addTabIconTintColor"
android:background="?attr/selectableItemBackground"
android:onClick="closeTab"
android:layout_gravity="center_vertical"
android:paddingStart="10dp"
android:paddingEnd="10dp"
- android:src="@drawable/add_light"
+ android:src="@drawable/add_day"
android:tint="?attr/addTabIconTintColor"
android:background="?attr/selectableItemBackground"
android:onClick="addTab"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_gravity="start"
- app:headerLayout="@layout/navigation_header"
app:menu="@menu/webview_navigation_menu"
app:itemIconTint="?attr/navigationIconTintColor" />
android:layout_margin="10dp"
android:textSize="16sp"
android:textAlignment="center"
- android:textColor="?android:textColorPrimary" />
+ android:textColor="?android:attr/textColorPrimary" />
</RelativeLayout>
</FrameLayout>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- Copyright © 2016-2018 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/>. -->
-
-<TextView
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/navigationText"
- android:layout_height="wrap_content"
- android:layout_width="match_parent"
- android:text="@string/navigation"
- android:textStyle="bold"
- android:textSize="20sp"
- android:background="?attr/navigationHeaderBackground"
- android:textColor="?attr/navigationHeaderTextColor" />
\ No newline at end of file
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/storage_permission_explanation"
- android:textColor="?android:textColorPrimary"
android:textAlignment="center" />
</LinearLayout>
</ScrollView>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2017-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
android:id="@+id/pinned_ssl_certificate_mismatch_tablayout"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
- app:tabMode="scrollable"
- android:theme="?attr/dialogTabLayoutTheme" />
+ app:tabMode="scrollable" />
<ScrollView
android:layout_height="wrap_content"
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2017-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:textSize="18sp"
- android:textColor="?attr/appbarSpinnerTextColorSelector"
- android:background="?attr/spinnerBackground" />
\ No newline at end of file
+ android:textColor="@color/checked_text_color_selector" />
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2017-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:textSize="18sp"
- android:textColor="?attr/spinnerHeaderTextColor" />
\ No newline at end of file
+ android:textColor="?android:attr/textColorPrimary" />
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2018-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2018-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
You should have received a copy of the GNU General Public License
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
-<!-- `android:fitsSystemWindows="true"` moves the AppBar below the status bar.
- When it is specified the theme should include `<item name="android:windowTranslucentStatus">true</item>` to make the status bar a transparent, darkened overlay. -->
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/requests_coordinatorlayout"
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent"
- android:layout_width="match_parent"
- android:fitsSystemWindows="true" >
+ android:layout_width="match_parent" >
- <!-- the LinearLayout with `orientation="vertical"` moves the content below the AppBarLayout. -->
+ <!-- the linear layout with `orientation="vertical"` moves the content below the app bar layout. -->
<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/requests_appbarlayout"
android:layout_height="wrap_content"
- android:layout_width="match_parent" >
+ android:layout_width="match_parent"
+ android:background="?android:attr/colorBackground" >
<androidx.appcompat.widget.Toolbar
android:id="@+id/requests_toolbar"
android:layout_height="wrap_content"
- android:layout_width="match_parent"
- android:background="?attr/colorPrimaryDark"
- android:theme="?attr/appBarTextTheme"
- app:popupTheme="?attr/popupsTheme" />
+ android:layout_width="match_parent" />
</com.google.android.material.appbar.AppBarLayout>
- <!-- `android:dividerHeight` must be at least `1dp` or the `ListView` is inconsistent in calculating how many bookmarks are displayed. -->
+ <!-- `android:dividerHeight` must be at least `1dp` or the list view is inconsistent in calculating how many bookmarks are displayed. -->
<ListView
android:id="@+id/requests_listview"
android:layout_height="match_parent"
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2018 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2018,2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="match_parent"
- android:orientation="horizontal">
+ android:orientation="horizontal" >
<TextView
android:id="@+id/request_item_disposition"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/storage_permission_explanation"
- android:textColor="?android:textColorPrimary"
android:textAlignment="center" />
</LinearLayout>
</ScrollView>
\ No newline at end of file
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/storage_permission_explanation"
- android:textColor="?android:textColorPrimary"
android:textAlignment="center" />
</LinearLayout>
</ScrollView>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2016-2017,2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2016-2017,2019-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
- android:textColor="@color/red_a700"
+ android:textColor="?attr/redText"
android:textStyle="bold"/>
<!-- URL. -->
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:orientation="horizontal"
- tools:ignore="UseCompoundDrawables">
+ tools:ignore="UseCompoundDrawables" >
<ImageView
android:id="@+id/favorite_icon_imageview"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
- android:padding="10dp"
+ android:padding="15dp"
android:textColor="?attr/redText"
android:text="@string/no_ssl_certificate" />
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2016-2018,2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
android:id="@+id/history_url_textview"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
- android:textColor="?attr/urlHistoryText"
+ android:textColor="?android:attr/textColorPrimary"
android:textSize="16sp"
android:layout_margin="10dp"
android:lines="1"
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2015-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2015-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
<ImageView
android:id="@+id/back_arrow"
android:src="@drawable/back"
- android:tint="?attr/viewSourceIconTintColor"
+ android:tint="?attr/colorControlNormal"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_centerVertical="true"
You should have received a copy of the GNU General Public License
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
-<!-- `android:fitsSystemWindows="true"` moves the AppBar below the status bar. When it is specified the theme should include `<item name="android:windowTranslucentStatus">true</item>` to make the status bar a transparent, darkened overlay.
- Setting the layout root to be `focusableInTouchMode` prevents the URL toolbar from stealing focus on launch and opening the keyboard. -->
+<!-- Setting the layout root to be `focusableInTouchMode` prevents the URL toolbar from stealing focus on launch and opening the keyboard. -->
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/view_source_coordinatorlayout"
xmlns:android="http://schemas.android.com/apk/res/android"
tools:context="com.stoutner.privacybrowser.activities.ViewSourceActivity"
android:layout_height="match_parent"
android:layout_width="match_parent"
- android:fitsSystemWindows="true"
android:focusable="true"
android:focusableInTouchMode="true" >
android:layout_width="match_parent"
android:orientation="vertical" >
- <!-- The app bar layout theme may not need to be specified here. But more testing on all APIs needs to be done before it can be removed. -->
<com.google.android.material.appbar.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
- android:theme="@style/PrivacyBrowserAppBarLight" >
+ android:background="?android:attr/colorBackground" >
<!-- The frame layout allows the toolbar and the progress bar to occupy the same space. -->
<FrameLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="?attr/webViewBackground" >
+ android:background="?android:attr/colorBackground" >
+ <!-- TODO. The background and the visibility might not be necessary. -->
<!-- The WebView is initially `visibility="invisible"` so that the background color matches the theme. -->
<com.stoutner.privacybrowser.views.NestedScrollWebView
android:id="@+id/nestedscroll_webview"
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2016-2019 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2016-2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
<item
android:id="@+id/home"
android:title="@string/home"
- android:icon="@drawable/home_enabled_light"
+ android:icon="@drawable/home_enabled_day"
android:orderInCategory="20" />
<item
<item
android:id="@+id/open"
android:title="@string/open"
- android:icon="@drawable/proxy_enabled_light"
+ android:icon="@drawable/proxy_enabled_day"
android:orderInCategory="60" />
</group>
<item
android:id="@+id/requests"
android:title="@string/requests"
- android:icon="@drawable/block_ads_enabled_light"
+ android:icon="@drawable/block_ads_enabled_day"
android:orderInCategory="70" />
<item
android:id="@+id/downloads"
android:title="@string/downloads"
- android:icon="@drawable/downloads_enabled_light"
+ android:icon="@drawable/downloads_enabled_day"
android:orderInCategory="80" />
</group>
<item
android:id="@+id/import_export"
android:title="@string/import_export"
- android:icon="@drawable/import_export_light"
+ android:icon="@drawable/import_export_day"
android:orderInCategory="110" />
<item
<item
android:id="@+id/about"
android:title="@string/about"
- android:icon="@drawable/about_light"
+ android:icon="@drawable/about_day"
android:orderInCategory="140" />
</group>
</menu>
\ No newline at end of file
android:title="@string/first_party_cookies"
android:orderInCategory="400"
android:checkable="true"
- android:icon="@drawable/cookies_disabled_light"
+ android:icon="@drawable/cookies_disabled_day"
app:showAsAction="never" />
<item
android:title="@string/dom_storage"
android:orderInCategory="600"
android:checkable="true"
- android:icon="@drawable/dom_storage_disabled_light"
+ android:icon="@drawable/dom_storage_disabled_day"
app:showAsAction="never" />
<item
<string name="display_additional_app_bar_icons">Weitere Icons in der Titelleiste</string>
<string name="display_additional_app_bar_icons_summary">Zeigt in der App-Leiste die Icons zum Neu-Laden der Webseite und - sofern Platz vorhanden ist -
zum Umschalten von Cookies und DOM Storage.</string>
- <string name="dark_theme">Dunkles Thema</string>
- <string name="dark_theme_summary">Wechseln des Themas startet Privacy Browser neu.</string>
<string name="night_mode">Nacht-Modus</string>
<string name="night_mode_summary">Aktivieren des Nacht-Modus aktiviert JavaScript für alle Webseiten.</string>
<string name="wide_viewport_preference">Breiter Anzeigebereich</string>
<string name="scroll_app_bar_summary">Desplazar la barra de aplicaciones desde la parte superior de la pantalla cuando el WebView se desplaza hacia abajo.</string>
<string name="display_additional_app_bar_icons">Mostrar iconos adicionales en la barra de aplicación</string>
<string name="display_additional_app_bar_icons_summary">Mostrar iconos en la barra de aplicaciones para refrescar el WebView y, si hay espacio, para alternar entre cookies y almacenamiento DOM.</string>
- <string name="dark_theme">Tema oscuro</string>
- <string name="dark_theme_summary">Cambiar el tema reiniciará Navegador Privado.</string>
<string name="night_mode">Modo noche</string>
<string name="night_mode_summary">Activar el modo noche también activará javascript para todas las páginas web.</string>
<string name="wide_viewport_preference">Vista amplia</string>
<string name="display_additional_app_bar_icons">Icônes supplémentaires dans la barre d\'applications</string>
<string name="display_additional_app_bar_icons_summary">Affichez des icônes dans la barre d\'applications pour actualiser WebView et, le cas échéant,
pour activer/désactiver les cookies et le stockage DOM.</string>
- <string name="dark_theme">Thème sombre</string>
- <string name="dark_theme_summary">Le changement de thème redémarre Privacy Browser.</string>
<string name="night_mode">Mode nuit</string>
<string name="night_mode_summary">L\'activation du mode nuit activera également JavaScript pour toutes les pages Web.</string>
<string name="wide_viewport_preference">Large fenêtre</string>
<string name="display_additional_app_bar_icons">Mostra icone addizionali nella barra dell\'applicazione</string>
<string name="display_additional_app_bar_icons_summary">Mostra nella barra dell\'applicazione le icone per l\'aggiornamento di WebView e, se lo spazio è sufficiente,
per l\'attivazione dei cookie e del DOM storage.</string>
- <string name="dark_theme">Tema Dark</string>
- <string name="dark_theme_summary">La modifica del tema provocherà il riavvio di Privacy Browser.</string>
<string name="night_mode">Modalità Notte</string>
<string name="night_mode_summary">L\'abilitazione della modalità notte attiva anche JavaScript per tutte le pagine web.</string>
<string name="wide_viewport_preference">Finestra grande</string>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ Copyright © 2015-2020 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>
+ <item name="windowActionModeOverlay">true</item> <!-- `windowActionModeOverlay` makes the contextual app bar cover the support app bar. -->
+
+ <!-- Colors. -->
+ <item name="android:actionModeBackground">?android:attr/colorBackground</item>
+ <item name="android:textColorHighlight">@color/blue_800</item>
+ <item name="blueTextColor">@color/blue_700</item>
+ <item name="blueTitleTextColor">@color/blue_600</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/blue_600</item>
+ <item name="domainSettingsIconTintColor">@color/blue_800</item>
+ <item name="redText">@color/red_900</item>
+ <item name="sslTitle">@color/blue_700</item>
+
+ <!-- Tints. -->
+ <item name="addTabIconTintColor">@color/gray_400</item>
+ <item name="findOnPageIconTintColor">@color/blue_600</item>
+ <item name="navigationIconTintColor">@color/blue_600</item>
+ <item name="progressTintColor">@color/blue_600</item>
+
+ <!-- Drawables. -->
+ <item name="listSelectorDrawable">@drawable/list_selector_night</item>
+
+ <!-- Icons. -->
+ <item name="aboutIcon">@drawable/about_night</item>
+ <item name="addIcon">@drawable/add_night</item>
+ <item name="bookmarksIcon">@drawable/bookmarks_night</item>
+ <item name="clearIcon">@drawable/clear_night</item>
+ <item name="copyIcon">@drawable/copy_night</item>
+ <item name="createBookmarkIcon">@drawable/create_bookmark_night</item>
+ <item name="createFolderIcon">@drawable/create_folder_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="selectAllIcon">@drawable/select_all_night</item>
+ <item name="sortIcon">@drawable/sort_night</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_600</item>
+ <item name="colorPrimary">?android:attr/colorBackground</item> <!-- `colorPrimary` sets the background color of the app bar. -->
+
+ <!-- Icons. -->
+ <item name="appThemeIcon">@drawable/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" >
+ <item name="colorAccent">@color/blue_600</item>
+ </style>
+</resources>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ Copyright © 2015-2020 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:navigationBarColor">?android:attr/colorBackground</item>
+ <item name="android:statusBarColor">?android:attr/colorBackground</item>
+ <item name="android:windowLightNavigationBar">false</item>
+ <item name="android:windowLightStatusBar">false</item>
+ <item name="windowActionModeOverlay">true</item> <!-- `windowActionModeOverlay` makes the contextual app bar cover the support app bar. -->
+
+ <!-- Colors. -->
+ <item name="android:actionModeBackground">?android:attr/colorBackground</item>
+ <item name="android:textColorHighlight">@color/blue_800</item>
+ <item name="blueTextColor">@color/blue_700</item>
+ <item name="blueTitleTextColor">@color/blue_600</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/blue_600</item>
+ <item name="domainSettingsIconTintColor">@color/blue_800</item>
+ <item name="redText">@color/red_900</item>
+ <item name="sslTitle">@color/blue_700</item>
+
+ <!-- Tints. -->
+ <item name="addTabIconTintColor">@color/gray_400</item>
+ <item name="findOnPageIconTintColor">@color/blue_600</item>
+ <item name="navigationIconTintColor">@color/blue_600</item>
+ <item name="progressTintColor">@color/blue_600</item>
+
+ <!-- Drawables. -->
+ <item name="listSelectorDrawable">@drawable/list_selector_night</item>
+
+ <!-- Icons. -->
+ <item name="aboutIcon">@drawable/about_night</item>
+ <item name="addIcon">@drawable/add_night</item>
+ <item name="bookmarksIcon">@drawable/bookmarks_night</item>
+ <item name="clearIcon">@drawable/clear_night</item>
+ <item name="copyIcon">@drawable/copy_night</item>
+ <item name="createBookmarkIcon">@drawable/create_bookmark_night</item>
+ <item name="createFolderIcon">@drawable/create_folder_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="selectAllIcon">@drawable/select_all_night</item>
+ <item name="sortIcon">@drawable/sort_night</item>
+ </style>
+
+ <style name="PrivacyBrowserSettings" parent="Theme.AppCompat.DayNight" >
+ <!-- Main Items. -->
+ <item name="android:navigationBarColor">?android:attr/colorBackground</item>
+ <item name="android:statusBarColor">?android:attr/colorBackground</item>
+ <item name="android:windowLightNavigationBar">?attr/isLightTheme</item>
+ <item name="android:windowLightStatusBar">?attr/isLightTheme</item>
+
+ <!-- Colors. -->
+ <item name="colorAccent">@color/blue_600</item>
+ <item name="colorPrimary">?android:attr/colorBackground</item> <!-- `colorPrimary` sets the background color of the app bar. -->
+
+ <!-- Icons. -->
+ <item name="appThemeIcon">@drawable/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" >
+ <item name="colorAccent">@color/blue_600</item>
+ </style>
+</resources>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ Copyright © 2015-2020 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="windowActionModeOverlay">true</item> <!-- `windowActionModeOverlay` makes the contextual app bar cover the support app bar. -->
+
+ <!-- Colors. -->
+ <item name="android:actionModeBackground">?android:attr/colorBackground</item>
+ <item name="android:textColorHighlight">@color/blue_800</item>
+ <item name="blueTextColor">@color/blue_700</item>
+ <item name="blueTitleTextColor">@color/blue_600</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/blue_600</item>
+ <item name="domainSettingsIconTintColor">@color/blue_800</item>
+ <item name="redText">@color/red_900</item>
+ <item name="sslTitle">@color/blue_700</item>
+
+ <!-- Tints. -->
+ <item name="addTabIconTintColor">@color/gray_400</item>
+ <item name="findOnPageIconTintColor">@color/blue_600</item>
+ <item name="navigationIconTintColor">@color/blue_600</item>
+ <item name="progressTintColor">@color/blue_600</item>
+
+ <!-- Drawables. -->
+ <item name="listSelectorDrawable">@drawable/list_selector_night</item>
+
+ <!-- Icons. -->
+ <item name="aboutIcon">@drawable/about_night</item>
+ <item name="addIcon">@drawable/add_night</item>
+ <item name="bookmarksIcon">@drawable/bookmarks_night</item>
+ <item name="clearIcon">@drawable/clear_night</item>
+ <item name="copyIcon">@drawable/copy_night</item>
+ <item name="createBookmarkIcon">@drawable/create_bookmark_night</item>
+ <item name="createFolderIcon">@drawable/create_folder_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="selectAllIcon">@drawable/select_all_night</item>
+ <item name="sortIcon">@drawable/sort_night</item>
+ </style>
+
+ <style name="PrivacyBrowserSettings" parent="Theme.AppCompat.DayNight" >
+ <!-- Colors. -->
+ <item name="colorAccent">@color/blue_600</item>
+ <item name="colorPrimary">?android:attr/colorBackground</item> <!-- `colorPrimary` sets the background color of the app bar. -->
+
+ <!-- Icons. -->
+ <item name="appThemeIcon">@drawable/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" >
+ <item name="colorAccent">@color/blue_600</item>
+ </style>
+</resources>
\ No newline at end of file
<string name="scroll_app_bar_summary">Прокручивает панель приложения вверху экрана при прокрутке WebView вниз.</string>
<string name="display_additional_app_bar_icons">Отображать дополнительные значки на панели приложения</string>
<string name="display_additional_app_bar_icons_summary">Отображать значки на панели приложения для обновления WebView и, при наличии места, для переключения файлов cookie и хранилища DOM</string>
- <string name="dark_theme">Темная тема</string>
- <string name="dark_theme_summary">Изменение темы перезапускает Privacy Browser.</string>
<string name="night_mode">Ночной режим</string>
<string name="night_mode_summary">Включение ночного режима также включает JavaScript для всех веб-страниц.</string>
<string name="wide_viewport_preference">Широкий вид просмотра</string>
<string name="scroll_app_bar_summary">WebView aşağı kaydırıldığında, ekranın üst kısmından uygulama çubuğunu kaydırır.</string>
<string name="display_additional_app_bar_icons">Ek uygulama çubuğu simgelerini göster</string>
<string name="display_additional_app_bar_icons_summary">WebView\'ı yenilemek, yer varsa çerezleri ve DOM depolamayı değiştirmek için simgeleri uygulama çubuğunda gösterir.</string>
- <string name="dark_theme">Koyu tema</string>
- <string name="dark_theme_summary">Temayı değiştirmek Privacy Browser\'ı yeniden başlatır.</string>
<string name="night_mode">Gece modu</string>
<string name="night_mode_summary">Gece modunu etkinleştirmek, aynı zamanda tüm sitelerde JavaScript\'i etkinleştirir.</string>
<string name="wide_viewport_preference">Geniş ekran</string>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ Copyright © 2015-2020 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>
+ <item name="windowActionModeOverlay">true</item> <!-- `windowActionModeOverlay` makes the contextual app bar cover the support app bar. -->
+
+ <!-- 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="domainSettingsIconTintColor">@color/blue_800</item>
+ <item name="redText">@color/red_a700</item>
+ <item name="sslTitle">@color/blue_900</item>
+
+ <!-- Tints. -->
+ <item name="addTabIconTintColor">@color/gray_700</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>
+
+ <!-- Icons. -->
+ <item name="aboutIcon">@drawable/about_day</item>
+ <item name="addIcon">@drawable/add_day</item>
+ <item name="bookmarksIcon">@drawable/bookmarks_day</item>
+ <item name="clearIcon">@drawable/clear_day</item>
+ <item name="copyIcon">@drawable/copy_day</item>
+ <item name="createBookmarkIcon">@drawable/create_bookmark_day</item>
+ <item name="createFolderIcon">@drawable/create_folder_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="selectAllIcon">@drawable/select_all_day</item>
+ <item name="sortIcon">@drawable/sort_day</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/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" >
+ <item name="colorAccent">@color/blue_700</item>
+ </style>
+</resources>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ Copyright © 2015-2020 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:navigationBarColor">?android:attr/colorBackground</item>
+ <item name="android:statusBarColor">?android:attr/colorBackground</item>
+ <item name="android:windowLightNavigationBar">true</item>
+ <item name="android:windowLightStatusBar">true</item>
+ <item name="windowActionModeOverlay">true</item> <!-- `windowActionModeOverlay` makes the contextual app bar cover the support app bar. -->
+
+ <!-- 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="domainSettingsIconTintColor">@color/blue_800</item>
+ <item name="redText">@color/red_a700</item>
+ <item name="sslTitle">@color/blue_900</item>
+
+ <!-- Tints. -->
+ <item name="addTabIconTintColor">@color/gray_700</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>
+
+ <!-- Icons. -->
+ <item name="aboutIcon">@drawable/about_day</item>
+ <item name="addIcon">@drawable/add_day</item>
+ <item name="bookmarksIcon">@drawable/bookmarks_day</item>
+ <item name="clearIcon">@drawable/clear_day</item>
+ <item name="copyIcon">@drawable/copy_day</item>
+ <item name="createBookmarkIcon">@drawable/create_bookmark_day</item>
+ <item name="createFolderIcon">@drawable/create_folder_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="selectAllIcon">@drawable/select_all_day</item>
+ <item name="sortIcon">@drawable/sort_day</item>
+ </style>
+
+ <style name="PrivacyBrowserSettings" parent="Theme.AppCompat.DayNight" >
+ <!-- Main Items. -->
+ <item name="android:navigationBarColor">?android:attr/colorBackground</item>
+ <item name="android:statusBarColor">?android:attr/colorBackground</item>
+ <item name="android:windowLightNavigationBar">?attr/isLightTheme</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/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" >
+ <item name="colorAccent">@color/blue_700</item>
+ </style>
+</resources>
\ No newline at end of file
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
<resources>
- <attr name="appBarTheme" format="reference" />
- <attr name="appBarTextTheme" format="reference" />
- <attr name="dialogTabLayoutTheme" format="reference" />
- <attr name="popupsTheme" format="reference" />
- <attr name="tabLayoutTheme" format="reference" />
-
- <attr name="aboutBackground" format="reference" />
- <attr name="aboutTitle" format="reference" />
- <attr name="aboutText" format="reference" />
- <attr name="appbarSpinnerTextColorSelector" format="reference" />
- <attr name="buttonBackgroundColorSelector" format="reference" />
- <attr name="buttonTextColorSelector" format="reference" />
- <attr name="mainStatusBarBackground" format="reference" />
- <attr name="redText" format="reference" />
- <attr name="sslTitle" format="reference" />
- <attr name="sslHeader" format="reference" />
- <attr name="spinnerHeaderTextColor" format="reference" />
- <attr name="spinnerBackground" format="reference" />
- <attr name="spinnerTextColorSelector" format="reference" />
- <attr name="urlHistoryText" format="reference" />
- <attr name="webViewBackground" format="reference" />
-
- <attr name="navigationHeaderBackground" format="reference" />
- <attr name="navigationHeaderTextColor" format="reference" />
-
- <attr name="addTabIconTintColor" format="reference" />
- <attr name="domainSettingsIconTintColor" format="reference" />
- <attr name="findOnPageIconTintColor" format="reference" />
- <attr name="navigationIconTintColor" format="reference" />
- <attr name="progressTintColor" format="reference" />
- <attr name="viewSourceIconTintColor" format="reference" />
-
+ <!-- Colors. -->
+ <attr name="aboutBackground" format="color" />
+ <attr name="activatedListViewItemBackground" format="color" />
+ <attr name="blueTextColor" format="color" />
+ <attr name="blueTitleTextColor" format="color" />
+ <attr name="buttonBackgroundColorSelector" format="color" />
+ <attr name="buttonTextColorSelector" format="color" />
+ <attr name="redText" format="color" />
+ <attr name="sslTitle" format="color" />
+ <attr name="spinnerTextColorSelector" format="color" />
+
+ <!-- Tint Colors. -->
+ <attr name="addTabIconTintColor" format="color" />
+ <attr name="domainSettingsIconTintColor" format="color" />
+ <attr name="findOnPageIconTintColor" format="color" />
+ <attr name="navigationIconTintColor" format="color" />
+ <attr name="progressTintColor" format="color" />
+
+ <!-- Drawables. -->
<attr name="listSelectorDrawable" format="reference" />
+ <!-- Icons. -->
<attr name="aboutIcon" format="reference" />
- <attr name="addBookmarkIcon" format="reference" />
- <attr name="addFolderIcon" format="reference" />
<attr name="addIcon" format="reference" />
+ <attr name="appThemeIcon" format="reference" />
+ <attr name="bookmarksIcon" format="reference" />
<attr name="clearIcon" format="reference" />
<attr name="copyIcon" format="reference" />
+ <attr name="createBookmarkIcon" format="reference" />
+ <attr name="createFolderIcon" format="reference" />
<attr name="deleteIcon" format="reference" />
<attr name="downloadIcon" format="reference" />
<attr name="editIcon" format="reference" />
<string name="scroll_app_bar_summary">Scroll the app bar off the top of the screen when the WebView scrolls down.</string>
<string name="display_additional_app_bar_icons">Display additional app bar icons</string>
<string name="display_additional_app_bar_icons_summary">Display icons in the app bar for refreshing the WebView and, if there is room, for toggling cookies and DOM storage.</string>
- <string name="dark_theme">Dark theme</string>
- <string name="dark_theme_summary">Changing the theme will restart Privacy Browser.</string>
+ <string name="app_theme">App theme</string>
+ <string-array name="app_theme_entries">
+ <item>System default</item>
+ <item>Light</item>
+ <item>Dark</item>
+ </string-array>
+ <string-array name="app_theme_entry_values" translatable="false"> <!-- None of the items in this string array should be translated. -->
+ <item>System default</item>
+ <item>Light</item>
+ <item>Dark</item>
+ </string-array>
<string name="night_mode">Night mode</string>
<string name="night_mode_summary">Enabling night mode will also enable JavaScript for all web pages.</string>
<string name="wide_viewport_preference">Wide viewport</string>
<string name="download_location_default_value" translatable="false">Auto</string>
<string name="download_custom_location_default_value" translatable="false" />
<string name="font_size_default_value" translatable="false">100</string>
+ <string name="app_theme_default_value" translatable="false">System default</string>
<!-- Ad Control. There are no ads in the standard flavor, but these strings must exist because they are referenced in the code. -->
<string name="google_app_id" translatable="false">Null</string>
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
- xmlns:tools="http://schemas.android.com/tools">
- <!-- Light theme styles. -->
+<resources>
+ <style name="PrivacyBrowser" parent="Theme.AppCompat.DayNight.NoActionBar" >
+ <!-- Main Items. -->
+ <item name="windowActionModeOverlay">true</item> <!-- `windowActionModeOverlay` makes the contextual app bar cover the support app bar. -->
- <!-- `android:windowTranslucentStatus` makes the system status bar translucent. When it is specified the root layout should include `android:fitsSystemWindows="true"`. -->
- <style name="PrivacyBrowserLight" parent="Theme.AppCompat.Light.NoActionBar" >
- <item name="aboutIcon">@drawable/about_light</item>
- <item name="addTabIconTintColor">@color/gray_700</item>
+ <!-- Colors. -->
+ <item name="android:actionModeBackground">?android:attr/colorBackground</item>
<item name="android:textColorHighlight">@color/blue_200</item>
- <item name="android:textColorPrimary">@color/primary_text_color_selector_light</item>
- <item name="android:windowTranslucentStatus">true</item>
- <item name="appBarTheme">@style/PrivacyBrowserAppBarLight</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="dialogTabLayoutTheme">@style/PrivacyBrowserTabLayoutDialogLight</item>
+ <item name="domainSettingsIconTintColor">@color/blue_800</item>
+ <item name="redText">@color/red_a700</item>
+ <item name="sslTitle">@color/blue_900</item>
+
+ <!-- Tints. -->
+ <item name="addTabIconTintColor">@color/gray_700</item>
<item name="findOnPageIconTintColor">@color/blue_800</item>
- <item name="mainStatusBarBackground">@color/gray_500</item>
- <item name="navigationHeaderBackground">@color/blue_700</item>
- <item name="navigationHeaderTextColor">@color/white</item>
<item name="navigationIconTintColor">@color/blue_800</item>
<item name="progressTintColor">@color/blue_700</item>
- <item name="redText">@color/red_a700</item>
- <item name="sslHeader">@color/blue_700</item>
- <item name="sslTitle">@color/blue_900</item>
- <item name="urlHistoryText">@color/black</item>
- <item name="viewSourceIconTintColor">@color/black</item>
- <item name="webViewBackground">@color/gray_50</item>
- </style>
- <!-- `windowActionModeOverlay` makes the contextual app bar cover the support app bar. -->
- <style name="PrivacyBrowserLight.SecondaryActivity" >
- <item name="windowActionModeOverlay">true</item>
- <item name="android:windowTranslucentStatus">false</item>
- <item name="colorPrimaryDark">@color/blue_700</item>
- <item name="android:statusBarColor" tools:targetApi="21">@color/blue_900</item>
- <item name="android:textColorHighlight">@color/blue_200</item>
- <item name="android:actionModeBackground">@color/blue_700</item>
- <item name="spinnerHeaderTextColor">@color/white</item>
- <item name="spinnerBackground">@color/blue_750</item>
- <item name="spinnerTextColorSelector">@color/spinner_color_selector_light</item>
- <item name="appbarSpinnerTextColorSelector">@color/appbar_spinner_color_selector_light</item>
- <item name="buttonBackgroundColorSelector">@color/button_background_color_selector_light</item>
- <item name="buttonTextColorSelector">@color/button_text_color_selector_light</item>
- <item name="listSelectorDrawable">@drawable/list_selector_light</item>
- <item name="aboutTitle">@color/blue_900</item>
- <item name="aboutText">@color/blue_700</item>
- <item name="aboutBackground">@color/white</item>
- <item name="domainSettingsIconTintColor">@color/blue_800</item>
- <item name="deleteIcon">@drawable/delete_light</item>
- <item name="addIcon">@drawable/add_light</item>
- <item name="addBookmarkIcon">@drawable/create_bookmark_light</item>
- <item name="addFolderIcon">@drawable/create_folder_light</item>
- <item name="copyIcon">@drawable/copy_light</item>
- <item name="clearIcon">@drawable/clear_light</item>
- <item name="selectAllIcon">@drawable/select_all_light</item>
- <item name="editIcon">@drawable/edit_light</item>
- <item name="moveToFolderIcon">@drawable/move_to_folder_light</item>
- <item name="saveIcon">@drawable/save_light</item>
- <item name="sortIcon">@drawable/sort_light</item>
- <item name="actionBarPopupTheme">@style/PrivacyBrowserPopupsLight</item>
- <item name="appBarTextTheme">@style/PrivacyBrowserAppBarWhiteText</item>
- <item name="popupsTheme">@style/PrivacyBrowserPopupsLight</item>
- <item name="tabLayoutTheme">@style/PrivacyBrowserTabLayoutLight</item>
+ <!-- Drawables. -->
+ <item name="listSelectorDrawable">@drawable/list_selector_day</item>
+
+ <!-- Icons. -->
+ <item name="aboutIcon">@drawable/about_day</item>
+ <item name="addIcon">@drawable/add_day</item>
+ <item name="bookmarksIcon">@drawable/bookmarks_day</item>
+ <item name="clearIcon">@drawable/clear_day</item>
+ <item name="copyIcon">@drawable/copy_day</item>
+ <item name="createBookmarkIcon">@drawable/create_bookmark_day</item>
+ <item name="createFolderIcon">@drawable/create_folder_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="selectAllIcon">@drawable/select_all_day</item>
+ <item name="sortIcon">@drawable/sort_day</item>
</style>
- <!-- `colorPrimaryDark` is the color of the status bar. -->
- <style name="PrivacyBrowserSettingsLight" parent="Theme.AppCompat.Light.DarkActionBar" >
- <item name="colorPrimary">@color/blue_700</item>
- <item name="colorPrimaryDark">@color/blue_900</item>
+ <style name="PrivacyBrowserSettings" parent="Theme.AppCompat.DayNight" >
+ <!-- Colors. -->
<item name="colorAccent">@color/blue_700</item>
- <item name="downloadIcon">@drawable/downloads_enabled_light</item>
- <item name="fontSizeIcon">@drawable/font_size_light</item>
- <item name="homepageIcon">@drawable/home_enabled_light</item>
- <item name="searchIcon">@drawable/search_enabled_light</item>
- <item name="userAgentIcon">@drawable/user_agent_light</item>
- </style>
-
- <!-- `ThemeOverlay.AppCompat.ActionBar` makes the hamburger icons dark. -->
- <style name="PrivacyBrowserAppBarLight" parent="ThemeOverlay.AppCompat.ActionBar" />
-
- <!-- `ThemeOverlay.AppCompat.Dark.ActionBar` makes the text and the icons in the AppBar white. -->
- <style name="PrivacyBrowserAppBarWhiteText" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
-
- <!-- `ThemeOverlay.AppCompat.Light` makes the popups have a light background with dark text. -->
- <style name="PrivacyBrowserPopupsLight" parent="ThemeOverlay.AppCompat.Light" />
-
- <!-- Configure the About and Guide `TabLayouts`. -->
- <style name="PrivacyBrowserTabLayoutLight" parent="Widget.Design.TabLayout" >
- <item name="android:textColorPrimary">@color/white</item>
- <item name="android:textColorSecondary">@color/blue_100</item>
- <item name="tabIndicatorColor">@color/white</item>
- </style>
-
- <style name="PrivacyBrowserTabLayoutDialogLight" parent="Widget.Design.TabLayout" >
- <item name="android:textColorPrimary">@color/blue_700</item>
- <item name="android:textColorSecondary">@color/blue_700_50</item>
+ <item name="colorPrimary">?android:attr/colorBackground</item> <!-- `colorPrimary` sets the background color of the app bar. -->
+
+ <!-- Icons. -->
+ <item name="appThemeIcon">@drawable/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="PrivacyBrowserAlertDialogLight" parent="Theme.AppCompat.Light.Dialog.Alert" >
+ <style name="PrivacyBrowserAlertDialog" parent="Theme.AppCompat.DayNight.Dialog.Alert" >
<item name="colorAccent">@color/blue_700</item>
</style>
-
-
- <!-- Dark theme styles. -->
-
- <!-- `android:windowTranslucentStatus` makes the system status bar translucent. When it is specified the root layout should include `android:fitsSystemWindows="true"`. -->
- <style name="PrivacyBrowserDark" parent="Theme.AppCompat.NoActionBar" >
- <item name="aboutIcon">@drawable/about_dark</item>
- <item name="addTabIconTintColor">@color/gray_400</item>
- <item name="android:textColorHighlight">@color/blue_800</item>
- <item name="android:textColorPrimary">@color/primary_text_color_selector_dark</item>
- <item name="android:windowTranslucentStatus">true</item>
- <item name="appBarTheme">@style/PrivacyBrowserAppBarDark</item>
- <item name="colorAccent">@color/blue_600</item>
- <item name="findOnPageIconTintColor">@color/blue_600</item>
- <item name="mainStatusBarBackground">@color/black</item>
- <item name="navigationHeaderBackground">@color/blue_800</item>
- <item name="navigationHeaderTextColor">@color/gray_300</item>
- <item name="navigationIconTintColor">@color/blue_600</item>
- <item name="progressTintColor">@color/blue_600</item>
- <item name="redText">@color/red_900</item>
- <item name="sslHeader">@color/blue_400</item>
- <item name="sslTitle">@color/blue_700</item>
- <item name="urlHistoryText">@color/gray_200</item>
- <item name="viewSourceIconTintColor">@color/gray_300</item>
- <item name="webViewBackground">@color/gray_900</item>
- </style>
-
- <!-- `windowActionModeOverlay` makes the contextual app bar cover the support app bar. `colorPrimaryDark` goes behind the status bar, which is then darkened by the overlay.-->
- <style name="PrivacyBrowserDark.SecondaryActivity" >
- <item name="windowActionModeOverlay">true</item>
- <item name="android:windowTranslucentStatus">false</item>
- <item name="colorPrimaryDark">@color/blue_800</item>
- <item name="android:statusBarColor" tools:targetApi="21">@color/blue_900</item>
- <item name="android:actionModeBackground">@color/blue_800</item>
- <item name="spinnerHeaderTextColor">@color/gray_300</item>
- <item name="spinnerBackground">@color/blue_830</item>
- <item name="spinnerTextColorSelector">@color/spinner_color_selector_dark</item>
- <item name="appbarSpinnerTextColorSelector">@color/appbar_spinner_color_selector_dark</item>
- <item name="buttonTextColorSelector">@color/button_text_color_selector_dark</item>
- <item name="buttonBackgroundColorSelector">@color/button_background_color_selector_dark</item>
- <item name="aboutTitle">@color/blue_600</item>
- <item name="aboutText">@color/blue_400</item>
- <item name="aboutBackground">@color/gray_850</item>
- <item name="listSelectorDrawable">@drawable/list_selector_dark</item>
- <item name="domainSettingsIconTintColor">@color/blue_600</item>
- <item name="deleteIcon">@drawable/delete_dark</item>
- <item name="addIcon">@drawable/add_dark</item>
- <item name="addBookmarkIcon">@drawable/create_bookmark_dark</item>
- <item name="addFolderIcon">@drawable/create_folder_dark</item>
- <item name="clearIcon">@drawable/clear_dark</item>
- <item name="copyIcon">@drawable/copy_dark</item>
- <item name="selectAllIcon">@drawable/select_all_dark</item>
- <item name="editIcon">@drawable/edit_dark</item>
- <item name="moveToFolderIcon">@drawable/move_to_folder_dark</item>
- <item name="saveIcon">@drawable/save_dark</item>
- <item name="sortIcon">@drawable/sort_dark</item>
- <item name="android:spinnerDropDownItemStyle">@style/PrivacyBrowserSpinnerDropDownItemStyleDark</item>
- <item name="appBarTextTheme">@style/PrivacyBrowserAppBarDark</item>
- <item name="popupsTheme">@style/PrivacyBrowserPopupsDark</item>
- <item name="tabLayoutTheme">@style/PrivacyBrowserTabLayoutDark</item>
- </style>
-
- <style name="PrivacyBrowserSettingsDark" parent="Theme.AppCompat" >
- <item name="android:textColorPrimary">@color/primary_text_color_selector_dark</item>
- <item name="colorPrimary">@color/blue_800</item>
- <item name="colorPrimaryDark">@color/blue_900</item>
- <item name="colorAccent">@color/blue_600</item>
- <item name="downloadIcon">@drawable/downloads_enabled_dark</item>
- <item name="fontSizeIcon">@drawable/font_size_dark</item>
- <item name="homepageIcon">@drawable/home_enabled_dark</item>
- <item name="searchIcon">@drawable/search_enabled_dark</item>
- <item name="userAgentIcon">@drawable/user_agent_dark</item>
- </style>
-
- <!-- `ThemeOverlay.AppCompat.Dark.ActionBar` makes the text and the icons in the AppBar white. -->
- <style name="PrivacyBrowserAppBarDark" parent="ThemeOverlay.AppCompat.Dark.ActionBar" >
- <item name="android:textColorPrimary">@color/gray_300</item>
- </style>
-
- <!-- Configure the About and Guide `TabLayouts`. -->
- <style name="PrivacyBrowserTabLayoutDark" parent="Widget.Design.TabLayout" >
- <item name="tabBackground">@color/blue_800</item>
- <item name="android:textColorSecondary">@color/blue_300</item>
- <item name="tabIndicatorColor">@color/gray_300</item>
- </style>
-
- <style name="PrivacyBrowserAlertDialogDark" parent="Theme.AppCompat.Dialog.Alert" >
- <item name="android:windowBackground">@color/gray_850</item>
- <item name="android:textColorPrimary">@color/gray_300</item>
- <item name="android:textColorSecondary">@color/gray_300</item>
- <item name="colorAccent">@color/blue_600</item>
- </style>
-
- <style name="PrivacyBrowserSpinnerDropDownItemStyleDark" parent="Base.Widget.AppCompat.TextView.SpinnerItem" >
- <item name="android:textColor">@color/gray_300</item>
- </style>
-
- <!-- `ThemeOverlay.AppCompat.Dark` makes the popups have a dark background with light text. -->
- <style name="PrivacyBrowserPopupsDark" parent="ThemeOverlay.AppCompat.Dark" >
- <item name="android:textColorPrimary">@color/primary_text_color_selector_dark</item>
- </style>
</resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2018 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2018,2020 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
along with Privacy Browser. If not, see <http://www.gnu.org/licenses/>. -->
<!-- Allow HTTP traffic and disable HSTS, which has no benefit for Privacy Browser (because unspecified links default to HTTPS) but has negative fingerprinting implications. -->
-<network-security-config>
- <base-config cleartextTrafficPermitted="true" hstsEnforced="false" />
+<network-security-config
+ xmlns:tools="http://schemas.android.com/tools">
+ <base-config cleartextTrafficPermitted="true" hstsEnforced="false" tools:ignore="InsecureBaseConfiguration" />
</network-security-config>
\ No newline at end of file
android:entries="@array/download_location_entries"
android:entryValues="@array/download_location_entry_values"
android:defaultValue="@string/download_location_default_value"
- android:inputType="textUri"
android:icon="?attr/downloadIcon" />
<EditTextPreference
android:summary="@string/display_additional_app_bar_icons_summary"
android:defaultValue="false" />
- <SwitchPreference
- android:key="dark_theme"
- android:title="@string/dark_theme"
- android:summary="@string/dark_theme_summary"
- android:defaultValue="false" />
+ <ListPreference
+ android:key="app_theme"
+ android:title="@string/app_theme"
+ android:entries="@array/app_theme_entries"
+ android:entryValues="@array/app_theme_entry_values"
+ android:defaultValue="@string/app_theme_default_value"
+ android:icon="?attr/appThemeIcon" />
<SwitchPreference
android:key="night_mode"