From a94835709a5871399463fb956812026699d6e3f9 Mon Sep 17 00:00:00 2001
From: Soren Stoutner <soren@stoutner.com>
Date: Tue, 28 Nov 2023 10:51:07 -0700
Subject: [PATCH] Add an option to display under the camera cutouts. 
 https://redmine.stoutner.com/issues/1073

---
 app/src/main/assets/de/about_changelog.html   |  4 +--
 app/src/main/assets/de/about_licenses.html    |  3 +-
 app/src/main/assets/en/about_changelog.html   |  4 +--
 app/src/main/assets/en/about_licenses.html    |  3 +-
 app/src/main/assets/es/about_changelog.html   |  4 +--
 app/src/main/assets/es/about_licenses.html    |  3 +-
 app/src/main/assets/fr/about_changelog.html   |  4 +--
 app/src/main/assets/fr/about_licenses.html    |  3 +-
 app/src/main/assets/it/about_changelog.html   |  4 +--
 app/src/main/assets/it/about_licenses.html    |  3 +-
 .../main/assets/pt-rBR/about_changelog.html   |  4 +--
 .../main/assets/pt-rBR/about_licenses.html    |  3 +-
 app/src/main/assets/ru/about_changelog.html   |  4 +--
 app/src/main/assets/ru/about_licenses.html    |  3 +-
 ...unded_24.svg => list_alt_rounded_24px.svg} |  0
 ...ubheader_rounded_weight400_grade0_48px.svg | 30 +++++++++++++++++++
 app/src/main/assets/tr/about_changelog.html   |  4 +--
 app/src/main/assets/tr/about_licenses.html    |  3 +-
 .../main/assets/zh-rCN/about_changelog.html   |  4 +--
 .../main/assets/zh-rCN/about_licenses.html    |  3 +-
 .../activities/MainWebViewActivity.kt         | 14 +++++++--
 .../fragments/SettingsFragment.kt             | 19 ++++++++++++
 .../helpers/ImportExportDatabaseHelper.kt     | 25 +++++++++++++++-
 .../main/res/drawable/app_bar_disabled.xml    |  2 +-
 app/src/main/res/drawable/app_bar_enabled.xml |  2 +-
 app/src/main/res/drawable/app_bar_ghosted.xml |  2 +-
 .../res/drawable/clear_logcat_disabled.xml    |  2 +-
 .../res/drawable/clear_logcat_enabled.xml     |  2 +-
 .../display_under_cutouts_disabled.xml        | 13 ++++++++
 .../display_under_cutouts_enabled.xml         | 13 ++++++++
 .../res/drawable/full_screen_disabled.xml     |  2 +-
 .../main/res/drawable/full_screen_enabled.xml |  2 +-
 app/src/main/res/values/strings.xml           |  3 ++
 app/src/main/res/xml/preferences.xml          |  6 ++++
 34 files changed, 162 insertions(+), 38 deletions(-)
 rename app/src/main/assets/shared_images/{list_alt_rounded_24.svg => list_alt_rounded_24px.svg} (100%)
 create mode 100644 app/src/main/assets/shared_images/subheader_rounded_weight400_grade0_48px.svg
 create mode 100644 app/src/main/res/drawable/display_under_cutouts_disabled.xml
 create mode 100644 app/src/main/res/drawable/display_under_cutouts_enabled.xml

diff --git a/app/src/main/assets/de/about_changelog.html b/app/src/main/assets/de/about_changelog.html
index c59780fa..3da79085 100644
--- a/app/src/main/assets/de/about_changelog.html
+++ b/app/src/main/assets/de/about_changelog.html
@@ -33,8 +33,8 @@
     </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>
diff --git a/app/src/main/assets/de/about_licenses.html b/app/src/main/assets/de/about_licenses.html
index 6d5892f0..933dce14 100644
--- a/app/src/main/assets/de/about_licenses.html
+++ b/app/src/main/assets/de/about_licenses.html
@@ -141,7 +141,7 @@
         <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>
@@ -163,6 +163,7 @@
         <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>
diff --git a/app/src/main/assets/en/about_changelog.html b/app/src/main/assets/en/about_changelog.html
index 2c3e0ed5..46767b97 100644
--- a/app/src/main/assets/en/about_changelog.html
+++ b/app/src/main/assets/en/about_changelog.html
@@ -27,8 +27,8 @@
     </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>
diff --git a/app/src/main/assets/en/about_licenses.html b/app/src/main/assets/en/about_licenses.html
index ab8fe9c3..a21861d1 100644
--- a/app/src/main/assets/en/about_licenses.html
+++ b/app/src/main/assets/en/about_licenses.html
@@ -137,7 +137,7 @@
         <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>
@@ -159,6 +159,7 @@
         <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>
diff --git a/app/src/main/assets/es/about_changelog.html b/app/src/main/assets/es/about_changelog.html
index 824568bb..ef512840 100644
--- a/app/src/main/assets/es/about_changelog.html
+++ b/app/src/main/assets/es/about_changelog.html
@@ -29,8 +29,8 @@
     </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>
diff --git a/app/src/main/assets/es/about_licenses.html b/app/src/main/assets/es/about_licenses.html
index d3b5937b..caf64bb9 100644
--- a/app/src/main/assets/es/about_licenses.html
+++ b/app/src/main/assets/es/about_licenses.html
@@ -141,7 +141,7 @@
         <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>
@@ -163,6 +163,7 @@
         <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>
diff --git a/app/src/main/assets/fr/about_changelog.html b/app/src/main/assets/fr/about_changelog.html
index 6803ad6d..366679d7 100644
--- a/app/src/main/assets/fr/about_changelog.html
+++ b/app/src/main/assets/fr/about_changelog.html
@@ -29,8 +29,8 @@
     </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>
diff --git a/app/src/main/assets/fr/about_licenses.html b/app/src/main/assets/fr/about_licenses.html
index f4a6fc6c..ec49f4fe 100644
--- a/app/src/main/assets/fr/about_licenses.html
+++ b/app/src/main/assets/fr/about_licenses.html
@@ -143,7 +143,7 @@
         <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>
@@ -165,6 +165,7 @@
         <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>
diff --git a/app/src/main/assets/it/about_changelog.html b/app/src/main/assets/it/about_changelog.html
index 6b82bd0f..97f1016d 100644
--- a/app/src/main/assets/it/about_changelog.html
+++ b/app/src/main/assets/it/about_changelog.html
@@ -29,8 +29,8 @@
     </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>
diff --git a/app/src/main/assets/it/about_licenses.html b/app/src/main/assets/it/about_licenses.html
index 3d7ae86c..11ba61b6 100644
--- a/app/src/main/assets/it/about_licenses.html
+++ b/app/src/main/assets/it/about_licenses.html
@@ -145,7 +145,7 @@
         <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>
@@ -167,6 +167,7 @@
         <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>
diff --git a/app/src/main/assets/pt-rBR/about_changelog.html b/app/src/main/assets/pt-rBR/about_changelog.html
index b9cd0715..b7b631ed 100644
--- a/app/src/main/assets/pt-rBR/about_changelog.html
+++ b/app/src/main/assets/pt-rBR/about_changelog.html
@@ -29,8 +29,8 @@
     </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>
diff --git a/app/src/main/assets/pt-rBR/about_licenses.html b/app/src/main/assets/pt-rBR/about_licenses.html
index 3c09b501..b1e10d51 100644
--- a/app/src/main/assets/pt-rBR/about_licenses.html
+++ b/app/src/main/assets/pt-rBR/about_licenses.html
@@ -139,7 +139,7 @@
         <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>
@@ -161,6 +161,7 @@
         <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>
diff --git a/app/src/main/assets/ru/about_changelog.html b/app/src/main/assets/ru/about_changelog.html
index e6020c88..3d3af36c 100644
--- a/app/src/main/assets/ru/about_changelog.html
+++ b/app/src/main/assets/ru/about_changelog.html
@@ -27,8 +27,8 @@
     </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>
diff --git a/app/src/main/assets/ru/about_licenses.html b/app/src/main/assets/ru/about_licenses.html
index fc03e2bd..a536b0d0 100644
--- a/app/src/main/assets/ru/about_licenses.html
+++ b/app/src/main/assets/ru/about_licenses.html
@@ -137,7 +137,7 @@
         <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>
@@ -159,6 +159,7 @@
         <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>
diff --git a/app/src/main/assets/shared_images/list_alt_rounded_24.svg b/app/src/main/assets/shared_images/list_alt_rounded_24px.svg
similarity index 100%
rename from app/src/main/assets/shared_images/list_alt_rounded_24.svg
rename to app/src/main/assets/shared_images/list_alt_rounded_24px.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
index 00000000..b212b6df
--- /dev/null
+++ b/app/src/main/assets/shared_images/subheader_rounded_weight400_grade0_48px.svg
@@ -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>
diff --git a/app/src/main/assets/tr/about_changelog.html b/app/src/main/assets/tr/about_changelog.html
index 2ca71e0d..ff0e85ec 100644
--- a/app/src/main/assets/tr/about_changelog.html
+++ b/app/src/main/assets/tr/about_changelog.html
@@ -27,8 +27,8 @@
     </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>
diff --git a/app/src/main/assets/tr/about_licenses.html b/app/src/main/assets/tr/about_licenses.html
index eca7c401..25f12863 100644
--- a/app/src/main/assets/tr/about_licenses.html
+++ b/app/src/main/assets/tr/about_licenses.html
@@ -138,7 +138,7 @@
         <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>
@@ -160,6 +160,7 @@
         <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>
diff --git a/app/src/main/assets/zh-rCN/about_changelog.html b/app/src/main/assets/zh-rCN/about_changelog.html
index 2ced7c7f..838f189b 100644
--- a/app/src/main/assets/zh-rCN/about_changelog.html
+++ b/app/src/main/assets/zh-rCN/about_changelog.html
@@ -29,8 +29,8 @@
     </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>
diff --git a/app/src/main/assets/zh-rCN/about_licenses.html b/app/src/main/assets/zh-rCN/about_licenses.html
index c67b106a..8137f332 100644
--- a/app/src/main/assets/zh-rCN/about_licenses.html
+++ b/app/src/main/assets/zh-rCN/about_licenses.html
@@ -138,7 +138,7 @@
         <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>
@@ -160,6 +160,7 @@
         <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>
diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt
index 8d2a7a07..44304593 100644
--- a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt
+++ b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt
@@ -377,7 +377,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook
     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
@@ -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 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)
@@ -4827,8 +4836,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook
 
                         // 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) {
diff --git a/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.kt b/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.kt
index 19091255..eb74fce3 100644
--- a/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.kt
+++ b/app/src/main/java/com/stoutner/privacybrowser/fragments/SettingsFragment.kt
@@ -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 displayUnderCutoutsPreference: 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))!!
+        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))!!
@@ -456,6 +458,12 @@ class SettingsFragment : PreferenceFragmentCompat() {
             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)
@@ -933,6 +941,17 @@ class SettingsFragment : PreferenceFragmentCompat() {
                         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)
diff --git a/app/src/main/java/com/stoutner/privacybrowser/helpers/ImportExportDatabaseHelper.kt b/app/src/main/java/com/stoutner/privacybrowser/helpers/ImportExportDatabaseHelper.kt
index 259a5b74..14d0cbc5 100644
--- a/app/src/main/java/com/stoutner/privacybrowser/helpers/ImportExportDatabaseHelper.kt
+++ b/app/src/main/java/com/stoutner/privacybrowser/helpers/ImportExportDatabaseHelper.kt
@@ -38,7 +38,7 @@ import java.io.OutputStream
 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"
 
@@ -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 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"
@@ -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.
             }
 
+            // 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)
@@ -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)
+                .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)
@@ -947,6 +968,7 @@ class ImportExportDatabaseHelper {
                     "$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, " +
@@ -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(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))
diff --git a/app/src/main/res/drawable/app_bar_disabled.xml b/app/src/main/res/drawable/app_bar_disabled.xml
index c52c8eaf..9efc1177 100644
--- a/app/src/main/res/drawable/app_bar_disabled.xml
+++ b/app/src/main/res/drawable/app_bar_disabled.xml
@@ -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" />
-</vector>
\ No newline at end of file
+</vector>
diff --git a/app/src/main/res/drawable/app_bar_enabled.xml b/app/src/main/res/drawable/app_bar_enabled.xml
index e2f3080c..fc17bee4 100644
--- a/app/src/main/res/drawable/app_bar_enabled.xml
+++ b/app/src/main/res/drawable/app_bar_enabled.xml
@@ -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" />
-</vector>
\ No newline at end of file
+</vector>
diff --git a/app/src/main/res/drawable/app_bar_ghosted.xml b/app/src/main/res/drawable/app_bar_ghosted.xml
index 01865d3d..3b39fc6a 100644
--- a/app/src/main/res/drawable/app_bar_ghosted.xml
+++ b/app/src/main/res/drawable/app_bar_ghosted.xml
@@ -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" />
-</vector>
\ No newline at end of file
+</vector>
diff --git a/app/src/main/res/drawable/clear_logcat_disabled.xml b/app/src/main/res/drawable/clear_logcat_disabled.xml
index bc6eb583..d6cb939a 100644
--- a/app/src/main/res/drawable/clear_logcat_disabled.xml
+++ b/app/src/main/res/drawable/clear_logcat_disabled.xml
@@ -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"
diff --git a/app/src/main/res/drawable/clear_logcat_enabled.xml b/app/src/main/res/drawable/clear_logcat_enabled.xml
index a0e1338b..dad9aede 100644
--- a/app/src/main/res/drawable/clear_logcat_enabled.xml
+++ b/app/src/main/res/drawable/clear_logcat_enabled.xml
@@ -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"
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
index 00000000..667b45bb
--- /dev/null
+++ b/app/src/main/res/drawable/display_under_cutouts_disabled.xml
@@ -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
index 00000000..bc413325
--- /dev/null
+++ b/app/src/main/res/drawable/display_under_cutouts_enabled.xml
@@ -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>
diff --git a/app/src/main/res/drawable/full_screen_disabled.xml b/app/src/main/res/drawable/full_screen_disabled.xml
index 4360947d..cb68b77f 100644
--- a/app/src/main/res/drawable/full_screen_disabled.xml
+++ b/app/src/main/res/drawable/full_screen_disabled.xml
@@ -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"/>
-</vector>
\ No newline at end of file
+</vector>
diff --git a/app/src/main/res/drawable/full_screen_enabled.xml b/app/src/main/res/drawable/full_screen_enabled.xml
index f9bf574d..f6cdf13d 100644
--- a/app/src/main/res/drawable/full_screen_enabled.xml
+++ b/app/src/main/res/drawable/full_screen_enabled.xml
@@ -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"/>
-</vector>
\ No newline at end of file
+</vector>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d4ca0221..8e731097 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -693,6 +693,8 @@
         <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>
@@ -777,6 +779,7 @@
     <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>
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 076206bb..ac2b6a4c 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -195,6 +195,12 @@
             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
-- 
2.47.2