]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/commitdiff
Add an option to display under the camera cutouts. https://redmine.stoutner.com...
authorSoren Stoutner <soren@stoutner.com>
Tue, 28 Nov 2023 17:51:07 +0000 (10:51 -0700)
committerSoren Stoutner <soren@stoutner.com>
Tue, 28 Nov 2023 17:51:07 +0000 (10:51 -0700)
35 files changed:
app/src/main/assets/de/about_changelog.html
app/src/main/assets/de/about_licenses.html
app/src/main/assets/en/about_changelog.html
app/src/main/assets/en/about_licenses.html
app/src/main/assets/es/about_changelog.html
app/src/main/assets/es/about_licenses.html
app/src/main/assets/fr/about_changelog.html
app/src/main/assets/fr/about_licenses.html
app/src/main/assets/it/about_changelog.html
app/src/main/assets/it/about_licenses.html
app/src/main/assets/pt-rBR/about_changelog.html
app/src/main/assets/pt-rBR/about_licenses.html
app/src/main/assets/ru/about_changelog.html
app/src/main/assets/ru/about_licenses.html
app/src/main/assets/shared_images/list_alt_rounded_24.svg [deleted file]
app/src/main/assets/shared_images/list_alt_rounded_24px.svg [new file with mode: 0644]
app/src/main/assets/shared_images/subheader_rounded_weight400_grade0_48px.svg [new file with mode: 0644]
app/src/main/assets/tr/about_changelog.html
app/src/main/assets/tr/about_licenses.html
app/src/main/assets/zh-rCN/about_changelog.html
app/src/main/assets/zh-rCN/about_licenses.html
app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt
app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.kt
app/src/main/java/com/stoutner/privacybrowser/helpers/ImportExportDatabaseHelper.kt
app/src/main/res/drawable/app_bar_disabled.xml
app/src/main/res/drawable/app_bar_enabled.xml
app/src/main/res/drawable/app_bar_ghosted.xml
app/src/main/res/drawable/clear_logcat_disabled.xml
app/src/main/res/drawable/clear_logcat_enabled.xml
app/src/main/res/drawable/display_under_cutouts_disabled.xml [new file with mode: 0644]
app/src/main/res/drawable/display_under_cutouts_enabled.xml [new file with mode: 0644]
app/src/main/res/drawable/full_screen_disabled.xml
app/src/main/res/drawable/full_screen_enabled.xml
app/src/main/res/values/strings.xml
app/src/main/res/xml/preferences.xml

index c59780faeeacd4ddbf8de7d8b7b4b1fbb59b3197..3da790853479c111d872462c872d5c8e9376e9ca 100644 (file)
@@ -33,8 +33,8 @@
     </head>
 
     <body>
     </head>
 
     <body>
-        <h3>3.16 (Version Code 72)</h3>
-        <p>20. November 2023 - Mindest-API 24, Ziel-API 34</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-android-3-16/">3.16</a> (Version Code 72)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=13e40f25aef5ddfcb5cd7b398c514cf2aa03e334">20. November 2023</a> - Mindest-API 24, Ziel-API 34</p>
         <ul>
             <li>Add importing and exporting of bookmarks to an <a href="https://redmine.stoutner.com/issues/91">HTML file</a>.</li>
             <li>Open new tabs <a href="https://redmine.stoutner.com/issues/1100">adjacent to the current tab</a>.</li>
         <ul>
             <li>Add importing and exporting of bookmarks to an <a href="https://redmine.stoutner.com/issues/91">HTML file</a>.</li>
             <li>Open new tabs <a href="https://redmine.stoutner.com/issues/1100">adjacent to the current tab</a>.</li>
index 6d5892f01975c5396ac0e8dc0cc96ed9904c1787..933dce146b235c900a7fd44c0d701aeeb033a13b 100644 (file)
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
-        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
+        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
+        <p><svg class="icon"><use href="../shared_images/subheader_rounded_weight400_grade0_48px.svg#icon"/></svg> subheader_<wbr>rounded_<wbr>weight400_<wbr>grade0_<wbr>48px.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
index 2c3e0ed51dc4e74a9d725a129c657a0cecdd5cb3..46767b97ffa07f58ba67906d068a49188a912f50 100644 (file)
@@ -27,8 +27,8 @@
     </head>
 
     <body>
     </head>
 
     <body>
-        <h3>3.16 (version code 72)</h3>
-        <p>20 November 2023 - minimum API 24, target API 34</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-android-3-16/">3.16</a> (version code 72)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=13e40f25aef5ddfcb5cd7b398c514cf2aa03e334">20 November 2023</a> - minimum API 24, target API 34</p>
         <ul>
             <li>Add importing and exporting of bookmarks to an <a href="https://redmine.stoutner.com/issues/91">HTML file</a>.</li>
             <li>Open new tabs <a href="https://redmine.stoutner.com/issues/1100">adjacent to the current tab</a>.</li>
         <ul>
             <li>Add importing and exporting of bookmarks to an <a href="https://redmine.stoutner.com/issues/91">HTML file</a>.</li>
             <li>Open new tabs <a href="https://redmine.stoutner.com/issues/1100">adjacent to the current tab</a>.</li>
index ab8fe9c39450d99ac95d8d4250a5f621b9da77db..a21861d16d76c4f817222e70a74f99ef3bbf3482 100644 (file)
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
-        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
+        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
+        <p><svg class="icon"><use href="../shared_images/subheader_rounded_weight400_grade0_48px.svg#icon"/></svg> subheader_<wbr>rounded_<wbr>weight400_<wbr>grade0_<wbr>48px.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
index 824568bbe1b3170cefe92adb933cf84a3a8960a4..ef51284099694fee8d09b30fa955eee15052932e 100644 (file)
@@ -29,8 +29,8 @@
     </head>
 
     <body>
     </head>
 
     <body>
-        <h3>3.16 (código de versión 72)</h3>
-        <p>20 de noviembre de 2023 - API mínimo 24, API objetivo 34</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-android-3-16/">3.16</a> (código de versión 72)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=13e40f25aef5ddfcb5cd7b398c514cf2aa03e334">20 de noviembre de 2023</a> - API mínimo 24, API objetivo 34</p>
         <ul>
             <li>Añadir la importación y exportación de favoritos a un <a href="https://redmine.stoutner.com/issues/91">archivo HTML</a>.</li>
             <li>Abrir nuevas pestañas <a href="https://redmine.stoutner.com/issues/1100">adyacentes a la pestaña actual</a>.</li>
         <ul>
             <li>Añadir la importación y exportación de favoritos a un <a href="https://redmine.stoutner.com/issues/91">archivo HTML</a>.</li>
             <li>Abrir nuevas pestañas <a href="https://redmine.stoutner.com/issues/1100">adyacentes a la pestaña actual</a>.</li>
index d3b5937b2c88618c3f221a5905915d1e94301ceb..caf64bb9e4d6eef32301e98218e7867c79bdcdaf 100644 (file)
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
-        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
+        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
+        <p><svg class="icon"><use href="../shared_images/subheader_rounded_weight400_grade0_48px.svg#icon"/></svg> subheader_<wbr>rounded_<wbr>weight400_<wbr>grade0_<wbr>48px.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
index 6803ad6dd91ed18473f801bdaff22adf6e1987c4..366679d794cc92fd3f8b202b8e8fbdc694bc9f20 100644 (file)
@@ -29,8 +29,8 @@
     </head>
 
     <body>
     </head>
 
     <body>
-        <h3>3.16 (version du code 72)</h3>
-        <p>20 Novembre 2023 - API minimale : 24, API optimale : 34</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-android-3-16/">3.16</a> (version du code 72)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=13e40f25aef5ddfcb5cd7b398c514cf2aa03e334">20 Novembre 2023</a> - API minimale : 24, API optimale : 34</p>
         <ul>
             <li>Add importing and exporting of bookmarks to an <a href="https://redmine.stoutner.com/issues/91">HTML file</a>.</li>
             <li>Open new tabs <a href="https://redmine.stoutner.com/issues/1100">adjacent to the current tab</a>.</li>
         <ul>
             <li>Add importing and exporting of bookmarks to an <a href="https://redmine.stoutner.com/issues/91">HTML file</a>.</li>
             <li>Open new tabs <a href="https://redmine.stoutner.com/issues/1100">adjacent to the current tab</a>.</li>
index f4a6fc6c73e159f1cbbbc737170dd200fc531339..ec49f4fecd556937648b2c699b8db61f6a599c20 100644 (file)
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
-        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
+        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
+        <p><svg class="icon"><use href="../shared_images/subheader_rounded_weight400_grade0_48px.svg#icon"/></svg> subheader_<wbr>rounded_<wbr>weight400_<wbr>grade0_<wbr>48px.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
index 6b82bd0f339f321c1ad3c48fdd10f5323841160e..97f1016d922dcb1d3f07f24fac0741c4b0c5a744 100644 (file)
@@ -29,8 +29,8 @@
     </head>
 
     <body>
     </head>
 
     <body>
-        <h3>3.16 (versione codice 72)</h3>
-        <p>20 Novembre 2023 - minima API 24, target API 34</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-android-3-16/">3.16</a> (versione codice 72)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=13e40f25aef5ddfcb5cd7b398c514cf2aa03e334">20 Novembre 2023</a> - minima API 24, target API 34</p>
         <ul>
             <li>Aggiunta la possibilità di importare e esportare i segnalibri in un <a href="https://redmine.stoutner.com/issues/91">file HTML</a>.</li>
             <li>Apertura delle nuove schede <a href="https://redmine.stoutner.com/issues/1100">di fianco alla scheda in uso</a>.</li>
         <ul>
             <li>Aggiunta la possibilità di importare e esportare i segnalibri in un <a href="https://redmine.stoutner.com/issues/91">file HTML</a>.</li>
             <li>Apertura delle nuove schede <a href="https://redmine.stoutner.com/issues/1100">di fianco alla scheda in uso</a>.</li>
index 3d7ae86c411ed24be72d19f908440a37388b7007..11ba61b6a6a12bd49489ebe609b6b0ef75181b39 100644 (file)
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
-        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
+        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
+        <p><svg class="icon"><use href="../shared_images/subheader_rounded_weight400_grade0_48px.svg#icon"/></svg> subheader_<wbr>rounded_<wbr>weight400_<wbr>grade0_<wbr>48px.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
index b9cd071596fad28ac716587055f3e1380fe669ee..b7b631ed793e96242246344bea88d4afa9b8db1c 100644 (file)
@@ -29,8 +29,8 @@
     </head>
 
     <body>
     </head>
 
     <body>
-        <h3>3.16 (código de versão 72)</h3>
-        <p>20 de novembro de 2023 - minimum API 24, target API 34</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-android-3-16/">3.16</a> (código de versão 72)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=13e40f25aef5ddfcb5cd7b398c514cf2aa03e334">20 de novembro de 2023</a> - minimum API 24, target API 34</p>
         <ul>
             <li>Add importing and exporting of bookmarks to an <a href="https://redmine.stoutner.com/issues/91">HTML file</a>.</li>
             <li>Open new tabs <a href="https://redmine.stoutner.com/issues/1100">adjacent to the current tab</a>.</li>
         <ul>
             <li>Add importing and exporting of bookmarks to an <a href="https://redmine.stoutner.com/issues/91">HTML file</a>.</li>
             <li>Open new tabs <a href="https://redmine.stoutner.com/issues/1100">adjacent to the current tab</a>.</li>
index 3c09b50194a441dfd710d67692ff3dfbe3dea6f6..b1e10d513370f712b40dd92821715d5bae5929e1 100644 (file)
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
-        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
+        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
+        <p><svg class="icon"><use href="../shared_images/subheader_rounded_weight400_grade0_48px.svg#icon"/></svg> subheader_<wbr>rounded_<wbr>weight400_<wbr>grade0_<wbr>48px.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
index e6020c88aac127042868eca9717a1f18b7b4a4c5..3d3af36cd058605cf6dd1b322d4b75581cfb9336 100644 (file)
@@ -27,8 +27,8 @@
     </head>
 
     <body>
     </head>
 
     <body>
-        <h3>3.16 (код версии 72)</h3>
-        <p>20 Ноябрь 2023 года - минимальный API 24, целевой API 34</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-android-3-16/">3.16</a> (код версии 72)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=13e40f25aef5ddfcb5cd7b398c514cf2aa03e334">20 Ноябрь 2023 года</a> - минимальный API 24, целевой API 34</p>
         <ul>
             <li>Добавлена возможность импорта/экспорта закладок в <a href="https://redmine.stoutner.com/issues/91">HTML-файл</a>.</li>
             <li>Новые вкладки теперь открываются <a href="https://redmine.stoutner.com/issues/1100">рядом с текущей</a>.</li>
         <ul>
             <li>Добавлена возможность импорта/экспорта закладок в <a href="https://redmine.stoutner.com/issues/91">HTML-файл</a>.</li>
             <li>Новые вкладки теперь открываются <a href="https://redmine.stoutner.com/issues/1100">рядом с текущей</a>.</li>
index fc03e2bd39f53474abcdf95b341024ee123868b5..a536b0d003e61b0a7afb4abd8d67519095c85c9f 100644 (file)
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
-        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
+        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
+        <p><svg class="icon"><use href="../shared_images/subheader_rounded_weight400_grade0_48px.svg#icon"/></svg> subheader_<wbr>rounded_<wbr>weight400_<wbr>grade0_<wbr>48px.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
diff --git a/app/src/main/assets/shared_images/list_alt_rounded_24.svg b/app/src/main/assets/shared_images/list_alt_rounded_24.svg
deleted file mode 100644 (file)
index a098cbe..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-
-<!--
-  Copyright 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 `list_alt_rounded_24`, 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="M5 21q-.825 0-1.413-.587Q3 19.825 3 19V5q0-.825.587-1.413Q4.175 3 5 3h14q.825 0 1.413.587Q21 4.175 21 5v14q0 .825-.587 1.413Q19.825 21 19 21Zm0-2h14V5H5v14Zm3-2q.425 0 .713-.288Q9 16.425 9 16t-.287-.713Q8.425 15 8 15t-.713.287Q7 15.575 7 16t.287.712Q7.575 17 8 17Zm0-4q.425 0 .713-.288Q9 12.425 9 12t-.287-.713Q8.425 11 8 11t-.713.287Q7 11.575 7 12t.287.712Q7.575 13 8 13Zm0-4q.425 0 .713-.288Q9 8.425 9 8t-.287-.713Q8.425 7 8 7t-.713.287Q7 7.575 7 8t.287.712Q7.575 9 8 9Zm4 8h4q.425 0 .712-.288Q17 16.425 17 16t-.288-.713Q16.425 15 16 15h-4q-.425 0-.712.287Q11 15.575 11 16t.288.712Q11.575 17 12 17Zm0-4h4q.425 0 .712-.288Q17 12.425 17 12t-.288-.713Q16.425 11 16 11h-4q-.425 0-.712.287Q11 11.575 11 12t.288.712Q11.575 13 12 13Zm0-4h4q.425 0 .712-.288Q17 8.425 17 8t-.288-.713Q16.425 7 16 7h-4q-.425 0-.712.287Q11 7.575 11 8t.288.712Q11.575 9 12 9ZM5 19V5v14Z" />
-</svg>
diff --git a/app/src/main/assets/shared_images/list_alt_rounded_24px.svg b/app/src/main/assets/shared_images/list_alt_rounded_24px.svg
new file mode 100644 (file)
index 0000000..a098cbe
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+  Copyright 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 `list_alt_rounded_24`, 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="M5 21q-.825 0-1.413-.587Q3 19.825 3 19V5q0-.825.587-1.413Q4.175 3 5 3h14q.825 0 1.413.587Q21 4.175 21 5v14q0 .825-.587 1.413Q19.825 21 19 21Zm0-2h14V5H5v14Zm3-2q.425 0 .713-.288Q9 16.425 9 16t-.287-.713Q8.425 15 8 15t-.713.287Q7 15.575 7 16t.287.712Q7.575 17 8 17Zm0-4q.425 0 .713-.288Q9 12.425 9 12t-.287-.713Q8.425 11 8 11t-.713.287Q7 11.575 7 12t.287.712Q7.575 13 8 13Zm0-4q.425 0 .713-.288Q9 8.425 9 8t-.287-.713Q8.425 7 8 7t-.713.287Q7 7.575 7 8t.287.712Q7.575 9 8 9Zm4 8h4q.425 0 .712-.288Q17 16.425 17 16t-.288-.713Q16.425 15 16 15h-4q-.425 0-.712.287Q11 15.575 11 16t.288.712Q11.575 17 12 17Zm0-4h4q.425 0 .712-.288Q17 12.425 17 12t-.288-.713Q16.425 11 16 11h-4q-.425 0-.712.287Q11 11.575 11 12t.288.712Q11.575 13 12 13Zm0-4h4q.425 0 .712-.288Q17 8.425 17 8t-.288-.713Q16.425 7 16 7h-4q-.425 0-.712.287Q11 7.575 11 8t.288.712Q11.575 9 12 9ZM5 19V5v14Z" />
+</svg>
diff --git a/app/src/main/assets/shared_images/subheader_rounded_weight400_grade0_48px.svg b/app/src/main/assets/shared_images/subheader_rounded_weight400_grade0_48px.svg
new file mode 100644 (file)
index 0000000..b212b6d
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!--
+  Copyright 2023 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 `subtitles`, 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 -960 960 960"
+    id="icon" >
+
+    <path
+        d="M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm0-60h600v-600H180v600Zm0-600v600-600Zm95 197h270q18.75 0 31.875-13.177Q590-609.353 590-628.176 590-647 576.875-660T545-673H275q-18.75 0-31.875 13.177Q230-646.647 230-627.824 230-609 243.125-596T275-583Z"/>
+</svg>
index 2ca71e0df4bd5dab87bfcbd958f21b316ffeaca6..ff0e85ecd4b773e9265c0d872517f18083576cbe 100644 (file)
@@ -27,8 +27,8 @@
     </head>
 
     <body>
     </head>
 
     <body>
-        <h3>3.16 (version code 72)</h3>
-        <p>20 Kasım 2023 - minimum API 24, target API 34</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-android-3-16/">3.16</a> (version code 72)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=13e40f25aef5ddfcb5cd7b398c514cf2aa03e334">20 Kasım 2023</a> - minimum API 24, target API 34</p>
         <ul>
             <li>Add importing and exporting of bookmarks to an <a href="https://redmine.stoutner.com/issues/91">HTML file</a>.</li>
             <li>Open new tabs <a href="https://redmine.stoutner.com/issues/1100">adjacent to the current tab</a>.</li>
         <ul>
             <li>Add importing and exporting of bookmarks to an <a href="https://redmine.stoutner.com/issues/91">HTML file</a>.</li>
             <li>Open new tabs <a href="https://redmine.stoutner.com/issues/1100">adjacent to the current tab</a>.</li>
index eca7c401cf2fc62c629410ba8d3cc96eaf5c6771..25f128632a54588d4bf25dea6c62b2080f8f8ff6 100644 (file)
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
-        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
+        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
+        <p><svg class="icon"><use href="../shared_images/subheader_rounded_weight400_grade0_48px.svg#icon"/></svg> subheader_<wbr>rounded_<wbr>weight400_<wbr>grade0_<wbr>48px.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
index 2ced7c7f1e129de4ce3998d1c9bb9f474e6f6972..838f189be9e6d7de7f96c44502fe6ab0334d1ca9 100644 (file)
@@ -29,8 +29,8 @@
     </head>
 
     <body>
     </head>
 
     <body>
-        <h3>3.16 (version code 72)</h3>
-        <p>20 November 2023 - 最低支持API 24, 最高支持API 34</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-android-3-16/">3.16</a> (version code 72)</h3>
+        <p><a href="https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff;h=13e40f25aef5ddfcb5cd7b398c514cf2aa03e334">20 November 2023</a> - 最低支持API 24, 最高支持API 34</p>
         <ul>
             <li>Add importing and exporting of bookmarks to an <a href="https://redmine.stoutner.com/issues/91">HTML file</a>.</li>
             <li>Open new tabs <a href="https://redmine.stoutner.com/issues/1100">adjacent to the current tab</a>.</li>
         <ul>
             <li>Add importing and exporting of bookmarks to an <a href="https://redmine.stoutner.com/issues/91">HTML file</a>.</li>
             <li>Open new tabs <a href="https://redmine.stoutner.com/issues/1100">adjacent to the current tab</a>.</li>
index c67b106a79a1172251ad45c327e8f81bc1024f66..8137f332efbd51a4c30111e24a9c0163a3951dc7 100644 (file)
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
         <p><svg class="icon"><use href="../shared_images/language.svg#icon"/></svg> language.</p>
         <p><svg class="icon"><use href="../shared_images/link_off.svg#icon"/></svg> link_off.</p>
         <p><svg class="icon"><use href="../shared_images/list.svg#icon"/></svg> list.</p>
-        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24.svg#icon"/></svg> list_alt_rounded_24.</p>
+        <p><svg class="icon"><use href="../shared_images/list_alt_rounded_24px.svg#icon"/></svg> list_alt_rounded_24px.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/local_activity.svg#icon"/></svg> local_activity.</p>
         <p><svg class="icon"><use href="../shared_images/location_off.svg#icon"/></svg> location_off.</p>
         <p><svg class="icon"><use href="../shared_images/lock.svg#icon"/></svg> lock.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
         <p><svg class="icon"><use href="../shared_images/smartphone.svg#icon"/></svg> smartphone.</p>
         <p><svg class="icon"><use href="../shared_images/sort.svg#icon"/></svg> sort.</p>
         <p><svg class="icon"><use href="../shared_images/style.svg#icon"/></svg> style.</p>
+        <p><svg class="icon"><use href="../shared_images/subheader_rounded_weight400_grade0_48px.svg#icon"/></svg> subheader_<wbr>rounded_<wbr>weight400_<wbr>grade0_<wbr>48px.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
         <p><svg class="icon"><use href="../shared_images/subtitles.svg#icon"/></svg> subtitles.</p>
         <p><svg class="icon"><use href="../shared_images/tab.svg#icon"/></svg> tab.</p>
         <p><svg class="icon"><use href="../shared_images/text_fields.svg#icon"/></svg> text_fields.</p>
index 8d2a7a07035c27f6df2651fd9d3f1ad649db297b..44304593978d31e828d206d9416703c2b1c00d59 100644 (file)
@@ -377,7 +377,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook
     private var domainsDatabaseHelper: DomainsDatabaseHelper? = null
     private var downloadWithExternalApp = false
     private var fullScreenBrowsingModeEnabled = false
     private var domainsDatabaseHelper: DomainsDatabaseHelper? = null
     private var downloadWithExternalApp = false
     private var fullScreenBrowsingModeEnabled = false
-    private var hideAppBar = false
+    private var hideAppBar = true
     private var inFullScreenBrowsingMode = false
     private var incognitoModeEnabled = false
     private var loadingNewIntent = false
     private var inFullScreenBrowsingMode = false
     private var incognitoModeEnabled = false
     private var loadingNewIntent = false
@@ -524,6 +524,15 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook
         val allowScreenshots = sharedPreferences.getBoolean(getString(R.string.allow_screenshots_key), false)
         bottomAppBar = sharedPreferences.getBoolean(getString(R.string.bottom_app_bar_key), false)
         displayAdditionalAppBarIcons = sharedPreferences.getBoolean(getString(R.string.display_additional_app_bar_icons_key), false)
         val allowScreenshots = sharedPreferences.getBoolean(getString(R.string.allow_screenshots_key), false)
         bottomAppBar = sharedPreferences.getBoolean(getString(R.string.bottom_app_bar_key), false)
         displayAdditionalAppBarIcons = sharedPreferences.getBoolean(getString(R.string.display_additional_app_bar_icons_key), false)
+        val displayUnderCutouts = sharedPreferences.getBoolean(getString(R.string.display_under_cutouts_key), false)
+
+        // Display under cutouts if specified.  This must be done here as it doesn't appear to work correctly if handled after the app is fully initialized.
+        if (displayUnderCutouts) {
+            if (Build.VERSION.SDK_INT >= 30)
+                window.attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
+            else if (Build.VERSION.SDK_INT >= 28)
+                window.attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
+        }
 
         // Get the theme entry values string array.
         val appThemeEntryValuesStringArray = resources.getStringArray(R.array.app_theme_entry_values)
 
         // Get the theme entry values string array.
         val appThemeEntryValuesStringArray = resources.getStringArray(R.array.app_theme_entry_values)
@@ -4827,8 +4836,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook
 
                         // The deprecated command can be switched to `WindowInsetsController` once the minimum API >= 30.
                         @Suppress("DEPRECATION")
 
                         // The deprecated command can be switched to `WindowInsetsController` once the minimum API >= 30.
                         @Suppress("DEPRECATION")
-                        rootFrameLayout.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
-                                View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
+                        rootFrameLayout.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                     } else {  // Switch to normal viewing mode.
                         // Show the app bar if it was hidden.
                         if (hideAppBar) {
                     } else {  // Switch to normal viewing mode.
                         // Show the app bar if it was hidden.
                         if (hideAppBar) {
index 190912553e410c054d26f0ee4c21e67f0f63a2b1..eb74fce3f278686c96cf92e10b686d0f61aebe71 100644 (file)
@@ -82,6 +82,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
     private lateinit var formDataPreference: Preference  // The form data preference can be removed once the minimum API >= 26.
     private lateinit var fullScreenBrowsingModePreference: Preference
     private lateinit var hideAppBarPreference: Preference
     private lateinit var formDataPreference: Preference  // The form data preference can be removed once the minimum API >= 26.
     private lateinit var fullScreenBrowsingModePreference: Preference
     private lateinit var hideAppBarPreference: Preference
+    private lateinit var displayUnderCutoutsPreference: Preference
     private lateinit var homepagePreference: Preference
     private lateinit var incognitoModePreference: Preference
     private lateinit var javaScriptPreference: Preference
     private lateinit var homepagePreference: Preference
     private lateinit var incognitoModePreference: Preference
     private lateinit var javaScriptPreference: Preference
@@ -145,6 +146,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
         proxyCustomUrlPreference = findPreference(getString(R.string.proxy_custom_url_key))!!
         fullScreenBrowsingModePreference = findPreference(getString(R.string.full_screen_browsing_mode_key))!!
         hideAppBarPreference = findPreference(getString(R.string.hide_app_bar_key))!!
         proxyCustomUrlPreference = findPreference(getString(R.string.proxy_custom_url_key))!!
         fullScreenBrowsingModePreference = findPreference(getString(R.string.full_screen_browsing_mode_key))!!
         hideAppBarPreference = findPreference(getString(R.string.hide_app_bar_key))!!
+        displayUnderCutoutsPreference = findPreference(getString(R.string.display_under_cutouts_key))!!
         clearEverythingPreference = findPreference(getString(R.string.clear_everything_key))!!
         clearCookiesPreference = findPreference(getString(R.string.clear_cookies_key))!!
         clearDomStoragePreference = findPreference(getString(R.string.clear_dom_storage_key))!!
         clearEverythingPreference = findPreference(getString(R.string.clear_everything_key))!!
         clearCookiesPreference = findPreference(getString(R.string.clear_cookies_key))!!
         clearDomStoragePreference = findPreference(getString(R.string.clear_dom_storage_key))!!
@@ -456,6 +458,12 @@ class SettingsFragment : PreferenceFragmentCompat() {
             hideAppBarPreference.setIcon(R.drawable.app_bar_ghosted)
         }
 
             hideAppBarPreference.setIcon(R.drawable.app_bar_ghosted)
         }
 
+        // Set the display under cutouts icon.
+        if (sharedPreferences.getBoolean(getString(R.string.display_under_cutouts_key), false))
+            displayUnderCutoutsPreference.setIcon(R.drawable.display_under_cutouts_enabled)
+        else
+            displayUnderCutoutsPreference.setIcon(R.drawable.display_under_cutouts_disabled)
+
         // Set the clear everything icon.
         if (clearEverything) {
             clearEverythingPreference.setIcon(R.drawable.clear_everything_enabled)
         // Set the clear everything icon.
         if (clearEverything) {
             clearEverythingPreference.setIcon(R.drawable.clear_everything_enabled)
@@ -933,6 +941,17 @@ class SettingsFragment : PreferenceFragmentCompat() {
                         hideAppBarPreference.setIcon(R.drawable.app_bar_disabled)
                 }
 
                         hideAppBarPreference.setIcon(R.drawable.app_bar_disabled)
                 }
 
+                getString(R.string.display_under_cutouts_key) -> {
+                    // Update the icon.
+                    if (sharedPreferences.getBoolean(getString(R.string.display_under_cutouts_key), true))
+                        displayUnderCutoutsPreference.setIcon(R.drawable.display_under_cutouts_enabled)
+                    else
+                        displayUnderCutoutsPreference.setIcon(R.drawable.display_under_cutouts_disabled)
+
+                    // Restart Privacy Browser.
+                    restartPrivacyBrowser()
+                }
+
                 getString(R.string.clear_everything_key) -> {
                     // Store the new clear everything status
                     val newClearEverythingBoolean = sharedPreferences.getBoolean(getString(R.string.clear_everything_key), true)
                 getString(R.string.clear_everything_key) -> {
                     // Store the new clear everything status
                     val newClearEverythingBoolean = sharedPreferences.getBoolean(getString(R.string.clear_everything_key), true)
index 259a5b744793fec7083d1d9485897e15c5ade726..14d0cbc56b3edbda0e1694ba8ce071824e8cafd4 100644 (file)
@@ -38,7 +38,7 @@ import java.io.OutputStream
 import java.util.Date
 
 // Define the public constants.
 import java.util.Date
 
 // Define the public constants.
-const val IMPORT_EXPORT_SCHEMA_VERSION = 17
+const val IMPORT_EXPORT_SCHEMA_VERSION = 18
 const val EXPORT_SUCCESSFUL = "A"
 const val IMPORT_SUCCESSFUL = "B"
 
 const val EXPORT_SUCCESSFUL = "A"
 const val IMPORT_SUCCESSFUL = "B"
 
@@ -55,6 +55,7 @@ private const val CLEAR_FORM_DATA = "clear_form_data"  // Clear form data can be
 private const val CLEAR_LOGCAT = "clear_logcat"
 private const val CUSTOM_USER_AGENT = "custom_user_agent"
 private const val DISPLAY_ADDITIONAL_APP_BAR_ICONS = "display_additional_app_bar_icons"
 private const val CLEAR_LOGCAT = "clear_logcat"
 private const val CUSTOM_USER_AGENT = "custom_user_agent"
 private const val DISPLAY_ADDITIONAL_APP_BAR_ICONS = "display_additional_app_bar_icons"
+private const val DISPLAY_UNDER_CUTOUTS = "display_under_cutouts"
 private const val DISPLAY_WEBPAGE_IMAGES = "display_webpage_images"
 private const val DOM_STORAGE = "dom_storage"
 private const val DOWNLOAD_WITH_EXTERNAL_APP = "download_with_external_app"
 private const val DISPLAY_WEBPAGE_IMAGES = "display_webpage_images"
 private const val DOM_STORAGE = "dom_storage"
 private const val DOWNLOAD_WITH_EXTERNAL_APP = "download_with_external_app"
@@ -490,6 +491,25 @@ class ImportExportDatabaseHelper {
                 // Although a new table could be created and all the data copied to it, I think I will just leave the old parent folder column.  It will be wiped out the next time an import is run.
             }
 
                 // Although a new table could be created and all the data copied to it, I think I will just leave the old parent folder column.  It will be wiped out the next time an import is run.
             }
 
+            // Upgrade from schema version 17, first used in Privacy Browser 3.15, to schema version 18, first used in Privacy Browser 3.17.
+            if (importDatabaseVersion < 18) {
+                // Create the new display under cutout column.
+                importDatabase.execSQL("ALTER TABLE $PREFERENCES_TABLE ADD COLUMN $DISPLAY_UNDER_CUTOUTS BOOLEAN")
+
+                // Get the current display under cutout value.
+                val displayUnderCutouts = sharedPreferences.getBoolean(DISPLAY_UNDER_CUTOUTS, false)
+
+                // Populate the preferences table with the current display under cutouts value.
+                // This can switch to using the variables directly once the API >= 30.  <https://www.sqlite.org/datatype3.html#boolean_datatype>
+                // <https://developer.android.com/reference/android/database/sqlite/package-summary>
+                if (displayUnderCutouts)
+                    importDatabase.execSQL("UPDATE $PREFERENCES_TABLE SET $DISPLAY_UNDER_CUTOUTS = 1")
+                else
+                    importDatabase.execSQL("UPDATE $PREFERENCES_TABLE SET $DISPLAY_UNDER_CUTOUTS = 0")
+            }
+
+            /* End of database upgrade logic. */
+
 
             // Get a cursor for the bookmarks table.
             val importBookmarksCursor = importDatabase.rawQuery("SELECT * FROM $BOOKMARKS_TABLE", null)
 
             // Get a cursor for the bookmarks table.
             val importBookmarksCursor = importDatabase.rawQuery("SELECT * FROM $BOOKMARKS_TABLE", null)
@@ -736,6 +756,7 @@ class ImportExportDatabaseHelper {
                 .putString(PROXY_CUSTOM_URL, importPreferencesCursor.getString(importPreferencesCursor.getColumnIndexOrThrow(PROXY_CUSTOM_URL)))
                 .putBoolean(FULL_SCREEN_BROWSING_MODE, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndexOrThrow(FULL_SCREEN_BROWSING_MODE)) == 1)
                 .putBoolean(HIDE_APP_BAR, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndexOrThrow(HIDE_APP_BAR)) == 1)
                 .putString(PROXY_CUSTOM_URL, importPreferencesCursor.getString(importPreferencesCursor.getColumnIndexOrThrow(PROXY_CUSTOM_URL)))
                 .putBoolean(FULL_SCREEN_BROWSING_MODE, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndexOrThrow(FULL_SCREEN_BROWSING_MODE)) == 1)
                 .putBoolean(HIDE_APP_BAR, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndexOrThrow(HIDE_APP_BAR)) == 1)
+                .putBoolean(DISPLAY_UNDER_CUTOUTS, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndexOrThrow(DISPLAY_UNDER_CUTOUTS)) == 1)
                 .putBoolean(CLEAR_EVERYTHING, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndexOrThrow(CLEAR_EVERYTHING)) == 1)
                 .putBoolean(CLEAR_COOKIES, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndexOrThrow(CLEAR_COOKIES)) == 1)
                 .putBoolean(CLEAR_DOM_STORAGE, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndexOrThrow(CLEAR_DOM_STORAGE)) == 1)
                 .putBoolean(CLEAR_EVERYTHING, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndexOrThrow(CLEAR_EVERYTHING)) == 1)
                 .putBoolean(CLEAR_COOKIES, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndexOrThrow(CLEAR_COOKIES)) == 1)
                 .putBoolean(CLEAR_DOM_STORAGE, importPreferencesCursor.getInt(importPreferencesCursor.getColumnIndexOrThrow(CLEAR_DOM_STORAGE)) == 1)
@@ -947,6 +968,7 @@ class ImportExportDatabaseHelper {
                     "$PROXY_CUSTOM_URL TEXT, " +
                     "$FULL_SCREEN_BROWSING_MODE BOOLEAN, " +
                     "$HIDE_APP_BAR BOOLEAN, " +
                     "$PROXY_CUSTOM_URL TEXT, " +
                     "$FULL_SCREEN_BROWSING_MODE BOOLEAN, " +
                     "$HIDE_APP_BAR BOOLEAN, " +
+                    "$DISPLAY_UNDER_CUTOUTS BOOLEAN, " +
                     "$CLEAR_EVERYTHING BOOLEAN, " +
                     "$CLEAR_COOKIES BOOLEAN, " +
                     "$CLEAR_DOM_STORAGE BOOLEAN, " +
                     "$CLEAR_EVERYTHING BOOLEAN, " +
                     "$CLEAR_COOKIES BOOLEAN, " +
                     "$CLEAR_DOM_STORAGE BOOLEAN, " +
@@ -999,6 +1021,7 @@ class ImportExportDatabaseHelper {
             preferencesContentValues.put(PROXY_CUSTOM_URL, sharedPreferences.getString(PROXY_CUSTOM_URL, context.getString(R.string.proxy_custom_url_default_value)))
             preferencesContentValues.put(FULL_SCREEN_BROWSING_MODE, sharedPreferences.getBoolean(FULL_SCREEN_BROWSING_MODE, false))
             preferencesContentValues.put(HIDE_APP_BAR, sharedPreferences.getBoolean(HIDE_APP_BAR, true))
             preferencesContentValues.put(PROXY_CUSTOM_URL, sharedPreferences.getString(PROXY_CUSTOM_URL, context.getString(R.string.proxy_custom_url_default_value)))
             preferencesContentValues.put(FULL_SCREEN_BROWSING_MODE, sharedPreferences.getBoolean(FULL_SCREEN_BROWSING_MODE, false))
             preferencesContentValues.put(HIDE_APP_BAR, sharedPreferences.getBoolean(HIDE_APP_BAR, true))
+            preferencesContentValues.put(DISPLAY_UNDER_CUTOUTS, sharedPreferences.getBoolean(DISPLAY_UNDER_CUTOUTS, false))
             preferencesContentValues.put(CLEAR_EVERYTHING, sharedPreferences.getBoolean(CLEAR_EVERYTHING, true))
             preferencesContentValues.put(CLEAR_COOKIES, sharedPreferences.getBoolean(CLEAR_COOKIES, true))
             preferencesContentValues.put(CLEAR_DOM_STORAGE, sharedPreferences.getBoolean(CLEAR_DOM_STORAGE, true))
             preferencesContentValues.put(CLEAR_EVERYTHING, sharedPreferences.getBoolean(CLEAR_EVERYTHING, true))
             preferencesContentValues.put(CLEAR_COOKIES, sharedPreferences.getBoolean(CLEAR_COOKIES, true))
             preferencesContentValues.put(CLEAR_DOM_STORAGE, sharedPreferences.getBoolean(CLEAR_DOM_STORAGE, true))
index c52c8eafa4e117354b185db0655f8e62691431f7..9efc1177d5fcc69384e7eb17423bbb7715f6eef5 100644 (file)
@@ -10,4 +10,4 @@
     <path
         android:fillColor="@color/disabled_icon"
         android:pathData="M20,4L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,6c0,-1.11 -0.89,-2 -2,-2zM20,18L4,18v-6h16v6zM20,8L4,8L4,6h16v2z" />
     <path
         android:fillColor="@color/disabled_icon"
         android:pathData="M20,4L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,6c0,-1.11 -0.89,-2 -2,-2zM20,18L4,18v-6h16v6zM20,8L4,8L4,6h16v2z" />
-</vector>
\ No newline at end of file
+</vector>
index e2f3080cd94bd294ea3fae26677d067cd78f1bf2..fc17bee4aad2102396f5d4d19d2e47fe7c61cf3c 100644 (file)
@@ -10,4 +10,4 @@
     <path
         android:fillColor="@color/blue_icon"
         android:pathData="M20,4L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,6c0,-1.11 -0.89,-2 -2,-2zM20,18L4,18v-6h16v6zM20,8L4,8L4,6h16v2z" />
     <path
         android:fillColor="@color/blue_icon"
         android:pathData="M20,4L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,6c0,-1.11 -0.89,-2 -2,-2zM20,18L4,18v-6h16v6zM20,8L4,8L4,6h16v2z" />
-</vector>
\ No newline at end of file
+</vector>
index 01865d3d5d5df3a435329a5dab73118d4aa7153a..3b39fc6affbaba11749230aaf2600c784a240603 100644 (file)
@@ -10,4 +10,4 @@
     <path
         android:fillColor="@color/ghosted_icon"
         android:pathData="M20,4L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,6c0,-1.11 -0.89,-2 -2,-2zM20,18L4,18v-6h16v6zM20,8L4,8L4,6h16v2z" />
     <path
         android:fillColor="@color/ghosted_icon"
         android:pathData="M20,4L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,6c0,-1.11 -0.89,-2 -2,-2zM20,18L4,18v-6h16v6zM20,8L4,8L4,6h16v2z" />
-</vector>
\ No newline at end of file
+</vector>
index bc6eb5839923322fe4530816442e1964412c5856..d6cb939a48e4ba970fbfd6ed49bb22be54889886 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `list_alt_rounded_24`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `list_alt_rounded_24px`.  It is released under the Apache License 2.0. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
index a0e1338b21cd0e24c142a5b21e37fb269ca76598..dad9aede9ac979a5cad8989931e3c8c79c12ae1d 100644 (file)
@@ -1,4 +1,4 @@
-<!-- This file comes from the Android Material icon set, where it is called `list_alt_rounded_24`.  It is released under the Apache License 2.0. -->
+<!-- This file comes from the Android Material icon set, where it is called `list_alt_rounded_24px`.  It is released under the Apache License 2.0. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
diff --git a/app/src/main/res/drawable/display_under_cutouts_disabled.xml b/app/src/main/res/drawable/display_under_cutouts_disabled.xml
new file mode 100644 (file)
index 0000000..667b45b
--- /dev/null
@@ -0,0 +1,13 @@
+<!-- This file comes from the Material Symbols icon set, where it is called `subheader_rounded_weight400_grade0_48px`.  It is released under the Apache License 2.0.  <https://fonts.google.com/icons> -->
+
+<vector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="960"
+    android:viewportWidth="960" >
+
+    <path
+        android:fillColor="@color/disabled_icon"
+        android:pathData="M180,840Q156,840 138,822Q120,804 120,780L120,180Q120,156 138,138Q156,120 180,120L780,120Q804,120 822,138Q840,156 840,180L840,780Q840,804 822,822Q804,840 780,840L180,840ZM180,780L780,780Q780,780 780,780Q780,780 780,780L780,180Q780,180 780,180Q780,180 780,180L180,180Q180,180 180,180Q180,180 180,180L180,780Q180,780 180,780Q180,780 180,780ZM180,180L180,180Q180,180 180,180Q180,180 180,180L180,780Q180,780 180,780Q180,780 180,780L180,780Q180,780 180,780Q180,780 180,780L180,180Q180,180 180,180Q180,180 180,180ZM275,377L545,377Q563.75,377 576.88,363.82Q590,350.65 590,331.82Q590,313 576.88,300Q563.75,287 545,287L275,287Q256.25,287 243.13,300.18Q230,313.35 230,332.18Q230,351 243.13,364Q256.25,377 275,377Z" />
+</vector>
diff --git a/app/src/main/res/drawable/display_under_cutouts_enabled.xml b/app/src/main/res/drawable/display_under_cutouts_enabled.xml
new file mode 100644 (file)
index 0000000..bc41332
--- /dev/null
@@ -0,0 +1,13 @@
+<!-- This file comes from the Material Symbols icon set, where it is called `subheader_rounded_weight400_grade0_48px`.  It is released under the Apache License 2.0.  <https://fonts.google.com/icons> -->
+
+<vector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportHeight="960"
+    android:viewportWidth="960" >
+
+    <path
+        android:fillColor="@color/blue_icon"
+        android:pathData="M180,840Q156,840 138,822Q120,804 120,780L120,180Q120,156 138,138Q156,120 180,120L780,120Q804,120 822,138Q840,156 840,180L840,780Q840,804 822,822Q804,840 780,840L180,840ZM180,780L780,780Q780,780 780,780Q780,780 780,780L780,180Q780,180 780,180Q780,180 780,180L180,180Q180,180 180,180Q180,180 180,180L180,780Q180,780 180,780Q180,780 180,780ZM180,180L180,180Q180,180 180,180Q180,180 180,180L180,780Q180,780 180,780Q180,780 180,780L180,780Q180,780 180,780Q180,780 180,780L180,180Q180,180 180,180Q180,180 180,180ZM275,377L545,377Q563.75,377 576.88,363.82Q590,350.65 590,331.82Q590,313 576.88,300Q563.75,287 545,287L275,287Q256.25,287 243.13,300.18Q230,313.35 230,332.18Q230,351 243.13,364Q256.25,377 275,377Z" />
+</vector>
index 4360947d70a5c2c3916d93b50f60abcb80aa448f..cb68b77f308c32284e0306e829304cc43f5f639d 100644 (file)
@@ -10,4 +10,4 @@
     <path
         android:fillColor="@color/disabled_icon"
         android:pathData="M17,1.01L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V3c0,-1.1 -0.9,-1.99 -2,-1.99zM17,19H7V5h10v14z"/>
     <path
         android:fillColor="@color/disabled_icon"
         android:pathData="M17,1.01L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V3c0,-1.1 -0.9,-1.99 -2,-1.99zM17,19H7V5h10v14z"/>
-</vector>
\ No newline at end of file
+</vector>
index f9bf574d67ba487f30cdde4fec7e105648014f11..f6cdf13d56b49a76d4b8646d4539c8b511ceaff5 100644 (file)
@@ -10,4 +10,4 @@
     <path
         android:fillColor="@color/blue_icon"
         android:pathData="M17,1.01L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V3c0,-1.1 -0.9,-1.99 -2,-1.99zM17,19H7V5h10v14z"/>
     <path
         android:fillColor="@color/blue_icon"
         android:pathData="M17,1.01L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V3c0,-1.1 -0.9,-1.99 -2,-1.99zM17,19H7V5h10v14z"/>
-</vector>
\ No newline at end of file
+</vector>
index d4ca02216ef641b6275df80f46c99310ba0df23b..8e73109792d45f15bcc9eee8e07f536896ce097c 100644 (file)
         <string name="full_screen_browsing_mode_summary">Double-tap to toggle full screen browsing mode.</string>
         <string name="hide_app_bar">Hide the app bar</string>
         <string name="hide_app_bar_summary">Hide the app bar that contains the URL.</string>
         <string name="full_screen_browsing_mode_summary">Double-tap to toggle full screen browsing mode.</string>
         <string name="hide_app_bar">Hide the app bar</string>
         <string name="hide_app_bar_summary">Hide the app bar that contains the URL.</string>
+        <string name="display_under_cutouts">Display under cutouts</string>
+        <string name="display_under_cutouts_summary">Draw the website under cutouts, like camera notches. Changing this setting will restart Privacy Browser.</string>
     <string name="clear_everything">Clear everything</string>
         <!-- The form data part of this string can be removed once the minimum API >= 26. -->
         <string name="clear_everything_summary">Clears cookies, DOM storage, form data, the logcat, and WebView’s cache.  Then manually deletes the entire “app_webview” and “cache” directories.</string>
     <string name="clear_everything">Clear everything</string>
         <!-- The form data part of this string can be removed once the minimum API >= 26. -->
         <string name="clear_everything_summary">Clears cookies, DOM storage, form data, the logcat, and WebView’s cache.  Then manually deletes the entire “app_webview” and “cache” directories.</string>
     <string name="full_screen_browsing_mode_key" translatable="false">full_screen_browsing_mode</string>
     <string name="general_category_key" translatable="false">general</string>
     <string name="hide_app_bar_key" translatable="false">hide_app_bar</string>
     <string name="full_screen_browsing_mode_key" translatable="false">full_screen_browsing_mode</string>
     <string name="general_category_key" translatable="false">general</string>
     <string name="hide_app_bar_key" translatable="false">hide_app_bar</string>
+    <string name="display_under_cutouts_key" translatable="false">display_under_cutouts</string>
     <string name="homepage_key" translatable="false">homepage</string>
     <string name="incognito_mode_key" translatable="false">incognito_mode</string>
     <string name="javascript_key" translatable="false">javascript</string>
     <string name="homepage_key" translatable="false">homepage</string>
     <string name="incognito_mode_key" translatable="false">incognito_mode</string>
     <string name="javascript_key" translatable="false">javascript</string>
index 076206bb74f573b4532d539f9dd399572fffe5d5..ac2b6a4c70e9bde729093b5aa4a1790450056ced 100644 (file)
             app:title="@string/hide_app_bar"
             app:summary="@string/hide_app_bar_summary"
             app:defaultValue="true" />
             app:title="@string/hide_app_bar"
             app:summary="@string/hide_app_bar_summary"
             app:defaultValue="true" />
+
+        <SwitchPreferenceCompat
+            app:key="@string/display_under_cutouts_key"
+            app:title="@string/display_under_cutouts"
+            app:summary="@string/display_under_cutouts_summary"
+            app:defaultValue="false" />
     </PreferenceCategory>
 
     <PreferenceCategory
     </PreferenceCategory>
 
     <PreferenceCategory