</entry>
<entry key="vectorWizard">
<value>
- <PersistentState />
+ <PersistentState>
+ <option name="children">
+ <map>
+ <entry key="vectorAssetStep">
+ <value>
+ <PersistentState>
+ <option name="children">
+ <map>
+ <entry key="clipartAsset">
+ <value>
+ <PersistentState>
+ <option name="values">
+ <map>
+ <entry key="url" value="jar:file:/home/soren/Android/android-studio/plugins/android/lib/android.jar!/images/material_design_icons/action/ic_camera_enhance_black_24dp.xml" />
+ </map>
+ </option>
+ </PersistentState>
+ </value>
+ </entry>
+ </map>
+ </option>
+ <option name="values">
+ <map>
+ <entry key="outputName" value="allow_screenshots_enabled_dark" />
+ <entry key="sourceFile" value="$USER_HOME$" />
+ </map>
+ </option>
+ </PersistentState>
+ </value>
+ </entry>
+ </map>
+ </option>
+ </PersistentState>
</value>
</entry>
</map>
<h3>Advertisements</h3>
- <p>Privacy Browser Free displays a banner ad across the bottom of the screen using Google's AdMob network, which has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
- These ads are set to be non-personalized and the user is flagged as being under the age of consent,
- which removes all <a href="https://developers.google.com/admob/android/eu-consent#collect_consent">tracking and remarketing</a>.
- AdMob reports <em>anonymized summaries</em> of the following information to developers.</p>
+ <p>Privacy Browser Free einen Werbebanner unten am Bildschirm ein und verwendet hierfür Googles Netzwerk AdMob,
+ dessen eigene Datenschutzbestimmungen <a href="https://www.google.com/intl/en/policies/privacy/">hier zu finden sind</a>.
+ Diese Werbung wurde eingestellt als anonymisiert und der Benutzer ist als unter dem Schutzalter gesetzt,
+ was sämtliches <a href="https://developers.google.com/admob/android/eu-consent#collect_consent">Tracking und Remarketing</a> deaktiviert.
+ AdMob überträgt <em>anonymisierte Zusammenfassungen</em> folgender Informationen an die Entwickler.</p>
<ul>
- <li><item>Total impressions</item></li>
- <li><item>Total clicks</item></li>
- <li><item>Platforms</item> (eg. high-end mobile devices, tablets)</li>
- <li><item>Activity by country</item></li>
+ <li><item>Totale Besuche</item></li>
+ <li><item>Totale Klicks</item></li>
+ <li><item>Platform</item> (z.B. high-end Smartphones, Tablets)</li>
+ <li><item>Activitäten nach Ländern</item></li>
</ul>
<h3>Advertisements</h3>
- <p>Privacy Browser Free displays a banner ad across the bottom of the screen using Google's AdMob network, which has its <a href="https://www.google.com/intl/en/policies/privacy/">own privacy policy</a>.
- These ads are set to be non-personalized and the user is flagged as being under the age of consent,
- which removes all <a href="https://developers.google.com/admob/android/eu-consent#collect_consent">tracking and remarketing</a>.
- AdMob reports <em>anonymized summaries</em> of the following information to developers.</p>
+ <p>Privacy Browser Free einen Werbebanner unten am Bildschirm ein und verwendet hierfür Googles Netzwerk AdMob,
+ dessen eigene Datenschutzbestimmungen <a href="https://www.google.com/intl/en/policies/privacy/">hier zu finden sind</a>.
+ Diese Werbung wurde eingestellt als anonymisiert und der Benutzer ist als unter dem Schutzalter gesetzt,
+ was sämtliches <a href="https://developers.google.com/admob/android/eu-consent#collect_consent">Tracking und Remarketing</a> deaktiviert.
+ AdMob überträgt <em>anonymisierte Zusammenfassungen</em> folgender Informationen an die Entwickler.</p>
<ul>
- <li><item>Total impressions</item></li>
- <li><item>Total clicks</item></li>
- <li><item>Platforms</item> (eg. high-end mobile devices, tablets)</li>
- <li><item>Activity by country</item></li>
+ <li><item>Totale Besuche</item></li>
+ <li><item>Totale Klicks</item></li>
+ <li><item>Platform</item> (z.B. high-end Smartphones, Tablets)</li>
+ <li><item>Activitäten nach Ländern</item></li>
</ul>
-<!-- `privacy_browser_foreground.xml` is derived from `ic_security` and `ic_language`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
+<!-- `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.
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"
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2015-2017 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2015-2018 Soren Stoutner <soren@stoutner.com>.
+
+ Translation 2018 Stefan Erhardt. Copyright assigned to Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
<resources>
<!-- Activities. -->
<string name="privacy_browser">Privacy Browser Free</string>
+
+ <!-- Ad Consent. -->
+ <string name="ad_consent_text">Privacy Browser Free blendet einen Werbebanner unten am Bildschirm ein.
+ Diese Werbungen kommen von Googles üblich genutzten Anbietern und sind anonymisiert und nicht verfolgend eingestellt. \n\nDie Standardversion von Privacy Browser beinhaltet keine Werbung.</string>
+ <string name="close_browser">Browser schließen</string>
+ <string name="accept_ads">Werbung zustimmen</string>
</resources>
\ No newline at end of file
<h3>2.10 (version code 33)</h3>
<p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=29e6b7b467e6987d6aa42429b03e3b5498acbae3">24. Mai 2018</a> - Mindest-API 19, Ziel-API 27</p>
<ul>
- <li>Enable <a href="https://redmine.stoutner.com/issues/1">uploading of files</a> to websites on Lollipop and newer.</li>
- <li>Allow <a href="https://redmine.stoutner.com/issues/216">applied user agents to be auto-updated</a> with new releases.</li>
- <li>Add a <a href="https://redmine.stoutner.com/issues/269">download URL option</a> to the context menu.</li>
- <li>Add an <a href="https://redmine.stoutner.com/issues/278">ad consent dialog</a> and update the <a href="https://www.stoutner.com/privacy-browser/privacy-policy/">privacy policy</a>
- for Privacy Browser Free to comply with the GDPR.</li>
- <li>Use the new GDPR ad controls to set all app ads in Privacy Browser Free to be
- <a href="https://developers.google.com/admob/android/eu-consent#collect_consent">non-personalized and non-tracking</a>.</li>
- <li>Fix a bug introduced in version 2.9 that <a href="https://redmine.stoutner.com/issues/282">prevented bookmarks from being loaded</a> from the Bookmarks activity.</li>
- <li>Fix a bug that caused some changes in domain settings to <a href="https://redmine.stoutner.com/issues/281">not be applied until after a reload</a>.</li>
- <li>Improve the workflow when <a href="https://redmine.stoutner.com/issues/276">adding</a> and <a href="https://redmine.stoutner.com/issues/240">editing</a>
- domain settings from the options menu.</li>
+ <li><a href="https://redmine.stoutner.com/issues/1">Dateiuploads</a> auf Webseiten unter Lollipop und neuer.</li>
+ <li><a href="https://redmine.stoutner.com/issues/216">Automatische Aktualisierung von user agents</a> mit neuen Releases.</li>
+ <li>Neue Option <a href="https://redmine.stoutner.com/issues/269">URL herunterladen</a> im Kontextmenü.</li>
+ <li>Neuer <a href="https://redmine.stoutner.com/issues/278">Dialog über Werbung</a> und aktualisierte <a href="https://www.stoutner.com/privacy-browser/privacy-policy/">Datenschutzbestimmungen</a>
+ des Privacy Browser Free im Rahmen der EU-DSGV.</li>
+ <li>Neue Möglichkeit, die Werbung in Privacy Browser Free <a href="https://developers.google.com/admob/android/eu-consent#collect_consent">anonymisiert und nicht verfolgend</a> einzustellen.</li>
+ <li>Bug fix aus Version 2.9: <a href="https://redmine.stoutner.com/issues/282">Lesezeichen wurden aus der Lesezeichen-Aktivität nicht geladen</a>.</li>
+ <li>Bug fix: <a href="https://redmine.stoutner.com/issues/281">Domaineinstellungen wurden teilweise erst nach Neuladen übernommen</a>.</li>
+ <li>Verbesserte Dialogführung beim <a href="https://redmine.stoutner.com/issues/276">Hinzufügen</a> und <a href="https://redmine.stoutner.com/issues/240">Bearbeiten</a>
+ von Domaineinstellungen in den Optionen.</li>
<li>Aktualisierte italienische Übersetzung von Francesco Buratti.</li>
<li>Aktualisierte russische Übersetzung.</li>
<li>Aktualisierte spanische Übersetzung von Jose A. León Becerra.</li>
<h3>2.9 (version code 32)</h3>
<p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=39cde1235af331de5e5ff454ac2daf667d7d894f">9. Mai 2018</a> - Mindest-API 19, Ziel-API 27</p>
<ul>
- <li>Verwendung des <a href="https://redmine.stoutner.com/issues/224">öffentlichen Download-Ordners</a> (requires <a href="https://redmine.stoutner.com/issues/79">write storage permission</a>).</li>
+ <li>Verwendung des <a href="https://redmine.stoutner.com/issues/224">öffentlichen Download-Ordners</a> (benötigt <a href="https://redmine.stoutner.com/issues/79">Schreibrechte</a>).</li>
<li>Neue <a href="https://redmine.stoutner.com/issues/223">Einstellungen für die Block-List</a> in den Domain-Einstellungen.</li>
<li>Unterstützung vom <a href="https://redmine.stoutner.com/issues/268">Starten anderer Anwendungen mit Hilfe eigener URLs</a>.</li>
<li>Neue Hilfe zum <a href="https://redmine.stoutner.com/issues/247">Lesezeichen-Tab</a>.</li>
<h3>2.10 (version code 33)</h3>
<p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=29e6b7b467e6987d6aa42429b03e3b5498acbae3">24. Mai 2018</a> - Mindest-API 19, Ziel-API 27</p>
<ul>
- <li>Enable <a href="https://redmine.stoutner.com/issues/1">uploading of files</a> to websites on Lollipop and newer.</li>
- <li>Allow <a href="https://redmine.stoutner.com/issues/216">applied user agents to be auto-updated</a> with new releases.</li>
- <li>Add a <a href="https://redmine.stoutner.com/issues/269">download URL option</a> to the context menu.</li>
- <li>Add an <a href="https://redmine.stoutner.com/issues/278">ad consent dialog</a> and update the <a href="https://www.stoutner.com/privacy-browser/privacy-policy/">privacy policy</a>
- for Privacy Browser Free to comply with the GDPR.</li>
- <li>Use the new GDPR ad controls to set all app ads in Privacy Browser Free to be
- <a href="https://developers.google.com/admob/android/eu-consent#collect_consent">non-personalized and non-tracking</a>.</li>
- <li>Fix a bug introduced in version 2.9 that <a href="https://redmine.stoutner.com/issues/282">prevented bookmarks from being loaded</a> from the Bookmarks activity.</li>
- <li>Fix a bug that caused some changes in domain settings to <a href="https://redmine.stoutner.com/issues/281">not be applied until after a reload</a>.</li>
- <li>Improve the workflow when <a href="https://redmine.stoutner.com/issues/276">adding</a> and <a href="https://redmine.stoutner.com/issues/240">editing</a>
- domain settings from the options menu.</li>
+ <li><a href="https://redmine.stoutner.com/issues/1">Dateiuploads</a> auf Webseiten unter Lollipop und neuer.</li>
+ <li><a href="https://redmine.stoutner.com/issues/216">Automatische Aktualisierung von user agents</a> mit neuen Releases.</li>
+ <li>Neue Option <a href="https://redmine.stoutner.com/issues/269">URL herunterladen</a> im Kontextmenü.</li>
+ <li>Neuer <a href="https://redmine.stoutner.com/issues/278">Dialog über Werbung</a> und aktualisierte <a href="https://www.stoutner.com/privacy-browser/privacy-policy/">Datenschutzbestimmungen</a>
+ des Privacy Browser Free im Rahmen der EU-DSGV.</li>
+ <li>Neue Möglichkeit, die Werbung in Privacy Browser Free <a href="https://developers.google.com/admob/android/eu-consent#collect_consent">anonymisiert und nicht verfolgend</a> einzustellen.</li>
+ <li>Bug fix aus Version 2.9: <a href="https://redmine.stoutner.com/issues/282">Lesezeichen wurden aus der Lesezeichen-Aktivität nicht geladen</a>.</li>
+ <li>Bug fix: <a href="https://redmine.stoutner.com/issues/281">Domaineinstellungen wurden teilweise erst nach Neuladen übernommen</a>.</li>
+ <li>Verbesserte Dialogführung beim <a href="https://redmine.stoutner.com/issues/276">Hinzufügen</a> und <a href="https://redmine.stoutner.com/issues/240">Bearbeiten</a>
+ von Domaineinstellungen in den Optionen.</li>
<li>Aktualisierte italienische Übersetzung von Francesco Buratti.</li>
<li>Aktualisierte russische Übersetzung.</li>
<li>Aktualisierte spanische Übersetzung von Jose A. León Becerra.</li>
<h3>2.9 (version code 32)</h3>
<p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=39cde1235af331de5e5ff454ac2daf667d7d894f">9. Mai 2018</a> - Mindest-API 19, Ziel-API 27</p>
<ul>
- <li>Verwendung des <a href="https://redmine.stoutner.com/issues/224">öffentlichen Download-Ordners</a> (requires <a href="https://redmine.stoutner.com/issues/79">write storage permission</a>).</li>
+ <li>Verwendung des <a href="https://redmine.stoutner.com/issues/224">öffentlichen Download-Ordners</a> (benötigt <a href="https://redmine.stoutner.com/issues/79">Schreibrechte</a>).</li>
<li>Neue <a href="https://redmine.stoutner.com/issues/223">Einstellungen für die Block-List</a> in den Domain-Einstellungen.</li>
<li>Unterstützung vom <a href="https://redmine.stoutner.com/issues/268">Starten anderer Anwendungen mit Hilfe eigener URLs</a>.</li>
<li>Neue Hilfe zum <a href="https://redmine.stoutner.com/issues/247">Lesezeichen-Tab</a>.</li>
<h3>Icons</h3>
<p><img class="left" src="../shared_images/privacy_browser.png"> <img class="left" src="../shared_images/privacy_browser_free.png"> <img class="left" src="../shared_images/warning.png">
- <img class="left" src="../shared_images/javascript_enabled.png"> are derived from ic_security and ic_language, which are part of the
- <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+ <img class="left" src="../shared_images/javascript_enabled.png"> are derived from <code>security</code> and <code>language</code>,
+ which are part of the <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
The full text of the license is below. Modifications copyright © 2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting images are released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/move_to_folder_dark.png"> is derived from elements of ic_folder and ic_exit_to_app, which are part of the
+ <p><img class="left" src="../shared_images/move_to_folder_dark.png"> is derived from elements of <code>folder</code> and <code>exit_to_app</code>, which are part of the
<a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/create_bookmark_dark.png"> is derived from elements of ic_bookmark and ic_create_new_folder, which are part of the
+ <p><img class="left" src="../shared_images/create_bookmark_dark.png"> is derived from elements of <code>bookmark</code> and <code>create_new_folder</code>, which are part of the
<a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/create_folder_dark.png"> is derived from ic_create_new_folder, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
- and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ <p><img class="left" src="../shared_images/create_folder_dark.png"> is derived from <code>create_new_folder</code>,
+ which is part of the <a href="https://material.io/icons/">Android Material icon set</a> and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+ Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/clear_and_exit_dark.png"> is derived from ic_exit_to_app, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
+ <p><img class="left" src="../shared_images/clear_and_exit_dark.png"> is derived from <code>exit_to_app</code>, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/night_mode_dark.png"> is derived from ic_compare, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
+ <p><img class="left" src="../shared_images/night_mode_dark.png"> is derived from <code>compare</code>, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
<p><img class="left" src="../shared_images/orbot_dark.png"> orbot is a modified version of
which is copyright 2009-2010 Nathan Freitas, The Guardian Project. It is released under the <a href="https://gitweb.torproject.org/orbot.git/tree/LICENSE">3-clause BSD license</a>.
The full text of the license is below. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/cookie_dark.png"> cookie was created by Google. It is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
- and can be downloaded from <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>.
- It is unchanged except for layout information like color and size.</p>
+ <p><img class="left" src="../shared_images/cookie_dark.png"> <code>cookie</code> was created by Google.
+ It is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
+ and can be downloaded from <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>. It is unchanged except for layout information like color and size.</p>
<p>The following icons come from the <a href="https://material.io/icons/">Android Material icon set</a>,
which is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
They are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.</p>
- <p><img class="icon" src="../shared_images/ic_add_dark.png"> ic_add.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_back_dark.png"> ic_arrow_back.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_forward_dark.png"> ic_arrow_forward.</p>
- <p><img class="icon" src="../shared_images/ic_bookmark_border_dark.png"> ic_bookmark_border.</p>
- <p><img class="icon" src="../shared_images/ic_bug_report_dark.png"> ic_bug_report.</p>
- <p><img class="icon" src="../shared_images/ic_call_to_action_dark.png"> ic_call_to_action.</p>
- <p><img class="icon" src="../shared_images/ic_chrome_reader_mode_dark.png"> ic_chrome_reader_mode.</p>
- <p><img class="icon" src="../shared_images/ic_close_dark.png"> ic_close.</p>
- <p><img class="icon" src="../shared_images/ic_delete_dark.png"> ic_delete.</p>
- <p><img class="icon" src="../shared_images/ic_delete_forever_dark.png"> ic_delete_forever.</p>
- <p><img class="icon" src="../shared_images/ic_devices_other_dark.png"> ic_devices_other.</p>
- <p><img class="icon" src="../shared_images/ic_dns_dark.png"> ic_dns.</p>
- <p><img class="icon" src="../shared_images/ic_donut_small_dark.png"> ic_donut_small.</p>
- <p><img class="icon" src="../shared_images/ic_edit_dark.png"> ic_edit.</p>
- <p><img class="icon" src="../shared_images/ic_expand_less_dark.png"> ic_expand_less.</p>
- <p><img class="icon" src="../shared_images/ic_expand_more_dark.png"> ic_expand_more.</p>
- <p><img class="icon" src="../shared_images/ic_file_download_dark.png"> ic_file_download.</p>
- <p><img class="icon" src="../shared_images/ic_find_in_page_dark.png"> ic_find_in_page.</p>
- <p><img class="icon" src="../shared_images/ic_folder_dark.png"> ic_folder.</p>
- <p><img class="icon" src="../shared_images/ic_fullscreen_dark.png"> ic_fullscreen.</p>
- <p><img class="icon" src="../shared_images/ic_home_dark.png"> ic_home.</p>
- <p><img class="icon" src="../shared_images/ic_image_dark.png"> ic_image.</p>
- <p><img class="icon" src="../shared_images/ic_import_contacts_dark.png"> ic_import_contacts.</p>
- <p><img class="icon" src="../shared_images/ic_important_devices_dark.png"> ic_important_devices.</p>
- <p><img class="icon" src="../shared_images/ic_info_outline_dark.png"> ic_info_outline.</p>
- <p><img class="icon" src="../shared_images/ic_language_dark.png"> ic_language.</p>
- <p><img class="icon" src="../shared_images/ic_list_dark.png"> ic_list.</p>
- <p><img class="icon" src="../shared_images/ic_local_activity_dark.png"> ic_local_activity.</p>
- <p><img class="icon" src="../shared_images/ic_location_off_dark.png"> ic_location_off.</p>
- <p><img class="icon" src="../shared_images/ic_lock_dark.png"> ic_lock.</p>
- <p><img class="icon" src="../shared_images/ic_map_dark.png"> ic_map.</p>
- <p><img class="icon" src="../shared_images/ic_more_dark.png"> ic_more.</p>
- <p><img class="icon" src="../shared_images/ic_question_answer_dark.png"> ic_question_answer.</p>
- <p><img class="icon" src="../shared_images/ic_refresh_dark.png"> ic_refresh.</p>
- <p><img class="icon" src="../shared_images/ic_search_dark.png"> ic_search.</p>
- <p><img class="icon" src="../shared_images/ic_select_all_dark.png"> ic_select_all.</p>
- <p><img class="icon" src="../shared_images/ic_settings_dark.png"> ic_settings.</p>
- <p><img class="icon" src="../shared_images/ic_smartphone_dark.png"> ic_smartphone.</p>
- <p><img class="icon" src="../shared_images/ic_style_dark.png"> ic_style.</p>
- <p><img class="icon" src="../shared_images/ic_subtitles_dark.png"> ic_subtitles.</p>
- <p><img class="icon" src="../shared_images/ic_text_fields_dark.png"> ic_text_fields.</p>
- <p><img class="icon" src="../shared_images/ic_thumbs_up_down_dark.png"> ic_thumbs_up_down.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_bottom_dark.png"> ic_vertical_align_bottom.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_top_dark.png"> ic_vertical_align_top.</p>
- <p><img class="icon" src="../shared_images/ic_visibility_off_dark.png"> ic_visibility_off.</p>
- <p><img class="icon" src="../shared_images/ic_vpn_lock_dark.png"> ic_vpn_lock.</p>
- <p><img class="icon" src="../shared_images/ic_web_dark.png"> ic_web.</p>
+ <p><img class="icon" src="../shared_images/add_dark.png"> add.</p>
+ <p><img class="icon" src="../shared_images/arrow_back_dark.png"> arrow_back.</p>
+ <p><img class="icon" src="../shared_images/arrow_forward_dark.png"> arrow_forward.</p>
+ <p><img class="icon" src="../shared_images/bookmark_border_dark.png"> bookmark_border.</p>
+ <p><img class="icon" src="../shared_images/bug_report_dark.png"> bug_report.</p>
+ <p><img class="icon" src="../shared_images/call_to_action_dark.png"> call_to_action.</p>
+ <p><img class="icon" src="../shared_images/camera_enhance_dark.png"> camera_enhance.</p>
+ <p><img class="icon" src="../shared_images/chrome_reader_mode_dark.png"> chrome_reader_mode.</p>
+ <p><img class="icon" src="../shared_images/close_dark.png"> close.</p>
+ <p><img class="icon" src="../shared_images/delete_dark.png"> delete.</p>
+ <p><img class="icon" src="../shared_images/delete_forever_dark.png"> delete_forever.</p>
+ <p><img class="icon" src="../shared_images/devices_other_dark.png"> devices_other.</p>
+ <p><img class="icon" src="../shared_images/dns_dark.png"> dns.</p>
+ <p><img class="icon" src="../shared_images/donut_small_dark.png"> donut_small.</p>
+ <p><img class="icon" src="../shared_images/edit_dark.png"> edit.</p>
+ <p><img class="icon" src="../shared_images/expand_less_dark.png"> expand_less.</p>
+ <p><img class="icon" src="../shared_images/expand_more_dark.png"> expand_more.</p>
+ <p><img class="icon" src="../shared_images/file_download_dark.png"> file_download.</p>
+ <p><img class="icon" src="../shared_images/find_in_page_dark.png"> find_in_page.</p>
+ <p><img class="icon" src="../shared_images/folder_dark.png"> folder.</p>
+ <p><img class="icon" src="../shared_images/fullscreen_dark.png"> fullscreen.</p>
+ <p><img class="icon" src="../shared_images/home_dark.png"> home.</p>
+ <p><img class="icon" src="../shared_images/image_dark.png"> image.</p>
+ <p><img class="icon" src="../shared_images/import_contacts_dark.png"> import_contacts.</p>
+ <p><img class="icon" src="../shared_images/important_devices_dark.png"> important_devices.</p>
+ <p><img class="icon" src="../shared_images/info_outline_dark.png"> info_outline.</p>
+ <p><img class="icon" src="../shared_images/language_dark.png"> language.</p>
+ <p><img class="icon" src="../shared_images/list_dark.png"> list.</p>
+ <p><img class="icon" src="../shared_images/local_activity_dark.png"> local_activity.</p>
+ <p><img class="icon" src="../shared_images/location_off_dark.png"> location_off.</p>
+ <p><img class="icon" src="../shared_images/lock_dark.png"> lock.</p>
+ <p><img class="icon" src="../shared_images/map_dark.png"> map.</p>
+ <p><img class="icon" src="../shared_images/more_dark.png"> more.</p>
+ <p><img class="icon" src="../shared_images/question_answer_dark.png"> question_answer.</p>
+ <p><img class="icon" src="../shared_images/refresh_dark.png"> refresh.</p>
+ <p><img class="icon" src="../shared_images/search_dark.png"> search.</p>
+ <p><img class="icon" src="../shared_images/select_all_dark.png"> select_all.</p>
+ <p><img class="icon" src="../shared_images/settings_dark.png"> settings.</p>
+ <p><img class="icon" src="../shared_images/smartphone_dark.png"> smartphone.</p>
+ <p><img class="icon" src="../shared_images/style_dark.png"> style.</p>
+ <p><img class="icon" src="../shared_images/subtitles_dark.png"> subtitles.</p>
+ <p><img class="icon" src="../shared_images/text_fields_dark.png"> text_fields.</p>
+ <p><img class="icon" src="../shared_images/thumbs_up_down_dark.png"> thumbs_up_down.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_bottom_dark.png"> vertical_align_bottom.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_top_dark.png"> vertical_align_top.</p>
+ <p><img class="icon" src="../shared_images/visibility_off_dark.png"> visibility_off.</p>
+ <p><img class="icon" src="../shared_images/vpn_lock_dark.png"> vpn_lock.</p>
+ <p><img class="icon" src="../shared_images/web_dark.png"> web.</p>
<hr/>
<h3>Icons</h3>
<p><img class="left" src="../shared_images/privacy_browser.png"> <img class="left" src="../shared_images/privacy_browser_free.png"> <img class="left" src="../shared_images/warning.png">
- <img class="left" src="../shared_images/javascript_enabled.png"> are derived from ic_security and ic_language, which are part of the
- <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+ <img class="left" src="../shared_images/javascript_enabled.png"> are derived from <code>security</code> and <code>language</code>,
+ which are part of the <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
The full text of the license is below. Modifications copyright © 2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting images are released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/move_to_folder_light.png"> is derived from elements of ic_folder and ic_exit_to_app, which are part of the
- <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+ <p><img class="left" src="../shared_images/move_to_folder_light.png"> is derived from elements of <code>folder</code> and <code>exit_to_app</code>,
+ which are part of the <a href="https://material.io/icons/">Android Material icon set</a>
+ and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/create_bookmark_light.png"> is derived from elements of ic_bookmark and ic_create_new_folder, which are part of the
+ <p><img class="left" src="../shared_images/create_bookmark_light.png"> is derived from elements of <code>bookmark</code> and <code>create_new_folder</code>, which are part of the
<a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/create_folder_light.png"> is derived from ic_create_new_folder, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
- and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ <p><img class="left" src="../shared_images/create_folder_light.png"> is derived from <code>create_new_folder</code>,
+ which is part of the <a href="https://material.io/icons/">Android Material icon set</a> and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+ Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/clear_and_exit_light.png"> is derived from ic_exit_to_app, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
+ <p><img class="left" src="../shared_images/clear_and_exit_light.png"> is derived from <code>exit_to_app</code>, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/night_mode_light.png"> is derived from ic_compare, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
+ <p><img class="left" src="../shared_images/night_mode_light.png"> is derived from <code>compare</code>, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
<p><img class="left" src="../shared_images/orbot_light.png"> orbot is a modified version of
which is copyright 2009-2010 Nathan Freitas, The Guardian Project. It is released under the <a href="https://gitweb.torproject.org/orbot.git/tree/LICENSE">3-clause BSD license</a>.
The full text of the license is below. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/cookie_light.png"> cookie was created by Google. It is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
+ <p><img class="left" src="../shared_images/cookie_light.png"> <code>cookie</code> was created by Google.
+ It is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
and can be downloaded from <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>. It is unchanged except for layout information like color and size.</p>
<p>The following icons come from the <a href="https://material.io/icons/">Android Material icon set</a>,
which is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
They are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.</p>
- <p><img class="icon" src="../shared_images/ic_add_light.png"> ic_add.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_back_light.png"> ic_arrow_back.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_forward_light.png"> ic_arrow_forward.</p>
- <p><img class="icon" src="../shared_images/ic_bookmark_border_light.png"> ic_bookmark_border.</p>
- <p><img class="icon" src="../shared_images/ic_bug_report_light.png"> ic_bug_report.</p>
- <p><img class="icon" src="../shared_images/ic_call_to_action_light.png"> ic_call_to_action.</p>
- <p><img class="icon" src="../shared_images/ic_chrome_reader_mode_light.png"> ic_chrome_reader_mode.</p>
- <p><img class="icon" src="../shared_images/ic_close_light.png"> ic_close.</p>
- <p><img class="icon" src="../shared_images/ic_delete_light.png"> ic_delete.</p>
- <p><img class="icon" src="../shared_images/ic_delete_forever_light.png"> ic_delete_forever.</p>
- <p><img class="icon" src="../shared_images/ic_devices_other_light.png"> ic_devices_other.</p>
- <p><img class="icon" src="../shared_images/ic_dns_light.png"> ic_dns.</p>
- <p><img class="icon" src="../shared_images/ic_donut_small_light.png"> ic_donut_small.</p>
- <p><img class="icon" src="../shared_images/ic_edit_light.png"> ic_edit.</p>
- <p><img class="icon" src="../shared_images/ic_expand_less_light.png"> ic_expand_less.</p>
- <p><img class="icon" src="../shared_images/ic_expand_more_light.png"> ic_expand_more.</p>
- <p><img class="icon" src="../shared_images/ic_file_download_light.png"> ic_file_download.</p>
- <p><img class="icon" src="../shared_images/ic_find_in_page_light.png"> ic_find_in_page.</p>
- <p><img class="icon" src="../shared_images/ic_folder_light.png"> ic_folder.</p>
- <p><img class="icon" src="../shared_images/ic_fullscreen_light.png"> ic_fullscreen.</p>
- <p><img class="icon" src="../shared_images/ic_home_light.png"> ic_home.</p>
- <p><img class="icon" src="../shared_images/ic_image_light.png"> ic_image.</p>
- <p><img class="icon" src="../shared_images/ic_import_contacts_light.png"> ic_import_contacts.</p>
- <p><img class="icon" src="../shared_images/ic_important_devices_light.png"> ic_important_devices.</p>
- <p><img class="icon" src="../shared_images/ic_info_outline_light.png"> ic_info_outline.</p>
- <p><img class="icon" src="../shared_images/ic_language_light.png"> ic_language.</p>
- <p><img class="icon" src="../shared_images/ic_list_light.png"> ic_list.</p>
- <p><img class="icon" src="../shared_images/ic_local_activity_light.png"> ic_local_activity.</p>
- <p><img class="icon" src="../shared_images/ic_location_off_light.png"> ic_location_off.</p>
- <p><img class="icon" src="../shared_images/ic_lock_light.png"> ic_lock.</p>
- <p><img class="icon" src="../shared_images/ic_map_light.png"> ic_map.</p>
- <p><img class="icon" src="../shared_images/ic_more_light.png"> ic_more.</p>
- <p><img class="icon" src="../shared_images/ic_question_answer_light.png"> ic_question_answer.</p>
- <p><img class="icon" src="../shared_images/ic_refresh_light.png"> ic_refresh.</p>
- <p><img class="icon" src="../shared_images/ic_search_light.png"> ic_search.</p>
- <p><img class="icon" src="../shared_images/ic_select_all_light.png"> ic_select_all.</p>
- <p><img class="icon" src="../shared_images/ic_settings_light.png"> ic_settings.</p>
- <p><img class="icon" src="../shared_images/ic_smartphone_light.png"> ic_smartphone.</p>
- <p><img class="icon" src="../shared_images/ic_style_light.png"> ic_style.</p>
- <p><img class="icon" src="../shared_images/ic_subtitles_light.png"> ic_subtitles.</p>
- <p><img class="icon" src="../shared_images/ic_text_fields_light.png"> ic_text_fields.</p>
- <p><img class="icon" src="../shared_images/ic_thumbs_up_down_light.png"> ic_thumbs_up_down.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_bottom_light.png"> ic_vertical_align_bottom.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_top_light.png"> ic_vertical_align_top.</p>
- <p><img class="icon" src="../shared_images/ic_visibility_off_light.png"> ic_visibility_off.</p>
- <p><img class="icon" src="../shared_images/ic_vpn_lock_light.png"> ic_vpn_lock.</p>
- <p><img class="icon" src="../shared_images/ic_web_light.png"> ic_web.</p>
+ <p><img class="icon" src="../shared_images/add_light.png"> add.</p>
+ <p><img class="icon" src="../shared_images/arrow_back_light.png"> arrow_back.</p>
+ <p><img class="icon" src="../shared_images/arrow_forward_light.png"> arrow_forward.</p>
+ <p><img class="icon" src="../shared_images/bookmark_border_light.png"> bookmark_border.</p>
+ <p><img class="icon" src="../shared_images/bug_report_light.png"> bug_report.</p>
+ <p><img class="icon" src="../shared_images/call_to_action_light.png"> call_to_action.</p>
+ <p><img class="icon" src="../shared_images/camera_enhance_light.png"> camera_enhance.</p>
+ <p><img class="icon" src="../shared_images/chrome_reader_mode_light.png"> chrome_reader_mode.</p>
+ <p><img class="icon" src="../shared_images/close_light.png"> close.</p>
+ <p><img class="icon" src="../shared_images/delete_light.png"> delete.</p>
+ <p><img class="icon" src="../shared_images/delete_forever_light.png"> delete_forever.</p>
+ <p><img class="icon" src="../shared_images/devices_other_light.png"> devices_other.</p>
+ <p><img class="icon" src="../shared_images/dns_light.png"> dns.</p>
+ <p><img class="icon" src="../shared_images/donut_small_light.png"> donut_small.</p>
+ <p><img class="icon" src="../shared_images/edit_light.png"> edit.</p>
+ <p><img class="icon" src="../shared_images/expand_less_light.png"> expand_less.</p>
+ <p><img class="icon" src="../shared_images/expand_more_light.png"> expand_more.</p>
+ <p><img class="icon" src="../shared_images/file_download_light.png"> file_download.</p>
+ <p><img class="icon" src="../shared_images/find_in_page_light.png"> find_in_page.</p>
+ <p><img class="icon" src="../shared_images/folder_light.png"> folder.</p>
+ <p><img class="icon" src="../shared_images/fullscreen_light.png"> fullscreen.</p>
+ <p><img class="icon" src="../shared_images/home_light.png"> home.</p>
+ <p><img class="icon" src="../shared_images/image_light.png"> image.</p>
+ <p><img class="icon" src="../shared_images/import_contacts_light.png"> import_contacts.</p>
+ <p><img class="icon" src="../shared_images/important_devices_light.png"> important_devices.</p>
+ <p><img class="icon" src="../shared_images/info_outline_light.png"> info_outline.</p>
+ <p><img class="icon" src="../shared_images/language_light.png"> language.</p>
+ <p><img class="icon" src="../shared_images/list_light.png"> list.</p>
+ <p><img class="icon" src="../shared_images/local_activity_light.png"> local_activity.</p>
+ <p><img class="icon" src="../shared_images/location_off_light.png"> location_off.</p>
+ <p><img class="icon" src="../shared_images/lock_light.png"> lock.</p>
+ <p><img class="icon" src="../shared_images/map_light.png"> map.</p>
+ <p><img class="icon" src="../shared_images/more_light.png"> more.</p>
+ <p><img class="icon" src="../shared_images/question_answer_light.png"> question_answer.</p>
+ <p><img class="icon" src="../shared_images/refresh_light.png"> refresh.</p>
+ <p><img class="icon" src="../shared_images/search_light.png"> search.</p>
+ <p><img class="icon" src="../shared_images/select_all_light.png"> select_all.</p>
+ <p><img class="icon" src="../shared_images/settings_light.png"> settings.</p>
+ <p><img class="icon" src="../shared_images/smartphone_light.png"> smartphone.</p>
+ <p><img class="icon" src="../shared_images/style_light.png"> style.</p>
+ <p><img class="icon" src="../shared_images/subtitles_light.png"> subtitles.</p>
+ <p><img class="icon" src="../shared_images/text_fields_light.png"> text_fields.</p>
+ <p><img class="icon" src="../shared_images/thumbs_up_down_light.png"> thumbs_up_down.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_bottom_light.png"> vertical_align_bottom.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_top_light.png"> vertical_align_top.</p>
+ <p><img class="icon" src="../shared_images/visibility_off_light.png"> visibility_off.</p>
+ <p><img class="icon" src="../shared_images/vpn_lock_light.png"> vpn_lock.</p>
+ <p><img class="icon" src="../shared_images/web_light.png"> web.</p>
<hr/>
<h3>Icons</h3>
<p><img class="left" src="../shared_images/privacy_browser.png"> <img class="left" src="../shared_images/privacy_browser_free.png"> <img class="left" src="../shared_images/warning.png">
- <img class="left" src="../shared_images/javascript_enabled.png"> are derived from ic_security and ic_language,
+ <img class="left" src="../shared_images/javascript_enabled.png"> are derived from <code>security</code> and <code>language</code>,
which are part of the <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
The full text of the license is below. Modifications copyright © 2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting images are released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/move_to_folder_dark.png"> is derived from elements of ic_folder and ic_exit_to_app, which are part of the
+ <p><img class="left" src="../shared_images/move_to_folder_dark.png"> is derived from elements of <code>folder</code> and <code>exit_to_app</code>, which are part of the
<a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/create_bookmark_dark.png"> is derived from elements of ic_bookmark and ic_create_new_folder, which are part of the
+ <p><img class="left" src="../shared_images/create_bookmark_dark.png"> is derived from elements of <code>bookmark</code> and <code>create_new_folder</code>, which are part of the
<a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/create_folder_dark.png"> is derived from ic_create_new_folder, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
- and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ <p><img class="left" src="../shared_images/create_folder_dark.png"> is derived from <code>create_new_folder</code>,
+ which is part of the <a href="https://material.io/icons/">Android Material icon set</a> and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+ Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/clear_and_exit_dark.png"> is derived from ic_exit_to_app, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
+ <p><img class="left" src="../shared_images/clear_and_exit_dark.png"> is derived from <code>exit_to_app</code>, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/night_mode_dark.png"> is derived from ic_compare, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
+ <p><img class="left" src="../shared_images/night_mode_dark.png"> is derived from <code>compare</code>, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
<p><img class="left" src="../shared_images/orbot_dark.png"> orbot is a modified version of
which is copyright 2009-2010 Nathan Freitas, The Guardian Project. It is released under the <a href="https://gitweb.torproject.org/orbot.git/tree/LICENSE">3-clause BSD license</a>.
The full text of the license is below. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/cookie_dark.png"> cookie was created by Google. It is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
+ <p><img class="left" src="../shared_images/cookie_dark.png"> <code>cookie</code> was created by Google.
+ It is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
and can be downloaded from <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>. It is unchanged except for layout information like color and size.</p>
<p>The following icons come from the <a href="https://material.io/icons/">Android Material icon set</a>,
which is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
They are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.</p>
- <p><img class="icon" src="../shared_images/ic_add_dark.png"> ic_add.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_back_dark.png"> ic_arrow_back.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_forward_dark.png"> ic_arrow_forward.</p>
- <p><img class="icon" src="../shared_images/ic_bookmark_border_dark.png"> ic_bookmark_border.</p>
- <p><img class="icon" src="../shared_images/ic_bug_report_dark.png"> ic_bug_report.</p>
- <p><img class="icon" src="../shared_images/ic_call_to_action_dark.png"> ic_call_to_action.</p>
- <p><img class="icon" src="../shared_images/ic_chrome_reader_mode_dark.png"> ic_chrome_reader_mode.</p>
- <p><img class="icon" src="../shared_images/ic_close_dark.png"> ic_close.</p>
- <p><img class="icon" src="../shared_images/ic_delete_dark.png"> ic_delete.</p>
- <p><img class="icon" src="../shared_images/ic_delete_forever_dark.png"> ic_delete_forever.</p>
- <p><img class="icon" src="../shared_images/ic_devices_other_dark.png"> ic_devices_other.</p>
- <p><img class="icon" src="../shared_images/ic_dns_dark.png"> ic_dns.</p>
- <p><img class="icon" src="../shared_images/ic_donut_small_dark.png"> ic_donut_small.</p>
- <p><img class="icon" src="../shared_images/ic_edit_dark.png"> ic_edit.</p>
- <p><img class="icon" src="../shared_images/ic_expand_less_dark.png"> ic_expand_less.</p>
- <p><img class="icon" src="../shared_images/ic_expand_more_dark.png"> ic_expand_more.</p>
- <p><img class="icon" src="../shared_images/ic_file_download_dark.png"> ic_file_download.</p>
- <p><img class="icon" src="../shared_images/ic_find_in_page_dark.png"> ic_find_in_page.</p>
- <p><img class="icon" src="../shared_images/ic_folder_dark.png"> ic_folder.</p>
- <p><img class="icon" src="../shared_images/ic_fullscreen_dark.png"> ic_fullscreen.</p>
- <p><img class="icon" src="../shared_images/ic_home_dark.png"> ic_home.</p>
- <p><img class="icon" src="../shared_images/ic_image_dark.png"> ic_image.</p>
- <p><img class="icon" src="../shared_images/ic_import_contacts_dark.png"> ic_import_contacts.</p>
- <p><img class="icon" src="../shared_images/ic_important_devices_dark.png"> ic_important_devices.</p>
- <p><img class="icon" src="../shared_images/ic_info_outline_dark.png"> ic_info_outline.</p>
- <p><img class="icon" src="../shared_images/ic_language_dark.png"> ic_language.</p>
- <p><img class="icon" src="../shared_images/ic_list_dark.png"> ic_list.</p>
- <p><img class="icon" src="../shared_images/ic_local_activity_dark.png"> ic_local_activity.</p>
- <p><img class="icon" src="../shared_images/ic_location_off_dark.png"> ic_location_off.</p>
- <p><img class="icon" src="../shared_images/ic_lock_dark.png"> ic_lock.</p>
- <p><img class="icon" src="../shared_images/ic_map_dark.png"> ic_map.</p>
- <p><img class="icon" src="../shared_images/ic_more_dark.png"> ic_more.</p>
- <p><img class="icon" src="../shared_images/ic_question_answer_dark.png"> ic_question_answer.</p>
- <p><img class="icon" src="../shared_images/ic_refresh_dark.png"> ic_refresh.</p>
- <p><img class="icon" src="../shared_images/ic_search_dark.png"> ic_search.</p>
- <p><img class="icon" src="../shared_images/ic_select_all_dark.png"> ic_select_all.</p>
- <p><img class="icon" src="../shared_images/ic_settings_dark.png"> ic_settings.</p>
- <p><img class="icon" src="../shared_images/ic_smartphone_dark.png"> ic_smartphone.</p>
- <p><img class="icon" src="../shared_images/ic_style_dark.png"> ic_style.</p>
- <p><img class="icon" src="../shared_images/ic_subtitles_dark.png"> ic_subtitles.</p>
- <p><img class="icon" src="../shared_images/ic_text_fields_dark.png"> ic_text_fields.</p>
- <p><img class="icon" src="../shared_images/ic_thumbs_up_down_dark.png"> ic_thumbs_up_down.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_bottom_dark.png"> ic_vertical_align_bottom.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_top_dark.png"> ic_vertical_align_top.</p>
- <p><img class="icon" src="../shared_images/ic_visibility_off_dark.png"> ic_visibility_off.</p>
- <p><img class="icon" src="../shared_images/ic_vpn_lock_dark.png"> ic_vpn_lock.</p>
- <p><img class="icon" src="../shared_images/ic_web_dark.png"> ic_web.</p>
+ <p><img class="icon" src="../shared_images/add_dark.png"> add.</p>
+ <p><img class="icon" src="../shared_images/arrow_back_dark.png"> arrow_back.</p>
+ <p><img class="icon" src="../shared_images/arrow_forward_dark.png"> arrow_forward.</p>
+ <p><img class="icon" src="../shared_images/bookmark_border_dark.png"> bookmark_border.</p>
+ <p><img class="icon" src="../shared_images/bug_report_dark.png"> bug_report.</p>
+ <p><img class="icon" src="../shared_images/call_to_action_dark.png"> call_to_action.</p>
+ <p><img class="icon" src="../shared_images/camera_enhance_dark.png"> camera_enhance.</p>
+ <p><img class="icon" src="../shared_images/chrome_reader_mode_dark.png"> chrome_reader_mode.</p>
+ <p><img class="icon" src="../shared_images/close_dark.png"> close.</p>
+ <p><img class="icon" src="../shared_images/delete_dark.png"> delete.</p>
+ <p><img class="icon" src="../shared_images/delete_forever_dark.png"> delete_forever.</p>
+ <p><img class="icon" src="../shared_images/devices_other_dark.png"> devices_other.</p>
+ <p><img class="icon" src="../shared_images/dns_dark.png"> dns.</p>
+ <p><img class="icon" src="../shared_images/donut_small_dark.png"> donut_small.</p>
+ <p><img class="icon" src="../shared_images/edit_dark.png"> edit.</p>
+ <p><img class="icon" src="../shared_images/expand_less_dark.png"> expand_less.</p>
+ <p><img class="icon" src="../shared_images/expand_more_dark.png"> expand_more.</p>
+ <p><img class="icon" src="../shared_images/file_download_dark.png"> file_download.</p>
+ <p><img class="icon" src="../shared_images/find_in_page_dark.png"> find_in_page.</p>
+ <p><img class="icon" src="../shared_images/folder_dark.png"> folder.</p>
+ <p><img class="icon" src="../shared_images/fullscreen_dark.png"> fullscreen.</p>
+ <p><img class="icon" src="../shared_images/home_dark.png"> home.</p>
+ <p><img class="icon" src="../shared_images/image_dark.png"> image.</p>
+ <p><img class="icon" src="../shared_images/import_contacts_dark.png"> import_contacts.</p>
+ <p><img class="icon" src="../shared_images/important_devices_dark.png"> important_devices.</p>
+ <p><img class="icon" src="../shared_images/info_outline_dark.png"> info_outline.</p>
+ <p><img class="icon" src="../shared_images/language_dark.png"> language.</p>
+ <p><img class="icon" src="../shared_images/list_dark.png"> list.</p>
+ <p><img class="icon" src="../shared_images/local_activity_dark.png"> local_activity.</p>
+ <p><img class="icon" src="../shared_images/location_off_dark.png"> location_off.</p>
+ <p><img class="icon" src="../shared_images/lock_dark.png"> lock.</p>
+ <p><img class="icon" src="../shared_images/map_dark.png"> map.</p>
+ <p><img class="icon" src="../shared_images/more_dark.png"> more.</p>
+ <p><img class="icon" src="../shared_images/question_answer_dark.png"> question_answer.</p>
+ <p><img class="icon" src="../shared_images/refresh_dark.png"> refresh.</p>
+ <p><img class="icon" src="../shared_images/search_dark.png"> search.</p>
+ <p><img class="icon" src="../shared_images/select_all_dark.png"> select_all.</p>
+ <p><img class="icon" src="../shared_images/settings_dark.png"> settings.</p>
+ <p><img class="icon" src="../shared_images/smartphone_dark.png"> smartphone.</p>
+ <p><img class="icon" src="../shared_images/style_dark.png"> style.</p>
+ <p><img class="icon" src="../shared_images/subtitles_dark.png"> subtitles.</p>
+ <p><img class="icon" src="../shared_images/text_fields_dark.png"> text_fields.</p>
+ <p><img class="icon" src="../shared_images/thumbs_up_down_dark.png"> thumbs_up_down.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_bottom_dark.png"> vertical_align_bottom.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_top_dark.png"> vertical_align_top.</p>
+ <p><img class="icon" src="../shared_images/visibility_off_dark.png"> visibility_off.</p>
+ <p><img class="icon" src="../shared_images/vpn_lock_dark.png"> vpn_lock.</p>
+ <p><img class="icon" src="../shared_images/web_dark.png"> web.</p>
<hr/>
<h3>Icons</h3>
<p><img class="left" src="../shared_images/privacy_browser.png"> <img class="left" src="../shared_images/privacy_browser_free.png"> <img class="left" src="../shared_images/warning.png">
- <img class="left" src="../shared_images/javascript_enabled.png"> are derived from ic_security and ic_language,
+ <img class="left" src="../shared_images/javascript_enabled.png"> are derived from <code>security</code> and <code>language</code>,
which are part of the <a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
The full text of the license is below. Modifications copyright © 2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting images are released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/move_to_folder_light.png"> is derived from elements of ic_folder and ic_exit_to_app,
+ <p><img class="left" src="../shared_images/move_to_folder_light.png"> is derived from elements of <code>folder</code> and <code>exit_to_app</code>,
which are part of the <a href="https://material.io/icons/">Android Material icon set</a>
and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/create_bookmark_light.png"> is derived from elements of ic_bookmark and ic_create_new_folder, which are part of the
+ <p><img class="left" src="../shared_images/create_bookmark_light.png"> is derived from elements of <code>bookmark</code> and <code>create_new_folder</code>, which are part of the
<a href="https://material.io/icons/">Android Material icon set</a> and are released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/create_folder_light.png"> is derived from ic_create_new_folder, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
- and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ <p><img class="left" src="../shared_images/create_folder_light.png"> is derived from <code>create_new_folder</code>,
+ which is part of the <a href="https://material.io/icons/">Android Material icon set</a> and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+ Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/clear_and_exit_light.png"> is derived from ic_exit_to_app, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
+ <p><img class="left" src="../shared_images/clear_and_exit_light.png"> is derived from <code>exit_to_app</code>, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/night_mode_light.png"> is derived from ic_compare, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
+ <p><img class="left" src="../shared_images/night_mode_light.png"> is derived from <code>compare</code>, which is part of the <a href="https://material.io/icons/">Android Material icon set</a>
and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
<p><img class="left" src="../shared_images/orbot_light.png"> orbot is a modified version of
which is copyright 2009-2010 Nathan Freitas, The Guardian Project. It is released under the <a href="https://gitweb.torproject.org/orbot.git/tree/LICENSE">3-clause BSD license</a>.
The full text of the license is below. Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The resulting image is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
- <p><img class="left" src="../shared_images/cookie_light.png"> cookie was created by Google. It is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
+ <p><img class="left" src="../shared_images/cookie_light.png"> <code>cookie</code> was created by Google.
+ It is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
and can be downloaded from <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>. It is unchanged except for layout information like color and size.</p>
<p>The following icons come from the <a href="https://material.io/icons/">Android Material icon set</a>,
which is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
They are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.</p>
- <p><img class="icon" src="../shared_images/ic_add_light.png"> ic_add.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_back_light.png"> ic_arrow_back.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_forward_light.png"> ic_arrow_forward.</p>
- <p><img class="icon" src="../shared_images/ic_bookmark_border_light.png"> ic_bookmark_border.</p>
- <p><img class="icon" src="../shared_images/ic_bug_report_light.png"> ic_bug_report.</p>
- <p><img class="icon" src="../shared_images/ic_call_to_action_light.png"> ic_call_to_action.</p>
- <p><img class="icon" src="../shared_images/ic_chrome_reader_mode_light.png"> ic_chrome_reader_mode.</p>
- <p><img class="icon" src="../shared_images/ic_close_light.png"> ic_close.</p>
- <p><img class="icon" src="../shared_images/ic_delete_light.png"> ic_delete.</p>
- <p><img class="icon" src="../shared_images/ic_delete_forever_light.png"> ic_delete_forever.</p>
- <p><img class="icon" src="../shared_images/ic_devices_other_light.png"> ic_devices_other.</p>
- <p><img class="icon" src="../shared_images/ic_dns_light.png"> ic_dns.</p>
- <p><img class="icon" src="../shared_images/ic_donut_small_light.png"> ic_donut_small.</p>
- <p><img class="icon" src="../shared_images/ic_edit_light.png"> ic_edit.</p>
- <p><img class="icon" src="../shared_images/ic_expand_less_light.png"> ic_expand_less.</p>
- <p><img class="icon" src="../shared_images/ic_expand_more_light.png"> ic_expand_more.</p>
- <p><img class="icon" src="../shared_images/ic_file_download_light.png"> ic_file_download.</p>
- <p><img class="icon" src="../shared_images/ic_find_in_page_light.png"> ic_find_in_page.</p>
- <p><img class="icon" src="../shared_images/ic_folder_light.png"> ic_folder.</p>
- <p><img class="icon" src="../shared_images/ic_fullscreen_light.png"> ic_fullscreen.</p>
- <p><img class="icon" src="../shared_images/ic_home_light.png"> ic_home.</p>
- <p><img class="icon" src="../shared_images/ic_image_light.png"> ic_image.</p>
- <p><img class="icon" src="../shared_images/ic_import_contacts_light.png"> ic_import_contacts.</p>
- <p><img class="icon" src="../shared_images/ic_important_devices_light.png"> ic_important_devices.</p>
- <p><img class="icon" src="../shared_images/ic_info_outline_light.png"> ic_info_outline.</p>
- <p><img class="icon" src="../shared_images/ic_language_light.png"> ic_language.</p>
- <p><img class="icon" src="../shared_images/ic_list_light.png"> ic_list.</p>
- <p><img class="icon" src="../shared_images/ic_local_activity_light.png"> ic_local_activity.</p>
- <p><img class="icon" src="../shared_images/ic_location_off_light.png"> ic_location_off.</p>
- <p><img class="icon" src="../shared_images/ic_lock_light.png"> ic_lock.</p>
- <p><img class="icon" src="../shared_images/ic_map_light.png"> ic_map.</p>
- <p><img class="icon" src="../shared_images/ic_more_light.png"> ic_more.</p>
- <p><img class="icon" src="../shared_images/ic_question_answer_light.png"> ic_question_answer.</p>
- <p><img class="icon" src="../shared_images/ic_refresh_light.png"> ic_refresh.</p>
- <p><img class="icon" src="../shared_images/ic_search_light.png"> ic_search.</p>
- <p><img class="icon" src="../shared_images/ic_select_all_light.png"> ic_select_all.</p>
- <p><img class="icon" src="../shared_images/ic_settings_light.png"> ic_settings.</p>
- <p><img class="icon" src="../shared_images/ic_smartphone_light.png"> ic_smartphone.</p>
- <p><img class="icon" src="../shared_images/ic_style_light.png"> ic_style.</p>
- <p><img class="icon" src="../shared_images/ic_subtitles_light.png"> ic_subtitles.</p>
- <p><img class="icon" src="../shared_images/ic_text_fields_light.png"> ic_text_fields.</p>
- <p><img class="icon" src="../shared_images/ic_thumbs_up_down_light.png"> ic_thumbs_up_down.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_bottom_light.png"> ic_vertical_align_bottom.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_top_light.png"> ic_vertical_align_top.</p>
- <p><img class="icon" src="../shared_images/ic_visibility_off_light.png"> ic_visibility_off.</p>
- <p><img class="icon" src="../shared_images/ic_vpn_lock_light.png"> ic_vpn_lock.</p>
- <p><img class="icon" src="../shared_images/ic_web_light.png"> ic_web.</p>
+ <p><img class="icon" src="../shared_images/add_light.png"> add.</p>
+ <p><img class="icon" src="../shared_images/arrow_back_light.png"> arrow_back.</p>
+ <p><img class="icon" src="../shared_images/arrow_forward_light.png"> arrow_forward.</p>
+ <p><img class="icon" src="../shared_images/bookmark_border_light.png"> bookmark_border.</p>
+ <p><img class="icon" src="../shared_images/bug_report_light.png"> bug_report.</p>
+ <p><img class="icon" src="../shared_images/call_to_action_light.png"> call_to_action.</p>
+ <p><img class="icon" src="../shared_images/camera_enhance_light.png"> camera_enhance.</p>
+ <p><img class="icon" src="../shared_images/chrome_reader_mode_light.png"> chrome_reader_mode.</p>
+ <p><img class="icon" src="../shared_images/close_light.png"> close.</p>
+ <p><img class="icon" src="../shared_images/delete_light.png"> delete.</p>
+ <p><img class="icon" src="../shared_images/delete_forever_light.png"> delete_forever.</p>
+ <p><img class="icon" src="../shared_images/devices_other_light.png"> devices_other.</p>
+ <p><img class="icon" src="../shared_images/dns_light.png"> dns.</p>
+ <p><img class="icon" src="../shared_images/donut_small_light.png"> donut_small.</p>
+ <p><img class="icon" src="../shared_images/edit_light.png"> edit.</p>
+ <p><img class="icon" src="../shared_images/expand_less_light.png"> expand_less.</p>
+ <p><img class="icon" src="../shared_images/expand_more_light.png"> expand_more.</p>
+ <p><img class="icon" src="../shared_images/file_download_light.png"> file_download.</p>
+ <p><img class="icon" src="../shared_images/find_in_page_light.png"> find_in_page.</p>
+ <p><img class="icon" src="../shared_images/folder_light.png"> folder.</p>
+ <p><img class="icon" src="../shared_images/fullscreen_light.png"> fullscreen.</p>
+ <p><img class="icon" src="../shared_images/home_light.png"> home.</p>
+ <p><img class="icon" src="../shared_images/image_light.png"> image.</p>
+ <p><img class="icon" src="../shared_images/import_contacts_light.png"> import_contacts.</p>
+ <p><img class="icon" src="../shared_images/important_devices_light.png"> important_devices.</p>
+ <p><img class="icon" src="../shared_images/info_outline_light.png"> info_outline.</p>
+ <p><img class="icon" src="../shared_images/language_light.png"> language.</p>
+ <p><img class="icon" src="../shared_images/list_light.png"> list.</p>
+ <p><img class="icon" src="../shared_images/local_activity_light.png"> local_activity.</p>
+ <p><img class="icon" src="../shared_images/location_off_light.png"> location_off.</p>
+ <p><img class="icon" src="../shared_images/lock_light.png"> lock.</p>
+ <p><img class="icon" src="../shared_images/map_light.png"> map.</p>
+ <p><img class="icon" src="../shared_images/more_light.png"> more.</p>
+ <p><img class="icon" src="../shared_images/question_answer_light.png"> question_answer.</p>
+ <p><img class="icon" src="../shared_images/refresh_light.png"> refresh.</p>
+ <p><img class="icon" src="../shared_images/search_light.png"> search.</p>
+ <p><img class="icon" src="../shared_images/select_all_light.png"> select_all.</p>
+ <p><img class="icon" src="../shared_images/settings_light.png"> settings.</p>
+ <p><img class="icon" src="../shared_images/smartphone_light.png"> smartphone.</p>
+ <p><img class="icon" src="../shared_images/style_light.png"> style.</p>
+ <p><img class="icon" src="../shared_images/subtitles_light.png"> subtitles.</p>
+ <p><img class="icon" src="../shared_images/text_fields_light.png"> text_fields.</p>
+ <p><img class="icon" src="../shared_images/thumbs_up_down_light.png"> thumbs_up_down.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_bottom_light.png"> vertical_align_bottom.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_top_light.png"> vertical_align_top.</p>
+ <p><img class="icon" src="../shared_images/visibility_off_light.png"> visibility_off.</p>
+ <p><img class="icon" src="../shared_images/vpn_lock_light.png"> vpn_lock.</p>
+ <p><img class="icon" src="../shared_images/web_light.png"> web.</p>
<hr/>
<h3>Iconos</h3>
<p><img class="left" src="../shared_images/privacy_browser.png"> <img class="left" src="../shared_images/privacy_browser_free.png"> <img class="left" src="../shared_images/warning.png">
- <img class="left" src="../shared_images/javascript_enabled.png"> derivan de ic_security y de ic_language,
+ <img class="left" src="../shared_images/javascript_enabled.png"> derivan de <code>security</code> y de <code>language</code>,
que son parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
y son liberados bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>. El texto completo de la licencia se encuentra debajo.
Copyright de modificaciones © 2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Las imágenes resultantes se liberan bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/move_to_folder_dark.png"> deriva de elementos de ic_folder y ic_exit_to_app, que son parte del
+ <p><img class="left" src="../shared_images/move_to_folder_dark.png"> deriva de elementos de <code>folder</code> y <code>exit_to_app</code>, que son parte del
<a href="https://material.io/icons/">conjunto de iconos Android Material</a> y son liberados bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/create_bookmark_dark.png"> deriva de elementos de ic_bookmark y ic_create_new_folder, que son parte del
+ <p><img class="left" src="../shared_images/create_bookmark_dark.png"> deriva de elementos de <code>bookmark</code> y <code>create_new_folder</code>, que son parte del
<a href="https://material.io/icons/">conjunto de iconos Android Material</a> y son liberados bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/create_folder_dark.png"> deriva de ic_create_new_folder, que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
- y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>. Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ <p><img class="left" src="../shared_images/create_folder_dark.png"> deriva de <code>create_new_folder</code>,
+ que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a> y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
+ Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/clear_and_exit_dark.png"> deriva de ic_exit_to_app, que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
+ <p><img class="left" src="../shared_images/clear_and_exit_dark.png"> deriva de <code>exit_to_app</code>, que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>. Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/night_mode_dark.png"> deriva de ic_exit_to_app, que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
+ <p><img class="left" src="../shared_images/night_mode_dark.png"> deriva de <code>compare</code>, que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>. Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
<p><img class="left" src="../shared_images/orbot_dark.png"> orbot es una versión modificada del
Es liberado bajo la <a href="https://gitweb.torproject.org/orbot.git/tree/LICENSE">licencia BSD modificada (de 3 cláusulas)</a>.
El texto completo de la licencia se encuentra debajo. Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/cookie_dark.png"> cookie fue creado por Google. Es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">licencia Apache 2.0</a>
+ <p><img class="left" src="../shared_images/cookie_dark.png"> <code>cookie</code> fue creado por Google. Es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">licencia Apache 2.0</a>
y puede ser descargado desde <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>.
Está sin cambios, excepto por la información de diseño como el color y el tamaño.</p>
<p>Los siguientes iconos proceden de <a href="https://material.io/icons/">conjunto de iconos Android Material</a>,
el cual es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">licencia Apache 2.0</a>.
Están sin cambios, excepto por la información de diseño como el color y el tamaño. Algunos de ellos se han renombrado para que coincida con su uso en el código.
Los iconos y los nombres originales se muestran a continuación.</p>
- <p><img class="icon" src="../shared_images/ic_add_dark.png"> ic_add.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_back_dark.png"> ic_arrow_back.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_forward_dark.png"> ic_arrow_forward.</p>
- <p><img class="icon" src="../shared_images/ic_bookmark_border_dark.png"> ic_bookmark_border.</p>
- <p><img class="icon" src="../shared_images/ic_bug_report_dark.png"> ic_bug_report.</p>
- <p><img class="icon" src="../shared_images/ic_call_to_action_dark.png"> ic_call_to_action.</p>
- <p><img class="icon" src="../shared_images/ic_chrome_reader_mode_dark.png"> ic_chrome_reader_mode.</p>
- <p><img class="icon" src="../shared_images/ic_close_dark.png"> ic_close.</p>
- <p><img class="icon" src="../shared_images/ic_delete_dark.png"> ic_delete.</p>
- <p><img class="icon" src="../shared_images/ic_delete_forever_dark.png"> ic_delete_forever.</p>
- <p><img class="icon" src="../shared_images/ic_devices_other_dark.png"> ic_devices_other.</p>
- <p><img class="icon" src="../shared_images/ic_dns_dark.png"> ic_dns.</p>
- <p><img class="icon" src="../shared_images/ic_donut_small_dark.png"> ic_donut_small.</p>
- <p><img class="icon" src="../shared_images/ic_edit_dark.png"> ic_edit.</p>
- <p><img class="icon" src="../shared_images/ic_expand_less_dark.png"> ic_expand_less.</p>
- <p><img class="icon" src="../shared_images/ic_expand_more_dark.png"> ic_expand_more.</p>
- <p><img class="icon" src="../shared_images/ic_file_download_dark.png"> ic_file_download.</p>
- <p><img class="icon" src="../shared_images/ic_find_in_page_dark.png"> ic_find_in_page.</p>
- <p><img class="icon" src="../shared_images/ic_folder_dark.png"> ic_folder.</p>
- <p><img class="icon" src="../shared_images/ic_fullscreen_dark.png"> ic_fullscreen.</p>
- <p><img class="icon" src="../shared_images/ic_home_dark.png"> ic_home.</p>
- <p><img class="icon" src="../shared_images/ic_image_dark.png"> ic_image.</p>
- <p><img class="icon" src="../shared_images/ic_import_contacts_dark.png"> ic_import_contacts.</p>
- <p><img class="icon" src="../shared_images/ic_important_devices_dark.png"> ic_important_devices.</p>
- <p><img class="icon" src="../shared_images/ic_info_outline_dark.png"> ic_info_outline.</p>
- <p><img class="icon" src="../shared_images/ic_language_dark.png"> ic_language.</p>
- <p><img class="icon" src="../shared_images/ic_list_dark.png"> ic_list.</p>
- <p><img class="icon" src="../shared_images/ic_local_activity_dark.png"> ic_local_activity.</p>
- <p><img class="icon" src="../shared_images/ic_location_off_dark.png"> ic_location_off.</p>
- <p><img class="icon" src="../shared_images/ic_lock_dark.png"> ic_lock.</p>
- <p><img class="icon" src="../shared_images/ic_map_dark.png"> ic_map.</p>
- <p><img class="icon" src="../shared_images/ic_more_dark.png"> ic_more.</p>
- <p><img class="icon" src="../shared_images/ic_question_answer_dark.png"> ic_question_answer.</p>
- <p><img class="icon" src="../shared_images/ic_refresh_dark.png"> ic_refresh.</p>
- <p><img class="icon" src="../shared_images/ic_search_dark.png"> ic_search.</p>
- <p><img class="icon" src="../shared_images/ic_select_all_dark.png"> ic_select_all.</p>
- <p><img class="icon" src="../shared_images/ic_settings_dark.png"> ic_settings.</p>
- <p><img class="icon" src="../shared_images/ic_smartphone_dark.png"> ic_smartphone.</p>
- <p><img class="icon" src="../shared_images/ic_style_dark.png"> ic_style.</p>
- <p><img class="icon" src="../shared_images/ic_subtitles_dark.png"> ic_subtitles.</p>
- <p><img class="icon" src="../shared_images/ic_text_fields_dark.png"> ic_text_fields.</p>
- <p><img class="icon" src="../shared_images/ic_thumbs_up_down_dark.png"> ic_thumbs_up_down.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_bottom_dark.png"> ic_vertical_align_bottom.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_top_dark.png"> ic_vertical_align_top.</p>
- <p><img class="icon" src="../shared_images/ic_visibility_off_dark.png"> ic_visibility_off.</p>
- <p><img class="icon" src="../shared_images/ic_vpn_lock_dark.png"> ic_vpn_lock.</p>
- <p><img class="icon" src="../shared_images/ic_web_dark.png"> ic_web.</p>
-
+ <p><img class="icon" src="../shared_images/add_dark.png"> add.</p>
+ <p><img class="icon" src="../shared_images/arrow_back_dark.png"> arrow_back.</p>
+ <p><img class="icon" src="../shared_images/arrow_forward_dark.png"> arrow_forward.</p>
+ <p><img class="icon" src="../shared_images/bookmark_border_dark.png"> bookmark_border.</p>
+ <p><img class="icon" src="../shared_images/bug_report_dark.png"> bug_report.</p>
+ <p><img class="icon" src="../shared_images/call_to_action_dark.png"> call_to_action.</p>
+ <p><img class="icon" src="../shared_images/camera_enhance_dark.png"> camera_enhance.</p>
+ <p><img class="icon" src="../shared_images/chrome_reader_mode_dark.png"> chrome_reader_mode.</p>
+ <p><img class="icon" src="../shared_images/close_dark.png"> close.</p>
+ <p><img class="icon" src="../shared_images/delete_dark.png"> delete.</p>
+ <p><img class="icon" src="../shared_images/delete_forever_dark.png"> delete_forever.</p>
+ <p><img class="icon" src="../shared_images/devices_other_dark.png"> devices_other.</p>
+ <p><img class="icon" src="../shared_images/dns_dark.png"> dns.</p>
+ <p><img class="icon" src="../shared_images/donut_small_dark.png"> donut_small.</p>
+ <p><img class="icon" src="../shared_images/edit_dark.png"> edit.</p>
+ <p><img class="icon" src="../shared_images/expand_less_dark.png"> expand_less.</p>
+ <p><img class="icon" src="../shared_images/expand_more_dark.png"> expand_more.</p>
+ <p><img class="icon" src="../shared_images/file_download_dark.png"> file_download.</p>
+ <p><img class="icon" src="../shared_images/find_in_page_dark.png"> find_in_page.</p>
+ <p><img class="icon" src="../shared_images/folder_dark.png"> folder.</p>
+ <p><img class="icon" src="../shared_images/fullscreen_dark.png"> fullscreen.</p>
+ <p><img class="icon" src="../shared_images/home_dark.png"> home.</p>
+ <p><img class="icon" src="../shared_images/image_dark.png"> image.</p>
+ <p><img class="icon" src="../shared_images/import_contacts_dark.png"> import_contacts.</p>
+ <p><img class="icon" src="../shared_images/important_devices_dark.png"> important_devices.</p>
+ <p><img class="icon" src="../shared_images/info_outline_dark.png"> info_outline.</p>
+ <p><img class="icon" src="../shared_images/language_dark.png"> language.</p>
+ <p><img class="icon" src="../shared_images/list_dark.png"> list.</p>
+ <p><img class="icon" src="../shared_images/local_activity_dark.png"> local_activity.</p>
+ <p><img class="icon" src="../shared_images/location_off_dark.png"> location_off.</p>
+ <p><img class="icon" src="../shared_images/lock_dark.png"> lock.</p>
+ <p><img class="icon" src="../shared_images/map_dark.png"> map.</p>
+ <p><img class="icon" src="../shared_images/more_dark.png"> more.</p>
+ <p><img class="icon" src="../shared_images/question_answer_dark.png"> question_answer.</p>
+ <p><img class="icon" src="../shared_images/refresh_dark.png"> refresh.</p>
+ <p><img class="icon" src="../shared_images/search_dark.png"> search.</p>
+ <p><img class="icon" src="../shared_images/select_all_dark.png"> select_all.</p>
+ <p><img class="icon" src="../shared_images/settings_dark.png"> settings.</p>
+ <p><img class="icon" src="../shared_images/smartphone_dark.png"> smartphone.</p>
+ <p><img class="icon" src="../shared_images/style_dark.png"> style.</p>
+ <p><img class="icon" src="../shared_images/subtitles_dark.png"> subtitles.</p>
+ <p><img class="icon" src="../shared_images/text_fields_dark.png"> text_fields.</p>
+ <p><img class="icon" src="../shared_images/thumbs_up_down_dark.png"> thumbs_up_down.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_bottom_dark.png"> vertical_align_bottom.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_top_dark.png"> vertical_align_top.</p>
+ <p><img class="icon" src="../shared_images/visibility_off_dark.png"> visibility_off.</p>
+ <p><img class="icon" src="../shared_images/vpn_lock_dark.png"> vpn_lock.</p>
+ <p><img class="icon" src="../shared_images/web_dark.png"> web.</p>
<hr/>
<h3>GNU General Public License</h3>
<h3>Iconos</h3>
<p><img class="left" src="../shared_images/privacy_browser.png"> <img class="left" src="../shared_images/privacy_browser_free.png"> <img class="left" src="../shared_images/warning.png">
- <img class="left" src="../shared_images/javascript_enabled.png"> derivan de ic_security y de ic_language,
+ <img class="left" src="../shared_images/javascript_enabled.png"> derivan de <code>security</code> y de <code>language</code>,
que son parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
y son liberados bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
El texto completo de la licencia se encuentra debajo. Copyright de modificaciones © 2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Las imágenes resultantes se liberan bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/move_to_folder_light.png"> deriva de elementos de ic_folder y ic_exit_to_app, que son parte del
+ <p><img class="left" src="../shared_images/move_to_folder_light.png"> deriva de elementos de <code>folder</code> y <code>exit_to_app</code>, que son parte del
<a href="https://material.io/icons/">conjunto de iconos Android Material</a> y son liberados bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/create_bookmark_light.png"> deriva de elementos de ic_bookmark y ic_create_new_folder, que son parte del
+ <p><img class="left" src="../shared_images/create_bookmark_light.png"> deriva de elementos de <code>bookmark</code> y <code>create_new_folder</code>, que son parte del
<a href="https://material.io/icons/">conjunto de iconos Android Material</a> y son liberados bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/create_folder_light.png"> deriva de ic_create_new_folder, que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
- y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>. Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ <p><img class="left" src="../shared_images/create_folder_light.png"> deriva de <code>create_new_folder</code>,
+ que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a> y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
+ Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/clear_and_exit_light.png"> deriva de ic_exit_to_app, que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
+ <p><img class="left" src="../shared_images/clear_and_exit_light.png"> deriva de <code>exit_to_app</code>, que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>. Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/night_mode_light.png"> deriva de ic_exit_to_app, que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
+ <p><img class="left" src="../shared_images/night_mode_light.png"> deriva de <code>compare</code>, que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>. Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
<p><img class="left" src="../shared_images/orbot_light.png"> orbot es una versión modificada del
Es liberado bajo la <a href="https://gitweb.torproject.org/orbot.git/tree/LICENSE">licencia BSD modificada (de 3 cláusulas)</a>.
El texto completo de la licencia se encuentra debajo. Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/cookie_light.png"> cookie fue creado por Google. Es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">licencia Apache 2.0</a>
+ <p><img class="left" src="../shared_images/cookie_light.png"> <code>cookie</code> fue creado por Google.
+ Es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">licencia Apache 2.0</a>
y puede ser descargado desde <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>.
Está sin cambios, excepto por la información de diseño como el color y el tamaño.</p>
<p>Los siguientes iconos proceden de <a href="https://material.io/icons/">conjunto de iconos Android Material</a>,
el cual es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">licencia Apache 2.0</a>.
Están sin cambios, excepto por la información de diseño como el color y el tamaño. Algunos de ellos se han renombrado para que coincida con su uso en el código.
Los iconos y los nombres originales se muestran a continuación.</p>
- <p><img class="icon" src="../shared_images/ic_add_light.png"> ic_add.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_back_light.png"> ic_arrow_back.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_forward_light.png"> ic_arrow_forward.</p>
- <p><img class="icon" src="../shared_images/ic_bookmark_border_light.png"> ic_bookmark_border.</p>
- <p><img class="icon" src="../shared_images/ic_bug_report_light.png"> ic_bug_report.</p>
- <p><img class="icon" src="../shared_images/ic_call_to_action_light.png"> ic_call_to_action.</p>
- <p><img class="icon" src="../shared_images/ic_chrome_reader_mode_light.png"> ic_chrome_reader_mode.</p>
- <p><img class="icon" src="../shared_images/ic_close_light.png"> ic_close.</p>
- <p><img class="icon" src="../shared_images/ic_delete_light.png"> ic_delete.</p>
- <p><img class="icon" src="../shared_images/ic_delete_forever_light.png"> ic_delete_forever.</p>
- <p><img class="icon" src="../shared_images/ic_devices_other_light.png"> ic_devices_other.</p>
- <p><img class="icon" src="../shared_images/ic_dns_light.png"> ic_dns.</p>
- <p><img class="icon" src="../shared_images/ic_donut_small_light.png"> ic_donut_small.</p>
- <p><img class="icon" src="../shared_images/ic_edit_light.png"> ic_edit.</p>
- <p><img class="icon" src="../shared_images/ic_expand_less_light.png"> ic_expand_less.</p>
- <p><img class="icon" src="../shared_images/ic_expand_more_light.png"> ic_expand_more.</p>
- <p><img class="icon" src="../shared_images/ic_file_download_light.png"> ic_file_download.</p>
- <p><img class="icon" src="../shared_images/ic_find_in_page_light.png"> ic_find_in_page.</p>
- <p><img class="icon" src="../shared_images/ic_folder_light.png"> ic_folder.</p>
- <p><img class="icon" src="../shared_images/ic_fullscreen_light.png"> ic_fullscreen.</p>
- <p><img class="icon" src="../shared_images/ic_home_light.png"> ic_home.</p>
- <p><img class="icon" src="../shared_images/ic_image_light.png"> ic_image.</p>
- <p><img class="icon" src="../shared_images/ic_import_contacts_light.png"> ic_import_contacts.</p>
- <p><img class="icon" src="../shared_images/ic_important_devices_light.png"> ic_important_devices.</p>
- <p><img class="icon" src="../shared_images/ic_info_outline_light.png"> ic_info_outline.</p>
- <p><img class="icon" src="../shared_images/ic_language_light.png"> ic_language.</p>
- <p><img class="icon" src="../shared_images/ic_list_light.png"> ic_list.</p>
- <p><img class="icon" src="../shared_images/ic_local_activity_light.png"> ic_local_activity.</p>
- <p><img class="icon" src="../shared_images/ic_location_off_light.png"> ic_location_off.</p>
- <p><img class="icon" src="../shared_images/ic_lock_light.png"> ic_lock.</p>
- <p><img class="icon" src="../shared_images/ic_map_light.png"> ic_map.</p>
- <p><img class="icon" src="../shared_images/ic_more_light.png"> ic_more.</p>
- <p><img class="icon" src="../shared_images/ic_question_answer_light.png"> ic_question_answer.</p>
- <p><img class="icon" src="../shared_images/ic_refresh_light.png"> ic_refresh.</p>
- <p><img class="icon" src="../shared_images/ic_search_light.png"> ic_search.</p>
- <p><img class="icon" src="../shared_images/ic_select_all_light.png"> ic_select_all.</p>
- <p><img class="icon" src="../shared_images/ic_settings_light.png"> ic_settings.</p>
- <p><img class="icon" src="../shared_images/ic_smartphone_light.png"> ic_smartphone.</p>
- <p><img class="icon" src="../shared_images/ic_style_light.png"> ic_style.</p>
- <p><img class="icon" src="../shared_images/ic_subtitles_light.png"> ic_subtitles.</p>
- <p><img class="icon" src="../shared_images/ic_text_fields_light.png"> ic_text_fields.</p>
- <p><img class="icon" src="../shared_images/ic_thumbs_up_down_light.png"> ic_thumbs_up_down.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_bottom_light.png"> ic_vertical_align_bottom.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_top_light.png"> ic_vertical_align_top.</p>
- <p><img class="icon" src="../shared_images/ic_visibility_off_light.png"> ic_visibility_off.</p>
- <p><img class="icon" src="../shared_images/ic_vpn_lock_light.png"> ic_vpn_lock.</p>
- <p><img class="icon" src="../shared_images/ic_web_light.png"> ic_web.</p>
+ <p><img class="icon" src="../shared_images/add_light.png"> add.</p>
+ <p><img class="icon" src="../shared_images/arrow_back_light.png"> arrow_back.</p>
+ <p><img class="icon" src="../shared_images/arrow_forward_light.png"> arrow_forward.</p>
+ <p><img class="icon" src="../shared_images/bookmark_border_light.png"> bookmark_border.</p>
+ <p><img class="icon" src="../shared_images/bug_report_light.png"> bug_report.</p>
+ <p><img class="icon" src="../shared_images/call_to_action_light.png"> call_to_action.</p>
+ <p><img class="icon" src="../shared_images/camera_enhance_light.png"> camera_enhance.</p>
+ <p><img class="icon" src="../shared_images/chrome_reader_mode_light.png"> chrome_reader_mode.</p>
+ <p><img class="icon" src="../shared_images/close_light.png"> close.</p>
+ <p><img class="icon" src="../shared_images/delete_light.png"> delete.</p>
+ <p><img class="icon" src="../shared_images/delete_forever_light.png"> delete_forever.</p>
+ <p><img class="icon" src="../shared_images/devices_other_light.png"> devices_other.</p>
+ <p><img class="icon" src="../shared_images/dns_light.png"> dns.</p>
+ <p><img class="icon" src="../shared_images/donut_small_light.png"> donut_small.</p>
+ <p><img class="icon" src="../shared_images/edit_light.png"> edit.</p>
+ <p><img class="icon" src="../shared_images/expand_less_light.png"> expand_less.</p>
+ <p><img class="icon" src="../shared_images/expand_more_light.png"> expand_more.</p>
+ <p><img class="icon" src="../shared_images/file_download_light.png"> file_download.</p>
+ <p><img class="icon" src="../shared_images/find_in_page_light.png"> find_in_page.</p>
+ <p><img class="icon" src="../shared_images/folder_light.png"> folder.</p>
+ <p><img class="icon" src="../shared_images/fullscreen_light.png"> fullscreen.</p>
+ <p><img class="icon" src="../shared_images/home_light.png"> home.</p>
+ <p><img class="icon" src="../shared_images/image_light.png"> image.</p>
+ <p><img class="icon" src="../shared_images/import_contacts_light.png"> import_contacts.</p>
+ <p><img class="icon" src="../shared_images/important_devices_light.png"> important_devices.</p>
+ <p><img class="icon" src="../shared_images/info_outline_light.png"> info_outline.</p>
+ <p><img class="icon" src="../shared_images/language_light.png"> language.</p>
+ <p><img class="icon" src="../shared_images/list_light.png"> list.</p>
+ <p><img class="icon" src="../shared_images/local_activity_light.png"> local_activity.</p>
+ <p><img class="icon" src="../shared_images/location_off_light.png"> location_off.</p>
+ <p><img class="icon" src="../shared_images/lock_light.png"> lock.</p>
+ <p><img class="icon" src="../shared_images/map_light.png"> map.</p>
+ <p><img class="icon" src="../shared_images/more_light.png"> more.</p>
+ <p><img class="icon" src="../shared_images/question_answer_light.png"> question_answer.</p>
+ <p><img class="icon" src="../shared_images/refresh_light.png"> refresh.</p>
+ <p><img class="icon" src="../shared_images/search_light.png"> search.</p>
+ <p><img class="icon" src="../shared_images/select_all_light.png"> select_all.</p>
+ <p><img class="icon" src="../shared_images/settings_light.png"> settings.</p>
+ <p><img class="icon" src="../shared_images/smartphone_light.png"> smartphone.</p>
+ <p><img class="icon" src="../shared_images/style_light.png"> style.</p>
+ <p><img class="icon" src="../shared_images/subtitles_light.png"> subtitles.</p>
+ <p><img class="icon" src="../shared_images/text_fields_light.png"> text_fields.</p>
+ <p><img class="icon" src="../shared_images/thumbs_up_down_light.png"> thumbs_up_down.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_bottom_light.png"> vertical_align_bottom.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_top_light.png"> vertical_align_top.</p>
+ <p><img class="icon" src="../shared_images/visibility_off_light.png"> visibility_off.</p>
+ <p><img class="icon" src="../shared_images/vpn_lock_light.png"> vpn_lock.</p>
+ <p><img class="icon" src="../shared_images/web_light.png"> web.</p>
<hr/>
che è rilasciata con <a href="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.</p>
<h3>Icone</h3>
- <p>La lista dei server utilizzata dalla funzionalità di blocco degli annunci è tratta da <a href="https://pgl.yoyo.org/adservers/">pgl.yoyo.org</a>.
- Dal momento che si tratta di una lista di domini <a href="https://www.copyright.gov/help/faq/faq-protect.html">non può essere coperta da Copyright</a>.</p>
- <p>Privacy Browser è sviluppato con la <a href="https://developer.android.com/topic/libraries/support-library/index.html">Android Support Library</a>,
- che è rilasciata con <a href="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.</p>
<p><img class="left" src="../shared_images/privacy_browser.png"> <img class="left" src="../shared_images/privacy_browser_free.png"> <img class="left" src="../shared_images/warning.png">
- <img class="left" src="../shared_images/javascript_enabled.png"> sono state derivate da ic_security e ic_language, che fanno parte
+ <img class="left" src="../shared_images/javascript_enabled.png"> sono state derivate da <code>security</code> e <code>language</code>, che fanno parte
dell'<a href="https://material.io/icons/">Android Material icon set</a> e sono state rilasciate sotto <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
Il testo completo della Licenza è riportato di seguito. Copyright delle modifiche © 2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Le immagini risultanti sono rilasciate sotto <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/move_to_folder_dark.png"> è stata derivata da elementi di ic_folder e di ic_exit_to_app, che fanno parte
+ <p><img class="left" src="../shared_images/move_to_folder_dark.png"> è stata derivata da elementi di <code>folder</code> e di <code>exit_to_app</code>, che fanno parte
dell'<a href="https://material.io/icons/">Android Material icon set</a> e sono state rilasciate sotto <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
Copyright delle modifiche © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'immagine risultante è rilasciata sotto <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/create_bookmark_dark.png"> è stata derivata da elementi di ic_bookmark e di ic_create_new_folder, che fanno parte
+ <p><img class="left" src="../shared_images/create_bookmark_dark.png"> è stata derivata da elementi di <code>bookmark</code> e di <code>create_new_folder</code>, che fanno parte
dell'<a href="https://material.io/icons/">Android Material icon set</a> e sono state rilasciate sotto <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
Copyright delle modifiche © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'immagine risultante è rilasciata sotto <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/create_folder_dark.png"> è stata derivata da ic_create_new_folder,
+ <p><img class="left" src="../shared_images/create_folder_dark.png"> è stata derivata da <code>create_new_folder</code>,
che fa parte dell'<a href="https://material.io/icons/">Android Material icon set</a> ed è stata rilasciata sotto <a href="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
Copyright delle modifiche © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'immagine risultante è rilasciata sotto <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/clear_and_exit_dark.png"> è stata derivata da ic_exit_to_app,
+ <p><img class="left" src="../shared_images/clear_and_exit_dark.png"> è stata derivata da <code>exit_to_app</code>,
che fa parte dell'<a href="https://material.io/icons/">Android Material icon set</a> ed è stata rilasciata sotto <a href="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
Copyright delle modifiche © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'immagine risultante è rilasciata sotto <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/night_mode_dark.png"> è stata derivata da ic_compare,
+ <p><img class="left" src="../shared_images/night_mode_dark.png"> è stata derivata da <code>compare</code>,
che fa parte dell'<a href="https://material.io/icons/">Android Material icon set</a> ed è stata rilasciata sotto <a href="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
Copyright delle modifiche © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'immagine risultante è rilasciata sotto <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
E' rilasciata sotto <a href="https://gitweb.torproject.org/orbot.git/tree/LICENSE">3-clause BSD license</a>. Il testo completo della Licenza è riportato di seguito.
Copyright delle modifiche © 2017<a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'immagine risultante è rilasciata sotto <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/cookie_dark.png"> cookie è stata creata da Google. E' stata rilasciata con <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>
+ <p><img class="left" src="../shared_images/cookie_dark.png"> <code>cookie</code> è stata creata da Google.
+ E' stata rilasciata con <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>
e può essere scaricata dirattamente dal <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>. Non è stata modificata ad eccezione del colore e della dimensione.</p>
<p>Le seguenti icone derivano dall'<a href="https://material.io/icons/">Android Material icon set</a>,
che è rilasciato sotto <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
Non sono state modificatae ad eccezione del colore e della dimensione. Alcune sono state rinominate per coerenza con il tipo di utilizzo all'interno del codice.
Le icone con i loro nomi originali sono riportate di seguito.</p>
- <p><img class="icon" src="../shared_images/ic_add_dark.png"> ic_add.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_back_dark.png"> ic_arrow_back.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_forward_dark.png"> ic_arrow_forward.</p>
- <p><img class="icon" src="../shared_images/ic_bookmark_border_dark.png"> ic_bookmark_border.</p>
- <p><img class="icon" src="../shared_images/ic_bug_report_dark.png"> ic_bug_report.</p>
- <p><img class="icon" src="../shared_images/ic_call_to_action_dark.png"> ic_call_to_action.</p>
- <p><img class="icon" src="../shared_images/ic_chrome_reader_mode_dark.png"> ic_chrome_reader_mode.</p>
- <p><img class="icon" src="../shared_images/ic_close_dark.png"> ic_close.</p>
- <p><img class="icon" src="../shared_images/ic_delete_dark.png"> ic_delete.</p>
- <p><img class="icon" src="../shared_images/ic_delete_forever_dark.png"> ic_delete_forever.</p>
- <p><img class="icon" src="../shared_images/ic_devices_other_dark.png"> ic_devices_other.</p>
- <p><img class="icon" src="../shared_images/ic_dns_dark.png"> ic_dns.</p>
- <p><img class="icon" src="../shared_images/ic_donut_small_dark.png"> ic_donut_small.</p>
- <p><img class="icon" src="../shared_images/ic_edit_dark.png"> ic_edit.</p>
- <p><img class="icon" src="../shared_images/ic_expand_less_dark.png"> ic_expand_less.</p>
- <p><img class="icon" src="../shared_images/ic_expand_more_dark.png"> ic_expand_more.</p>
- <p><img class="icon" src="../shared_images/ic_file_download_dark.png"> ic_file_download.</p>
- <p><img class="icon" src="../shared_images/ic_find_in_page_dark.png"> ic_find_in_page.</p>
- <p><img class="icon" src="../shared_images/ic_folder_dark.png"> ic_folder.</p>
- <p><img class="icon" src="../shared_images/ic_fullscreen_dark.png"> ic_fullscreen.</p>
- <p><img class="icon" src="../shared_images/ic_home_dark.png"> ic_home.</p>
- <p><img class="icon" src="../shared_images/ic_image_dark.png"> ic_image.</p>
- <p><img class="icon" src="../shared_images/ic_import_contacts_dark.png"> ic_import_contacts.</p>
- <p><img class="icon" src="../shared_images/ic_important_devices_dark.png"> ic_important_devices.</p>
- <p><img class="icon" src="../shared_images/ic_info_outline_dark.png"> ic_info_outline.</p>
- <p><img class="icon" src="../shared_images/ic_language_dark.png"> ic_language.</p>
- <p><img class="icon" src="../shared_images/ic_list_dark.png"> ic_list.</p>
- <p><img class="icon" src="../shared_images/ic_local_activity_dark.png"> ic_local_activity.</p>
- <p><img class="icon" src="../shared_images/ic_location_off_dark.png"> ic_location_off.</p>
- <p><img class="icon" src="../shared_images/ic_lock_dark.png"> ic_lock.</p>
- <p><img class="icon" src="../shared_images/ic_map_dark.png"> ic_map.</p>
- <p><img class="icon" src="../shared_images/ic_more_dark.png"> ic_more.</p>
- <p><img class="icon" src="../shared_images/ic_question_answer_dark.png"> ic_question_answer.</p>
- <p><img class="icon" src="../shared_images/ic_refresh_dark.png"> ic_refresh.</p>
- <p><img class="icon" src="../shared_images/ic_search_dark.png"> ic_search.</p>
- <p><img class="icon" src="../shared_images/ic_select_all_dark.png"> ic_select_all.</p>
- <p><img class="icon" src="../shared_images/ic_settings_dark.png"> ic_settings.</p>
- <p><img class="icon" src="../shared_images/ic_smartphone_dark.png"> ic_smartphone.</p>
- <p><img class="icon" src="../shared_images/ic_style_dark.png"> ic_style.</p>
- <p><img class="icon" src="../shared_images/ic_subtitles_dark.png"> ic_subtitles.</p>
- <p><img class="icon" src="../shared_images/ic_text_fields_dark.png"> ic_text_fields.</p>
- <p><img class="icon" src="../shared_images/ic_thumbs_up_down_dark.png"> ic_thumbs_up_down.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_bottom_dark.png"> ic_vertical_align_bottom.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_top_dark.png"> ic_vertical_align_top.</p>
- <p><img class="icon" src="../shared_images/ic_visibility_off_dark.png"> ic_visibility_off.</p>
- <p><img class="icon" src="../shared_images/ic_vpn_lock_dark.png"> ic_vpn_lock.</p>
- <p><img class="icon" src="../shared_images/ic_web_dark.png"> ic_web.</p>
+ <p><img class="icon" src="../shared_images/add_dark.png"> add.</p>
+ <p><img class="icon" src="../shared_images/arrow_back_dark.png"> arrow_back.</p>
+ <p><img class="icon" src="../shared_images/arrow_forward_dark.png"> arrow_forward.</p>
+ <p><img class="icon" src="../shared_images/bookmark_border_dark.png"> bookmark_border.</p>
+ <p><img class="icon" src="../shared_images/bug_report_dark.png"> bug_report.</p>
+ <p><img class="icon" src="../shared_images/call_to_action_dark.png"> call_to_action.</p>
+ <p><img class="icon" src="../shared_images/camera_enhance_dark.png"> camera_enhance.</p>
+ <p><img class="icon" src="../shared_images/chrome_reader_mode_dark.png"> chrome_reader_mode.</p>
+ <p><img class="icon" src="../shared_images/close_dark.png"> close.</p>
+ <p><img class="icon" src="../shared_images/delete_dark.png"> delete.</p>
+ <p><img class="icon" src="../shared_images/delete_forever_dark.png"> delete_forever.</p>
+ <p><img class="icon" src="../shared_images/devices_other_dark.png"> devices_other.</p>
+ <p><img class="icon" src="../shared_images/dns_dark.png"> dns.</p>
+ <p><img class="icon" src="../shared_images/donut_small_dark.png"> donut_small.</p>
+ <p><img class="icon" src="../shared_images/edit_dark.png"> edit.</p>
+ <p><img class="icon" src="../shared_images/expand_less_dark.png"> expand_less.</p>
+ <p><img class="icon" src="../shared_images/expand_more_dark.png"> expand_more.</p>
+ <p><img class="icon" src="../shared_images/file_download_dark.png"> file_download.</p>
+ <p><img class="icon" src="../shared_images/find_in_page_dark.png"> find_in_page.</p>
+ <p><img class="icon" src="../shared_images/folder_dark.png"> folder.</p>
+ <p><img class="icon" src="../shared_images/fullscreen_dark.png"> fullscreen.</p>
+ <p><img class="icon" src="../shared_images/home_dark.png"> home.</p>
+ <p><img class="icon" src="../shared_images/image_dark.png"> image.</p>
+ <p><img class="icon" src="../shared_images/import_contacts_dark.png"> import_contacts.</p>
+ <p><img class="icon" src="../shared_images/important_devices_dark.png"> important_devices.</p>
+ <p><img class="icon" src="../shared_images/info_outline_dark.png"> info_outline.</p>
+ <p><img class="icon" src="../shared_images/language_dark.png"> language.</p>
+ <p><img class="icon" src="../shared_images/list_dark.png"> list.</p>
+ <p><img class="icon" src="../shared_images/local_activity_dark.png"> local_activity.</p>
+ <p><img class="icon" src="../shared_images/location_off_dark.png"> location_off.</p>
+ <p><img class="icon" src="../shared_images/lock_dark.png"> lock.</p>
+ <p><img class="icon" src="../shared_images/map_dark.png"> map.</p>
+ <p><img class="icon" src="../shared_images/more_dark.png"> more.</p>
+ <p><img class="icon" src="../shared_images/question_answer_dark.png"> question_answer.</p>
+ <p><img class="icon" src="../shared_images/refresh_dark.png"> refresh.</p>
+ <p><img class="icon" src="../shared_images/search_dark.png"> search.</p>
+ <p><img class="icon" src="../shared_images/select_all_dark.png"> select_all.</p>
+ <p><img class="icon" src="../shared_images/settings_dark.png"> settings.</p>
+ <p><img class="icon" src="../shared_images/smartphone_dark.png"> smartphone.</p>
+ <p><img class="icon" src="../shared_images/style_dark.png"> style.</p>
+ <p><img class="icon" src="../shared_images/subtitles_dark.png"> subtitles.</p>
+ <p><img class="icon" src="../shared_images/text_fields_dark.png"> text_fields.</p>
+ <p><img class="icon" src="../shared_images/thumbs_up_down_dark.png"> thumbs_up_down.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_bottom_dark.png"> vertical_align_bottom.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_top_dark.png"> vertical_align_top.</p>
+ <p><img class="icon" src="../shared_images/visibility_off_dark.png"> visibility_off.</p>
+ <p><img class="icon" src="../shared_images/vpn_lock_dark.png"> vpn_lock.</p>
+ <p><img class="icon" src="../shared_images/web_dark.png"> web.</p>
<hr/>
<h3>Icone</h3>
<p><img class="left" src="../shared_images/privacy_browser.png"> <img class="left" src="../shared_images/privacy_browser_free.png"> <img class="left" src="../shared_images/warning.png">
- <img class="left" src="../shared_images/javascript_enabled.png"> sono state derivate da ic_security e ic_language, che fanno parte
+ <img class="left" src="../shared_images/javascript_enabled.png"> sono state derivate da <code>security</code> e <code>language</code>, che fanno parte
dell'<a href="https://material.io/icons/">Android Material icon set</a> e sono state rilasciate sotto <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
Il testo completo della Licenza è riportato di seguito. Copyright delle modifiche © 2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Le immagini risultanti sono rilasciate sotto <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/move_to_folder_light.png"> è stata derivata da elementi di ic_folder e di ic_exit_to_app, che fanno parte
+ <p><img class="left" src="../shared_images/move_to_folder_light.png"> è stata derivata da elementi di <code>folder</code> e di <code>exit_to_app</code>, che fanno parte
dell'<a href="https://material.io/icons/">Android Material icon set</a> e sono state rilasciate sotto <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
Copyright delle modifiche © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'immagine risultante è rilasciata sotto <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/create_bookmark_light.png"> è stata derivata da elementi di ic_bookmark e di ic_create_new_folder, che fanno parte
+ <p><img class="left" src="../shared_images/create_bookmark_light.png"> è stata derivata da elementi di <code>bookmark</code> e di <code>create_new_folder</code>, che fanno parte
dell'<a href="https://material.io/icons/">Android Material icon set</a> e sono state rilasciate sotto <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
Copyright delle modifiche © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'immagine risultante è rilasciata sotto <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/create_folder_light.png"> è stata derivata da ic_create_new_folder,
+ <p><img class="left" src="../shared_images/create_folder_light.png"> è stata derivata da <code>create_new_folder</code>,
che fa parte dell'<a href="https://material.io/icons/">Android Material icon set</a> ed è stata rilasciata sotto <a href="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
Copyright delle modifiche © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'immagine risultante è rilasciata sotto <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/clear_and_exit_light.png"> è stata derivata da ic_exit_to_app,
+ <p><img class="left" src="../shared_images/clear_and_exit_light.png"> è stata derivata da <code>exit_to_app</code>,
che fa parte dell'<a href="https://material.io/icons/">Android Material icon set</a> ed è stata rilasciata sotto <a href="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
Copyright delle modifiche © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'immagine risultante è rilasciata sotto <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/night_mode_light.png"> è stata derivata da ic_compare,
+ <p><img class="left" src="../shared_images/night_mode_light.png"> è stata derivata da <code>compare</code>,
che fa parte dell'<a href="https://material.io/icons/">Android Material icon set</a> ed è stata rilasciata sotto <a href="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
Copyright delle modifiche © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'immagine risultante è rilasciata sotto <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
E' rilasciata sotto <a href="https://gitweb.torproject.org/orbot.git/tree/LICENSE">3-clause BSD license</a>. Il testo completo della Licenza è riportato di seguito.
Copyright delle modifiche © 2017<a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'immagine risultante è rilasciata sotto <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/cookie_light.png"> cookie è stata creata da Google. E' stata rilasciata con <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>
+ <p><img class="left" src="../shared_images/cookie_light.png"> <code>cookie</code> è stata creata da Google.
+ E' stata rilasciata con <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>
e può essere scaricata dirattamente dal <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>.Non è stata modificata ad eccezione del colore e della dimensione.</p>
<p>Le seguenti icone derivano dall'<a href="https://material.io/icons/">Android Material icon set</a>,
che è rilasciato sotto <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
Non sono state modificatae ad eccezione del colore e della dimensione. Alcune sono state rinominate per coerenza con il tipo di utilizzo all'interno del codice.
Le icone con i loro nomi originali sono riportate di seguito.</p>
- <p><img class="icon" src="../shared_images/ic_add_light.png"> ic_add.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_back_light.png"> ic_arrow_back.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_forward_light.png"> ic_arrow_forward.</p>
- <p><img class="icon" src="../shared_images/ic_bookmark_border_light.png"> ic_bookmark_border.</p>
- <p><img class="icon" src="../shared_images/ic_bug_report_light.png"> ic_bug_report.</p>
- <p><img class="icon" src="../shared_images/ic_call_to_action_light.png"> ic_call_to_action.</p>
- <p><img class="icon" src="../shared_images/ic_chrome_reader_mode_light.png"> ic_chrome_reader_mode.</p>
- <p><img class="icon" src="../shared_images/ic_close_light.png"> ic_close.</p>
- <p><img class="icon" src="../shared_images/ic_delete_light.png"> ic_delete.</p>
- <p><img class="icon" src="../shared_images/ic_delete_forever_light.png"> ic_delete_forever.</p>
- <p><img class="icon" src="../shared_images/ic_devices_other_light.png"> ic_devices_other.</p>
- <p><img class="icon" src="../shared_images/ic_dns_light.png"> ic_dns.</p>
- <p><img class="icon" src="../shared_images/ic_donut_small_light.png"> ic_donut_small.</p>
- <p><img class="icon" src="../shared_images/ic_edit_light.png"> ic_edit.</p>
- <p><img class="icon" src="../shared_images/ic_expand_less_light.png"> ic_expand_less.</p>
- <p><img class="icon" src="../shared_images/ic_expand_more_light.png"> ic_expand_more.</p>
- <p><img class="icon" src="../shared_images/ic_file_download_light.png"> ic_file_download.</p>
- <p><img class="icon" src="../shared_images/ic_find_in_page_light.png"> ic_find_in_page.</p>
- <p><img class="icon" src="../shared_images/ic_folder_light.png"> ic_folder.</p>
- <p><img class="icon" src="../shared_images/ic_fullscreen_light.png"> ic_fullscreen.</p>
- <p><img class="icon" src="../shared_images/ic_home_light.png"> ic_home.</p>
- <p><img class="icon" src="../shared_images/ic_image_light.png"> ic_image.</p>
- <p><img class="icon" src="../shared_images/ic_import_contacts_light.png"> ic_import_contacts.</p>
- <p><img class="icon" src="../shared_images/ic_important_devices_light.png"> ic_important_devices.</p>
- <p><img class="icon" src="../shared_images/ic_info_outline_light.png"> ic_info_outline.</p>
- <p><img class="icon" src="../shared_images/ic_language_light.png"> ic_language.</p>
- <p><img class="icon" src="../shared_images/ic_list_light.png"> ic_list.</p>
- <p><img class="icon" src="../shared_images/ic_local_activity_light.png"> ic_local_activity.</p>
- <p><img class="icon" src="../shared_images/ic_location_off_light.png"> ic_location_off.</p>
- <p><img class="icon" src="../shared_images/ic_lock_light.png"> ic_lock.</p>
- <p><img class="icon" src="../shared_images/ic_map_light.png"> ic_map.</p>
- <p><img class="icon" src="../shared_images/ic_more_light.png"> ic_more.</p>
- <p><img class="icon" src="../shared_images/ic_question_answer_light.png"> ic_question_answer.</p>
- <p><img class="icon" src="../shared_images/ic_refresh_light.png"> ic_refresh.</p>
- <p><img class="icon" src="../shared_images/ic_search_light.png"> ic_search.</p>
- <p><img class="icon" src="../shared_images/ic_select_all_light.png"> ic_select_all.</p>
- <p><img class="icon" src="../shared_images/ic_settings_light.png"> ic_settings.</p>
- <p><img class="icon" src="../shared_images/ic_smartphone_light.png"> ic_smartphone.</p>
- <p><img class="icon" src="../shared_images/ic_style_light.png"> ic_style.</p>
- <p><img class="icon" src="../shared_images/ic_subtitles_light.png"> ic_subtitles.</p>
- <p><img class="icon" src="../shared_images/ic_text_fields_light.png"> ic_text_fields.</p>
- <p><img class="icon" src="../shared_images/ic_thumbs_up_down_light.png"> ic_thumbs_up_down.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_bottom_light.png"> ic_vertical_align_bottom.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_top_light.png"> ic_vertical_align_top.</p>
- <p><img class="icon" src="../shared_images/ic_visibility_off_light.png"> ic_visibility_off.</p>
- <p><img class="icon" src="../shared_images/ic_vpn_lock_light.png"> ic_vpn_lock.</p>
- <p><img class="icon" src="../shared_images/ic_web_light.png"> ic_web.</p>
+ <p><img class="icon" src="../shared_images/add_light.png"> add.</p>
+ <p><img class="icon" src="../shared_images/arrow_back_light.png"> arrow_back.</p>
+ <p><img class="icon" src="../shared_images/arrow_forward_light.png"> arrow_forward.</p>
+ <p><img class="icon" src="../shared_images/bookmark_border_light.png"> bookmark_border.</p>
+ <p><img class="icon" src="../shared_images/bug_report_light.png"> bug_report.</p>
+ <p><img class="icon" src="../shared_images/call_to_action_light.png"> call_to_action.</p>
+ <p><img class="icon" src="../shared_images/camera_enhance_light.png"> camera_enhance.</p>
+ <p><img class="icon" src="../shared_images/chrome_reader_mode_light.png"> chrome_reader_mode.</p>
+ <p><img class="icon" src="../shared_images/close_light.png"> close.</p>
+ <p><img class="icon" src="../shared_images/delete_light.png"> delete.</p>
+ <p><img class="icon" src="../shared_images/delete_forever_light.png"> delete_forever.</p>
+ <p><img class="icon" src="../shared_images/devices_other_light.png"> devices_other.</p>
+ <p><img class="icon" src="../shared_images/dns_light.png"> dns.</p>
+ <p><img class="icon" src="../shared_images/donut_small_light.png"> donut_small.</p>
+ <p><img class="icon" src="../shared_images/edit_light.png"> edit.</p>
+ <p><img class="icon" src="../shared_images/expand_less_light.png"> expand_less.</p>
+ <p><img class="icon" src="../shared_images/expand_more_light.png"> expand_more.</p>
+ <p><img class="icon" src="../shared_images/file_download_light.png"> file_download.</p>
+ <p><img class="icon" src="../shared_images/find_in_page_light.png"> find_in_page.</p>
+ <p><img class="icon" src="../shared_images/folder_light.png"> folder.</p>
+ <p><img class="icon" src="../shared_images/fullscreen_light.png"> fullscreen.</p>
+ <p><img class="icon" src="../shared_images/home_light.png"> home.</p>
+ <p><img class="icon" src="../shared_images/image_light.png"> image.</p>
+ <p><img class="icon" src="../shared_images/import_contacts_light.png"> import_contacts.</p>
+ <p><img class="icon" src="../shared_images/important_devices_light.png"> important_devices.</p>
+ <p><img class="icon" src="../shared_images/info_outline_light.png"> info_outline.</p>
+ <p><img class="icon" src="../shared_images/language_light.png"> language.</p>
+ <p><img class="icon" src="../shared_images/list_light.png"> list.</p>
+ <p><img class="icon" src="../shared_images/local_activity_light.png"> local_activity.</p>
+ <p><img class="icon" src="../shared_images/location_off_light.png"> location_off.</p>
+ <p><img class="icon" src="../shared_images/lock_light.png"> lock.</p>
+ <p><img class="icon" src="../shared_images/map_light.png"> map.</p>
+ <p><img class="icon" src="../shared_images/more_light.png"> more.</p>
+ <p><img class="icon" src="../shared_images/question_answer_light.png"> question_answer.</p>
+ <p><img class="icon" src="../shared_images/refresh_light.png"> refresh.</p>
+ <p><img class="icon" src="../shared_images/search_light.png"> search.</p>
+ <p><img class="icon" src="../shared_images/select_all_light.png"> select_all.</p>
+ <p><img class="icon" src="../shared_images/settings_light.png"> settings.</p>
+ <p><img class="icon" src="../shared_images/smartphone_light.png"> smartphone.</p>
+ <p><img class="icon" src="../shared_images/style_light.png"> style.</p>
+ <p><img class="icon" src="../shared_images/subtitles_light.png"> subtitles.</p>
+ <p><img class="icon" src="../shared_images/text_fields_light.png"> text_fields.</p>
+ <p><img class="icon" src="../shared_images/thumbs_up_down_light.png"> thumbs_up_down.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_bottom_light.png"> vertical_align_bottom.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_top_light.png"> vertical_align_top.</p>
+ <p><img class="icon" src="../shared_images/visibility_off_light.png"> visibility_off.</p>
+ <p><img class="icon" src="../shared_images/vpn_lock_light.png"> vpn_lock.</p>
+ <p><img class="icon" src="../shared_images/web_light.png"> web.</p>
<hr/>
<h3>Иконки</h3>
<p><img class="left" src="../shared_images/privacy_browser.png"> <img class="left" src="../shared_images/privacy_browser_free.png"> <img class="left" src="../shared_images/warning.png">
- <img class="left" src="../shared_images/javascript_enabled.png"> являются производными от ic_security и ic_language, которые являются частью
+ <img class="left" src="../shared_images/javascript_enabled.png"> являются производными от <code>security</code> и <code>language</code>, которые являются частью
<a href="https://material.io/icons/">Android Material icon set</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Полный текст лицензии приведен ниже.
Модификации авторских прав © 2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/move_to_folder_dark.png"> являются производными от ic_folder и ic_exit_to_app, которые являются частью
+ <p><img class="left" src="../shared_images/move_to_folder_dark.png"> являются производными от <code>folder</code> и <code>exit_to_app</code>, которые являются частью
<a href="https://material.io/icons/">Android Material icon set</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Модификации авторских прав © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/create_bookmark_dark.png"> являются производными от ic_bookmark и ic_create_new_folder, которые являются частью
+ <p><img class="left" src="../shared_images/create_bookmark_dark.png"> являются производными от <code>bookmark</code> и <code>create_new_folder</code>, которые являются частью
<a href="https://material.io/icons/">Android Material icon set</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Модификации авторских прав © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/create_folder_dark.png"> являются производными от ic_create_new_folder, которые являются частью
+ <p><img class="left" src="../shared_images/create_folder_dark.png"> являются производными от <code>create_new_folder</code>, которые являются частью
<a href="https://material.io/icons/">Android Material icon set</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Модификации авторских прав © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/clear_and_exit_dark.png"> являются производными от ic_exit_to_app, которые являются частью <a href="https://material.io/icons/">Android Material icon set</a>
- и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+ <p><img class="left" src="../shared_images/clear_and_exit_dark.png"> являются производными от <code>exit_to_app</code>,
+ коÑ\82оÑ\80Ñ\8bе Ñ\8fвлÑ\8fÑ\8eÑ\82Ñ\81Ñ\8f Ñ\87аÑ\81Ñ\82Ñ\8cÑ\8e <a href="https://material.io/icons/">Android Material icon set</a> и вÑ\8bпÑ\83Ñ\89енÑ\8b под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Модификации авторских прав © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/night_mode_dark.png"> являются производными от ic_compare, которые являются частью <a href="https://material.io/icons/">Android Material icon set</a>
+ <p><img class="left" src="../shared_images/night_mode_dark.png"> являются производными от <code>compare</code>, которые являются частью <a href="https://material.io/icons/">Android Material icon set</a>
и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Модификации авторских прав © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
Он выпущен под <a href="https://gitweb.torproject.org/orbot.git/tree/LICENSE">3-clause BSD license</a>. Полный текст лицензии приведен ниже.
Модификации авторских прав © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/cookie_dark.png"> cookie были созданы Google. Они выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
+ <p><img class="left" src="../shared_images/cookie_dark.png"> <code>cookie</code> были созданы Google. Они выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
и могут быть загружены из <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>. Он неизменен, за исключением такой информации, как цвет и размер.</p>
<p>Следующие значки взяты из<a href="https://material.io/icons/">Android Material icon set</a>,
которые выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Они неизменны, за исключением такой информации, как цвет и размер. Некоторые из них были переименованы в соответствии с их использованием в коде. Оригинальные значки и имена показаны ниже.</p>
- <p><img class="icon" src="../shared_images/ic_add_dark.png"> ic_add.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_back_dark.png"> ic_arrow_back.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_forward_dark.png"> ic_arrow_forward.</p>
- <p><img class="icon" src="../shared_images/ic_bookmark_border_dark.png"> ic_bookmark_border.</p>
- <p><img class="icon" src="../shared_images/ic_bug_report_dark.png"> ic_bug_report.</p>
- <p><img class="icon" src="../shared_images/ic_call_to_action_dark.png"> ic_call_to_action.</p>
- <p><img class="icon" src="../shared_images/ic_chrome_reader_mode_dark.png"> ic_chrome_reader_mode.</p>
- <p><img class="icon" src="../shared_images/ic_close_dark.png"> ic_close.</p>
- <p><img class="icon" src="../shared_images/ic_delete_dark.png"> ic_delete.</p>
- <p><img class="icon" src="../shared_images/ic_delete_forever_dark.png"> ic_delete_forever.</p>
- <p><img class="icon" src="../shared_images/ic_devices_other_dark.png"> ic_devices_other.</p>
- <p><img class="icon" src="../shared_images/ic_dns_dark.png"> ic_dns.</p>
- <p><img class="icon" src="../shared_images/ic_donut_small_dark.png"> ic_donut_small.</p>
- <p><img class="icon" src="../shared_images/ic_edit_dark.png"> ic_edit.</p>
- <p><img class="icon" src="../shared_images/ic_expand_less_dark.png"> ic_expand_less.</p>
- <p><img class="icon" src="../shared_images/ic_expand_more_dark.png"> ic_expand_more.</p>
- <p><img class="icon" src="../shared_images/ic_file_download_dark.png"> ic_file_download.</p>
- <p><img class="icon" src="../shared_images/ic_find_in_page_dark.png"> ic_find_in_page.</p>
- <p><img class="icon" src="../shared_images/ic_folder_dark.png"> ic_folder.</p>
- <p><img class="icon" src="../shared_images/ic_fullscreen_dark.png"> ic_fullscreen.</p>
- <p><img class="icon" src="../shared_images/ic_home_dark.png"> ic_home.</p>
- <p><img class="icon" src="../shared_images/ic_image_dark.png"> ic_image.</p>
- <p><img class="icon" src="../shared_images/ic_import_contacts_dark.png"> ic_import_contacts.</p>
- <p><img class="icon" src="../shared_images/ic_important_devices_dark.png"> ic_important_devices.</p>
- <p><img class="icon" src="../shared_images/ic_info_outline_dark.png"> ic_info_outline.</p>
- <p><img class="icon" src="../shared_images/ic_language_dark.png"> ic_language.</p>
- <p><img class="icon" src="../shared_images/ic_list_dark.png"> ic_list.</p>
- <p><img class="icon" src="../shared_images/ic_local_activity_dark.png"> ic_local_activity.</p>
- <p><img class="icon" src="../shared_images/ic_location_off_dark.png"> ic_location_off.</p>
- <p><img class="icon" src="../shared_images/ic_lock_dark.png"> ic_lock.</p>
- <p><img class="icon" src="../shared_images/ic_map_dark.png"> ic_map.</p>
- <p><img class="icon" src="../shared_images/ic_more_dark.png"> ic_more.</p>
- <p><img class="icon" src="../shared_images/ic_question_answer_dark.png"> ic_question_answer.</p>
- <p><img class="icon" src="../shared_images/ic_refresh_dark.png"> ic_refresh.</p>
- <p><img class="icon" src="../shared_images/ic_search_dark.png"> ic_search.</p>
- <p><img class="icon" src="../shared_images/ic_select_all_dark.png"> ic_select_all.</p>
- <p><img class="icon" src="../shared_images/ic_settings_dark.png"> ic_settings.</p>
- <p><img class="icon" src="../shared_images/ic_smartphone_dark.png"> ic_smartphone.</p>
- <p><img class="icon" src="../shared_images/ic_style_dark.png"> ic_style.</p>
- <p><img class="icon" src="../shared_images/ic_subtitles_dark.png"> ic_subtitles.</p>
- <p><img class="icon" src="../shared_images/ic_text_fields_dark.png"> ic_text_fields.</p>
- <p><img class="icon" src="../shared_images/ic_thumbs_up_down_dark.png"> ic_thumbs_up_down.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_bottom_dark.png"> ic_vertical_align_bottom.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_top_dark.png"> ic_vertical_align_top.</p>
- <p><img class="icon" src="../shared_images/ic_visibility_off_dark.png"> ic_visibility_off.</p>
- <p><img class="icon" src="../shared_images/ic_vpn_lock_dark.png"> ic_vpn_lock.</p>
- <p><img class="icon" src="../shared_images/ic_web_dark.png"> ic_web.</p>
+ <p><img class="icon" src="../shared_images/add_dark.png"> add.</p>
+ <p><img class="icon" src="../shared_images/arrow_back_dark.png"> arrow_back.</p>
+ <p><img class="icon" src="../shared_images/arrow_forward_dark.png"> arrow_forward.</p>
+ <p><img class="icon" src="../shared_images/bookmark_border_dark.png"> bookmark_border.</p>
+ <p><img class="icon" src="../shared_images/bug_report_dark.png"> bug_report.</p>
+ <p><img class="icon" src="../shared_images/call_to_action_dark.png"> call_to_action.</p>
+ <p><img class="icon" src="../shared_images/camera_enhance_dark.png"> camera_enhance.</p>
+ <p><img class="icon" src="../shared_images/chrome_reader_mode_dark.png"> chrome_reader_mode.</p>
+ <p><img class="icon" src="../shared_images/close_dark.png"> close.</p>
+ <p><img class="icon" src="../shared_images/delete_dark.png"> delete.</p>
+ <p><img class="icon" src="../shared_images/delete_forever_dark.png"> delete_forever.</p>
+ <p><img class="icon" src="../shared_images/devices_other_dark.png"> devices_other.</p>
+ <p><img class="icon" src="../shared_images/dns_dark.png"> dns.</p>
+ <p><img class="icon" src="../shared_images/donut_small_dark.png"> donut_small.</p>
+ <p><img class="icon" src="../shared_images/edit_dark.png"> edit.</p>
+ <p><img class="icon" src="../shared_images/expand_less_dark.png"> expand_less.</p>
+ <p><img class="icon" src="../shared_images/expand_more_dark.png"> expand_more.</p>
+ <p><img class="icon" src="../shared_images/file_download_dark.png"> file_download.</p>
+ <p><img class="icon" src="../shared_images/find_in_page_dark.png"> find_in_page.</p>
+ <p><img class="icon" src="../shared_images/folder_dark.png"> folder.</p>
+ <p><img class="icon" src="../shared_images/fullscreen_dark.png"> fullscreen.</p>
+ <p><img class="icon" src="../shared_images/home_dark.png"> home.</p>
+ <p><img class="icon" src="../shared_images/image_dark.png"> image.</p>
+ <p><img class="icon" src="../shared_images/import_contacts_dark.png"> import_contacts.</p>
+ <p><img class="icon" src="../shared_images/important_devices_dark.png"> important_devices.</p>
+ <p><img class="icon" src="../shared_images/info_outline_dark.png"> info_outline.</p>
+ <p><img class="icon" src="../shared_images/language_dark.png"> language.</p>
+ <p><img class="icon" src="../shared_images/list_dark.png"> list.</p>
+ <p><img class="icon" src="../shared_images/local_activity_dark.png"> local_activity.</p>
+ <p><img class="icon" src="../shared_images/location_off_dark.png"> location_off.</p>
+ <p><img class="icon" src="../shared_images/lock_dark.png"> lock.</p>
+ <p><img class="icon" src="../shared_images/map_dark.png"> map.</p>
+ <p><img class="icon" src="../shared_images/more_dark.png"> more.</p>
+ <p><img class="icon" src="../shared_images/question_answer_dark.png"> question_answer.</p>
+ <p><img class="icon" src="../shared_images/refresh_dark.png"> refresh.</p>
+ <p><img class="icon" src="../shared_images/search_dark.png"> search.</p>
+ <p><img class="icon" src="../shared_images/select_all_dark.png"> select_all.</p>
+ <p><img class="icon" src="../shared_images/settings_dark.png"> settings.</p>
+ <p><img class="icon" src="../shared_images/smartphone_dark.png"> smartphone.</p>
+ <p><img class="icon" src="../shared_images/style_dark.png"> style.</p>
+ <p><img class="icon" src="../shared_images/subtitles_dark.png"> subtitles.</p>
+ <p><img class="icon" src="../shared_images/text_fields_dark.png"> text_fields.</p>
+ <p><img class="icon" src="../shared_images/thumbs_up_down_dark.png"> thumbs_up_down.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_bottom_dark.png"> vertical_align_bottom.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_top_dark.png"> vertical_align_top.</p>
+ <p><img class="icon" src="../shared_images/visibility_off_dark.png"> visibility_off.</p>
+ <p><img class="icon" src="../shared_images/vpn_lock_dark.png"> vpn_lock.</p>
+ <p><img class="icon" src="../shared_images/web_dark.png"> web.</p>
<hr/>
<h3>Иконки</h3>
<p><img class="left" src="../shared_images/privacy_browser.png"> <img class="left" src="../shared_images/privacy_browser_free.png"> <img class="left" src="../shared_images/warning.png">
- <img class="left" src="../shared_images/javascript_enabled.png"> являются производными от ic_security и ic_language, которые являются частью
+ <img class="left" src="../shared_images/javascript_enabled.png"> являются производными от <code>security</code> и <code>language</code>, которые являются частью
<a href="https://material.io/icons/">Android Material icon set</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Полный текст лицензии приведен ниже.
Модификации авторских прав © 2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/move_to_folder_light.png"> являются производными от ic_folder и ic_exit_to_app, которые являются частью
+ <p><img class="left" src="../shared_images/move_to_folder_light.png"> являются производными от <code>folder</code> и <code>exit_to_app</code>, которые являются частью
<a href="https://material.io/icons/">Android Material icon set</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Модификации авторских прав © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/create_bookmark_light.png"> являются производными от ic_bookmark и ic_create_new_folder, которые являются частью
+ <p><img class="left" src="../shared_images/create_bookmark_light.png"> являются производными от <code>bookmark</code> и <code>create_new_folder</code>, которые являются частью
<a href="https://material.io/icons/">Android Material icon set</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Модификации авторских прав © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/create_folder_light.png"> являются производными от ic_create_new_folder, которые являются частью
+ <p><img class="left" src="../shared_images/create_folder_light.png"> являются производными от <code>create_new_folder</code>, которые являются частью
<a href="https://material.io/icons/">Android Material icon set</a> и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Модификации авторских прав © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/clear_and_exit_light.png"> являются производными от ic_exit_to_app, которые являются частью <a href="https://material.io/icons/">Android Material icon set</a>
- и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+ <p><img class="left" src="../shared_images/clear_and_exit_light.png"> являются производными от <code>exit_to_app</code>,
+ коÑ\82оÑ\80Ñ\8bе Ñ\8fвлÑ\8fÑ\8eÑ\82Ñ\81Ñ\8f Ñ\87аÑ\81Ñ\82Ñ\8cÑ\8e <a href="https://material.io/icons/">Android Material icon set</a> и вÑ\8bпÑ\83Ñ\89енÑ\8b под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Модификации авторских прав © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/night_mode_light.png"> являются производными от ic_compare, которые являются частью <a href="https://material.io/icons/">Android Material icon set</a>
- и выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
+ <p><img class="left" src="../shared_images/night_mode_light.png"> являются производными от <code>compare</code>,
+ коÑ\82оÑ\80Ñ\8bе Ñ\8fвлÑ\8fÑ\8eÑ\82Ñ\81Ñ\8f Ñ\87аÑ\81Ñ\82Ñ\8cÑ\8e <a href="https://material.io/icons/">Android Material icon set</a> и вÑ\8bпÑ\83Ñ\89енÑ\8b под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Модификации авторских прав © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
<p><img class="left" src="../shared_images/orbot_light.png"> orbot - это модифицированная версия
Он выпущен под <a href="https://gitweb.torproject.org/orbot.git/tree/LICENSE">3-clause BSD license</a>. Полный текст лицензии приведен ниже.
Модификации авторских прав © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
- <p><img class="left" src="../shared_images/cookie_light.png"> cookie были созданы Google. Они выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
+ <p><img class="left" src="../shared_images/cookie_light.png"> <code>cookie</code> были созданы Google. Они выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
и могут быть загружены из <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>. Он неизменен, за исключением такой информации, как цвет и размер.</p>
<p>Следующие значки взяты из<a href="https://material.io/icons/">Android Material icon set</a>,
которые выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
Они неизменны, за исключением такой информации, как цвет и размер. Некоторые из них были переименованы в соответствии с их использованием в коде. Оригинальные значки и имена показаны ниже.</p>
- <p><img class="icon" src="../shared_images/ic_add_light.png"> ic_add.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_back_light.png"> ic_arrow_back.</p>
- <p><img class="icon" src="../shared_images/ic_arrow_forward_light.png"> ic_arrow_forward.</p>
- <p><img class="icon" src="../shared_images/ic_bookmark_border_light.png"> ic_bookmark_border.</p>
- <p><img class="icon" src="../shared_images/ic_bug_report_light.png"> ic_bug_report.</p>
- <p><img class="icon" src="../shared_images/ic_call_to_action_light.png"> ic_call_to_action.</p>
- <p><img class="icon" src="../shared_images/ic_chrome_reader_mode_light.png"> ic_chrome_reader_mode.</p>
- <p><img class="icon" src="../shared_images/ic_close_light.png"> ic_close.</p>
- <p><img class="icon" src="../shared_images/ic_delete_light.png"> ic_delete.</p>
- <p><img class="icon" src="../shared_images/ic_delete_forever_light.png"> ic_delete_forever.</p>
- <p><img class="icon" src="../shared_images/ic_devices_other_light.png"> ic_devices_other.</p>
- <p><img class="icon" src="../shared_images/ic_dns_light.png"> ic_dns.</p>
- <p><img class="icon" src="../shared_images/ic_donut_small_light.png"> ic_donut_small.</p>
- <p><img class="icon" src="../shared_images/ic_edit_light.png"> ic_edit.</p>
- <p><img class="icon" src="../shared_images/ic_expand_less_light.png"> ic_expand_less.</p>
- <p><img class="icon" src="../shared_images/ic_expand_more_light.png"> ic_expand_more.</p>
- <p><img class="icon" src="../shared_images/ic_file_download_light.png"> ic_file_download.</p>
- <p><img class="icon" src="../shared_images/ic_find_in_page_light.png"> ic_find_in_page.</p>
- <p><img class="icon" src="../shared_images/ic_folder_light.png"> ic_folder.</p>
- <p><img class="icon" src="../shared_images/ic_fullscreen_light.png"> ic_fullscreen.</p>
- <p><img class="icon" src="../shared_images/ic_home_light.png"> ic_home.</p>
- <p><img class="icon" src="../shared_images/ic_image_light.png"> ic_image.</p>
- <p><img class="icon" src="../shared_images/ic_import_contacts_light.png"> ic_import_contacts.</p>
- <p><img class="icon" src="../shared_images/ic_important_devices_light.png"> ic_important_devices.</p>
- <p><img class="icon" src="../shared_images/ic_info_outline_light.png"> ic_info_outline.</p>
- <p><img class="icon" src="../shared_images/ic_language_light.png"> ic_language.</p>
- <p><img class="icon" src="../shared_images/ic_list_light.png"> ic_list.</p>
- <p><img class="icon" src="../shared_images/ic_local_activity_light.png"> ic_local_activity.</p>
- <p><img class="icon" src="../shared_images/ic_location_off_light.png"> ic_location_off.</p>
- <p><img class="icon" src="../shared_images/ic_lock_light.png"> ic_lock.</p>
- <p><img class="icon" src="../shared_images/ic_map_light.png"> ic_map.</p>
- <p><img class="icon" src="../shared_images/ic_more_light.png"> ic_more.</p>
- <p><img class="icon" src="../shared_images/ic_question_answer_light.png"> ic_question_answer.</p>
- <p><img class="icon" src="../shared_images/ic_refresh_light.png"> ic_refresh.</p>
- <p><img class="icon" src="../shared_images/ic_search_light.png"> ic_search.</p>
- <p><img class="icon" src="../shared_images/ic_select_all_light.png"> ic_select_all.</p>
- <p><img class="icon" src="../shared_images/ic_settings_light.png"> ic_settings.</p>
- <p><img class="icon" src="../shared_images/ic_smartphone_light.png"> ic_smartphone.</p>
- <p><img class="icon" src="../shared_images/ic_style_light.png"> ic_style.</p>
- <p><img class="icon" src="../shared_images/ic_subtitles_light.png"> ic_subtitles.</p>
- <p><img class="icon" src="../shared_images/ic_text_fields_light.png"> ic_text_fields.</p>
- <p><img class="icon" src="../shared_images/ic_thumbs_up_down_light.png"> ic_thumbs_up_down.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_bottom_light.png"> ic_vertical_align_bottom.</p>
- <p><img class="icon" src="../shared_images/ic_vertical_align_top_light.png"> ic_vertical_align_top.</p>
- <p><img class="icon" src="../shared_images/ic_visibility_off_light.png"> ic_visibility_off.</p>
- <p><img class="icon" src="../shared_images/ic_vpn_lock_light.png"> ic_vpn_lock.</p>
- <p><img class="icon" src="../shared_images/ic_web_light.png"> ic_web.</p>
+ <p><img class="icon" src="../shared_images/add_light.png"> add.</p>
+ <p><img class="icon" src="../shared_images/arrow_back_light.png"> arrow_back.</p>
+ <p><img class="icon" src="../shared_images/arrow_forward_light.png"> arrow_forward.</p>
+ <p><img class="icon" src="../shared_images/bookmark_border_light.png"> bookmark_border.</p>
+ <p><img class="icon" src="../shared_images/bug_report_light.png"> bug_report.</p>
+ <p><img class="icon" src="../shared_images/call_to_action_light.png"> call_to_action.</p>
+ <p><img class="icon" src="../shared_images/camera_enhance_light.png"> camera_enhance.</p>
+ <p><img class="icon" src="../shared_images/chrome_reader_mode_light.png"> chrome_reader_mode.</p>
+ <p><img class="icon" src="../shared_images/close_light.png"> close.</p>
+ <p><img class="icon" src="../shared_images/delete_light.png"> delete.</p>
+ <p><img class="icon" src="../shared_images/delete_forever_light.png"> delete_forever.</p>
+ <p><img class="icon" src="../shared_images/devices_other_light.png"> devices_other.</p>
+ <p><img class="icon" src="../shared_images/dns_light.png"> dns.</p>
+ <p><img class="icon" src="../shared_images/donut_small_light.png"> donut_small.</p>
+ <p><img class="icon" src="../shared_images/edit_light.png"> edit.</p>
+ <p><img class="icon" src="../shared_images/expand_less_light.png"> expand_less.</p>
+ <p><img class="icon" src="../shared_images/expand_more_light.png"> expand_more.</p>
+ <p><img class="icon" src="../shared_images/file_download_light.png"> file_download.</p>
+ <p><img class="icon" src="../shared_images/find_in_page_light.png"> find_in_page.</p>
+ <p><img class="icon" src="../shared_images/folder_light.png"> folder.</p>
+ <p><img class="icon" src="../shared_images/fullscreen_light.png"> fullscreen.</p>
+ <p><img class="icon" src="../shared_images/home_light.png"> home.</p>
+ <p><img class="icon" src="../shared_images/image_light.png"> image.</p>
+ <p><img class="icon" src="../shared_images/import_contacts_light.png"> import_contacts.</p>
+ <p><img class="icon" src="../shared_images/important_devices_light.png"> important_devices.</p>
+ <p><img class="icon" src="../shared_images/info_outline_light.png"> info_outline.</p>
+ <p><img class="icon" src="../shared_images/language_light.png"> language.</p>
+ <p><img class="icon" src="../shared_images/list_light.png"> list.</p>
+ <p><img class="icon" src="../shared_images/local_activity_light.png"> local_activity.</p>
+ <p><img class="icon" src="../shared_images/location_off_light.png"> location_off.</p>
+ <p><img class="icon" src="../shared_images/lock_light.png"> lock.</p>
+ <p><img class="icon" src="../shared_images/map_light.png"> map.</p>
+ <p><img class="icon" src="../shared_images/more_light.png"> more.</p>
+ <p><img class="icon" src="../shared_images/question_answer_light.png"> question_answer.</p>
+ <p><img class="icon" src="../shared_images/refresh_light.png"> refresh.</p>
+ <p><img class="icon" src="../shared_images/search_light.png"> search.</p>
+ <p><img class="icon" src="../shared_images/select_all_light.png"> select_all.</p>
+ <p><img class="icon" src="../shared_images/settings_light.png"> settings.</p>
+ <p><img class="icon" src="../shared_images/smartphone_light.png"> smartphone.</p>
+ <p><img class="icon" src="../shared_images/style_light.png"> style.</p>
+ <p><img class="icon" src="../shared_images/subtitles_light.png"> subtitles.</p>
+ <p><img class="icon" src="../shared_images/text_fields_light.png"> text_fields.</p>
+ <p><img class="icon" src="../shared_images/thumbs_up_down_light.png"> thumbs_up_down.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_bottom_light.png"> vertical_align_bottom.</p>
+ <p><img class="icon" src="../shared_images/vertical_align_top_light.png"> vertical_align_top.</p>
+ <p><img class="icon" src="../shared_images/visibility_off_light.png"> visibility_off.</p>
+ <p><img class="icon" src="../shared_images/vpn_lock_light.png"> vpn_lock.</p>
+ <p><img class="icon" src="../shared_images/web_light.png"> web.</p>
<hr/>
/*
- * Copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
+import android.view.WindowManager;
import com.stoutner.privacybrowser.fragments.AboutTabFragment;
import com.stoutner.privacybrowser.R;
public class AboutActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Set the theme.
if (MainWebViewActivity.darkTheme) {
setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
/*
- * Copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
+import android.view.WindowManager;
import android.widget.AbsListView;
import android.widget.CursorAdapter;
import android.widget.EditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Set the activity theme.
if (MainWebViewActivity.darkTheme) {
setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
/*
- * Copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.ViewGroup;
+import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ImageView;
@Override
public void onCreate(Bundle savedInstanceState) {
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Set the activity theme.
if (MainWebViewActivity.darkTheme) {
setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
+import android.view.WindowManager;
import android.widget.CursorAdapter;
import android.widget.EditText;
import android.widget.ListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Set the activity theme.
if (MainWebViewActivity.darkTheme) {
setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
+import android.view.WindowManager;
import com.stoutner.privacybrowser.fragments.GuideTabFragment;
import com.stoutner.privacybrowser.R;
public class GuideActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Set the theme.
if (MainWebViewActivity.darkTheme) {
setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
// AppCompatActivity from android.support.v7.app.AppCompatActivity must be used to have access to the SupportActionBar until the minimum API is >= 21.
public class MainWebViewActivity extends AppCompatActivity implements CreateBookmarkDialog.CreateBookmarkListener, CreateBookmarkFolderDialog.CreateBookmarkFolderListener,
- CreateHomeScreenShortcutDialog.CreateHomeScreenSchortcutListener, DownloadFileDialog.DownloadFileListener, DownloadImageDialog.DownloadImageListener,
+ CreateHomeScreenShortcutDialog.CreateHomeScreenShortcutListener, DownloadFileDialog.DownloadFileListener, DownloadImageDialog.DownloadImageListener,
DownloadLocationPermissionDialog.DownloadLocationPermissionDialogListener, EditBookmarkDialog.EditBookmarkListener, EditBookmarkFolderDialog.EditBookmarkFolderListener,
HttpAuthenticationDialog.HttpAuthenticationListener, NavigationView.OnNavigationItemSelectedListener, PinnedSslCertificateMismatchDialog.PinnedSslCertificateMismatchListener,
SslCertificateErrorDialog.SslCertificateErrorListener, UrlHistoryDialog.UrlHistoryListener {
// and `OrbotProxyHelper`. It is also used in `onCreate()`, `applyAppSettings()`, `applyDomainSettings()`, and `updatePrivacyIcons()`.
public static boolean darkTheme;
+ // `allowScreenshots` is public static so it can be accessed from everywhere. It is also used in `onCreate()`.
+ public static boolean allowScreenshots;
+
// `favoriteIconBitmap` is public static so it can be accessed from `CreateHomeScreenShortcutDialog`, `BookmarksActivity`, `BookmarksDatabaseViewActivity`, `CreateBookmarkDialog`,
// `CreateBookmarkFolderDialog`, `EditBookmarkDialog`, `EditBookmarkFolderDialog`, `EditBookmarkDatabaseViewDialog`, and `ViewSslCertificateDialog`. It is also used in `onCreate()`,
// `onCreateBookmark()`, `onCreateBookmarkFolder()`, `onCreateHomeScreenShortcutCreate()`, `onSaveEditBookmark()`, `onSaveEditBookmarkFolder()`, and `applyDomainSettings()`.
// Remove Android Studio's warning about deprecations. We have to use the deprecated `getColor()` until API >= 23.
@SuppressWarnings("deprecation")
protected void onCreate(Bundle savedInstanceState) {
- // Get a handle for `sharedPreferences`. `this` references the current context.
+ // Get a handle for the shared preferences.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
- // Get the theme preference.
+ // Get the theme and screenshot preferences.
darkTheme = sharedPreferences.getBoolean("dark_theme", false);
+ allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+
+ // Disable screenshots if not allowed.
+ if (!allowScreenshots) {
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
// Set the activity theme.
if (darkTheme) {
/*
- * Copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.support.v7.app.AppCompatActivity;
+import android.view.WindowManager;
import com.stoutner.privacybrowser.R;
import com.stoutner.privacybrowser.fragments.SettingsFragment;
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Set the activity theme.
if (MainWebViewActivity.darkTheme) {
setTheme(R.style.PrivacyBrowserSettingsDark);
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
+import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.webkit.CookieManager;
import android.widget.EditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Set the theme.
if (MainWebViewActivity.darkTheme) {
setTheme(R.style.PrivacyBrowserDark);
import android.app.Dialog;
import android.app.DialogFragment;
import android.os.Bundle;
+import android.view.WindowManager;
import com.stoutner.privacybrowser.R;
import com.stoutner.privacybrowser.activities.MainWebViewActivity;
// Set the text.
dialogBuilder.setMessage(R.string.about_view_source_message);
+ // Create an alert dialog from the alert dialog builder.
+ final AlertDialog alertDialog = dialogBuilder.create();
+
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ // Remove the warning below that `getWindow()` might be null.
+ assert alertDialog.getWindow() != null;
+
+ // Disable screenshots.
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// `onCreateDialog` requires the return of an `AlertDialog`.
- return dialogBuilder.create();
+ return alertDialog;
}
}
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
- // Use `AlertDialog.Builder` to create the `AlertDialog`.
+ // Use an alert dialog builder to create the alert dialog.
AlertDialog.Builder dialogBuilder;
// Set the style according to the theme.
// Create an alert dialog from the builder.
final AlertDialog alertDialog = dialogBuilder.create();
- // Remove the warning below that `setSoftInputMode` might be null.
+ // Remove the warning below that `getWindow()` might be null.
assert alertDialog.getWindow() != null;
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Show the keyboard when the alert dialog is displayed on the screen.
alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
/*
- * Copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
dialogBuilder.setTitle(R.string.create_bookmark);
dialogBuilder.setIcon(favoriteIconDrawable);
+ // Remove the warning below that `getLayoutInflater()` might be null.
+ assert getActivity() != null;
+
// Set the view. The parent view is `null` because it will be assigned by the `AlertDialog`.
dialogBuilder.setView(getActivity().getLayoutInflater().inflate(R.layout.create_bookmark_dialog, null));
// Set an `onClick()` listener for the negative button.
- dialogBuilder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Do nothing. The `AlertDialog` will close automatically.
- }
+ dialogBuilder.setNegativeButton(R.string.cancel, (DialogInterface dialog, int which) -> {
+ // Do nothing. The `AlertDialog` will close automatically.
});
// Set an `onClick()` listener for the positive button.
- dialogBuilder.setPositiveButton(R.string.create, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Return the `DialogFragment` to the parent activity.
- createBookmarkListener.onCreateBookmark(CreateBookmarkDialog.this);
- }
+ dialogBuilder.setPositiveButton(R.string.create, (DialogInterface dialog, int which) -> {
+ // Return the `DialogFragment` to the parent activity.
+ createBookmarkListener.onCreateBookmark(CreateBookmarkDialog.this);
});
-
// Create an `AlertDialog` from the `AlertDialog.Builder`.
final AlertDialog alertDialog = dialogBuilder.create();
- // Remove the warning below that `setSoftInputMode` might produce `java.lang.NullPointerException`.
+ // Remove the warning below that `getWindow()` might be null.
assert alertDialog.getWindow() != null;
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Show the keyboard when the `AlertDialog` is displayed on the screen.
alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
alertDialog.show();
// Get a handle for `create_bookmark_name_edittext`.
- EditText createBookmarkNameEditText = (EditText) alertDialog.findViewById(R.id.create_bookmark_name_edittext);
+ EditText createBookmarkNameEditText = alertDialog.findViewById(R.id.create_bookmark_name_edittext);
// Set the current `WebView` title as the text for `create_bookmark_name_edittext`.
createBookmarkNameEditText.setText(MainWebViewActivity.webViewTitle);
// Allow the `enter` key on the keyboard to create the bookmark from `create_bookmark_name_edittext`.
- createBookmarkNameEditText.setOnKeyListener(new View.OnKeyListener() {
- public boolean onKey(View view, int keyCode, KeyEvent event) {
- // If the event is a key-down on the `enter` key, select the `PositiveButton` `Create`.
- if ((keyCode == KeyEvent.KEYCODE_ENTER) && (event.getAction() == KeyEvent.ACTION_DOWN)) {
- // Trigger `createBookmarkListener` and return the `DialogFragment` to the parent activity.
- createBookmarkListener.onCreateBookmark(CreateBookmarkDialog.this);
-
- // Manually dismiss the `AlertDialog`.
- alertDialog.dismiss();
-
- // Consume the event.
- return true;
- } else { // If any other key was pressed, do not consume the event.
- return false;
- }
+ createBookmarkNameEditText.setOnKeyListener((View view, int keyCode, KeyEvent event) -> {
+ // If the event is a key-down on the `enter` key, select the `PositiveButton` `Create`.
+ if ((keyCode == KeyEvent.KEYCODE_ENTER) && (event.getAction() == KeyEvent.ACTION_DOWN)) {
+ // Trigger `createBookmarkListener` and return the `DialogFragment` to the parent activity.
+ createBookmarkListener.onCreateBookmark(CreateBookmarkDialog.this);
+
+ // Manually dismiss the `AlertDialog`.
+ alertDialog.dismiss();
+
+ // Consume the event.
+ return true;
+ } else { // If any other key was pressed, do not consume the event.
+ return false;
}
});
// Set the formattedUrlString as the initial text of `create_bookmark_url_edittext`.
- EditText createBookmarkUrlEditText = (EditText) alertDialog.findViewById(R.id.create_bookmark_url_edittext);
+ EditText createBookmarkUrlEditText = alertDialog.findViewById(R.id.create_bookmark_url_edittext);
createBookmarkUrlEditText.setText(MainWebViewActivity.formattedUrlString);
// Allow the `enter` key on the keyboard to create the bookmark from `create_bookmark_url_edittext`.
- createBookmarkUrlEditText.setOnKeyListener(new View.OnKeyListener() {
- public boolean onKey(View v, int keyCode, KeyEvent event) {
- // If the event is a key-down on the "enter" key, select the PositiveButton "Create".
- if ((keyCode == KeyEvent.KEYCODE_ENTER) && (event.getAction() == KeyEvent.ACTION_DOWN)) {
- // Trigger `createBookmarkListener` and return the DialogFragment to the parent activity.
- createBookmarkListener.onCreateBookmark(CreateBookmarkDialog.this);
-
- // Manually dismiss the `AlertDialog`.
- alertDialog.dismiss();
-
- // Consume the event.
- return true;
- } else { // If any other key was pressed, do not consume the event.
- return false;
- }
+ createBookmarkUrlEditText.setOnKeyListener((View v, int keyCode, KeyEvent event) -> {
+ // If the event is a key-down on the "enter" key, select the PositiveButton "Create".
+ if ((keyCode == KeyEvent.KEYCODE_ENTER) && (event.getAction() == KeyEvent.ACTION_DOWN)) {
+ // Trigger `createBookmarkListener` and return the DialogFragment to the parent activity.
+ createBookmarkListener.onCreateBookmark(CreateBookmarkDialog.this);
+
+ // Manually dismiss the `AlertDialog`.
+ alertDialog.dismiss();
+
+ // Consume the event.
+ return true;
+ } else { // If any other key was pressed, do not consume the event.
+ return false;
}
});
/*
- * Copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
- // Use `AlertDialog.Builder` to create the `AlertDialog`.
+ // Use an alert dialog builder to create the alert dialog.
AlertDialog.Builder dialogBuilder;
// Set the style according to the theme.
// Set the title.
dialogBuilder.setTitle(R.string.create_folder);
+ // Remove the warning below that `getLayoutInflater()` might be null.
+ assert getActivity() != null;
+
// Set the view. The parent view is `null` because it will be assigned by the `AlertDialog`.
dialogBuilder.setView(getActivity().getLayoutInflater().inflate(R.layout.create_bookmark_folder_dialog, null));
// Set an `onClick()` listener for the negative button.
- dialogBuilder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Do nothing. The `AlertDialog` will close automatically.
- }
+ dialogBuilder.setNegativeButton(R.string.cancel, (DialogInterface dialog, int which) -> {
+ // Do nothing. The `AlertDialog` will close automatically.
});
// Set an `onClick()` listener fo the positive button.
- dialogBuilder.setPositiveButton(R.string.create, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Return the `DialogFragment` to the parent activity on create.
- createBookmarkFolderListener.onCreateBookmarkFolder(CreateBookmarkFolderDialog.this);
- }
+ dialogBuilder.setPositiveButton(R.string.create, (DialogInterface dialog, int which) -> {
+ // Return the `DialogFragment` to the parent activity on create.
+ createBookmarkFolderListener.onCreateBookmarkFolder(CreateBookmarkFolderDialog.this);
});
// Create an `AlertDialog` from the `AlertDialog.Builder`.
final AlertDialog alertDialog = dialogBuilder.create();
- // Remove the warning below that `setSoftInputMode` might produce `java.lang.NullPointerException`.
+ // Remove the warning below that `getWindow()` might be null.
assert alertDialog.getWindow() != null;
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Show the keyboard when the `Dialog` is displayed on the screen.
alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
// Get handles for the views in the dialog.
final Button createButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
- EditText folderNameEditText = (EditText) alertDialog.findViewById(R.id.create_folder_name_edittext);
- ImageView webPageIconImageView = (ImageView) alertDialog.findViewById(R.id.create_folder_web_page_icon);
+ EditText folderNameEditText = alertDialog.findViewById(R.id.create_folder_name_edittext);
+ ImageView webPageIconImageView = alertDialog.findViewById(R.id.create_folder_web_page_icon);
// Initially disable the create button.
createButton.setEnabled(false);
- // Initialize the database helper. The two `nulls` do not specify the database name or a `CursorFactory`. The `0` specifies a database version, but that is ignored and set instead using a constant in `BookmarksDatabaseHelper`.
+ // Initialize the database helper. The `0` specifies a database version, but that is ignored and set instead using a constant in `BookmarksDatabaseHelper`.
final BookmarksDatabaseHelper bookmarksDatabaseHelper = new BookmarksDatabaseHelper(getContext(), null, null, 0);
// Enable the create button if the new folder name is unique.
});
// Allow the `enter` key on the keyboard to create the folder from `create_folder_name_edittext`.
- folderNameEditText.setOnKeyListener(new View.OnKeyListener() {
- public boolean onKey(View v, int keyCode, KeyEvent event) {
- // If the event is a key-down on the `enter` key, select the `PositiveButton` `Create`.
- if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER) && createButton.isEnabled()) { // The enter key was pressed and the create button is enabled.
- // Trigger `createBookmarkFolderListener` and return the `DialogFragment` to the parent activity.
- createBookmarkFolderListener.onCreateBookmarkFolder(CreateBookmarkFolderDialog.this);
- // Manually dismiss the `AlertDialog`.
- alertDialog.dismiss();
- // Consume the event.
- return true;
- } else { // If any other key was pressed, or if the create button is currently disabled, do not consume the event.
- return false;
- }
+ folderNameEditText.setOnKeyListener((View v, int keyCode, KeyEvent event) -> {
+ // If the event is a key-down on the `enter` key, select the `PositiveButton` `Create`.
+ if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER) && createButton.isEnabled()) { // The enter key was pressed and the create button is enabled.
+ // Trigger `createBookmarkFolderListener` and return the `DialogFragment` to the parent activity.
+ createBookmarkFolderListener.onCreateBookmarkFolder(CreateBookmarkFolderDialog.this);
+ // Manually dismiss the `AlertDialog`.
+ alertDialog.dismiss();
+ // Consume the event.
+ return true;
+ } else { // If any other key was pressed, or if the create button is currently disabled, do not consume the event.
+ return false;
}
});
/*
- * Copyright © 2015-2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2015-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
public class CreateHomeScreenShortcutDialog extends AppCompatDialogFragment {
// The public interface is used to send information back to the parent activity.
- public interface CreateHomeScreenSchortcutListener {
+ public interface CreateHomeScreenShortcutListener {
void onCreateHomeScreenShortcut(AppCompatDialogFragment dialogFragment);
}
//`createHomeScreenShortcutListener` is used in `onAttach()` and `onCreateDialog()`.
- private CreateHomeScreenSchortcutListener createHomeScreenShortcutListener;
+ private CreateHomeScreenShortcutListener createHomeScreenShortcutListener;
// Check to make sure that the parent activity implements the listener.
public void onAttach(Context context) {
super.onAttach(context);
try {
- createHomeScreenShortcutListener = (CreateHomeScreenSchortcutListener) context;
+ createHomeScreenShortcutListener = (CreateHomeScreenShortcutListener) context;
} catch(ClassCastException exception) {
throw new ClassCastException(context.toString() + " must implement CreateHomeScreenShortcutListener.");
}
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
+ // Remove the incorrect lint warning below that `getLayoutInflater()` might be null.
+ assert getActivity() != null;
+
// Get the activity's layout inflater.
LayoutInflater layoutInflater = getActivity().getLayoutInflater();
dialogBuilder.setTitle(R.string.create_shortcut);
dialogBuilder.setIcon(favoriteIconDrawable);
- // Set the view. The parent view is `null` because it will be assigned by `AlertDialog`.
+ // Set the view. The parent view is null because it will be assigned by the alert dialog.
dialogBuilder.setView(layoutInflater.inflate(R.layout.create_home_screen_shortcut_dialog, null));
- // Setup the negative button. Using `null` closes the dialog without doing anything else.
+ // Setup the negative button. Using null closes the dialog without doing anything else.
dialogBuilder.setNegativeButton(R.string.cancel, null);
// Set an `onClick` listener on the positive button.
- dialogBuilder.setPositiveButton(R.string.create, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- createHomeScreenShortcutListener.onCreateHomeScreenShortcut(CreateHomeScreenShortcutDialog.this);
- }
- });
-
+ dialogBuilder.setPositiveButton(R.string.create, (DialogInterface dialog, int which) -> createHomeScreenShortcutListener.onCreateHomeScreenShortcut(CreateHomeScreenShortcutDialog.this));
- // Create an `AlertDialog` from the `AlertDialog.Builder`.
+ // Create an alert dialog from the alert dialog builder.
final AlertDialog alertDialog = dialogBuilder.create();
- // Remove the warning below that `setSoftInputMode` might produce `java.lang.NullPointerException`.
+ // Remove the warning below that `getWindow()` might be null.
assert alertDialog.getWindow() != null;
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Show the keyboard when the Dialog is displayed on the screen.
alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
- // We need to show `alertDialog` before we can call `setOnKeyListener()` below.
+ // We need to show the alert dialog before we can call `setOnKeyListener()` below.
alertDialog.show();
// Get a handle for `shortcut_name_edittext`.
- EditText shortcutNameEditText = (EditText) alertDialog.findViewById(R.id.shortcut_name_edittext);
+ EditText shortcutNameEditText = alertDialog.findViewById(R.id.shortcut_name_edittext);
// Set the current `WebView` title as the text for `shortcutNameEditText`.
shortcutNameEditText.setText(MainWebViewActivity.webViewTitle);
// Allow the "enter" key on the keyboard to create the shortcut.
- shortcutNameEditText.setOnKeyListener(new View.OnKeyListener() {
- public boolean onKey(View v, int keyCode, KeyEvent event) {
- // If the event is a key-down on the "enter" button, select the PositiveButton "Create".
- if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
- // Trigger the create listener.
- createHomeScreenShortcutListener.onCreateHomeScreenShortcut(CreateHomeScreenShortcutDialog.this);
-
- // Manually dismiss `alertDialog`.
- alertDialog.dismiss();
-
- // Consume the event.
- return true;
- } else { // If any other key was pressed, do not consume the event.
- return false;
- }
+ shortcutNameEditText.setOnKeyListener((View v, int keyCode, KeyEvent event) -> {
+ // If the event is a key-down on the "enter" button, select the PositiveButton "Create".
+ if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
+ // Trigger the create listener.
+ createHomeScreenShortcutListener.onCreateHomeScreenShortcut(CreateHomeScreenShortcutDialog.this);
+
+ // Manually dismiss `alertDialog`.
+ alertDialog.dismiss();
+
+ // Consume the event.
+ return true;
+ } else { // If any other key was pressed, do not consume the event.
+ return false;
}
});
// Get the activity's layout inflater.
LayoutInflater layoutInflater = getActivity().getLayoutInflater();
- // Use `AlertDialog.Builder` to create the `AlertDialog`.
+ // Use an alert dialog builder to create the alert dialog.
AlertDialog.Builder dialogBuilder;
// Set the style according to the theme.
// Set the view. The parent view is `null` because it will be assigned by `AlertDialog`.
dialogBuilder.setView(layoutInflater.inflate(R.layout.download_file_dialog, null));
- // Set an `onClick()` listener on the negative button.
+ // Set an listener on the negative button.
dialogBuilder.setNegativeButton(R.string.cancel, (DialogInterface dialog, int which) -> {
// Do nothing if `Cancel` is clicked. The `Dialog` will automatically close.
});
- // Set an `onClick()` listener on the positive button
+ // Set an listener on the positive button
dialogBuilder.setPositiveButton(R.string.download, (DialogInterface dialog, int which) -> {
// trigger `onDownloadFile()` and return the `DialogFragment` and the download URL to the parent activity.
downloadFileListener.onDownloadFile(DownloadFileDialog.this, downloadUrl);
});
- // Create an `AlertDialog` from the `AlertDialog.Builder`.
+ // Create an alert dialog from the alert dialog builder`.
final AlertDialog alertDialog = dialogBuilder.create();
- // Remove the warning below that `setSoftInputMode` might produce `java.lang.NullPointerException`.
+ // Remove the warning below that `getWindow()` might be null.
assert alertDialog.getWindow() != null;
- // Show the keyboard when `alertDialog` is displayed on the screen.
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
+ // Show the keyboard when alert dialog is displayed on the screen.
alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
// We need to show `alertDialog` before we can modify the contents.
// Get the activity's layout inflater.
LayoutInflater layoutInflater = getActivity().getLayoutInflater();
- // Use `AlertDialog.Builder` to create the `AlertDialog`.
+ // Use and alert dialog builder to create the alert dialog.
AlertDialog.Builder dialogBuilder;
// Set the style according to the theme.
// Set the view. The parent view is `null` because it will be assigned by `AlertDialog`.
dialogBuilder.setView(layoutInflater.inflate(R.layout.download_image_dialog, null));
- // Set an `onClick()` listener on the negative button.
+ // Set an listener on the negative button.
dialogBuilder.setNegativeButton(R.string.cancel, (DialogInterface dialog, int which) -> {
// Do nothing if `Cancel` is clicked.
});
- // Set an `onClick()` listener on the positive button
+ // Set an listener on the positive button
dialogBuilder.setPositiveButton(R.string.download, (DialogInterface dialog, int which) -> {
// trigger `onDownloadFile()` and return the `DialogFragment` and the download URL to the parent activity.
downloadImageListener.onDownloadImage(DownloadImageDialog.this, imageUrl);
});
- // Create an `AlertDialog` from the `AlertDialog.Builder`.
+ // Create an alert dialog from the alert dialog builder.
final AlertDialog alertDialog = dialogBuilder.create();
- // Remove the warning below that `setSoftInputMode` might produce `java.lang.NullPointerException`.
+ // Remove the warning below that `getWindow()` might be null.
assert alertDialog.getWindow() != null;
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Show the keyboard when `alertDialog` is displayed on the screen.
alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
- // We need to show `alertDialog` before we can modify the contents.
+ // The alert dialog must be shown before the contents can be modified.
alertDialog.show();
// Set the text for `downloadImageNameTextView`.
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
+import android.view.WindowManager;
import com.stoutner.privacybrowser.R;
import com.stoutner.privacybrowser.activities.MainWebViewActivity;
// Set the text.
dialogBuilder.setMessage(R.string.download_location_message);
+ // Create an alert dialog from the alert dialog builder.
+ final AlertDialog alertDialog = dialogBuilder.create();
+
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ // Remove the warning below that `getWindow()` might be null.
+ assert alertDialog.getWindow() != null;
+
+ // Disable screenshots.
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// `onCreateDialog` requires the return of an `AlertDialog`.
- return dialogBuilder.create();
+ return alertDialog;
}
}
\ No newline at end of file
// Initialize the database helper. The two `nulls` do not specify the database name or a `CursorFactory`. The `0` specifies a database version, but that is ignored and set instead using a constant in `BookmarksDatabaseHelper`.
BookmarksDatabaseHelper bookmarksDatabaseHelper = new BookmarksDatabaseHelper(getContext(), null, null, 0);
- // Get a `Cursor` with the selected bookmark and move it to the first position.
+ // Get a cursor with the selected bookmark and move it to the first position.
Cursor bookmarkCursor = bookmarksDatabaseHelper.getBookmarkCursor(bookmarkDatabaseId);
bookmarkCursor.moveToFirst();
- // Use `AlertDialog.Builder` to create the `AlertDialog`.
+ // Use an alert dialog builder to create the alert dialog.
AlertDialog.Builder dialogBuilder;
// Set the style according to the theme.
// Set the view. The parent view is `null` because it will be assigned by `AlertDialog`.
dialogBuilder.setView(getActivity().getLayoutInflater().inflate(R.layout.edit_bookmark_databaseview_dialog, null));
- // Set an `onClick()` listener for the negative button.
+ // Set the listener for the negative button.
dialogBuilder.setNegativeButton(R.string.cancel, (DialogInterface dialog, int which) -> {
// Do nothing. The `AlertDialog` will close automatically.
});
- // Set the `onClick()` listener fo the positive button.
+ // Set the listener fo the positive button.
dialogBuilder.setPositiveButton(R.string.save, (DialogInterface dialog, int which) -> {
// Return the `DialogFragment` to the parent activity on save.
editBookmarkDatabaseViewListener.onSaveBookmark(EditBookmarkDatabaseViewDialog.this, bookmarkDatabaseId);
});
- // Create an `AlertDialog` from the `AlertDialog.Builder`.
+ // Create an alert dialog from the alert dialog builder`.
final AlertDialog alertDialog = dialogBuilder.create();
- // Remove the warning below that `setSoftInputMode` might produce `java.lang.NullPointerException`.
+ // Remove the warning below that `getWindow()` might be null.
assert alertDialog.getWindow() != null;
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Set the keyboard to be hidden when the `AlertDialog` is first shown. If this is not set, the `AlertDialog` will not shrink when the keyboard is displayed.
alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
- // The `AlertDialog` must be shown before items in the layout can be modified.
+ // The alert dialog must be shown before items in the layout can be modified.
alertDialog.show();
// Get handles for the layout items.
/*
- * Copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
// Run the default commands.
super.onCreate(savedInstanceState);
+ // Remove the incorrect lint warning that `getInt()` might be null.
+ assert getArguments() != null;
+
// Store the bookmark database ID in the class variable.
selectedBookmarkDatabaseId = getArguments().getInt("Database ID");
}
Cursor bookmarkCursor = bookmarksDatabaseHelper.getBookmarkCursor(selectedBookmarkDatabaseId);
bookmarkCursor.moveToFirst();
- // Use `AlertDialog.Builder` to create the `AlertDialog`.
+ // Use an alert dialog builder to create the alert dialog.
AlertDialog.Builder dialogBuilder;
// Set the style according to the theme.
// Set the title.
dialogBuilder.setTitle(R.string.edit_bookmark);
+ // Remove the incorrect lint warning that `getActivity()` might be null.
+ assert getActivity() != null;
+
// Set the view. The parent view is `null` because it will be assigned by `AlertDialog`.
dialogBuilder.setView(getActivity().getLayoutInflater().inflate(R.layout.edit_bookmark_dialog, null));
- // Set an `onClick()` listener for the negative button.
+ // Set the listener for the negative button.
dialogBuilder.setNegativeButton(R.string.cancel, (DialogInterface dialog, int which) -> {
// Do nothing. The `AlertDialog` will close automatically.
});
- // Set the `onClick()` listener fo the positive button.
+ // Set the listener fo the positive button.
dialogBuilder.setPositiveButton(R.string.save, (DialogInterface dialog, int which) -> {
// Return the `DialogFragment` to the parent activity on save.
editBookmarkListener.onSaveBookmark(EditBookmarkDialog.this, selectedBookmarkDatabaseId);
});
- // Create an `AlertDialog` from the `AlertDialog.Builder`.
+ // Create an alert dialog from the alert dialog builder.
final AlertDialog alertDialog = dialogBuilder.create();
- // Remove the warning below that `setSoftInputMode` might produce `java.lang.NullPointerException`.
+ // Remove the warning below that `getWindow()` might be null.
assert alertDialog.getWindow() != null;
- // Show the keyboard when `alertDialog` is displayed on the screen.
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
+ // Show the keyboard when the alert dialog is displayed on the screen.
alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
- // The `AlertDialog` must be shown before items in the layout can be modified.
+ // The alert dialog must be shown before items in the layout can be modified.
alertDialog.show();
// Get handles for the layout items.
/*
- * Copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
// Run the default commands.
super.onCreate(savedInstanceState);
+ // Remove the incorrect lint warning that `getInt()` might be null.
+ assert getArguments() != null;
+
// Store the bookmark database ID in the class variable.
folderDatabaseId = getArguments().getInt("Database ID");
}
Cursor folderCursor = bookmarksDatabaseHelper.getBookmarkCursor(folderDatabaseId);
folderCursor.moveToFirst();
- // Use `AlertDialog.Builder` to create the `AlertDialog`.
+ // Use an alert dialog builder to create the alert dialog.
AlertDialog.Builder dialogBuilder;
// Set the style according to the theme.
// Set the title.
dialogBuilder.setTitle(R.string.edit_folder);
+ // Remove the incorrect lint warning that `getActivity()` might be null.
+ assert getActivity() != null;
+
// Set the view. The parent view is `null` because it will be assigned by `AlertDialog`.
dialogBuilder.setView(getActivity().getLayoutInflater().inflate(R.layout.edit_bookmark_folder_databaseview_dialog, null));
- // Set an `onClick()` listener for the negative button.
+ // Set the listener for the negative button.
dialogBuilder.setNegativeButton(R.string.cancel, (DialogInterface dialog, int which) -> {
// Do nothing. The `AlertDialog` will close automatically.
});
- // Set the `onClick()` listener fo the positive button.
+ // Set the listener fo the positive button.
dialogBuilder.setPositiveButton(R.string.save, (DialogInterface dialog, int which) -> {
// Return the `DialogFragment` to the parent activity on save.
editBookmarkFolderDatabaseViewListener.onSaveBookmarkFolder(EditBookmarkFolderDatabaseViewDialog.this, folderDatabaseId);
});
- // Create an `AlertDialog` from the `AlertDialog.Builder`.
+ // Create an alert dialog from the alert dialog builder.
final AlertDialog alertDialog = dialogBuilder.create();
- // Remove the warning below that `setSoftInputMode` might produce `java.lang.NullPointerException`.
+ // Remove the warning below that `getWindow()` might be null.
assert alertDialog.getWindow() != null;
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Set the keyboard to be hidden when the `AlertDialog` is first shown. If this is not set, the `AlertDialog` will not shrink when the keyboard is displayed.
alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
- // The `AlertDialog` must be shown before items in the layout can be modified.
+ // The alert dialog must be shown before items in the layout can be modified.
alertDialog.show();
// Get handles for the layout items.
// Combine `matrixCursor` and `foldersCursor`.
MergeCursor foldersMergeCursor = new MergeCursor(new Cursor[]{matrixCursor, foldersCursor});
+ // Remove the incorrect lint warning that `getContext()` might be null.
+ assert getContext() != null;
+
// Create a `ResourceCursorAdapter` for the `Spinner`. `0` specifies no flags.;
ResourceCursorAdapter foldersCursorAdapter = new ResourceCursorAdapter(getContext(), R.layout.edit_bookmark_databaseview_spinner_item, foldersMergeCursor, 0) {
@Override
/*
- * Copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
// Run the default commands.
super.onCreate(savedInstanceState);
+ // Remove the incorrect lint warning that `getInt()` might be null.
+ assert getArguments() != null;
+
// Store the folder database ID in the class variable.
selectedFolderDatabaseId = getArguments().getInt("Database ID");
}
Cursor folderCursor = bookmarksDatabaseHelper.getBookmarkCursor(selectedFolderDatabaseId);
folderCursor.moveToFirst();
- // Use `AlertDialog.Builder` to create the `AlertDialog`.
+ // Use an alert dialog builder to create the alert dialog.
AlertDialog.Builder dialogBuilder;
// Set the style according to the theme.
// Set the title.
dialogBuilder.setTitle(R.string.edit_folder);
+ // Remove the incorrect lint warning that `getActivity()` might be null.
+ assert getActivity() != null;
+
// Set the view. The parent view is `null` because it will be assigned by `AlertDialog`.
dialogBuilder.setView(getActivity().getLayoutInflater().inflate(R.layout.edit_bookmark_folder_dialog, null));
- // Set an `onClick()` listener for the negative button.
+ // Set the listener for the negative button.
dialogBuilder.setNegativeButton(R.string.cancel, (DialogInterface dialog, int which) -> {
// Do nothing. The `AlertDialog` will close automatically.
});
- // Set the `onClick()` listener fo the positive button.
+ // Set the listener fo the positive button.
dialogBuilder.setPositiveButton(R.string.save, (DialogInterface dialog, int which) -> {
// Return the `DialogFragment` to the parent activity on save.
editBookmarkFolderListener.onSaveBookmarkFolder(EditBookmarkFolderDialog.this, selectedFolderDatabaseId);
});
- // Create an `AlertDialog` from the `AlertDialog.Builder`.
+ // Create an alert dialog from the alert dialog builder.
final AlertDialog alertDialog = dialogBuilder.create();
- // Remove the warning below that `setSoftInputMode` might produce `java.lang.NullPointerException`.
+ // Remove the warning below that `getWindow()` might be null.
assert alertDialog.getWindow() != null;
- // Show the keyboard when the `Dialog` is displayed on the screen.
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
+ // Show the keyboard when the dialog is displayed on the screen.
alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
- // The `AlertDialog` must be shown before items in the layout can be modified.
+ // The alert dialog must be shown before items in the layout can be modified.
alertDialog.show();
// Get handles for layout items in the `AlertDialog`.
/*
- * Copyright © 2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2017-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ // Remove the incorrect lint warnings that `getString()` might be null.
+ assert getArguments() != null;
+
// Save the host and realm in class variables.
httpAuthHost = getArguments().getString("Host");
httpAuthRealm = getArguments().getString("Realm");
@Override
@NonNull
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();
- // Use `AlertDialog.Builder` to create the `AlertDialog`.
+ // Use an alert dialog builder to create the alert dialog.
AlertDialog.Builder dialogBuilder;
// Set the style according to the theme.
dialogBuilder.setView(layoutInflater.inflate(R.layout.http_authentication_dialog, null));
// Setup the negative button.
- dialogBuilder.setNegativeButton(R.string.close, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Call `onHttpAuthenticationCancel()` and return the `DialogFragment` to the parent activity.
- httpAuthenticationListener.onHttpAuthenticationCancel();
- }
+ dialogBuilder.setNegativeButton(R.string.close, (DialogInterface dialog, int which) -> {
+ // Call `onHttpAuthenticationCancel()` and return the `DialogFragment` to the parent activity.
+ httpAuthenticationListener.onHttpAuthenticationCancel();
});
// Setup the positive button.
- dialogBuilder.setPositiveButton(R.string.proceed, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Call `onHttpAuthenticationProceed()` and return the `DialogFragment` to the parent activity.
- httpAuthenticationListener.onHttpAuthenticationProceed(HttpAuthenticationDialog.this);
- }
+ dialogBuilder.setPositiveButton(R.string.proceed, (DialogInterface dialog, int which) -> {
+ // Call `onHttpAuthenticationProceed()` and return the `DialogFragment` to the parent activity.
+ httpAuthenticationListener.onHttpAuthenticationProceed(HttpAuthenticationDialog.this);
});
- // Create an `AlertDialog` from the `AlertDialog.Builder`.
+ // Create an alert dialog from the alert dialog builder.
final AlertDialog alertDialog = dialogBuilder.create();
- // Remove the warning below that `setSoftInputMode` might produce `java.lang.NullPointerException`.
+ // Remove the warning below that `getWindow()` might be null.
assert alertDialog.getWindow() != null;
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// Show the keyboard when the `AlertDialog` is displayed on the screen.
alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
- // The `AlertDialog` needs to be shown before `setOnKeyListener()` can be called.
+ // The alert dialog needs to be shown before the contents can be modified.
alertDialog.show();
// Get handles for the views in `alertDialog`.
- TextView realmTextView = (TextView) alertDialog.findViewById(R.id.http_authentication_realm);
- TextView hostTextView = (TextView) alertDialog.findViewById(R.id.http_authentication_host);
- EditText usernameEditText = (EditText) alertDialog.findViewById(R.id.http_authentication_username);
- EditText passwordEditText = (EditText) alertDialog.findViewById(R.id.http_authentication_password);
+ TextView realmTextView = alertDialog.findViewById(R.id.http_authentication_realm);
+ TextView hostTextView = alertDialog.findViewById(R.id.http_authentication_host);
+ EditText usernameEditText = alertDialog.findViewById(R.id.http_authentication_username);
+ EditText passwordEditText = alertDialog.findViewById(R.id.http_authentication_password);
// Set the realm text.
realmTextView.setText(httpAuthRealm);
hostTextView.setText(hostStringBuilder);
// Allow the `enter` key on the keyboard to trigger `onHttpAuthenticationProceed` from `usernameEditText`.
- usernameEditText.setOnKeyListener(new View.OnKeyListener() {
- public boolean onKey(View view, int keyCode, KeyEvent event) {
- // If the event is a key-down on the `enter` key, call `onHttpAuthenticationProceed()`.
- if ((keyCode == KeyEvent.KEYCODE_ENTER) && (event.getAction() == KeyEvent.ACTION_DOWN)) {
- // Trigger `onHttpAuthenticationProceed` and return the `DialogFragment` to the parent activity.
- httpAuthenticationListener.onHttpAuthenticationProceed(HttpAuthenticationDialog.this);
-
- // Manually dismiss the `AlertDialog`.
- alertDialog.dismiss();
-
- // Consume the event.
- return true;
- } else { // If any other key was pressed, do not consume the event.
- return false;
- }
+ usernameEditText.setOnKeyListener((View view, int keyCode, KeyEvent event) -> {
+ // If the event is a key-down on the `enter` key, call `onHttpAuthenticationProceed()`.
+ if ((keyCode == KeyEvent.KEYCODE_ENTER) && (event.getAction() == KeyEvent.ACTION_DOWN)) {
+ // Trigger `onHttpAuthenticationProceed` and return the `DialogFragment` to the parent activity.
+ httpAuthenticationListener.onHttpAuthenticationProceed(HttpAuthenticationDialog.this);
+
+ // Manually dismiss the `AlertDialog`.
+ alertDialog.dismiss();
+
+ // Consume the event.
+ return true;
+ } else { // If any other key was pressed, do not consume the event.
+ return false;
}
});
// Allow the `enter` key on the keyboard to trigger `onHttpAuthenticationProceed()` from `passwordEditText`.
- passwordEditText.setOnKeyListener(new View.OnKeyListener() {
- public boolean onKey(View view, int keyCode, KeyEvent event) {
- // If the event is a key-down on the `enter` key, call `onHttpAuthenticationProceed()`.
- if ((keyCode == KeyEvent.KEYCODE_ENTER) && (event.getAction() == KeyEvent.ACTION_DOWN)) {
- // Trigger `onHttpAuthenticationProceed` and return the `DialogFragment` to the parent activity.
- httpAuthenticationListener.onHttpAuthenticationProceed(HttpAuthenticationDialog.this);
-
- // Manually dismiss the `AlertDialog`.
- alertDialog.dismiss();
-
- // Consume the event.
- return true;
- } else { // If any other key was pressed, do not consume the event.
- return false;
- }
+ passwordEditText.setOnKeyListener((View view, int keyCode, KeyEvent event) -> {
+ // If the event is a key-down on the `enter` key, call `onHttpAuthenticationProceed()`.
+ if ((keyCode == KeyEvent.KEYCODE_ENTER) && (event.getAction() == KeyEvent.ACTION_DOWN)) {
+ // Trigger `onHttpAuthenticationProceed` and return the `DialogFragment` to the parent activity.
+ httpAuthenticationListener.onHttpAuthenticationProceed(HttpAuthenticationDialog.this);
+
+ // Manually dismiss the `AlertDialog`.
+ alertDialog.dismiss();
+
+ // Consume the event.
+ return true;
+ } else { // If any other key was pressed, do not consume the event.
+ return false;
}
});
/*
- * Copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
import android.support.v7.app.AppCompatDialogFragment;
import android.view.View;
import android.view.ViewGroup;
+import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.CursorAdapter;
// Initialize the database helper. The two `nulls` do not specify the database name or a `CursorFactory`. The `0` specifies a database version, but that is ignored and set instead using a constant in `BookmarksDatabaseHelper`.
bookmarksDatabaseHelper = new BookmarksDatabaseHelper(getContext(), null, null, 0);
- // Use `AlertDialog.Builder` to create the `AlertDialog`.
+ // Use an alert dialog builder to create the alert dialog.
AlertDialog.Builder dialogBuilder;
// Set the style according to the theme.
// Set the title.
dialogBuilder.setTitle(R.string.move_to_folder);
+ // Remove the incorrect lint warning that `getActivity()` might be null.
+ assert getActivity() != null;
+
// Set the view. The parent view is `null` because it will be assigned by `AlertDialog`.
dialogBuilder.setView(getActivity().getLayoutInflater().inflate(R.layout.move_to_folder_dialog, null));
- // Set an `onClick()` listener for the negative button.
+ // Set the listener for the negative button.
dialogBuilder.setNegativeButton(R.string.cancel, (DialogInterface dialog, int which) -> {
// Do nothing. The `AlertDialog` will close automatically.
});
- // Set the `onClick()` listener fo the positive button.
+ // Set the listener fo the positive button.
dialogBuilder.setPositiveButton(R.string.move, (DialogInterface dialog, int which) -> {
// Return the `DialogFragment` to the parent activity on save.
moveToFolderListener.onMoveToFolder(MoveToFolderDialog.this);
});
- // Create an `AlertDialog` from the `AlertDialog.Builder`.
+ // Create an alert dialog from the alert dialog builder.
final AlertDialog alertDialog = dialogBuilder.create();
- // Show the `AlertDialog` so the items in the layout can be modified.
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ // Remove the warning below that `getWindow()` might be null.
+ assert alertDialog.getWindow() != null;
+
+ // Disable screenshots.
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
+ // Show the alert dialog so the items in the layout can be modified.
alertDialog.show();
// Get a handle for the positive button.
}
};
} else { // Display `Home Folder` at the top of the `ListView`.
- // Get the home folder icon drawable and convert it to a `Bitmap`. `this` specifies the current context.
+ // Get the home folder icon drawable and convert it to a `Bitmap`.
Drawable homeFolderIconDrawable = ContextCompat.getDrawable(getActivity().getApplicationContext(), R.drawable.folder_gray_bitmap);
BitmapDrawable homeFolderIconBitmapDrawable = (BitmapDrawable) homeFolderIconDrawable;
+ assert homeFolderIconDrawable != null;
Bitmap homeFolderIconBitmap = homeFolderIconBitmapDrawable.getBitmap();
+
// Convert the folder `Bitmap` to a byte array. `0` is for lossless compression (the only option for a PNG).
ByteArrayOutputStream homeFolderIconByteArrayOutputStream = new ByteArrayOutputStream();
homeFolderIconBitmap.compress(Bitmap.CompressFormat.PNG, 0, homeFolderIconByteArrayOutputStream);
/*
- * Copyright © 2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2017-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.WindowManager;
import android.widget.TextView;
import com.stoutner.privacybrowser.R;
@Override
@NonNull
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 = getActivity().getLayoutInflater();
- // Use `AlertDialog.Builder` to create the `AlertDialog`.
+ // Use an alert dialog builder to create the alert dialog.
AlertDialog.Builder dialogBuilder;
// Set the style according to the theme.
}
// Setup the neutral button.
- dialogBuilder.setNeutralButton(R.string.update_ssl, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Initialize the `long` date variables. If the date is `null`, a long value of `0` will be stored in the Domains database entry.
- long currentSslStartDateLong = 0;
- long currentSslEndDateLong = 0;
-
- // Convert the `Dates` into `longs`.
- if (currentSslStartDate != null) {
- currentSslStartDateLong = currentSslStartDate.getTime();
- }
-
- if (currentSslEndDate != null) {
- currentSslEndDateLong = currentSslEndDate.getTime();
- }
+ dialogBuilder.setNeutralButton(R.string.update_ssl, (DialogInterface dialog, int which) -> {
+ // Initialize the `long` date variables. If the date is `null`, a long value of `0` will be stored in the Domains database entry.
+ long currentSslStartDateLong = 0;
+ long currentSslEndDateLong = 0;
+
+ // Convert the `Dates` into `longs`.
+ if (currentSslStartDate != null) {
+ currentSslStartDateLong = currentSslStartDate.getTime();
+ }
- // Initialize the database handler. The two `nulls` do not specify the database name or a `CursorFactory`. The `0` specifies the database version, but that is ignored and set instead using a constant in `DomainsDatabaseHelper`.
- DomainsDatabaseHelper domainsDatabaseHelper = new DomainsDatabaseHelper(getContext(), null, null, 0);
-
- // Update the pinned SSL certificate for this domain.
- domainsDatabaseHelper.updateCertificate(MainWebViewActivity.domainSettingsDatabaseId, currentSslIssuedToCNameString, currentSslIssuedToONameString, currentSslIssuedToUNameString, currentSslIssuedByCNameString, currentSslIssuedByONameString,
- currentSslIssuedByUNameString, currentSslStartDateLong, currentSslEndDateLong);
-
- // Update the pinned SSL certificate global variables to match the information that is now in the database.
- MainWebViewActivity.pinnedDomainSslIssuedToCNameString = currentSslIssuedToCNameString;
- MainWebViewActivity.pinnedDomainSslIssuedToONameString = currentSslIssuedToONameString;
- MainWebViewActivity.pinnedDomainSslIssuedToUNameString = currentSslIssuedToUNameString;
- MainWebViewActivity.pinnedDomainSslIssuedByCNameString = currentSslIssuedByCNameString;
- MainWebViewActivity.pinnedDomainSslIssuedByONameString = currentSslIssuedByONameString;
- MainWebViewActivity.pinnedDomainSslIssuedByUNameString = currentSslIssuedByUNameString;
- MainWebViewActivity.pinnedDomainSslStartDate = currentSslStartDate;
- MainWebViewActivity.pinnedDomainSslEndDate = currentSslEndDate;
+ if (currentSslEndDate != null) {
+ currentSslEndDateLong = currentSslEndDate.getTime();
}
+
+ // Initialize the database handler. The `0` specifies the database version, but that is ignored and set instead using a constant in `DomainsDatabaseHelper`.
+ DomainsDatabaseHelper domainsDatabaseHelper = new DomainsDatabaseHelper(getContext(), null, null, 0);
+
+ // Update the pinned SSL certificate for this domain.
+ domainsDatabaseHelper.updateCertificate(MainWebViewActivity.domainSettingsDatabaseId, currentSslIssuedToCNameString, currentSslIssuedToONameString, currentSslIssuedToUNameString,
+ currentSslIssuedByCNameString, currentSslIssuedByONameString, currentSslIssuedByUNameString, currentSslStartDateLong, currentSslEndDateLong);
+
+ // Update the pinned SSL certificate global variables to match the information that is now in the database.
+ MainWebViewActivity.pinnedDomainSslIssuedToCNameString = currentSslIssuedToCNameString;
+ MainWebViewActivity.pinnedDomainSslIssuedToONameString = currentSslIssuedToONameString;
+ MainWebViewActivity.pinnedDomainSslIssuedToUNameString = currentSslIssuedToUNameString;
+ MainWebViewActivity.pinnedDomainSslIssuedByCNameString = currentSslIssuedByCNameString;
+ MainWebViewActivity.pinnedDomainSslIssuedByONameString = currentSslIssuedByONameString;
+ MainWebViewActivity.pinnedDomainSslIssuedByUNameString = currentSslIssuedByUNameString;
+ MainWebViewActivity.pinnedDomainSslStartDate = currentSslStartDate;
+ MainWebViewActivity.pinnedDomainSslEndDate = currentSslEndDate;
});
// Setup the negative button.
- dialogBuilder.setNegativeButton(R.string.back, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Call the `onSslMismatchBack` public interface to send the `WebView` back one page.
- pinnedSslCertificateMismatchListener.onSslMismatchBack();
- }
+ dialogBuilder.setNegativeButton(R.string.back, (DialogInterface dialog, int which) -> {
+ // Call the `onSslMismatchBack` public interface to send the `WebView` back one page.
+ pinnedSslCertificateMismatchListener.onSslMismatchBack();
});
// Setup the positive button.
- dialogBuilder.setPositiveButton(R.string.proceed, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Call the `onSslMismatchProceed` public interface.
- pinnedSslCertificateMismatchListener.onSslMismatchProceed();
- }
+ dialogBuilder.setPositiveButton(R.string.proceed, (DialogInterface dialog, int which) -> {
+ // Call the `onSslMismatchProceed` public interface.
+ pinnedSslCertificateMismatchListener.onSslMismatchProceed();
});
// Set the title.
// Set the layout. The parent view is `null` because it will be assigned by `AlertDialog`.
dialogBuilder.setView(layoutInflater.inflate(R.layout.pinned_ssl_certificate_mismatch_linearlayout, null));
- // Create an `AlertDialog` from the `AlertDialog.Builder`
+ // Create an alert dialog from the alert dialog builder.
final AlertDialog alertDialog = dialogBuilder.create();
- // Show the `AlertDialog` so the items in the layout can be modified.
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ // Remove the warning below that `getWindow()` might be null.
+ assert alertDialog.getWindow() != null;
+
+ // Disable screenshots.
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
+ // Show the alert dialog so the items in the layout can be modified.
alertDialog.show();
- // Setup `wrapVerticalContentViewPager`.
- WrapVerticalContentViewPager wrapVerticalContentViewPager = (WrapVerticalContentViewPager) alertDialog.findViewById(R.id.pinned_ssl_certificate_mismatch_viewpager);
+ // Setup the view pager.
+ WrapVerticalContentViewPager wrapVerticalContentViewPager = alertDialog.findViewById(R.id.pinned_ssl_certificate_mismatch_viewpager);
wrapVerticalContentViewPager.setAdapter(new pagerAdapter());
- // Setup the `TabLayout` and connect it to the `WrapVerticalContentViewPager`.
- TabLayout tabLayout = (TabLayout) alertDialog.findViewById(R.id.pinned_ssl_certificate_mismatch_tablayout);
+ // Setup the tab layout and connect it to the view pager.
+ TabLayout tabLayout = alertDialog.findViewById(R.id.pinned_ssl_certificate_mismatch_tablayout);
tabLayout.setupWithViewPager(wrapVerticalContentViewPager);
- // `onCreateDialog` requires the return of an `AlertDialog`.
+ // `onCreateDialog()` requires the return of an `AlertDialog`.
return alertDialog;
}
private class pagerAdapter extends PagerAdapter {
@Override
- public boolean isViewFromObject(View view, Object object) {
+ public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
// Check to see if the `View` and the `Object` are the same.
return (view == object);
}
}
@Override
- public Object instantiateItem(ViewGroup container, int position) {
+ @NonNull
+ public Object instantiateItem(@NonNull ViewGroup container, int position) {
// Inflate the `ScrollView` for this tab.
ViewGroup tabViewGroup = (ViewGroup) layoutInflater.inflate(R.layout.pinned_ssl_certificate_mismatch_scrollview, container, false);
// Get handles for the `TextViews`.
- TextView issuedToCNameTextView = (TextView) tabViewGroup.findViewById(R.id.issued_to_cname);
- TextView issuedToONameTextView = (TextView) tabViewGroup.findViewById(R.id.issued_to_oname);
- TextView issuedToUNameTextView = (TextView) tabViewGroup.findViewById(R.id.issued_to_uname);
- TextView issuedByCNameTextView = (TextView) tabViewGroup.findViewById(R.id.issued_by_cname);
- TextView issuedByONameTextView = (TextView) tabViewGroup.findViewById(R.id.issued_by_oname);
- TextView issuedByUNameTextView = (TextView) tabViewGroup.findViewById(R.id.issued_by_uname);
- TextView startDateTextView = (TextView) tabViewGroup.findViewById(R.id.start_date);
- TextView endDateTextView = (TextView) tabViewGroup.findViewById(R.id.end_date);
+ TextView issuedToCNameTextView = tabViewGroup.findViewById(R.id.issued_to_cname);
+ TextView issuedToONameTextView = tabViewGroup.findViewById(R.id.issued_to_oname);
+ TextView issuedToUNameTextView = tabViewGroup.findViewById(R.id.issued_to_uname);
+ TextView issuedByCNameTextView = tabViewGroup.findViewById(R.id.issued_by_cname);
+ TextView issuedByONameTextView = tabViewGroup.findViewById(R.id.issued_by_oname);
+ TextView issuedByUNameTextView = tabViewGroup.findViewById(R.id.issued_by_uname);
+ TextView startDateTextView = tabViewGroup.findViewById(R.id.start_date);
+ TextView endDateTextView = tabViewGroup.findViewById(R.id.end_date);
// Setup the labels.
String cNameLabel = getString(R.string.common_name) + " ";
if (MainWebViewActivity.pinnedDomainSslStartDate == null) {
startDateStringBuilder = new SpannableStringBuilder(startDateLabel);
} else {
- startDateStringBuilder = new SpannableStringBuilder(startDateLabel + DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.LONG).format(MainWebViewActivity.pinnedDomainSslStartDate));
+ startDateStringBuilder = new SpannableStringBuilder(startDateLabel + DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.LONG)
+ .format(MainWebViewActivity.pinnedDomainSslStartDate));
}
if (MainWebViewActivity.pinnedDomainSslEndDate == null) {
/*
- * Copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.view.LayoutInflater;
+import android.view.WindowManager;
import android.widget.TextView;
import com.stoutner.privacybrowser.R;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ // Remove the incorrect lint warning that `getArguments()` might be null.
+ assert getArguments() != null;
+
// Save the components of the SSL error message in class variables.
primaryErrorInt = getArguments().getInt("PrimaryErrorInt");
urlWithError = getArguments().getString("UrlWithError");
@Override
@NonNull
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();
- // Use `AlertDialog.Builder` to create the `AlertDialog`.
+ // Use an alert dialog builder to create the alert dialog.
AlertDialog.Builder dialogBuilder;
// Set the style and icon according to the theme.
// Set the view. The parent view is `null` because it will be assigned by `AlertDialog`.
dialogBuilder.setView(layoutInflater.inflate(R.layout.ssl_certificate_error, null));
- // Set an `onClick` listener on the negative button. `null` doesn't do anything extra when the button is pressed. The `Dialog` will automatically close.
- dialogBuilder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- sslCertificateErrorListener.onSslErrorCancel();
- }
- });
+ // Set a listener on the negative button.
+ dialogBuilder.setNegativeButton(R.string.cancel, (DialogInterface dialog, int which) -> sslCertificateErrorListener.onSslErrorCancel());
- // Set an `onClick` listener on the positive button.
- dialogBuilder.setPositiveButton(R.string.proceed, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- sslCertificateErrorListener.onSslErrorProceed();
- }
- });
+ // Set a listener on the positive button.
+ dialogBuilder.setPositiveButton(R.string.proceed, (DialogInterface dialog, int which) -> sslCertificateErrorListener.onSslErrorProceed());
- // Create an `AlertDialog` from the `AlertDialog.Builder`.
+ // Create an alert dialog from the alert dialog builder.
AlertDialog alertDialog = dialogBuilder.create();
- // We have to show the `AlertDialog` before we can modify the content.
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ // Remove the warning below that `getWindow()` might be null.
+ assert alertDialog.getWindow() != null;
+
+ // Disable screenshots.
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
+ // We have to show the alert dialog before we can modify the content.
alertDialog.show();
// Get handles for the `TextViews`
- TextView primaryErrorTextView = (TextView) alertDialog.findViewById(R.id.primary_error);
- TextView urlTextView = (TextView) alertDialog.findViewById(R.id.url_error_dialog);
- TextView issuedToCNameTextView = (TextView) alertDialog.findViewById(R.id.issued_to_cname_error_dialog);
- TextView issuedToONameTextView = (TextView) alertDialog.findViewById(R.id.issued_to_oname_error_dialog);
- TextView issuedToUNameTextView = (TextView) alertDialog.findViewById(R.id.issued_to_uname_error_dialog);
- TextView issuedByTextView = (TextView) alertDialog.findViewById(R.id.issued_by_textview);
- TextView issuedByCNameTextView = (TextView) alertDialog.findViewById(R.id.issued_by_cname_error_dialog);
- TextView issuedByONameTextView = (TextView) alertDialog.findViewById(R.id.issued_by_oname_error_dialog);
- TextView issuedByUNameTextView = (TextView) alertDialog.findViewById(R.id.issued_by_uname_error_dialog);
- TextView validDatesTextView = (TextView) alertDialog.findViewById(R.id.valid_dates_textview);
- TextView startDateTextView = (TextView) alertDialog.findViewById(R.id.start_date_error_dialog);
- TextView endDateTextView = (TextView) alertDialog.findViewById(R.id.end_date_error_dialog);
+ TextView primaryErrorTextView = alertDialog.findViewById(R.id.primary_error);
+ TextView urlTextView = alertDialog.findViewById(R.id.url_error_dialog);
+ TextView issuedToCNameTextView = alertDialog.findViewById(R.id.issued_to_cname_error_dialog);
+ TextView issuedToONameTextView = alertDialog.findViewById(R.id.issued_to_oname_error_dialog);
+ TextView issuedToUNameTextView = alertDialog.findViewById(R.id.issued_to_uname_error_dialog);
+ TextView issuedByTextView = alertDialog.findViewById(R.id.issued_by_textview);
+ TextView issuedByCNameTextView = alertDialog.findViewById(R.id.issued_by_cname_error_dialog);
+ TextView issuedByONameTextView = alertDialog.findViewById(R.id.issued_by_oname_error_dialog);
+ TextView issuedByUNameTextView = alertDialog.findViewById(R.id.issued_by_uname_error_dialog);
+ TextView validDatesTextView = alertDialog.findViewById(R.id.valid_dates_textview);
+ TextView startDateTextView = alertDialog.findViewById(R.id.start_date_error_dialog);
+ TextView endDateTextView = alertDialog.findViewById(R.id.end_date_error_dialog);
// Setup the common strings.
String urlLabel = getString(R.string.url_label) + " ";
/*
- * Copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
import android.util.Base64;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.WindowManager;
import android.webkit.WebBackForwardList;
import android.widget.AdapterView;
import android.widget.ListView;
// Convert `defaultFavoriteIconDrawable` to a `BitmapDrawable`.
BitmapDrawable defaultFavoriteIconBitmapDrawable = (BitmapDrawable) defaultFavoriteIconDrawable;
+ // Remove the incorrect lint error that `getBitmap()` might be null.
+ assert defaultFavoriteIconBitmapDrawable != null;
+
// Extract a `Bitmap` from `defaultFavoriteIconBitmapDrawable`.
Bitmap defaultFavoriteIcon = defaultFavoriteIconBitmapDrawable.getBitmap();
// Create a `ByteArrayOutputStream`.
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ // Remove the incorrect lint error that `compress()` might be null;
+ assert iconBitmap != null;
+
// Convert the favorite icon `Bitmap` to a `ByteArrayOutputStream`. `100` is the compression quality, which is ignored by `PNG`.
iconBitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ // Remove the incorrect lint error that `getArguments()` might be null.
+ assert getArguments() != null;
+
// Get the `ArrayLists` from the `Arguments`.
ArrayList<String> urlStringArrayList = getArguments().getStringArrayList("URL_History");
ArrayList<String> favoriteIconBase64StringArrayList = getArguments().getStringArrayList("Favorite_Icons");
// `@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();
- // Use `AlertDialog.Builder` to create the `AlertDialog`.
+ // Use an alert dialog builder to create the alert dialog.
AlertDialog.Builder dialogBuilder;
// Set the style according to the theme.
dialogBuilder.setView(layoutInflater.inflate(R.layout.url_history_dialog, null));
// Set an `onClick()` listener on the negative button.
- dialogBuilder.setNegativeButton(R.string.clear_history, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Clear the history.
- urlHistoryListener.onClearHistory();
- }
+ dialogBuilder.setNegativeButton(R.string.clear_history, (DialogInterface dialog, int which) -> {
+ // Clear the history.
+ urlHistoryListener.onClearHistory();
});
// Set an `onClick()` listener on the positive button.
- dialogBuilder.setPositiveButton(R.string.close, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Do nothing if `Close` is clicked. The `Dialog` will automatically close.
- }
+ dialogBuilder.setPositiveButton(R.string.close, (DialogInterface dialog, int which) -> {
+ // Do nothing if `Close` is clicked. The `Dialog` will automatically close.
});
- // Create an `AlertDialog` from the `AlertDialog.Builder`.
+ // Create an alert dialog from the alert dialog builder.
final AlertDialog alertDialog = dialogBuilder.create();
- // We need to show `alertDialog` before we can modify the contents.
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ // Remove the warning below that `getWindow()` might be null.
+ assert alertDialog.getWindow() != null;
+
+ // Disable screenshots.
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
+ //The alert dialog must be shown before the contents can be modified.
alertDialog.show();
// Instantiate a `HistoryArrayAdapter`.
final HistoryArrayAdapter historyArrayAdapter = new HistoryArrayAdapter(getContext(), historyArrayList, currentPageId);
- // Get a handle for `listView`.
- ListView listView = (ListView) alertDialog.findViewById(R.id.history_listview);
+ // Get a handle for the list view.
+ ListView listView = alertDialog.findViewById(R.id.history_listview);
- // Set the adapter on `listView`.
+ // Set the list view adapter.
listView.setAdapter(historyArrayAdapter);
- // Listen for clicks on entries in `listView`.
- listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- // Convert the `long` `id` to an `int`.
- int itemId = (int) id;
-
- // Only consume the click if it is not on the `currentPageId`.
- if (itemId != currentPageId) {
- // Go forward or back to `itemId`.
- urlHistoryListener.onUrlHistoryEntrySelected(currentPageId - itemId);
-
- // Dismiss the `Dialog`.
- alertDialog.dismiss();
- }
+ // Listen for clicks on entries in the list view.
+ listView.setOnItemClickListener((AdapterView<?> parent, View view, int position, long id) -> {
+ // Convert the `long` `id` to an `int`.
+ int itemId = (int) id;
+
+ // Only consume the click if it is not on the `currentPageId`.
+ if (itemId != currentPageId) {
+ // Go forward or back to `itemId`.
+ urlHistoryListener.onUrlHistoryEntrySelected(currentPageId - itemId);
+
+ // Dismiss the `Dialog`.
+ alertDialog.dismiss();
}
});
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.view.LayoutInflater;
+import android.view.WindowManager;
import android.widget.TextView;
import com.stoutner.privacybrowser.activities.MainWebViewActivity;
// Set the icon.
dialogBuilder.setIcon(favoriteIconDrawable);
- // Set an `onClick` listener on the negative button. Using `null` as the listener closes the dialog without doing anything else.
+ // Set a listener on the negative button. Using `null` as the listener closes the dialog without doing anything else.
dialogBuilder.setNegativeButton(R.string.close, null);
// Check to see if the website is encrypted.
// Set the Layout. The parent view is `null` because it will be assigned by `AlertDialog`.
dialogBuilder.setView(layoutInflater.inflate(R.layout.unencrypted_website, null));
+ // Create an alert dialog from the alert dialog builder.
+ final AlertDialog alertDialog = dialogBuilder.create();
+
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ // Remove the warning below that `getWindow()` might be null.
+ assert alertDialog.getWindow() != null;
+
+ // Disable screenshots.
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// `onCreateDialog` requires the return of an `AlertDialog`.
- return dialogBuilder.create();
+ return alertDialog;
} else { // Display the SSL certificate information
// Set the title.
// Create an alert dialog from the builder.
final AlertDialog alertDialog = dialogBuilder.create();
+ // Disable screenshots if not allowed.
+ if (!MainWebViewActivity.allowScreenshots) {
+ // Remove the warning below that `getWindow()` might be null.
+ assert alertDialog.getWindow() != null;
+
+ // Disable screenshots.
+ alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
// The alert dialog must be shown before items in the layout can be modified.
alertDialog.show();
final Preference customUserAgentPreference = findPreference("custom_user_agent");
final Preference incognitoModePreference = findPreference("incognito_mode");
final Preference doNotTrackPreference = findPreference("do_not_track");
+ final Preference allowScreenshotsPreference = findPreference("allow_screenshots");
final Preference easyListPreference = findPreference("easylist");
final Preference easyPrivacyPreference = findPreference("easyprivacy");
final Preference fanboyAnnoyanceListPreference = findPreference("fanboy_annoyance_list");
// Set the default font size as the summary text for the preference.
defaultFontSizePreference.setSummary(savedPreferences.getString("default_font_size", "100") + "%%");
- // Disable `javaScriptPreference` if `nightModeBoolean` is true. JavaScript will be enabled for all web pages.
+ // Disable the JavaScript preference if Night Mode is enabled. JavaScript will be enabled for all web pages.
javaScriptPreference.setEnabled(!nightMode);
- // Set the `javaScriptPreference` icon.
+ // Set the JavaScript icon.
if (javaScriptEnabled || nightMode) {
javaScriptPreference.setIcon(R.drawable.javascript_enabled);
} else {
javaScriptPreference.setIcon(R.drawable.privacy_mode);
}
- // Set the `firstPartyCookiesPreference` icon.
+ // Set the first-party cookies icon.
if (firstPartyCookiesEnabled) {
firstPartyCookiesPreference.setIcon(R.drawable.cookies_enabled);
} else {
}
}
- // Set the `thirdPartyCookiesPreference` icon.
+ // Set the third party cookies icon.
if (firstPartyCookiesEnabled && Build.VERSION.SDK_INT >= 21) {
if (thirdPartyCookiesEnabled) {
thirdPartyCookiesPreference.setIcon(R.drawable.cookies_warning);
}
}
- // Set the `domStoragePreference` icon.
+ // Set the DOM storage icon.
if (javaScriptEnabled || nightMode) { // The preference is enabled.
if (savedPreferences.getBoolean("dom_storage_enabled", false)) { // DOM storage is enabled.
domStoragePreference.setIcon(R.drawable.dom_storage_enabled);
}
}
- // Set the `saveFormDataPreference` icon.
+ // Set the save form data icon.
if (savedPreferences.getBoolean("save_form_data_enabled", false)) {
saveFormDataPreference.setIcon(R.drawable.form_data_enabled);
} else {
}
}
- // Set the `customUserAgentPreference` icon.
+ // Set the custom user agent icon.
if (customUserAgentPreference.isEnabled()) {
if (MainWebViewActivity.darkTheme) {
customUserAgentPreference.setIcon(R.drawable.custom_user_agent_enabled_dark);
}
}
- // Set the `incognitoModePreference` icon.
+ // Set the incognito mode icon.
if (savedPreferences.getBoolean("incognito_mode", false)) {
if (MainWebViewActivity.darkTheme) {
incognitoModePreference.setIcon(R.drawable.incognito_mode_enabled_dark);
}
}
- // Set the `doNotTrackPreference` icon.
+ // Set the Do Not Track icon.
if (savedPreferences.getBoolean("do_not_track", false)) {
if (MainWebViewActivity.darkTheme) {
doNotTrackPreference.setIcon(R.drawable.block_tracking_enabled_dark);
}
}
+ // Set the allow screenshots icon.
+ if (savedPreferences.getBoolean("allow_screenshots", false)) {
+ if (MainWebViewActivity.darkTheme) {
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_dark);
+ } else {
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_light);
+ }
+ } else {
+ if (MainWebViewActivity.darkTheme) {
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_dark);
+ } else {
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_light);
+ }
+ }
+
// Set the EasyList icon.
if (savedPreferences.getBoolean("easylist", true)) {
if (MainWebViewActivity.darkTheme) {
}
}
- // Set the Fanboy list icons.
+ // Set the Fanboy lists icons.
if (fanboyAnnoyanceListEnabled) {
if (MainWebViewActivity.darkTheme) {
// Set the Fanboy annoyance list icon.
}
}
- // Set the `searchCustomURLPreference` icon.
+ // Set the search custom URL icon.
if (searchCustomURLPreference.isEnabled()) {
if (MainWebViewActivity.darkTheme) {
searchCustomURLPreference.setIcon(R.drawable.search_custom_url_enabled_dark);
break;
+ case "allow_screenshots":
+ // Update the icon.
+ if (sharedPreferences.getBoolean("allow_screenshots", false)) {
+ if (MainWebViewActivity.darkTheme) {
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_dark);
+ } else {
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_enabled_light);
+ }
+ } else {
+ if (MainWebViewActivity.darkTheme) {
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_dark);
+ } else {
+ allowScreenshotsPreference.setIcon(R.drawable.allow_screenshots_disabled_light);
+ }
+ }
+
+ // Create an intent to restart Privacy Browser.
+ Intent allowScreenshotsRestartIntent = getActivity().getParentActivityIntent();
+
+ // Assert that the intent is not null to remove the lint error below.
+ assert allowScreenshotsRestartIntent != null;
+
+ // `Intent.FLAG_ACTIVITY_CLEAR_TASK` removes all activities from the stack. It requires `Intent.FLAG_ACTIVITY_NEW_TASK`.
+ allowScreenshotsRestartIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+
+ // Make it so.
+ startActivity(allowScreenshotsRestartIntent);
+ break;
+
case "easylist":
// Update the icon.
if (sharedPreferences.getBoolean("easylist", true)) {
darkThemePreference.setIcon(R.drawable.theme_light);
}
- // Create an `Intent` to restart Privacy Browser.
- Intent intent = getActivity().getParentActivityIntent();
+ // Create an intent to restart Privacy Browser.
+ Intent changeThemeRestartIntent = getActivity().getParentActivityIntent();
- // Assert that `intent` is not `null` to remove the lint error below.
- assert intent != null;
+ // 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`.
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+ changeThemeRestartIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
// Make it so.
- startActivity(intent);
+ startActivity(changeThemeRestartIntent);
break;
case "night_mode":
-<!-- `about_dark.xml` comes from the Android Material icon set, where it is called `ic_info_outline`. It is released under the Apache License 2.0. -->
+<!-- `about_dark.xml` 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"
-<!-- `about_light.xml` comes from the Android Material icon set, where it is called `ic_info_outline`. It is released under the Apache License 2.0. -->
+<!-- `about_light.xml` 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"
-<!-- `add_dark.xml` comes from the Android Material icon set, where it is called `ic_add`. It is released under the Apache License 2.0. -->
+<!-- `add_dark.xml` 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"
-<!-- `add_light.xml` comes from the Android Material icon set, where it is called `ic_add`. It is released under the Apache License 2.0. -->
+<!-- `add_light.xml` 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"
--- /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
+<!-- `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="#88000000"
+ 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
+<!-- `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>
-<!-- `back.xml` comes from the Android Material icon set, where it is called `ic_arrow_back`. It is released under the Apache License 2.0. -->
+<!-- `back.xml` 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
-<!-- `block_ads_disabled_dark.xml` comes from the Android Material icon set, where it is called `ic_web`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `block_ads_disabled_light.xml` comes from the Android Material icon set, where it is called `ic_web`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `block_ads_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_web`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `block_ads_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_web`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `block_tracking_disabled_dark.xml` comes from the Android Material icon set, where it is called `ic_location_off`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `block_tracking_disabled_light.xml` comes from the Android Material icon set, where it is called `ic_location_off`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `block_tracking_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_location_off`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `block_tracking_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_location_off`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `bookmarks_dark.xml` comes from the Android Material icon set, where it is called `ic_bookmark_border`. It is released under the Apache License 2.0. -->
+<!-- `bookmarks_dark.xml` comes from the Android Material icon set, where it is called `bookmark_border`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
-<!-- `bookmarks_light.xml` comes from the Android Material icon set, where it is called `ic_bookmark_border`. It is released under the Apache License 2.0. -->
+<!-- `bookmarks_light.xml` comes from the Android Material icon set, where it is called `bookmark_border`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
-<!-- `cache_cleared_dark.xml` comes from the Android Material icon set, where it is called `ic_donut_small`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `cache_cleared_light.xml` comes from the Android Material icon set, where it is called `ic_donut_small`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `cache_cleared.xml` comes from the Android Material icon set, where it is called `ic_donut_small`. It is released under the Apache License 2.0. -->
+<!-- `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. -->
<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
-<!-- `clear_and_exit.xml` is derived from ic_exit_to_app, which is part of the Android Material icon set. It is released under the Apache License 2.0.
+<!-- `clear_and_exit.xml` is derived from `exit_to_app`, which is part of the Android Material icon set. It is released under the Apache License 2.0.
Modifications copyright © 2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
-<!-- `clear_everything_disabled.xml` comes from the Android Material icon set, where it is called `ic_delete_forever`. It is released under the Apache License 2.0. -->
+<!-- `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. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
-<!-- `clear_everything_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_delete_forever`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `clear_everything_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_delete_forever`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `close.xml` comes from the Android Material icon set, where it is called `ic_close`. It is released under the Apache License 2.0. -->
+<!-- `close.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"
-<!-- `create_bookmark_dark.xml` is derived from elements of `ic_bookmark` and `ic_create_new_folder`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
+<!-- `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"
-<!-- `create_bookmark_light.xml` is derived from elements of `ic_bookmark` and `ic_create_new_folder`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
+<!-- `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"
-<!-- `create_folder_dark.xml` comes from the Android Material icon set, where it is called `ic_create_new_folder`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `create_folder_light.xml` comes from the Android Material icon set, where it is called `ic_create_new_folder`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `custom_user_agent_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_important_devices_off`. It is released under the Apache License 2.0. -->
+<!-- `custom_user_agent_enabled_dark.xml` 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
-<!-- `custom_user_agent_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_important_devices_off`. It is released under the Apache License 2.0. -->
+<!-- `custom_user_agent_enabled_light.xml` 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
-<!-- `custom_user_agent_ghosted_dark.xml` comes from the Android Material icon set, where it is called `ic_important_devices_off`. It is released under the Apache License 2.0. -->
+<!-- `custom_user_agent_ghosted_dark.xml` 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
-<!-- `custom_user_agent_ghosted_light.xml` comes from the Android Material icon set, where it is called `ic_important_devices_off`. It is released under the Apache License 2.0. -->
+<!-- `custom_user_agent_ghosted_light.xml` 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
-<!-- `delete_blue.xml` comes from the Android Material icon set, where it is called `ic_delete`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `delete_dark.xml` comes from the Android Material icon set, where it is called `ic_delete`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `delete_light.xml` comes from the Android Material icon set, where it is called `ic_delete`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `dom_storage_cleared_dark.xml` comes from the Android Material icon set, where it is called `ic_web`. It is released under the Apache License 2.0. -->
+<!-- `dom_storage_cleared_dark.xml` 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
-<!-- `dom_storage_cleared_light.xml` comes from the Android Material icon set, where it is called `ic_web`. It is released under the Apache License 2.0. -->
+<!-- `dom_storage_cleared_light.xml` 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
-<!-- `dom_storage_disabled_dark.xml` comes from the Android Material icon set, where it is called `ic_web`. It is released under the Apache License 2.0. -->
+<!-- `dom_storage_disabled_dark.xml` 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
-<!-- `dom_storage_disabled_light.xml` comes from the Android Material icon set, where it is called `ic_web`. It is released under the Apache License 2.0. -->
+<!-- `dom_storage_disabled_light.xml` 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
-<!-- `dom_storage_enabled.xml` comes from the Android Material icon set, where it is called `ic_web`. It is released under the Apache License 2.0. -->
+<!-- `dom_storage_enabled.xml` 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
-<!-- `dom_storage_ghosted_dark.xml` comes from the Android Material icon set, where it is called `ic_web`. It is released under the Apache License 2.0. -->
+<!-- `dom_storage_ghosted_dark.xml` 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
-<!-- `dom_storage_ghosted_light.xml` comes from the Android Material icon set, where it is called `ic_web`. It is released under the Apache License 2.0. -->
+<!-- `dom_storage_ghosted_light.xml` 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
-<!-- `dom_storage_cleared.xml` comes from the Android Material icon set, where it is called `ic_web`. It is released under the Apache License 2.0. -->
+<!-- `dom_storage_cleared.xml` 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
-<!-- `domains.xml` comes from the Android Material icon set, where it is called `ic_import_contacts`. It is released under the Apache License 2.0. -->
+<!-- `domains.xml` 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
-<!-- `downloads_dark.xml` comes from the Android Material icon set, where it is called `ic_file_download`. It is released under the Apache License 2.0. -->
+<!-- `downloads_dark.xml` 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"
-<!-- `downloads_light.xml` comes from the Android Material icon set, where it is called `ic_file_download`. It is released under the Apache License 2.0. -->
+<!-- `downloads_light.xml` 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"
-<!-- `edit_dark.xml` comes from the Android Material icon set, where it is called `ic_edit`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `edit_light.xml` comes from the Android Material icon set, where it is called `ic_edit`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `folder_dark_blue.xml` comes from the Android Material icon set, where it is called `ic_folder`. It is released under the Apache License 2.0. -->
+<!-- `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. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
-<!-- `folder_gray.xml` comes from the Android Material icon set, where it is called `ic_folder`. It is released under the Apache License 2.0. -->
+<!-- `folder_gray.xml` 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"
-<!-- `font_size_dark.xml` comes from the Android Material icon set, where it is called `ic_text_fields`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `font_size_light.xml` comes from the Android Material icon set, where it is called `ic_text_fields`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `form_data_cleared_dark.xml` comes from the Android Material icon set, where it is called `ic_subtitles`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `form_data_cleared_light.xml` comes from the Android Material icon set, where it is called `ic_subtitles`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `form_data_disabled_dark.xml` comes from the Android Material icon set, where it is called `ic_subtitles`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `form_data_disabled_light.xml` comes from the Android Material icon set, where it is called `ic_subtitles`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `form_data_enabled.xml` comes from the Android Material icon set, where it is called `ic_subtitles`. It is released under the Apache License 2.0. -->
+<!-- `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. -->
<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
-<!-- `form_data_warning.xml` comes from the Android Material icon set, where it is called `ic_subtitles`. It is released under the Apache License 2.0. -->
+<!-- `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. -->
<!-- `tools:ignore="VectorRaster"` removes the lint warning about `android:autoMirrored="true"` not applying to API < 21. -->
<vector
-<!-- `forward.xml` comes from the Android Material icon set, where it is called `ic_arrow_forward`. It is released under the Apache License 2.0. -->
+<!-- `forward.xml` 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
-<!-- `full_screen_disabled_dark.xml` comes from the Android Material icon set, where it is called `ic_smartphone`. It is released under the Apache License 2.0. -->
+<!-- `full_screen_disabled_dark.xml` 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"
-<!-- `full_screen_disabled_light.xml` comes from the Android Material icon set, where it is called `ic_smartphone`. It is released under the Apache License 2.0. -->
+<!-- `full_screen_disabled_light.xml` 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"
-<!-- `full_screen_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_smartphone`. It is released under the Apache License 2.0. -->
+<!-- `full_screen_enabled_dark.xml` 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"
-<!-- `full_screen_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_smartphone`. It is released under the Apache License 2.0. -->
+<!-- `full_screen_enabled_light.xml` 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"
-<!-- `guide.xml` comes from the Android Material icon set, where it is called `ic_import_contacts`. It is released under the Apache License 2.0. -->
+<!-- `guide.xml` 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
-<!-- `hide_system_bars_disabled_dark.xml` comes from the Android Material icon set, where it is called `ic_fullscreen`. It is released under the Apache License 2.0. -->
+<!-- `hide_system_bars_disabled_dark.xml` comes from the Android Material icon set, where it is called `fullscreen`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
-<!-- `hide_system_bars_disabled_light.xml` comes from the Android Material icon set, where it is called `ic_fullscreen`. It is released under the Apache License 2.0. -->
+<!-- `hide_system_bars_disabled_light.xml` comes from the Android Material icon set, where it is called `fullscreen`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
-<!-- `hide_system_bars_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_fullscreen`. It is released under the Apache License 2.0. -->
+<!-- `hide_system_bars_enabled_dark.xml` comes from the Android Material icon set, where it is called `fullscreen`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
-<!-- `hide_system_bars_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_fullscreen`. It is released under the Apache License 2.0. -->
+<!-- `hide_system_bars_enabled_light.xml` comes from the Android Material icon set, where it is called `fullscreen`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
-<!-- `hide_system_bars_ghosted_dark.xml` comes from the Android Material icon set, where it is called `ic_fullscreen`. It is released under the Apache License 2.0. -->
+<!-- `hide_system_bars_ghosted_dark.xml` comes from the Android Material icon set, where it is called `fullscreen`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
-<!-- `hide_system_bars_ghosted_light.xml` comes from the Android Material icon set, where it is called `ic_fullscreen`. It is released under the Apache License 2.0. -->
+<!-- `hide_system_bars_ghosted_light.xml` comes from the Android Material icon set, where it is called `fullscreen`. It is released under the Apache License 2.0. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
-<!-- `history.xml` comes from the Android Material icon set, where it is called `ic_list`. It is released under the Apache License 2.0. -->
+<!-- `history.xml` 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
-<!-- `home_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_home`. It is released under the Apache License 2.0. -->
+<!-- `home_enabled_dark.xml` 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"
-<!-- `home_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_home`. It is released under the Apache License 2.0. -->
+<!-- `home_enabled_light.xml` 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"
-<!-- `home_ghosted_dark.xml` comes from the Android Material icon set, where it is called `ic_home`. It is released under the Apache License 2.0. -->
+<!-- `home_ghosted_dark.xml` 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"
-<!-- `home_ghosted_light.xml` comes from the Android Material icon set, where it is called `ic_home`. It is released under the Apache License 2.0. -->
+<!-- `home_ghosted_light.xml` 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"
-<!-- `images_disabled_dark.xml` comes from the Android Material icon set, where it is called `ic_image`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `images_disabled_light.xml` comes from the Android Material icon set, where it is called `ic_image`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `images_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_image`. It is released under the Apache License 2.0. -->
+<!-- `images_enabled_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
-<!-- `images_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_image`. It is released under the Apache License 2.0. -->
+<!-- `images_enabled_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
-<!-- `incognito_mode_disabled_dark.xml` comes from the Android Material icon set, where it is called `ic_visibility_off`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `incognito_mode_disabled_light.xml` comes from the Android Material icon set, where it is called `ic_visibility_off`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `incognito_mode_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_visibility_off`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `incognito_mode_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_visibility_off`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `javascript_enabled.xml` is derived from `ic_security` and `ic_language`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
+<!-- `javascript_enabled.xml` is derived from `security` and `language`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
Modifications copyright © 2016-2017 Soren Stoutner <soren@stoutner.com>. The resulting image is released under the GPLv3+ license. -->
-
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="26dp"
-<!-- `lock_dark.xml` comes from the Android Material icon set, where it is called `ic_lock`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `lock_light.xml` comes from the Android Material icon set, where it is called `ic_lock`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `more_disabled_dark.xml` comes from the Android Material icon set, where it is called `ic_more`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `more_disabled_light.xml` comes from the Android Material icon set, where it is called `ic_more`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `more_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_more`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `more_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_more`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `move_down_disabled.xml` comes from the Android Material icon set, where it is called `ic_vertical_align_bottom`. It is released under the Apache License 2.0. -->
+<!-- `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. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
-<!-- `move_down_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_vertical_align_bottom`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `move_down_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_vertical_align_bottom`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `move_to_folder_dark.xml` is derived from elements of `ic_folder` and `ic_exit_to_app`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
+<!-- `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. -->
-<!-- `move_to_folder_light.xml` is derived from elements of `ic_folder` and `ic_exit_to_app`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
+<!-- `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. -->
-<!-- `move_up_disabled.xml` comes from the Android Material icon set, where it is called `ic_vertical_align_top`. It is released under the Apache License 2.0. -->
+<!-- `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. -->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
-<!-- `move_up_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_vertical_align_top`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `move_up_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_vertical_align_top`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `next.xml` comes from the Android Material icon set, where it is called `ic_expand_more`. It is released under the Apache License 2.0. -->
+<!-- `next.xml` 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"
-<!-- `night_mode_disabled_dark.xml` is derived from `ic_compare`, which is part of the Android Material icon set. `ic_compare` is released under the Apache License 2.0.
+<!-- `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. -->
-<!-- `night_mode_disabled_dark.xml` is derived from `ic_compare`, which is part of the Android Material icon set. `ic_compare` is released under the Apache License 2.0.
+<!-- `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. -->
-<!-- `night_mode_enabled_dark.xml` is derived from `ic_compare`, which is part of the Android Material icon set. `ic_compare` is released under the Apache License 2.0.
+<!-- `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. -->
-<!-- `night_mode_enabled_light.xml` is derived from `ic_compare`, which is part of the Android Material icon set. `ic_compare` is released under the Apache License 2.0.
+<!-- `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. -->
-<!-- `orbot_disabled_dark.xml` comes from the Orbot project. It is a modified version of <https://gitweb.torproject.org/orbot.git/tree/app/src/main/res/drawable-xxxhdpi/ic_stat_tor.png>, which is released under the 3-clause BSD license.
- Modifications copyright Soren Stoutner <soren@stoutner.com> 2017. The resulting image is released under the GPLv3+ license. -->
+<!-- `orbot_disabled_dark.xml` comes from the Orbot project. It is a modified version of <https://gitweb.torproject.org/orbot.git/tree/app/src/main/res/drawable-xxxhdpi/ic_stat_tor.png>,
+ which is released under the 3-clause BSD license. Modifications copyright Soren Stoutner <soren@stoutner.com> 2017. 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
-<!-- `orbot_disabled_light.xml` comes from the Orbot project. It is a modified version of <https://gitweb.torproject.org/orbot.git/tree/app/src/main/res/drawable-xxxhdpi/ic_stat_tor.png>, which is released under the 3-clause BSD license.
- Modifications copyright Soren Stoutner <soren@stoutner.com> 2017. The resulting image is released under the GPLv3+ license. -->
+<!-- `orbot_disabled_light.xml` comes from the Orbot project. It is a modified version of <https://gitweb.torproject.org/orbot.git/tree/app/src/main/res/drawable-xxxhdpi/ic_stat_tor.png>,
+ which is released under the 3-clause BSD license. Modifications copyright Soren Stoutner <soren@stoutner.com> 2017. 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
-<!-- `orbot_enabled_dark.xml` comes from the Orbot project. It is a modified version of <https://gitweb.torproject.org/orbot.git/tree/app/src/main/res/drawable-xxxhdpi/ic_stat_tor.png>, which is released under the 3-clause BSD license.
- Modifications copyright Soren Stoutner <soren@stoutner.com> 2017. The resulting image is released under the GPLv3+ license. -->
+<!-- `orbot_enabled_dark.xml` comes from the Orbot project. It is a modified version of <https://gitweb.torproject.org/orbot.git/tree/app/src/main/res/drawable-xxxhdpi/ic_stat_tor.png>,
+ which is released under the 3-clause BSD license. Modifications copyright Soren Stoutner <soren@stoutner.com> 2017. 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
-<!-- `orbot_enabled_light.xml` comes from the Orbot project. It is a modified version of <https://gitweb.torproject.org/orbot.git/tree/app/src/main/res/drawable-xxxhdpi/ic_stat_tor.png>, which is released under the 3-clause BSD license.
- Modifications copyright Soren Stoutner <soren@stoutner.com> 2017. The resulting image is released under the GPLv3+ license. -->
+<!-- `orbot_enabled_light.xml` comes from the Orbot project. It is a modified version of <https://gitweb.torproject.org/orbot.git/tree/app/src/main/res/drawable-xxxhdpi/ic_stat_tor.png>,
+ which is released under the 3-clause BSD license. Modifications copyright Soren Stoutner <soren@stoutner.com> 2017. 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
-<!-- `previous.xml` comes from the Android Material icon set, where it is called `ic_expand_less`. It is released under the Apache License 2.0. -->
+<!-- `previous.xml` 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"
-<!-- `privacy_browser_foreground.xml` is derived from `ic_security` and `ic_language`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
+<!-- `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.
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"
-<!-- `privacy_mode.xml` is derived from `ic_security` and `ic_language`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
+<!-- `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.
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="26dp"
-<!-- `refresh_disabled_dark.xml` comes from the Android Material icon set, where it is called `ic_refresh`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `refresh_disabled_light.xml` comes from the Android Material icon set, where it is called `ic_refresh`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `refresh_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_refresh`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `refresh_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_refresh`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `search_custom_url_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_find_in_page`. It is released under the Apache License 2.0. -->
+<!-- `search_custom_url_enabled_dark.xml` 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
-<!-- `search_custom_url_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_find_in_page`. It is released under the Apache License 2.0. -->
+<!-- `search_custom_url_enabled_light.xml` 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
-<!-- `search_custom_url_ghosted_dark.xml` comes from the Android Material icon set, where it is called `ic_find_in_page`. It is released under the Apache License 2.0. -->
+<!-- `search_custom_url_ghosted_dark.xml` 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
-<!-- `search_custom_url_ghosted_light.xml` comes from the Android Material icon set, where it is called `ic_find_in_page`. It is released under the Apache License 2.0. -->
+<!-- `search_custom_url_ghosted_light.xml` 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
-<!-- `search_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_search`. It is released under the Apache License 2.0. -->
+<!-- `search_enabled_dark.xml` 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
-<!-- `search_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_search`. It is released under the Apache License 2.0. -->
+<!-- `search_enabled_light.xml` 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
-<!-- `search_ghosted_dark.xml` comes from the Android Material icon set, where it is called `ic_search`. It is released under the Apache License 2.0. -->
+<!-- `search_ghosted_dark.xml` 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
-<!-- `search_ghosted_light.xml` comes from the Android Material icon set, where it is called `ic_search`. It is released under the Apache License 2.0. -->
+<!-- `search_ghosted_light.xml` 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
-<!-- `select_all_dark.xml` comes from the Android Material icon set, where it is called `ic_select_all`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `select_all_light.xml` comes from the Android Material icon set, where it is called `ic_select_all`. It is released under the Apache License 2.0. -->
+<!-- `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"
-<!-- `settings.xml` comes from the Android Material icon set, where it is called `ic_settings`. It is released under the Apache License 2.0. -->
+<!-- `settings.xml` 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"
-<!-- `social_media_disabled_dark.xml` comes from the Android Material icon set, where it is called `ic_thumbs_up_down`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `social_media_disabled_light.xml` comes from the Android Material icon set, where it is called `ic_thumbs_up_down`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `social_media_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_thumbs_up_down`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `social_media_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_thumbs_up_down`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `social_media_ghosted_dark.xml` comes from the Android Material icon set, where it is called `ic_thumbs_up_down`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `social_media_ghosted_light.xml` comes from the Android Material icon set, where it is called `ic_thumbs_up_down`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `ssl_certificate_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_vpn_lock`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `ssl_certificate_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_vpn_lock`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `ssl_certificate_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_vpn_lock`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `ssl_certificate_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_vpn_lock`. It is released under the Apache License 2.0. -->
+<!-- `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
-<!-- `theme_dark.xml` comes from the Android Material icon set, where it is called `ic_style`. It is released under the Apache License 2.0. -->
+<!-- `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
android:viewportHeight="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` 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"/>
-<!-- `theme_light.xml` comes from the Android Material icon set, where it is called `ic_style`. It is released under the Apache License 2.0. -->
+<!-- `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
android:viewportHeight="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` 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"/>
-<!-- `translucent_bar_disabled_dark.xml` comes from the Android Material icon set, where it is called `ic_call_to_action`. It is released under the Apache License 2.0. -->
+<!-- `translucent_bar_disabled_dark.xml` comes from the Android Material icon set, where it is called `call_to_action`. 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` can be used. -->
<path
android:fillColor="#FF9E9E9E"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19v-3h18v3z"/>
-<!-- `translucent_bar_disabled_light.xml` comes from the Android Material icon set, where it is called `ic_call_to_action`. It is released under the Apache License 2.0. -->
+<!-- `translucent_bar_disabled_light.xml` comes from the Android Material icon set, where it is called `call_to_action`. 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` can be used. -->
<path
android:fillColor="#88000000"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19v-3h18v3z"/>
-<!-- `translucent_bar_enabled_dark.xml` comes from the Android Material icon set, where it is called `ic_call_to_action`. It is released under the Apache License 2.0. -->
+<!-- `translucent_bar_enabled_dark.xml` comes from the Android Material icon set, where it is called `call_to_action`. 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` can be used. -->
<path
android:fillColor="#FF1E88E5"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19v-3h18v3z"/>
-<!-- `translucent_bar_enabled_light.xml` comes from the Android Material icon set, where it is called `ic_call_to_action`. It is released under the Apache License 2.0. -->
+<!-- `translucent_bar_enabled_light.xml` comes from the Android Material icon set, where it is called `call_to_action`. 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` can be used. -->
<path
android:fillColor="#FF1565C0"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19v-3h18v3z"/>
-<!-- `translucent_bar_ghosted_dark.xml` comes from the Android Material icon set, where it is called `ic_call_to_action`. It is released under the Apache License 2.0. -->
+<!-- `translucent_bar_ghosted_dark.xml` comes from the Android Material icon set, where it is called `call_to_action`. 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` can be used. -->
<path
android:fillColor="#FF616161"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19v-3h18v3z"/>
-<!-- `translucent_bar_ghosted_light.xml` comes from the Android Material icon set, where it is called `ic_call_to_action`. It is released under the Apache License 2.0. -->
+<!-- `translucent_bar_ghosted_light.xml` comes from the Android Material icon set, where it is called `call_to_action`. 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` can be used. -->
<path
android:fillColor="#44000000"
android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19L3,19v-3h18v3z"/>
-<!-- `user_agent_dark.xml` comes from the Android Material icon set, where it is called `ic_devices_other`. It is released under the Apache License 2.0. -->
+<!-- `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
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` 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"/>
-<!-- `user_agent_light.xml` comes from the Android Material icon set, where it is called `ic_devices_other`. It is released under the Apache License 2.0. -->
+<!-- `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
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` 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"/>
-<!-- `warning.xml` is derived from `ic_security` and `ic_language`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
+<!-- `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.
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="26dp"
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2017-2018 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
android.support.design:tabMode="scrollable"
android:theme="?attr/dialogTabLayoutTheme" />
- <com.stoutner.privacybrowser.definitions.WrapVerticalContentViewPager
- android:id="@+id/pinned_ssl_certificate_mismatch_viewpager"
+ <ScrollView
android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
+ android:layout_width="wrap_content" >
+
+ <com.stoutner.privacybrowser.definitions.WrapVerticalContentViewPager
+ android:id="@+id/pinned_ssl_certificate_mismatch_viewpager"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content" />
+ </ScrollView>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017 Soren Stoutner <soren@stoutner.com>.
+ Copyright © 2017-2018 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/>. -->
-<ScrollView
+<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
- android:layout_width="wrap_content" >
+ android:layout_width="wrap_content"
+ android:padding="10dp"
+ android:orientation="vertical" >
- <LinearLayout
+ <!-- Issued To. -->
+ <TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
- android:padding="10dp"
- android:orientation="vertical" >
-
- <!-- Issued To. -->
- <TextView
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:text="@string/issued_to"
- android:textAllCaps="true"
- android:textStyle="bold"
- android:textColor="?attr/sslTitle" />
-
- <TextView
- android:id="@+id/issued_to_cname"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
-
- <TextView
- android:id="@+id/issued_to_oname"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
-
- <TextView
- android:id="@+id/issued_to_uname"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
-
-
- <!-- Issued By. -->
- <TextView
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_marginTop="15dp"
- android:text="@string/issued_by"
- android:textAllCaps="true"
- android:textStyle="bold"
- android:textColor="?attr/sslTitle" />
-
- <TextView
- android:id="@+id/issued_by_cname"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
-
- <TextView
- android:id="@+id/issued_by_oname"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
-
- <TextView
- android:id="@+id/issued_by_uname"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
-
-
- <!-- Valid Dates. -->
- <TextView
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_marginTop="15dp"
- android:text="@string/valid_dates"
- android:textAllCaps="true"
- android:textStyle="bold"
- android:textColor="?attr/sslTitle" />
-
- <TextView
- android:id="@+id/start_date"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
-
- <TextView
- android:id="@+id/end_date"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content" />
- </LinearLayout>
-</ScrollView>
\ No newline at end of file
+ android:text="@string/issued_to"
+ android:textAllCaps="true"
+ android:textStyle="bold"
+ android:textColor="?attr/sslTitle" />
+
+ <TextView
+ android:id="@+id/issued_to_cname"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content" />
+
+ <TextView
+ android:id="@+id/issued_to_oname"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content" />
+
+ <TextView
+ android:id="@+id/issued_to_uname"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content" />
+
+
+ <!-- Issued By. -->
+ <TextView
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_marginTop="15dp"
+ android:text="@string/issued_by"
+ android:textAllCaps="true"
+ android:textStyle="bold"
+ android:textColor="?attr/sslTitle" />
+
+ <TextView
+ android:id="@+id/issued_by_cname"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content" />
+
+ <TextView
+ android:id="@+id/issued_by_oname"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content" />
+
+ <TextView
+ android:id="@+id/issued_by_uname"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content" />
+
+
+ <!-- Valid Dates. -->
+ <TextView
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_marginTop="15dp"
+ android:text="@string/valid_dates"
+ android:textAllCaps="true"
+ android:textStyle="bold"
+ android:textColor="?attr/sslTitle" />
+
+ <TextView
+ android:id="@+id/start_date"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content" />
+
+ <TextView
+ android:id="@+id/end_date"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content" />
+</LinearLayout>
\ No newline at end of file
<!-- Context Menus. -->
<string name="load_url">URL laden</string>
<string name="copy_url">URL kopieren</string>
+ <string name="download_url">Download URL</string>
<string name="email_address">E-Mail-Adresse</string>
<string name="copy_email_address">E-Mail-Adresse kopieren</string>
<string name="write_email">E-Mail senden</string>
<string name="licenses">Lizenzen</string>
<string name="contributors">Mitwirkende</string>
<string name="links">Links</string>
+
+ <!-- Ad Control. There are no ads in the standard flavor, but this string must exist because it is referenced in the code. -->
+ <string name="ad_consent">Zustimmung zur Werbung</string>
</resources>
\ No newline at end of file
<string name="clear_cookies">Borrar cookies</string>
<string name="clear_dom_storage">Borrar almacenamiento DOM</string>
<string name="clear_form_data">Borrar datos de formulario</string>
+ <string name="layout">Diseño</string>
<string name="font_size">Tamaño de fuente</string>
<string name="twenty_five_percent">25%</string>
<string name="fifty_percent">50%</string>
<string name="clear_cookies">Elimina cookies</string>
<string name="clear_dom_storage">Elimina DOM storage</string>
<string name="clear_form_data">Elimina dati dei moduli</string>
+ <string name="layout">Layout</string>
<string name="font_size">Dimensione font</string>
<string name="twenty_five_percent">25%</string>
<string name="fifty_percent">50%</string>
<string name="domain_name_instructions">è possibile anteporre *. a un dominio per includere tutti i sottodomini (es. *.stoutner.com)</string>
<string-array name="swipe_to_refresh_array">
<item>Impostazioni di default</item>
- <item>Swipe per aggiornare abilitata</item>
- <item>Swipe per aggiornare disabilitata</item>
+ <item>Swipe per aggiornare abilitato</item>
+ <item>Swipe per aggiornare disabilitato</item>
</string-array>
<string-array name="night_mode_array">
<item>Impostazioni di default</item>
</string-array>
<string-array name="display_webpage_images_array">
<item>Impostazioni di default</item>
- <item>Abilita Immagini</item>
- <item>Disabilita Immagini</item>
+ <item>Immagini abilitate</item>
+ <item>Immagini disabilitate</item>
</string-array>
<string name="pinned_ssl_certificate">Certificato SSL appuntato</string>
<string name="saved_ssl_certificate">Certificato SSL salvato</string>
<string name="clear_cookies">Очистить cookie</string>
<string name="clear_dom_storage"> Очистить хранилище DOM</string>
<string name="clear_form_data">Очистить данные формы</string>
+ <string name="layout">Внешний вид</string>
<string name="font_size">Размер шрифта</string>
<string name="twenty_five_percent">25%</string>
<string name="fifty_percent">50%</string>
<string name="domain_name_instructions">добавьте *. для включения всех поддоменов (напр. * .yandex.ru)</string>
<string-array name="swipe_to_refresh_array">
<item>Настройки по умолчанию</item>
- <item>Потянуть для обновления enabled</item>
- <item>Потянуть для обновления disabled</item>
+ <item>Потянуть для обновления - включено</item>
+ <item>Потянуть для обновления - выключено</item>
</string-array>
<string-array name="night_mode_array">
<item>Настройки по умолчанию</item>
<string name="incognito_mode_summary">Clear the history and cache after each webpage finishes loading. Forward and back do not work in Incognito Mode.</string>
<string name="do_not_track">Do Not Track</string>
<string name="do_not_track_summary">Send the Do Not Track header, which politely suggests that web servers not track this browser.</string>
+ <string name="allow_screenshots">Allow screenshots</string>
+ <string name="allow_screenshots_summary">Allow screenshots, video recording, and viewing on non-secure displays. Changing this setting will restart Privacy Browser.</string>
<string name="block_lists">Block Lists</string>
<string name="easylist">EasyList</string>
<string name="easylist_summary">Main ad blocking list.</string>
android:title="@string/do_not_track"
android:summary="@string/do_not_track_summary"
android:defaultValue="false" />
+
+ <SwitchPreference
+ android:key="allow_screenshots"
+ android:title="@string/allow_screenshots"
+ android:summary="@string/allow_screenshots_summary"
+ android:defaultValue="false" />
</PreferenceCategory>
<PreferenceCategory
--- /dev/null
+• Dateiuploads auf Webseiten unter Lollipop und neuer.
+• Automatische Aktualisierung von user agents mit neuen Releases.
+• Neue Option URL herunterladen im Kontextmenü.
+• Neuer Dialog über Werbung und aktualisierte Datenschutzbestimmungen des Privacy Browser Free im Rahmen der EU-DSGV.
+• Neue Möglichkeit, die Werbung in Privacy Browser Free anonymisiert und nicht verfolgend einzustellen.
+• Bug fix aus Version 2.9: Lesezeichen wurden aus der Lesezeichen-Aktivität nicht geladen.
+• Bug fix: Domaineinstellungen wurden teilweise erst nach Neuladen übernommen.
+• Verbesserte Dialogführung beim Hinzufügen und Bearbeiten von Domaineinstellungen in den Optionen.
+• Aktualisierte italienische Übersetzung von Francesco Buratti.
+• Aktualisierte russische Übersetzung.
+• Aktualisierte spanische Übersetzung von Jose A. León Becerra.