<p><code>com.stoutner.privacybrowser.views.<wbr>CheckedLinearLayout</code> ist eine abgeänderte Version einer Klasse, die im Quelltext von
<a href="https://android.googlesource.com/platform/packages/apps/Camera/+/master/src/com/android/camera/ui/CheckedLinearLayout.java">Android Camera</a> enthalten ist.
Die Original-Datei wurde unter der <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache Lizenz 2.0</a> veröffentlicht.
- Änderungen © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Änderungen 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Die geänderte Datei wird unter der <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+-Lizenz</a> veröffentlicht.</p>
<h3>Icons:</h3>
<p><img class="left" src="../shared_images/privacy_browser.svg"/> <img class="left" src="../shared_images/warning.svg"/> <img class="left" src="../shared_images/javascript_enabled.svg"/>
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 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><svg class="left"><use href="../shared_images/move_to_folder.svg#icon"/></svg> 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>.
+ Modifications copyright 2017, 2022 <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><svg class="left"><use href="../shared_images/create_bookmark.svg#icon"/></svg> 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>.
+ Modifications copyright 2017, 2022 <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><svg class="left"><use href="../shared_images/create_folder.svg#icon"/></svg> 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>.
+ Modifications copyright 2017, 2022 <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><svg class="left"><use href="../shared_images/clear_and_exit.svg#icon"/></svg> 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>.
+ <p><svg class="left"><use href="../shared_images/clear_and_exit.svg#icon"/></svg> 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, 2022 <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><svg class="left"><use href="../shared_images/night_mode.svg#icon"/></svg> 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>.
+ <p><svg class="left"><use href="../shared_images/night_mode.svg#icon"/></svg> 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, 2022 <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/sort_selected.svg"/> is derived from <code>sort</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 © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright 2019, 2022 <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/push_pin_filled_selected.svg"> is derived from <code>push_pin_selected</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 2019-2020, 2022 <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><svg class="left"><use href="../shared_images/cookie.svg#icon"/></svg> <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>
<p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
<p><svg class="icon"><use href="../shared_images/map.svg#icon"/></svg> map.</p>
<p><svg class="icon"><use href="../shared_images/more.svg#icon"/></svg> more.</p>
- <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new releases.</p>
+ <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new_releases.</p>
<p><svg class="icon"><use href="../shared_images/open_in_browser.svg#icon"/></svg> open_in_browser.</p>
<p><svg class="icon"><use href="../shared_images/payment.svg#icon"/></svg> payment.</p>
<p><svg class="icon"><use href="../shared_images/payments_rounded.svg#icon"/></svg> payments_rounded.</p>
+ <p><svg class="icon"><use href="../shared_images/push_pin_filled.svg#icon"/></svg> push_pin_filled.</p>
<p><svg class="icon"><use href="../shared_images/question_answer.svg#icon"/></svg> question_answer.</p>
<p><svg class="icon"><use href="../shared_images/refresh.svg#icon"/></svg> refresh.</p>
<p><svg class="icon"><use href="../shared_images/save.svg#icon"/></svg> save.</p>
<p><code>com.stoutner.privacybrowser.views.<wbr>CheckedLinearLayout</code> is a modified version of a class contained in the
<a href="https://android.googlesource.com/platform/packages/apps/Camera/+/master/src/com/android/camera/ui/CheckedLinearLayout.java">Android Camera</a> source code.
The original file was released under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
- Modifications copyright © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Modifications copyright 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
The modified file is released under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ license</a>.</p>
<h3>Icons</h3>
<p><img class="left" src="../shared_images/privacy_browser.svg"/> <img class="left" src="../shared_images/warning.svg"/> <img class="left" src="../shared_images/javascript_enabled.svg"/>
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 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><svg class="left"><use href="../shared_images/move_to_folder.svg#icon"/></svg> 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>.
+ Modifications copyright 2017, 2022 <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><svg class="left"><use href="../shared_images/create_bookmark.svg#icon"/></svg> 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>.
+ Modifications copyright 2017, 2022 <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><svg class="left"><use href="../shared_images/create_folder.svg#icon"/></svg> 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>.
+ Modifications copyright 2017, 2022 <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><svg class="left"><use href="../shared_images/clear_and_exit.svg#icon"/></svg> 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>.
+ Modifications copyright 2017, 2022 <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><svg class="left"><use href="../shared_images/night_mode.svg#icon"/></svg> 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>.
+ Modifications copyright 2017, 2022 <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/sort_selected.svg"> is derived from <code>sort</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 © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright 2019, 2022 <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/push_pin_filled_selected.svg"> is derived from <code>push_pin_selected</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 2019-2020, 2022 <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><svg class="left"><use href="../shared_images/cookie.svg#icon"/></svg> <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>
<p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
<p><svg class="icon"><use href="../shared_images/map.svg#icon"/></svg> map.</p>
<p><svg class="icon"><use href="../shared_images/more.svg#icon"/></svg> more.</p>
- <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new releases.</p>
+ <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new_releases.</p>
<p><svg class="icon"><use href="../shared_images/open_in_browser.svg#icon"/></svg> open_in_browser.</p>
<p><svg class="icon"><use href="../shared_images/payment.svg#icon"/></svg> payment.</p>
<p><svg class="icon"><use href="../shared_images/payments_rounded.svg#icon"/></svg> payments_rounded.</p>
+ <p><svg class="icon"><use href="../shared_images/push_pin_filled.svg#icon"/></svg> push_pin_filled.</p>
<p><svg class="icon"><use href="../shared_images/question_answer.svg#icon"/></svg> question_answer.</p>
<p><svg class="icon"><use href="../shared_images/refresh.svg#icon"/></svg> refresh.</p>
<p><svg class="icon"><use href="../shared_images/save.svg#icon"/></svg> save.</p>
<p><code>com.stoutner.privacybrowser.views.<wbr>CheckedLinearLayout</code> es una versión modificada de una clase incluida en el código fuente de
<a href="https://android.googlesource.com/platform/packages/apps/Camera/+/master/src/com/android/camera/ui/CheckedLinearLayout.java">Android Camera</a>.
El archivo original se liberó bajo la <a href="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
- Copyright de modificaciones © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Copyright de modificaciones 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
El archivo modificado se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
<h3>Iconos</h3>
<p><img class="left" src="../shared_images/privacy_browser.svg"/> <img class="left" src="../shared_images/warning.svg"/> <img class="left" src="../shared_images/javascript_enabled.svg"/>
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>.
+ 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><svg class="left"><use href="../shared_images/move_to_folder.svg#icon"/></svg> 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>.
+ Copyright de modificaciones 2017, 2022 <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><svg class="left"><use href="../shared_images/create_bookmark.svg#icon"/></svg> 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>.
+ Copyright de modificaciones 2017, 2022 <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><svg class="left"><use href="../shared_images/create_folder.svg#icon"/></svg> 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>.
+ Copyright de modificaciones 2017, 2022 <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><svg class="left"><use href="../shared_images/clear_and_exit.svg#icon"/></svg> 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>.
+ Copyright de modificaciones 2017, 2022 <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><svg class="left"><use href="../shared_images/night_mode.svg#icon"/></svg> 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>.
+ Copyright de modificaciones 2017, 2022 <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/sort_selected.svg"/> deriva de <code>sort</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 © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>. Copyright de modificaciones 2019, 2022 <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/push_pin_filled_selected.svg"/> deriva de <code>push_pin_selected</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 2019-2020, 2022 <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><svg class="left"><use href="../shared_images/cookie.svg#icon"/></svg> <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>
<p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
<p><svg class="icon"><use href="../shared_images/map.svg#icon"/></svg> map.</p>
<p><svg class="icon"><use href="../shared_images/more.svg#icon"/></svg> more.</p>
- <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new releases.</p>
+ <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new_releases.</p>
<p><svg class="icon"><use href="../shared_images/open_in_browser.svg#icon"/></svg> open_in_browser.</p>
<p><svg class="icon"><use href="../shared_images/payment.svg#icon"/></svg> payment.</p>
<p><svg class="icon"><use href="../shared_images/payments_rounded.svg#icon"/></svg> payments_rounded.</p>
+ <p><svg class="icon"><use href="../shared_images/push_pin_filled.svg#icon"/></svg> push_pin_filled.</p>
<p><svg class="icon"><use href="../shared_images/question_answer.svg#icon"/></svg> question_answer.</p>
<p><svg class="icon"><use href="../shared_images/refresh.svg#icon"/></svg> refresh.</p>
<p><svg class="icon"><use href="../shared_images/save.svg#icon"/></svg> save.</p>
<p><code>com.stoutner.privacybrowser.views.<wbr>CheckedLinearLayout</code> est une version modifiée d'une classe contenue dans le code source de la
<a href="https://android.googlesource.com/platform/packages/apps/Camera/+/master/src/com/android/camera/ui/CheckedLinearLayout.java">Caméra Android</a>.
Le fichier d'origine a été publié sous la <a href="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
- Modifications copyright © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Modifications copyright 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Le fichier modifié est publié sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
<h3>Icônes</h3>
<p><img class="left" src="../shared_images/privacy_browser.svg"> <img class="left" src="../shared_images/warning.svg"> <img class="left" src="../shared_images/javascript_enabled.svg"> sont dérivés de
<code>security</code> et de <code>language</code>, qui font partie de <a href="https://material.io/icons/">l'ensemble d'icônes Matériel Android</a> et sont publiés sous la
<a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
- Le texte complet de la licence est ci-dessous. Modifications copyright © 2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Le texte complet de la licence est ci-dessous. Modifications copyright 2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Les images résultantes sont publiées sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
<p><svg class="left"><use href="../shared_images/move_to_folder.svg#icon"/></svg> est dérivé des éléments <code>folder</code> et <code>exit_to_app</code>,
qui font partie de <a href="https://material.io/icons/">l'ensemble d'icônes Matériel Android</a>
et sont publiés sous <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
- Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Modifications copyright 2017, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'image résultante est publiée sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
<p><svg class="left"><use href="../shared_images/create_bookmark.svg#icon"/></svg> est dérivé des éléments <code>bookmark</code> et <code>create_new_folder</code>, qui font partie de
<a href="https://material.io/icons/">l'ensemble d'icônes Matériel Android</a> et sont publiés sous <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
- Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Modifications copyright 2017, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'image résultante est publiée sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
<p><svg class="left"><use href="../shared_images/create_folder.svg#icon"/></svg> est dérivée de l'élément <code>create_new_folder</code>,
qui fait partie de <a href="https://material.io/icons/">l'ensemble d'icônes Matériel Android</a> et sont publiés sous <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
- Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Modifications copyright 2017, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'image résultante est publiée sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
<p><svg class="left"><use href="../shared_images/clear_and_exit.svg#icon"/></svg> est dérivée de l'élément <code>exit_to_app</code>, qui fait partie de
<a href="https://material.io/icons/">l'ensemble d'icônes Matériel Android</a> et sont publiés sous <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
- Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Modifications copyright 2017, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'image résultante est publiée sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
<p><svg class="left"><use href="../shared_images/night_mode.svg#icon"/></svg> est dérivée de l'élément <code>compare</code>,
qui fait partie de <a href="https://material.io/icons/">l'ensemble d'icônes Matériel Android</a> et sont publiés sous <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
- Modifications copyright © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Modifications copyright 2017, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'image résultante est publiée sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
<p><img class="left" src="../shared_images/sort_selected.svg"/> est dérivée de l'élément <code>sort</code>,
qui fait partie de <a href="https://material.io/icons/">l'ensemble d'icônes Matériel Android</a> et sont publiés sous <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
- Modifications copyright © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Modifications copyright 2019, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ L'image résultante est publiée sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
+ <p><img class="left" src="../shared_images/push_pin_filled_selected.svg"/> est dérivée de l'élément <code>push_pin_selected</code>,
+ qui fait partie de <a href="https://material.io/icons/">l'ensemble d'icônes Matériel Android</a> et sont publiés sous <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
+ Modifications copyright 2019-2020, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
L'image résultante est publiée sous la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licence GPLv3+</a>.</p>
<p><svg class="left"><use href="../shared_images/cookie.svg#icon"/></svg> <code>cookie</code> a été créé par Google.
Il est publié sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>
<p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
<p><svg class="icon"><use href="../shared_images/map.svg#icon"/></svg> map.</p>
<p><svg class="icon"><use href="../shared_images/more.svg#icon"/></svg> more.</p>
- <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new releases.</p>
+ <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new_releases.</p>
<p><svg class="icon"><use href="../shared_images/open_in_browser.svg#icon"/></svg> open_in_browser.</p>
<p><svg class="icon"><use href="../shared_images/payment.svg#icon"/></svg> payment.</p>
<p><svg class="icon"><use href="../shared_images/payments_rounded.svg#icon"/></svg> payments_rounded.</p>
+ <p><svg class="icon"><use href="../shared_images/push_pin_filled.svg#icon"/></svg> push_pin_filled.</p>
<p><svg class="icon"><use href="../shared_images/question_answer.svg#icon"/></svg> question_answer.</p>
<p><svg class="icon"><use href="../shared_images/refresh.svg#icon"/></svg> refresh.</p>
<p><svg class="icon"><use href="../shared_images/save.svg#icon"/></svg> save.</p>
<p><code>com.stoutner.privacybrowser.views.<wbr>CheckedLinearLayout</code> è la versione modificata di una classe contenuta nel codice sorgente della
<a href="https://android.googlesource.com/platform/packages/apps/Camera/+/master/src/com/android/camera/ui/CheckedLinearLayout.java">Fotocamera Android</a>.
Il file originale è stato rilasciato sotto la <a href="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
- Copyright delle modifiche © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Copyright delle modifiche 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Il file modificato è rilasciato sotto la <a href="https://www.gnu.org/licenses/gpl-3.0.html">Licenza GPLv3+</a>.</p>
<h3>Icone</h3>
<p><img class="left" src="../shared_images/privacy_browser.svg"/> <img class="left" src="../shared_images/warning.svg"/> <img class="left" src="../shared_images/javascript_enabled.svg"/>
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>.
+ 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><svg class="left"><use href="../shared_images/move_to_folder.svg#icon"/></svg> è 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>.
+ Copyright delle modifiche 2017, 2020 <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><svg class="left"><use href="../shared_images/create_bookmark.svg#icon"/></svg> è 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>.
+ Copyright delle modifiche 2017, 2020 <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><svg class="left"><use href="../shared_images/create_folder.svg#icon"/></svg> è 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>.
+ Copyright delle modifiche 2017, 2020 <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><svg class="left"><use href="../shared_images/clear_and_exit.svg#icon"/></svg> è 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>.
+ Copyright delle modifiche 2017, 2020 <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><svg class="left"><use href="../shared_images/night_mode.svg#icon"/></svg> è 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>.
+ Copyright delle modifiche 2017, 2020 <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/sort_selected.svg"/> è stata derivata da <code>sort</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 © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Copyright delle modifiche 2019, 2020 <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/push_pin_filled_selected.svg"/> è stata derivata da <code>push_pin_selected</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 2019-2020, 2020 <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><svg class="left"><use href="../shared_images/cookie.svg#icon"/></svg> <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>
<p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
<p><svg class="icon"><use href="../shared_images/map.svg#icon"/></svg> map.</p>
<p><svg class="icon"><use href="../shared_images/more.svg#icon"/></svg> more.</p>
- <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new releases.</p>
+ <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new_releases.</p>
<p><svg class="icon"><use href="../shared_images/open_in_browser.svg#icon"/></svg> open_in_browser.</p>
<p><svg class="icon"><use href="../shared_images/payment.svg#icon"/></svg> payment.</p>
<p><svg class="icon"><use href="../shared_images/payments_rounded.svg#icon"/></svg> payments_rounded.</p>
+ <p><svg class="icon"><use href="../shared_images/push_pin_filled.svg#icon"/></svg> push_pin_filled.</p>
<p><svg class="icon"><use href="../shared_images/question_answer.svg#icon"/></svg> question_answer.</p>
<p><svg class="icon"><use href="../shared_images/refresh.svg#icon"/></svg> refresh.</p>
<p><svg class="icon"><use href="../shared_images/save.svg#icon"/></svg> save.</p>
<p><code>com.stoutner.privacybrowser.views.<wbr>CheckedLinearLayout</code> é uma versão modificada de uma classe contida no código-fonte da
<a href="https://android.googlesource.com/platform/packages/apps/Camera/+/master/src/com/android/camera/ui/CheckedLinearLayout.java">câmera Android</a>.
O arquivo original foi lançado sob a <a href="https://www.apache.org/licenses/LICENSE-2.0">licença Apache 2.0</a>.
- Modificações de direitos autorais © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Modificações de direitos autorais 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
O arquivo modificado é liberado sob a <a href="https://www.gnu.org/licenses/gpl-3.0.html">licença GPLv3+</a>.</p>
<h3>Icons</h3>
<p><img class="left" src="../shared_images/privacy_browser.svg"/> <img class="left" src="../shared_images/warning.svg"/> <img class="left" src="../shared_images/javascript_enabled.svg"/>
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 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><svg class="left"><use href="../shared_images/move_to_folder.svg#icon"/></svg> 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>.
+ Modifications copyright 2017, 2022 <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><svg class="left"><use href="../shared_images/create_bookmark.svg#icon"/></svg> 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>.
+ Modifications copyright 2017, 2022 <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><svg class="left"><use href="../shared_images/create_folder.svg#icon"/></svg> 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>.
+ Modifications copyright 2017, 2022 <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><svg class="left"><use href="../shared_images/clear_and_exit.svg#icon"/></svg> 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>.
+ Modifications copyright 2017, 2022 <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><svg class="left"><use href="../shared_images/night_mode.svg#icon"/></svg> 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>.
+ Modifications copyright 2017, 2022 <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/sort_selected.svg"> is derived from <code>sort</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 © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ and is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>. Modifications copyright 2019, 2022 <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/push_pin_filled_selected.svg"> is derived from <code>push_pin_selected</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 2019-2020, 2022 <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><svg class="left"><use href="../shared_images/cookie.svg#icon"/></svg> <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>
<p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
<p><svg class="icon"><use href="../shared_images/map.svg#icon"/></svg> map.</p>
<p><svg class="icon"><use href="../shared_images/more.svg#icon"/></svg> more.</p>
- <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new releases.</p>
+ <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new_releases.</p>
<p><svg class="icon"><use href="../shared_images/open_in_browser.svg#icon"/></svg> open_in_browser.</p>
<p><svg class="icon"><use href="../shared_images/payment.svg#icon"/></svg> payment.</p>
<p><svg class="icon"><use href="../shared_images/payments_rounded.svg#icon"/></svg> payments_rounded.</p>
+ <p><svg class="icon"><use href="../shared_images/push_pin_filled.svg#icon"/></svg> push_pin_filled.</p>
<p><svg class="icon"><use href="../shared_images/question_answer.svg#icon"/></svg> question_answer.</p>
<p><svg class="icon"><use href="../shared_images/refresh.svg#icon"/></svg> refresh.</p>
<p><svg class="icon"><use href="../shared_images/save.svg#icon"/></svg> save.</p>
<p><code>com.stoutner.privacybrowser.views.<wbr>CheckedLinearLayout</code> является модифицированной версией класса, содержащегося в исходном коде
<a href="https://android.googlesource.com/platform/packages/apps/Camera/+/master/src/com/android/camera/ui/CheckedLinearLayout.java">Android Camera</a>.
Оригинальный файл был выпущен под лицензией <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
- Модификации авторских прав © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Модификации авторских прав 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Модифицированный файл выпущен под лицензией <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+</a>.</p>
<h3>Иконки</h3>
<p><img class="left" src="../shared_images/privacy_browser.svg"/> <img class="left" src="../shared_images/warning.svg"/> <img class="left" src="../shared_images/javascript_enabled.svg"/>
являются производными от <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>.
+ Модификации авторских прав 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><svg class="left"><use href="../shared_images/move_to_folder.svg#icon"/></svg> являются производными от <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>.
+ Модификации авторских прав 2017, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
<p><svg class="left"><use href="../shared_images/create_bookmark.svg#icon"/></svg> являются производными от <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>.
+ Модификации авторских прав 2017, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
<p><svg class="left"><use href="../shared_images/create_folder.svg#icon"/></svg> являются производными от <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>.
+ Модификации авторских прав 2017, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
<p><svg class="left"><use href="../shared_images/clear_and_exit.svg#icon"/></svg> являются производными от <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>.
+ Модификации авторских прав 2017, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
<p><svg class="left"><use href="../shared_images/night_mode.svg#icon"/></svg> являются производными от <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>.
+ Модификации авторских прав 2017, 2022 <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/sort_selected.svg"/> являются производными от <code>sort</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>.
- Модификации авторских прав © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Модификации авторских прав 2019, 2022 <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/push_pin_filled_selected.svg"/> являются производными от <code>push_pin_selected</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>.
+ Модификации авторских прав 2019-2020, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Полученные изображения выпущены под <a href="https://www.gnu.org/licenses/gpl-3.0.html">лицензией GPLv3+</a>.</p>
<p><svg class="left"><use href="../shared_images/cookie.svg#icon"/></svg> <code>cookie</code> были созданы Google.
Они выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
<p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
<p><svg class="icon"><use href="../shared_images/map.svg#icon"/></svg> map.</p>
<p><svg class="icon"><use href="../shared_images/more.svg#icon"/></svg> more.</p>
- <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new releases.</p>
+ <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new_releases.</p>
<p><svg class="icon"><use href="../shared_images/open_in_browser.svg#icon"/></svg> open_in_browser.</p>
<p><svg class="icon"><use href="../shared_images/payment.svg#icon"/></svg> payment.</p>
<p><svg class="icon"><use href="../shared_images/payments_rounded.svg#icon"/></svg> payments_rounded.</p>
+ <p><svg class="icon"><use href="../shared_images/push_pin_filled.svg#icon"/></svg> push_pin_filled.</p>
<p><svg class="icon"><use href="../shared_images/question_answer.svg#icon"/></svg> question_answer.</p>
<p><svg class="icon"><use href="../shared_images/refresh.svg#icon"/></svg> refresh.</p>
<p><svg class="icon"><use href="../shared_images/save.svg#icon"/></svg> save.</p>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+ Copyright 2019,2022 Soren Stoutner <soren@stoutner.com>.
+
+ This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
+
+ It is a modified version of `push_pin_filled`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+
+ Privacy Browser Android is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Privacy Browser Android is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Privacy Browser Android. If not, see <http://www.gnu.org/licenses/>. -->
+
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ viewBox="0 0 24 24"
+ id="icon" >
+
+ <path
+ d="m16 12 2 2v2h-5v6l-1 1-1-1v-6H6v-2l2-2V5H7V3h10v2h-1Z" />
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+ Copyright 2019-2020,2022 Soren Stoutner <soren@stoutner.com>.
+
+ This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
+
+ It is derived from elements of `push_pin_filled`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+
+ Privacy Browser Android is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Privacy Browser Android is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Privacy Browser Android. If not, see <http://www.gnu.org/licenses/>. -->
+
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ viewBox="0 0 24 24" >
+
+ <style>
+ rect {
+ fill: #E0E0E0;
+ }
+
+ path {
+ fill: #000000;
+ }
+
+ @media (prefers-color-scheme: dark) {
+ rect {
+ fill: #616161;
+ }
+
+ path {
+ fill: #FFFFFF;
+ }
+ }
+ </style>
+
+ <!-- Background. -->
+ <g>
+ <rect
+ height="24"
+ width="24"
+ x="0"
+ y="0"
+ ry="3.1525424" />
+ </g>
+
+ <!-- Foreground. -->
+ <g>
+ <path
+ d="m 16,12 2,2 v 2 h -5 v 6 l -1,1 -1,-1 V 16 H 6 V 14 L 8,12 V 5 H 7 V 3 h 10 v 2 h -1 z" />
+ </g>
+</svg>
<!-- Background -->
<g>
<rect
- width="24"
height="24"
+ width="24"
x="0"
y="0"
ry="3.1525424" />
<a href="https://android.googlesource.com/platform/packages/apps/Camera/+/master/src/com/android/camera/ui/CheckedLinearLayout.java">Android Kamera</a>
kaynak kodunda bulunan bir sınıfın modifiye edilmiş bir sürümüdür.
Orijinal dosya <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> altında yayınlandı.
- Değişikliklerin telif hakkı © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Değişikliklerin telif hakkı 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Değiştirilen dosya <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+</a> lisansı altında yayınlandı.</p>
<h3>Simgeler</h3>
<p><img class="left" src="../shared_images/privacy_browser.svg"/> <img class="left" src="../shared_images/warning.svg"/> <img class="left" src="../shared_images/javascript_enabled.svg"/>
<a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> altında yayınlanan ve
<a href="https://material.io/icons/">Android Material</a> simge setinin bir parçası olan <code>security</code> ve <code>language</code>'den elde edilmiştir.
- Lisansın tüm metni aşağıdadır. Değişikliklerin telif hakkı © 2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Lisansın tüm metni aşağıdadır. Değişikliklerin telif hakkı 2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Ortaya çıkan görüntüler <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+</a> lisansı altında yayınlandı.</p>
<p><svg class="left"><use href="../shared_images/move_to_folder.svg#icon"/></svg> <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> altında yayınlanan ve
<a href="https://material.io/icons/">Android Material</a> simge setinin bir parçası olan <code>folder</code> ve <code>exit_to_app</code> elementlerinden elde edilmiştir.
- Değişikliklerin telif hakkı © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Değişikliklerin telif hakkı 2017, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Ortaya çıkan görüntü <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+</a> lisansı altında yayınlandı.</p>
<p><svg class="left"><use href="../shared_images/create_bookmark.svg#icon"/></svg> <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> altında yayınlanan ve
<a href="https://material.io/icons/">Android Material</a> simge setinin bir parçası olan <code>bookmarks</code> ve <code>create_new_folder</code> elementlerinden elde edilmiştir.
- Değişikliklerin telif hakkı © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Değişikliklerin telif hakkı 2017, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Ortaya çıkan görüntü <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+</a> lisansı altında yayınlandı.</p>
<p><svg class="left"><use href="../shared_images/create_folder.svg#icon"/></svg> <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> altında yayınlanan ve
<a href="https://material.io/icons/">Android Material</a> simge setinin bir parçası olan <code>create_new_folder</code>'dan elde edilmiştir.
- Değişikliklerin telif hakkı © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Değişikliklerin telif hakkı 2017, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Ortaya çıkan görüntü <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+</a> lisansı altında yayınlandı.</p>
<p><svg class="left"><use href="../shared_images/clear_and_exit.svg#icon"/></svg> <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> altında yayınlanan ve
<a href="https://material.io/icons/">Android Material</a> simge setinin bir parçası olan <code>exit_to_app</code>'ten elde edilmiştir.
- Değişikliklerin telif hakkı © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Değişikliklerin telif hakkı 2017, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Ortaya çıkan görüntü <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+</a> lisansı altında yayınlandı.</p>
<p><svg class="left"><use href="../shared_images/night_mode.svg#icon"/></svg> <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> altında yayınlanan ve
<a href="https://material.io/icons/">Android Material</a> simge setinin bir parçası olan <code>compare</code>'den elde edilmiştir.
- Değişikliklerin telif hakkı © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Değişikliklerin telif hakkı 2017, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Ortaya çıkan görüntü <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+</a> lisansı altında yayınlandı.</p>
<p><img class="left" src="../shared_images/sort_selected.svg"/> <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> altında yayınlanan ve
<a href="https://material.io/icons/">Android Material</a> simge setinin bir parçası olan <code>sort</code>'dan elde edilmiştir.
- Değişikliklerin telif hakkı © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Değişikliklerin telif hakkı 2019, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+ Ortaya çıkan görüntü <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+</a> lisansı altında yayınlandı.</p>
+ <p><img class="left" src="../shared_images/push_pin_filled_selected.svg"/> <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> altında yayınlanan ve
+ <a href="https://material.io/icons/">Android Material</a> simge setinin bir parçası olan <code>push_pin_selected</code>'dan elde edilmiştir.
+ Değişikliklerin telif hakkı 2019-2020, 2022 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
Ortaya çıkan görüntü <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+</a> lisansı altında yayınlandı.</p>
<p><svg class="left"><use href="../shared_images/cookie.svg#icon"/></svg> <code>cookie</code> Google tarafından oluşturuldu.
<a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> altında yayınlandı ve <a href="https://materialdesignicons.com/icon/cookie">Material Design</a>
<p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
<p><svg class="icon"><use href="../shared_images/map.svg#icon"/></svg> map.</p>
<p><svg class="icon"><use href="../shared_images/more.svg#icon"/></svg> more.</p>
- <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new releases.</p>
+ <p><svg class="icon"><use href="../shared_images/new_releases.svg#icon"/></svg> new_releases.</p>
<p><svg class="icon"><use href="../shared_images/open_in_browser.svg#icon"/></svg> open_in_browser.</p>
<p><svg class="icon"><use href="../shared_images/payment.svg#icon"/></svg> payment.</p>
<p><svg class="icon"><use href="../shared_images/payments_rounded.svg#icon"/></svg> payments_rounded.</p>
+ <p><svg class="icon"><use href="../shared_images/push_pin_filled.svg#icon"/></svg> push_pin_filled.</p>
<p><svg class="icon"><use href="../shared_images/question_answer.svg#icon"/></svg> question_answer.</p>
<p><svg class="icon"><use href="../shared_images/refresh.svg#icon"/></svg> refresh.</p>
<p><svg class="icon"><use href="../shared_images/save.svg#icon"/></svg> save.</p>
import com.stoutner.privacybrowser.dialogs.CreateBookmarkDialog;
import com.stoutner.privacybrowser.dialogs.CreateBookmarkFolderDialog;
import com.stoutner.privacybrowser.dialogs.CreateHomeScreenShortcutDialog;
-import com.stoutner.privacybrowser.dialogs.EditBookmarkFolderDialog;
import com.stoutner.privacybrowser.dialogs.FontSizeDialog;
import com.stoutner.privacybrowser.dialogs.HttpAuthenticationDialog;
import com.stoutner.privacybrowser.dialogs.OpenDialog;
import kotlin.Pair;
public class MainWebViewActivity extends AppCompatActivity implements CreateBookmarkDialog.CreateBookmarkListener, CreateBookmarkFolderDialog.CreateBookmarkFolderListener,
- EditBookmarkFolderDialog.EditBookmarkFolderListener, FontSizeDialog.UpdateFontSizeListener, NavigationView.OnNavigationItemSelectedListener, OpenDialog.OpenListener,
- PinnedMismatchDialog.PinnedMismatchListener, PopulateBlocklists.PopulateBlocklistsListener, SaveDialog.SaveListener, UrlHistoryDialog.NavigateHistoryListener,
- WebViewTabFragment.NewTabListener {
+ FontSizeDialog.UpdateFontSizeListener, NavigationView.OnNavigationItemSelectedListener, OpenDialog.OpenListener, PinnedMismatchDialog.PinnedMismatchListener,
+ PopulateBlocklists.PopulateBlocklistsListener, SaveDialog.SaveListener, UrlHistoryDialog.NavigateHistoryListener, WebViewTabFragment.NewTabListener {
// Define the public static variables.
public static final ExecutorService executorService = Executors.newFixedThreadPool(4);
public final static int BROWSE_OPEN_REQUEST_CODE = 1;
// Define the saved instance state constants.
+ private final String BOOKMARKS_DRAWER_PINNED = "bookmarks_drawer_pinned";
+ private final String PROXY_MODE = "proxy_mode";
private final String SAVED_STATE_ARRAY_LIST = "saved_state_array_list";
private final String SAVED_NESTED_SCROLL_WEBVIEW_STATE_ARRAY_LIST = "saved_nested_scroll_webview_state_array_list";
private final String SAVED_TAB_POSITION = "saved_tab_position";
- private final String PROXY_MODE = "proxy_mode";
// Define the saved instance state variables.
private ArrayList<Bundle> savedStateArrayList;
// `bookmarksCursorAdapter` is used in `onCreateBookmark()`, `onCreateBookmarkFolder()` `onSaveEditBookmark()`, `onSaveEditBookmarkFolder()`, and `loadBookmarksFolder()`.
private CursorAdapter bookmarksCursorAdapter;
- // `oldFolderNameString` is used in `onCreate()` and `onSaveEditBookmarkFolder()`.
- private String oldFolderNameString;
-
// `fileChooserCallback` is used in `onCreate()` and `onActivityResult()`.
private ValueCallback<Uri[]> fileChooserCallback;
private SanitizeUrlHelper sanitizeUrlHelper;
// Declare the class variables
+ private boolean bookmarksDrawerPinned;
private boolean bottomAppBar;
private boolean displayAdditionalAppBarIcons;
private boolean displayingFullScreenVideo;
private String saveUrlString = "";
// Declare the class views.
- private FrameLayout rootFrameLayout;
- private DrawerLayout drawerLayout;
- private CoordinatorLayout coordinatorLayout;
- private Toolbar toolbar;
- private RelativeLayout urlRelativeLayout;
- private EditText urlEditText;
private ActionBar actionBar;
+ private CoordinatorLayout coordinatorLayout;
+ private ImageView bookmarksDrawerPinnedImageView;
+ private DrawerLayout drawerLayout;
private LinearLayout findOnPageLinearLayout;
+ private FrameLayout fullScreenVideoFrameLayout;
+ private FrameLayout rootFrameLayout;
+ private SwipeRefreshLayout swipeRefreshLayout;
private LinearLayout tabsLinearLayout;
private TabLayout tabLayout;
- private SwipeRefreshLayout swipeRefreshLayout;
+ private Toolbar toolbar;
+ private EditText urlEditText;
+ private RelativeLayout urlRelativeLayout;
private ViewPager webViewPager;
- private FrameLayout fullScreenVideoFrameLayout;
// Declare the class menus.
private Menu optionsMenu;
// Check to see if the activity has been restarted.
if (savedInstanceState != null) {
// Store the saved instance state variables.
+ bookmarksDrawerPinned = savedInstanceState.getBoolean(BOOKMARKS_DRAWER_PINNED);
savedStateArrayList = savedInstanceState.getParcelableArrayList(SAVED_STATE_ARRAY_LIST);
savedNestedScrollWebViewStateArrayList = savedInstanceState.getParcelableArrayList(SAVED_NESTED_SCROLL_WEBVIEW_STATE_ARRAY_LIST);
savedTabPosition = savedInstanceState.getInt(SAVED_TAB_POSITION);
swipeRefreshLayout = findViewById(R.id.swiperefreshlayout);
webViewPager = findViewById(R.id.webviewpager);
NavigationView navigationView = findViewById(R.id.navigationview);
+ bookmarksDrawerPinnedImageView = findViewById(R.id.bookmarks_drawer_pinned_imageview);
fullScreenVideoFrameLayout = findViewById(R.id.full_screen_video_framelayout);
// Get a handle for the navigation menu.
proxyHelper = new ProxyHelper();
sanitizeUrlHelper = new SanitizeUrlHelper();
+ // Update the bookmarks drawer pinned image view.
+ updateBookmarksDrawerPinnedImageView();
+
// Initialize the app.
initializeApp();
int currentTabPosition = tabLayout.getSelectedTabPosition();
// Store the saved states in the bundle.
+ savedInstanceState.putBoolean(BOOKMARKS_DRAWER_PINNED, bookmarksDrawerPinned);
+ savedInstanceState.putString(PROXY_MODE, proxyMode);
savedInstanceState.putParcelableArrayList(SAVED_STATE_ARRAY_LIST, savedStateArrayList);
savedInstanceState.putParcelableArrayList(SAVED_NESTED_SCROLL_WEBVIEW_STATE_ARRAY_LIST, savedNestedScrollWebViewStateArrayList);
savedInstanceState.putInt(SAVED_TAB_POSITION, currentTabPosition);
- savedInstanceState.putString(PROXY_MODE, proxyMode);
}
@Override
bookmarksListView.setSelection(0);
}
- @Override
- public void onSaveBookmarkFolder(DialogFragment dialogFragment, int selectedFolderDatabaseId, @NonNull Bitmap favoriteIconBitmap) {
- // Remove the incorrect lint warning below that the dialog fragment might be null.
- assert dialogFragment != null;
-
- // Get the dialog.
- Dialog dialog = dialogFragment.getDialog();
-
- // Remove the incorrect lint warning below that the dialog might be null.
- assert dialog != null;
-
- // Get handles for the views from the dialog.
- RadioButton currentFolderIconRadioButton = dialog.findViewById(R.id.current_icon_radiobutton);
- RadioButton defaultFolderIconRadioButton = dialog.findViewById(R.id.default_icon_radiobutton);
- ImageView defaultFolderIconImageView = dialog.findViewById(R.id.default_icon_imageview);
- EditText editFolderNameEditText = dialog.findViewById(R.id.folder_name_edittext);
-
- // Get the new folder name.
- String newFolderNameString = editFolderNameEditText.getText().toString();
-
- // Check if the favorite icon has changed.
- if (currentFolderIconRadioButton.isChecked()) { // Only the name has changed.
- // Update the name in the database.
- bookmarksDatabaseHelper.updateFolder(selectedFolderDatabaseId, oldFolderNameString, newFolderNameString);
- } else if (!currentFolderIconRadioButton.isChecked() && newFolderNameString.equals(oldFolderNameString)) { // Only the icon has changed.
- // Create the new folder icon Bitmap.
- Bitmap folderIconBitmap;
-
- // Populate the new folder icon bitmap.
- if (defaultFolderIconRadioButton.isChecked()) {
- // Get the default folder icon drawable.
- Drawable folderIconDrawable = defaultFolderIconImageView.getDrawable();
-
- // Convert the folder icon drawable to a bitmap drawable.
- BitmapDrawable folderIconBitmapDrawable = (BitmapDrawable) folderIconDrawable;
-
- // Convert the folder icon bitmap drawable to a bitmap.
- folderIconBitmap = folderIconBitmapDrawable.getBitmap();
- } else { // Use the `WebView` favorite icon.
- // Copy the favorite icon bitmap to the folder icon bitmap.
- folderIconBitmap = favoriteIconBitmap;
- }
-
- // Create a folder icon byte array output stream.
- ByteArrayOutputStream newFolderIconByteArrayOutputStream = new ByteArrayOutputStream();
-
- // Convert the folder icon bitmap to a byte array. `0` is for lossless compression (the only option for a PNG).
- folderIconBitmap.compress(Bitmap.CompressFormat.PNG, 0, newFolderIconByteArrayOutputStream);
-
- // Convert the folder icon byte array stream to a byte array.
- byte[] newFolderIconByteArray = newFolderIconByteArrayOutputStream.toByteArray();
-
- // Update the folder icon in the database.
- bookmarksDatabaseHelper.updateFolder(selectedFolderDatabaseId, newFolderIconByteArray);
- } else { // The folder icon and the name have changed.
- // Get the new folder icon bitmap.
- Bitmap folderIconBitmap;
- if (defaultFolderIconRadioButton.isChecked()) {
- // Get the default folder icon drawable.
- Drawable folderIconDrawable = defaultFolderIconImageView.getDrawable();
-
- // Convert the folder icon drawable to a bitmap drawable.
- BitmapDrawable folderIconBitmapDrawable = (BitmapDrawable) folderIconDrawable;
-
- // Convert the folder icon bitmap drawable to a bitmap.
- folderIconBitmap = folderIconBitmapDrawable.getBitmap();
- } else { // Use the `WebView` favorite icon.
- // Copy the favorite icon bitmap to the folder icon bitmap.
- folderIconBitmap = favoriteIconBitmap;
- }
-
- // Create a folder icon byte array output stream.
- ByteArrayOutputStream newFolderIconByteArrayOutputStream = new ByteArrayOutputStream();
-
- // Convert the folder icon bitmap to a byte array. `0` is for lossless compression (the only option for a PNG).
- folderIconBitmap.compress(Bitmap.CompressFormat.PNG, 0, newFolderIconByteArrayOutputStream);
-
- // Convert the folder icon byte array stream to a byte array.
- byte[] newFolderIconByteArray = newFolderIconByteArrayOutputStream.toByteArray();
-
- // Update the folder name and icon in the database.
- bookmarksDatabaseHelper.updateFolder(selectedFolderDatabaseId, oldFolderNameString, newFolderNameString, newFolderIconByteArray);
- }
-
- // Update the bookmarks cursor with the current contents of this folder.
- bookmarksCursor = bookmarksDatabaseHelper.getBookmarksByDisplayOrder(currentBookmarksFolder);
-
- // Update the list view.
- bookmarksCursorAdapter.changeCursor(bookmarksCursor);
- }
-
// Process the results of a file browse.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent returnedIntent) {
// Load the bookmark URL.
loadUrl(currentWebView, bookmarkCursor.getString(bookmarkCursor.getColumnIndexOrThrow(BookmarksDatabaseHelper.BOOKMARK_URL)));
- // Close the bookmarks drawer.
- drawerLayout.closeDrawer(GravityCompat.END);
+ // Close the bookmarks drawer if it is not pinned.
+ if (!bookmarksDrawerPinned)
+ drawerLayout.closeDrawer(GravityCompat.END);
}
- // Close the `Cursor`.
+ // Close the cursor.
bookmarkCursor.close();
});
+ // Handle long-presses on bookmarks.
bookmarksListView.setOnItemLongClickListener((parent, view, position, id) -> {
// Convert the database ID from `long` to `int`.
int databaseId = (int) id;
// Open each bookmark
for (int i = 0; i < bookmarksCursor.getCount(); i++) {
- // Load the bookmark in a new tab, moving to the tab for the first bookmark (i == 0).
- addNewTab(bookmarksCursor.getString(bookmarksCursor.getColumnIndexOrThrow(BookmarksDatabaseHelper.BOOKMARK_URL)), (i == 0));
+ // Load the bookmark in a new tab, moving to the tab for the first bookmark if the drawer is not pinned.
+ addNewTab(bookmarksCursor.getString(bookmarksCursor.getColumnIndexOrThrow(BookmarksDatabaseHelper.BOOKMARK_URL)), (!bookmarksDrawerPinned && (i == 0)));
// Move to the next bookmark.
bookmarksCursor.moveToNext();
// Close the cursor.
bookmarksCursor.close();
-
- // Close the bookmarks drawer.
- drawerLayout.closeDrawer(GravityCompat.END);
} else { // The bookmark is not a folder.
// Get the bookmark cursor for this ID.
Cursor bookmarkCursor = bookmarksDatabaseHelper.getBookmark(databaseId);
// Move the bookmark cursor to the first row.
bookmarkCursor.moveToFirst();
- // Load the bookmark in a new tab.
- addNewTab(bookmarkCursor.getString(bookmarkCursor.getColumnIndexOrThrow(BookmarksDatabaseHelper.BOOKMARK_URL)), true);
+ // Load the bookmark in a new tab and move to the tab if the drawer is not pinned.
+ addNewTab(bookmarkCursor.getString(bookmarkCursor.getColumnIndexOrThrow(BookmarksDatabaseHelper.BOOKMARK_URL)), !bookmarksDrawerPinned);
// Close the cursor.
bookmarkCursor.close();
+ }
- // Close the bookmarks drawer.
+ // Close the bookmarks drawer if it is not pinned.
+ if (!bookmarksDrawerPinned)
drawerLayout.closeDrawer(GravityCompat.END);
- }
// Consume the event.
return true;
}
}
+ public void toggleBookmarksDrawerPinned(View view) {
+ // Toggle the bookmarks drawer pinned tracker.
+ bookmarksDrawerPinned = !bookmarksDrawerPinned;
+
+ // Update the bookmarks drawer pinned image view.
+ updateBookmarksDrawerPinnedImageView();
+ }
+
+ private void updateBookmarksDrawerPinnedImageView() {
+ // Set the current icon.
+ if (bookmarksDrawerPinned)
+ bookmarksDrawerPinnedImageView.setImageResource(R.drawable.pin_selected);
+ else
+ bookmarksDrawerPinnedImageView.setImageResource(R.drawable.pin);
+ }
+
private void setCurrentWebView(int pageNumber) {
// Stop the swipe to refresh indicator if it is running
swipeRefreshLayout.setRefreshing(false);
<!--
- Copyright © 2017,2022 Soren Stoutner <soren@stoutner.com>.
+ Copyright 2017,2022 Soren Stoutner <soren@stoutner.com>.
This file is derived from elements of `folder` and `exit_to_app`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
<path
android:fillColor="@color/icon"
android:pathData="M4,4C2.9,4 2.01,4.9 2.01,6L2,18C2,19.1 2.9,20 4,20L20,20C21.1,20 22,19.1 22,18L22,8C22,6.9 21.1,6 20,6L12,6L10,4L4,4zM13.75,7.83L18.75,12.83L13.75,17.83L12.34,16.421L14.92,13.83L5.25,13.83L5.25,11.83L14.92,11.83L12.34,9.24L13.75,7.83z" />
-</vector>
\ No newline at end of file
+</vector>
<!--
- Copyright © 2017,2022 Soren Stoutner <soren@stoutner.com>.
+ Copyright 2017,2022 Soren Stoutner <soren@stoutner.com>.
This file is derived from elements of `folder` and `exit_to_app`, which are part of the Android Material icon set. They are released under the Apache License 2.0.
<path
android:fillColor="@color/blue_icon"
android:pathData="M4,4C2.9,4 2.01,4.9 2.01,6L2,18C2,19.1 2.9,20 4,20L20,20C21.1,20 22,19.1 22,18L22,8C22,6.9 21.1,6 20,6L12,6L10,4L4,4zM13.75,7.83L18.75,12.83L13.75,17.83L12.34,16.421L14.92,13.83L5.25,13.83L5.25,11.83L14.92,11.83L12.34,9.24L13.75,7.83z" />
-</vector>
\ No newline at end of file
+</vector>
--- /dev/null
+<!-- This file comes from the Android Material icon set, where it is called `push_pin_filled`. 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"
+ android:viewportWidth="24" >
+
+ <path
+ android:fillColor="@color/icon"
+ android:pathData="m16,12 l2,2v2h-5v6l-1,1 -1,-1v-6H6v-2l2,-2V5H7V3h10v2h-1Z" />
+</vector>
--- /dev/null
+<!--
+ Copyright 2019,2022 Soren Stoutner <soren@stoutner.com>.
+
+ This file is derived from `push_pin_filled`, which is part of the Android Material icon set and is released under the Apache License 2.0.
+
+ This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
+
+ Privacy Browser Android is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Privacy Browser Android is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Privacy Browser Android. If not, see <http://www.gnu.org/licenses/>. -->
+
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportHeight="24"
+ android:viewportWidth="24" >
+
+ <path
+ android:fillColor="@color/selected_icon_background"
+ android:pathData="M3.153,0L20.847,0A3.153,3.153 0,0 1,24 3.153L24,20.847A3.153,3.153 0,0 1,20.847 24L3.153,24A3.153,3.153 0,0 1,0 20.847L0,3.153A3.153,3.153 0,0 1,3.153 0z" />
+
+ <path
+ android:fillColor="@color/icon"
+ android:pathData="m16,12 l2,2v2h-5v6l-1,1 -1,-1V16H6V14L8,12V5H7V3h10v2h-1z" />
+</vector>
<path
android:fillColor="@color/icon"
android:pathData="M3,18h6v-2L3,16v2zM3,6v2h18L21,6L3,6zM3,13h12v-2L3,11v2z" />
-</vector>
\ No newline at end of file
+</vector>
<!--
- Copyright © 2019,2022 Soren Stoutner <soren@stoutner.com>.
+ Copyright 2019,2022 Soren Stoutner <soren@stoutner.com>.
This file is derived from `sort`, which is part of the Android Material icon set and is released under the Apache License 2.0.
<path
android:fillColor="@color/icon"
android:pathData="M3,18H9V16H3ZM3,6v2h18v-2zM3,13H15V11H3Z" />
-</vector>
\ No newline at end of file
+</vector>
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017,2019-2022 Soren Stoutner <soren@stoutner.com>.
+ Copyright 2017,2019-2022 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables" >
+ <!-- Back arrow. -->
<ImageView
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:paddingStart="15dp"
android:paddingEnd="15dp"
android:src="@drawable/back"
- android:background="?attr/selectableItemBackground"
android:onClick="bookmarksBack"
android:contentDescription="@string/back" />
+ <!-- Bookmarks folder title. -->
<TextView
android:id="@+id/bookmarks_title_textview"
android:layout_height="wrap_content"
- android:layout_width="match_parent"
+ android:layout_width="0dp"
+ android:layout_weight="1"
android:textStyle="bold"
android:textSize="20sp"
android:textColor="?android:attr/textColorPrimary"
android:layout_margin="10dp" />
+
+ <!-- Pin. -->
+ <ImageView
+ android:id="@+id/bookmarks_drawer_pinned_imageview"
+ android:layout_height="match_parent"
+ android:layout_width="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:paddingStart="15dp"
+ android:paddingEnd="20dp"
+ android:onClick="toggleBookmarksDrawerPinned"
+ android:contentDescription="@string/pin_drawer" />
</LinearLayout>
</LinearLayout>
android:layout_width="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="16dp"
- android:layout_marginBottom="155dp"
+ android:layout_marginBottom="200dp"
android:src="@drawable/bookmarks"
android:tint="?attr/fabIconTintColor"
android:contentDescription="@string/bookmarks" />
android:layout_width="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="16dp"
- android:layout_marginBottom="85dp"
+ android:layout_marginBottom="130dp"
android:src="@drawable/create_folder"
android:tint="?attr/fabIconTintColor"
android:contentDescription="@string/create_folder" />
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="bottom|end"
- android:layout_margin="16dp"
+ android:layout_marginEnd="16dp"
+ android:layout_marginBottom="60dp"
android:src="@drawable/create_bookmark"
android:tint="?attr/fabIconTintColor"
android:contentDescription="@string/create_bookmark" />
-</FrameLayout>
\ No newline at end of file
+</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017,2019-2020,2022 Soren Stoutner <soren@stoutner.com>.
+ Copyright 2017,2019-2020,2022 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables" >
+ <!-- Back arrow. -->
<ImageView
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:paddingStart="15dp"
android:paddingEnd="15dp"
android:src="@drawable/back"
- android:background="?attr/selectableItemBackground"
android:onClick="bookmarksBack"
android:contentDescription="@string/back" />
+ <!-- Bookmarks folder title. -->
<TextView
android:id="@+id/bookmarks_title_textview"
android:layout_height="wrap_content"
- android:layout_width="match_parent"
+ android:layout_width="0dp"
+ android:layout_weight="1"
android:textStyle="bold"
android:textSize="20sp"
android:textColor="?android:attr/textColorPrimary"
android:layout_margin="10dp" />
+
+ <!-- Pin. -->
+ <ImageView
+ android:id="@+id/bookmarks_drawer_pinned_imageview"
+ android:layout_height="match_parent"
+ android:layout_width="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:paddingStart="15dp"
+ android:paddingEnd="20dp"
+ android:onClick="toggleBookmarksDrawerPinned"
+ android:contentDescription="@string/pin_drawer" />
</LinearLayout>
<ListView
android:src="@drawable/create_bookmark"
android:tint="?attr/fabIconTintColor"
android:contentDescription="@string/create_bookmark" />
-</FrameLayout>
\ No newline at end of file
+</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017-2022 Soren Stoutner <soren@stoutner.com>.
+ Copyright 2017-2022 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables" >
+ <!-- Back arrow. -->
<ImageView
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:paddingStart="15dp"
android:paddingEnd="15dp"
android:src="@drawable/back"
- android:background="?attr/selectableItemBackground"
android:onClick="bookmarksBack"
android:contentDescription="@string/back" />
+ <!-- Bookmarks folder title. -->
<TextView
android:id="@+id/bookmarks_title_textview"
android:layout_height="wrap_content"
- android:layout_width="match_parent"
+ android:layout_width="0dp"
+ android:layout_weight="1"
android:textStyle="bold"
android:textSize="20sp"
android:textColor="?android:attr/textColorPrimary"
android:layout_margin="10dp" />
+
+ <!-- Pin. -->
+ <ImageView
+ android:id="@+id/bookmarks_drawer_pinned_imageview"
+ android:layout_height="match_parent"
+ android:layout_width="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:paddingStart="15dp"
+ android:paddingEnd="20dp"
+ android:onClick="toggleBookmarksDrawerPinned"
+ android:contentDescription="@string/pin_drawer" />
</LinearLayout>
</LinearLayout>
android:src="@drawable/create_bookmark"
android:tint="?attr/fabIconTintColor"
android:contentDescription="@string/create_bookmark" />
-</FrameLayout>
\ No newline at end of file
+</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright © 2017-2020,2022 Soren Stoutner <soren@stoutner.com>.
+ Copyright 2017-2020,2022 Soren Stoutner <soren@stoutner.com>.
This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables" >
+ <!-- Back arrow. -->
<ImageView
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:paddingStart="15dp"
android:paddingEnd="15dp"
android:src="@drawable/back"
- android:background="?attr/selectableItemBackground"
android:onClick="bookmarksBack"
android:contentDescription="@string/back" />
+ <!-- Bookmarks folder title. -->
<TextView
android:id="@+id/bookmarks_title_textview"
android:layout_height="wrap_content"
- android:layout_width="match_parent"
+ android:layout_width="0dp"
+ android:layout_weight="1"
android:textStyle="bold"
android:textSize="20sp"
android:textColor="?android:attr/textColorPrimary"
android:layout_margin="10dp" />
+
+ <!-- Pin. -->
+ <ImageView
+ android:id="@+id/bookmarks_drawer_pinned_imageview"
+ android:layout_height="match_parent"
+ android:layout_width="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:paddingStart="15dp"
+ android:paddingEnd="20dp"
+ android:onClick="toggleBookmarksDrawerPinned"
+ android:contentDescription="@string/pin_drawer" />
</LinearLayout>
<ListView
android:src="@drawable/create_bookmark"
android:tint="?attr/fabIconTintColor"
android:contentDescription="@string/create_bookmark" />
-</FrameLayout>
\ No newline at end of file
+</FrameLayout>
<string name="cookies_deleted">Cookies deleted</string>
<string name="dom_storage_deleted">DOM Storage deleted</string>
<string name="form_data_deleted">Form Data deleted</string>
- <string name="open_navigation_drawer">Open Navigation Drawer</string>
- <string name="close_navigation_drawer">Close Navigation Drawer</string>
+ <string name="open_navigation_drawer">Open navigation drawer</string>
+ <string name="close_navigation_drawer">Close navigation drawer</string>
+ <string name="pin_drawer">Pin drawer</string>
<string name="unrecognized_url">Unrecognized URL:</string>
<string name="add_tab">Add tab</string>
- <string name="close_tab">Close Tab</string>
+ <string name="close_tab">Close tab</string>
<string name="new_tab">New tab</string>
<string name="loading">Loading…</string>
<string name="error">Error:</string>