Exit back to the main activity when deleting a directly accessed domain setting....
authorSoren Stoutner <soren@stoutner.com>
Tue, 10 Nov 2020 23:33:21 +0000 (16:33 -0700)
committerSoren Stoutner <soren@stoutner.com>
Tue, 10 Nov 2020 23:33:21 +0000 (16:33 -0700)
app/src/main/assets/de/about_licenses.html
app/src/main/assets/en/about_licenses.html
app/src/main/assets/es/about_licenses.html
app/src/main/assets/fr/about_licenses.html
app/src/main/assets/it/about_licenses.html
app/src/main/assets/ru/about_licenses.html
app/src/main/assets/tr/about_licenses.html
app/src/main/java/com/stoutner/privacybrowser/activities/DomainsActivity.java
build.gradle

index a6da274a20cdb671952d63ea8d2ad0dc7dea26dd..0baa882f2d5739a48da323228c34415c4d32e98e 100644 (file)
         <p><svg class="left"><use href="../shared_images/cookie.svg#icon"/></svg> <code>cookie</code> was created by Google.
             It is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
             and can be downloaded from <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>. It is unchanged except for layout information like color and size.</p>
         <p><svg class="left"><use href="../shared_images/cookie.svg#icon"/></svg> <code>cookie</code> was created by Google.
             It is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
             and can be downloaded from <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>. It is unchanged except for layout information like color and size.</p>
-        <p><svg class="left"><use href="../shared_images/mastodon.svg#icon"/></svg> <code>mastodon</code> comes from the
-            <a href="https://github.com/tootsuite/mastodon/blob/master/app/javascript/images/logo_transparent_black.svg">Mastodon project</a>,
-            which is released under the <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPLv3+ license</a>. The full text of the license is below.
-            The image is unchanged except for layout information like color and size. It is included in Privacy Browser under the provisions in section 13 of the license.</p>
+        <p><svg class="left"><use href="../shared_images/mastodon.svg#icon"/></svg> <code>mastodon</code> stammt vom
+            <a href="https://github.com/tootsuite/mastodon/blob/master/app/javascript/images/logo_transparent_black.svg">Mastodon-Projekt</a> ab,
+            welches unter der <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPLv3+ Lizenz</a> veröffentlicht wird. Den gesamte Text dieser Lizenz finden Sie unterhalb.
+            Das Bild ist ein unverändertes Exzerpt zur Darstellung von Layout-Informationen wie Farbe, Größe und Rahmen.
+            Es ist in Privacy Browser unter Beachtung der Bestimmungen von Sektion 13 der Lizenz enthalten.</p>
         <p>The following icons come from the <a href="https://material.io/icons/">Android Material icon set</a>,
             which is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
             They are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.</p>
         <p>The following icons come from the <a href="https://material.io/icons/">Android Material icon set</a>,
             which is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
             They are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.</p>
index 51d8c029672998bdc70f1ade126d64648b5c6390..2d8f933d338ed097a1205877ac8a50ff0fbfaa1e 100644 (file)
@@ -97,7 +97,7 @@
         <p><svg class="left"><use href="../shared_images/mastodon.svg#icon"/></svg> <code>mastodon</code> comes from the
             <a href="https://github.com/tootsuite/mastodon/blob/master/app/javascript/images/logo_transparent_black.svg">Mastodon project</a>,
             which is released under the <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPLv3+ license</a>. The full text of the license is below.
         <p><svg class="left"><use href="../shared_images/mastodon.svg#icon"/></svg> <code>mastodon</code> comes from the
             <a href="https://github.com/tootsuite/mastodon/blob/master/app/javascript/images/logo_transparent_black.svg">Mastodon project</a>,
             which is released under the <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPLv3+ license</a>. The full text of the license is below.
-            The image is unchanged except for layout information like color and size. It is included in Privacy Browser under the provisions in section 13 of the license.</p>
+            The image is unchanged except for layout information like color, size, and margin. It is included in Privacy Browser under the provisions in section 13 of the license.</p>
         <p>The following icons come from the <a href="https://material.io/icons/">Android Material icon set</a>,
             which is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
             They are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.</p>
         <p>The following icons come from the <a href="https://material.io/icons/">Android Material icon set</a>,
             which is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
             They are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.</p>
index 56f55468757cc4749791350fcc206c44d42cf3df..b7d4573a7bb3e06af3131875461353a0e4212118 100644 (file)
             que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a> y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
             Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
             que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a> y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
             Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
-        <p><svg class="left"><use href="../shared_images/clear_and_exit.svg#icon"/></svg> deriva de <code>exit_to_app</code>, que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
-            y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>. Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+        <p><svg class="left"><use href="../shared_images/clear_and_exit.svg#icon"/></svg> deriva de <code>exit_to_app</code>,
+            que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a> y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
+            Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
             La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
-        <p><svg class="left"><use href="../shared_images/night_mode.svg#icon"/></svg> deriva de <code>compare</code>, que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
-            y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>. Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
+        <p><svg class="left"><use href="../shared_images/night_mode.svg#icon"/></svg> deriva de <code>compare</code>,
+            que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a> y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>.
+            Copyright de modificaciones © 2017 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
         <p><img class="left" src="../shared_images/sort_selected.svg"/> deriva de <code>sort</code>, que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
             y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>. Copyright de modificaciones © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             La imagen resultante se libera bajo la <a href="https://www.gnu.org/licenses/gpl-3.0.html">licencia GPLv3+</a>.</p>
         <p><img class="left" src="../shared_images/sort_selected.svg"/> deriva de <code>sort</code>, que es parte del <a href="https://material.io/icons/">conjunto de iconos Android Material</a>
             y es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licencia Apache 2.0</a>. Copyright de modificaciones © 2019 <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.
             Es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">licencia Apache 2.0</a>
             y puede ser descargado desde <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>.
             Está sin cambios, excepto por la información de diseño como el color y el tamaño.</p>
             Es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">licencia Apache 2.0</a>
             y puede ser descargado desde <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>.
             Está sin cambios, excepto por la información de diseño como el color y el tamaño.</p>
-        <p><svg class="left"><use href="../shared_images/mastodon.svg#icon"/></svg> <code>mastodon</code> comes from the
-            <a href="https://github.com/tootsuite/mastodon/blob/master/app/javascript/images/logo_transparent_black.svg">Mastodon project</a>,
-            which is released under the <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPLv3+ license</a>. The full text of the license is below.
-            The image is unchanged except for layout information like color and size. It is included in Privacy Browser under the provisions in section 13 of the license.</p>
+        <p><svg class="left"><use href="../shared_images/mastodon.svg#icon"/></svg> <code>mastodon</code> proviene del
+            <a href="https://github.com/tootsuite/mastodon/blob/master/app/javascript/images/logo_transparent_black.svg">proyecto Mastodon</a>,
+            que se libera bajo la <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">licencia AGPLv3+</a>. El texto completo de la licencia está abajo.
+            La imagen no ha cambiado excepto por la información de diseño como el color, el tamaño y el margen.
+            Está incluida en el Navegador de Privacidad bajo las disposiciones de la sección 13 de la licencia.</p>
         <p>Los siguientes iconos proceden de <a href="https://material.io/icons/">conjunto de iconos Android Material</a>,
             el cual es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">licencia Apache 2.0</a>.
             Están sin cambios, excepto por la información de diseño como el color y el tamaño. Algunos de ellos se han renombrado para que coincida con su uso en el código.
         <p>Los siguientes iconos proceden de <a href="https://material.io/icons/">conjunto de iconos Android Material</a>,
             el cual es liberado bajo la <a href ="https://www.apache.org/licenses/LICENSE-2.0">licencia Apache 2.0</a>.
             Están sin cambios, excepto por la información de diseño como el color y el tamaño. Algunos de ellos se han renombrado para que coincida con su uso en el código.
index 09ed9195c14a40d394272e0d76009eeca6e94d46..8d5336ec0102f9e7f80fe68014476ff285a8477c 100644 (file)
         <p><svg class="left"><use href="../shared_images/mastodon.svg#icon"/></svg> <code>mastodon</code> comes from the
             <a href="https://github.com/tootsuite/mastodon/blob/master/app/javascript/images/logo_transparent_black.svg">Mastodon project</a>,
             which is released under the <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPLv3+ license</a>. The full text of the license is below.
         <p><svg class="left"><use href="../shared_images/mastodon.svg#icon"/></svg> <code>mastodon</code> comes from the
             <a href="https://github.com/tootsuite/mastodon/blob/master/app/javascript/images/logo_transparent_black.svg">Mastodon project</a>,
             which is released under the <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPLv3+ license</a>. The full text of the license is below.
-            The image is unchanged except for layout information like color and size. It is included in Privacy Browser under the provisions in section 13 of the license.</p>
+            The image is unchanged except for layout information like color, size, and margin. It is included in Privacy Browser under the provisions in section 13 of the license.</p>
         <p>Les icônes suivantes proviennent de <a href="https://material.io/icons/">l'ensemble d'icônes Matériel Android</a>,
             qui est publié sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
             Ils sont inchangés sauf pour les informations de mise en page comme la couleur et la taille. Certains d'entre eux ont été renommés pour correspondre à leur utilisation dans le code.
         <p>Les icônes suivantes proviennent de <a href="https://material.io/icons/">l'ensemble d'icônes Matériel Android</a>,
             qui est publié sous la <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licence Apache 2.0</a>.
             Ils sont inchangés sauf pour les informations de mise en page comme la couleur et la taille. Certains d'entre eux ont été renommés pour correspondre à leur utilisation dans le code.
index 2899b5a8b4756eb9e7d0105389fc104834c7a02d..51324b9126993a93fbb72e6345626854254853ab 100644 (file)
         <p><svg class="left"><use href="../shared_images/cookie.svg#icon"/></svg> <code>cookie</code> è stata creata da Google.
             E' stata rilasciata con <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>
             e può essere scaricata dirattamente dal <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>.Non è stata modificata ad eccezione del colore e della dimensione.</p>
         <p><svg class="left"><use href="../shared_images/cookie.svg#icon"/></svg> <code>cookie</code> è stata creata da Google.
             E' stata rilasciata con <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>
             e può essere scaricata dirattamente dal <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>.Non è stata modificata ad eccezione del colore e della dimensione.</p>
-        <p><svg class="left"><use href="../shared_images/mastodon.svg#icon"/></svg> <code>mastodon</code> comes from the
-            <a href="https://github.com/tootsuite/mastodon/blob/master/app/javascript/images/logo_transparent_black.svg">Mastodon project</a>,
-            which is released under the <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPLv3+ license</a>. The full text of the license is below.
-            The image is unchanged except for layout information like color and size. It is included in Privacy Browser under the provisions in section 13 of the license.</p>
+        <p><svg class="left"><use href="../shared_images/mastodon.svg#icon"/></svg> <code>mastodon</code> deriva dal
+            <a href="https://github.com/tootsuite/mastodon/blob/master/app/javascript/images/logo_transparent_black.svg">progetto Mastodon</a>,
+            che è rilasciato sotto <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">licenza AGPLv3+</a>. Il testo completo della licenza è riportato qui sotto.
+            L'immagine non è stata modificata ad eccezione del layout come il colore, le dimensioni, i bordi. E' inclusa in Privacy Browser in accordo con quanto indicato nella sezione 13 della licenza.</p>
         <p>Le seguenti icone derivano dall'<a href="https://material.io/icons/">Android Material icon set</a>,
             che è rilasciato sotto <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
             Non sono state modificatae ad eccezione del colore e della dimensione. Alcune sono state rinominate per coerenza con il tipo di utilizzo all'interno del codice.
         <p>Le seguenti icone derivano dall'<a href="https://material.io/icons/">Android Material icon set</a>,
             che è rilasciato sotto <a href ="https://www.apache.org/licenses/LICENSE-2.0">Licenza Apache 2.0</a>.
             Non sono state modificatae ad eccezione del colore e della dimensione. Alcune sono state rinominate per coerenza con il tipo di utilizzo all'interno del codice.
index 399b547abc916f4623dedc6ebc85cd495919470e..e8239c08cd5b0f900b429f288c22921db62b782c 100644 (file)
         <p><svg class="left"><use href="../shared_images/cookie.svg#icon"/></svg> <code>cookie</code> были созданы Google.
             Они выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
             и могут быть загружены из <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>. Он неизменен, за исключением такой информации, как цвет и размер.</p>
         <p><svg class="left"><use href="../shared_images/cookie.svg#icon"/></svg> <code>cookie</code> были созданы Google.
             Они выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
             и могут быть загружены из <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>. Он неизменен, за исключением такой информации, как цвет и размер.</p>
-        <p><svg class="left"><use href="../shared_images/mastodon.svg#icon"/></svg> <code>mastodon</code> comes from the
-            <a href="https://github.com/tootsuite/mastodon/blob/master/app/javascript/images/logo_transparent_black.svg">Mastodon project</a>,
-            which is released under the <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPLv3+ license</a>. The full text of the license is below.
-            The image is unchanged except for layout information like color and size. It is included in Privacy Browser under the provisions in section 13 of the license.</p>
+        <p><svg class="left"><use href="../shared_images/mastodon.svg#icon"/></svg> <code>mastodon</code> является частью
+            <a href="https://github.com/tootsuite/mastodon/blob/master/app/javascript/images/logo_transparent_black.svg">проекта Mastodon</a>,
+            который выпускается под <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">лицензией AGPLv3+</a>. Полный текст лицензии приведен ниже.
+            Изображение не было изменено, за исключением информации о верстке, в том числе цвет, размеры и отступы. В соответствии с положениями раздела 13 лицензии оно включено в Privacy Browser.</p>
         <p>Следующие значки взяты из<a href="https://material.io/icons/">Android Material icon set</a>,
             которые выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
             Они неизменны, за исключением такой информации, как цвет и размер. Некоторые из них были переименованы в соответствии с их использованием в коде. Оригинальные значки и имена показаны ниже.</p>
         <p>Следующие значки взяты из<a href="https://material.io/icons/">Android Material icon set</a>,
             которые выпущены под <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.
             Они неизменны, за исключением такой информации, как цвет и размер. Некоторые из них были переименованы в соответствии с их использованием в коде. Оригинальные значки и имена показаны ниже.</p>
index 23c0632e980d72c65c3b21bc72a10a0954d9fa59..d33fc8751777e8523572f6ff9d4881c16ea61694 100644 (file)
@@ -98,7 +98,7 @@
         <p><svg class="left"><use href="../shared_images/mastodon.svg#icon"/></svg> <code>mastodon</code> comes from the
             <a href="https://github.com/tootsuite/mastodon/blob/master/app/javascript/images/logo_transparent_black.svg">Mastodon project</a>,
             which is released under the <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPLv3+ license</a>. The full text of the license is below.
         <p><svg class="left"><use href="../shared_images/mastodon.svg#icon"/></svg> <code>mastodon</code> comes from the
             <a href="https://github.com/tootsuite/mastodon/blob/master/app/javascript/images/logo_transparent_black.svg">Mastodon project</a>,
             which is released under the <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPLv3+ license</a>. The full text of the license is below.
-            The image is unchanged except for layout information like color and size. It is included in Privacy Browser under the provisions in section 13 of the license.</p>
+            The image is unchanged except for layout information like color, size, and margin. It is included in Privacy Browser under the provisions in section 13 of the license.</p>
         <p>Aşağıdaki simgeler <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> altında yayınlanan <a href="https://material.io/icons/">Android Material</a>
             simge setinden gelmektedir. Renk ve ebat gibi düzen bilgileri dışında herhangi bir değişiklik yapılmamıştır. Bazıları koddaki kullanımlarıyla uygun olacak şekilde yeniden adlandırıldı.
             Orijinal simgeler ve adlar aşağıda gösterilmiştir.</p>
         <p>Aşağıdaki simgeler <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> altında yayınlanan <a href="https://material.io/icons/">Android Material</a>
             simge setinden gelmektedir. Renk ve ebat gibi düzen bilgileri dışında herhangi bir değişiklik yapılmamıştır. Bazıları koddaki kullanımlarıyla uygun olacak şekilde yeniden adlandırıldı.
             Orijinal simgeler ve adlar aşağıda gösterilmiştir.</p>
index 574dc725942507ba813bb21d45a42f52829c56b1..2283277fb9f328ad741e4ac772a15abb744b99e8 100644 (file)
@@ -335,83 +335,93 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo
         // Get a handle for the fragment manager.
         FragmentManager fragmentManager = getSupportFragmentManager();
 
         // Get a handle for the fragment manager.
         FragmentManager fragmentManager = getSupportFragmentManager();
 
-        switch (menuItemId) {
-            case android.R.id.home:  // The home arrow is identified as `android.R.id.home`, not just `R.id.home`.
-                if (twoPanedMode) {  // The device is in two-paned mode.
-                    // Save the current domain settings if the domain settings fragment is displayed.
-                    if (findViewById(R.id.domain_settings_scrollview) != null) {
-                        saveDomainSettings(coordinatorLayout, resources);
-                    }
-
-                    // Dismiss the undo delete `SnackBar` if it is shown.
-                    if (undoDeleteSnackbar != null && undoDeleteSnackbar.isShown()) {
-                        // Set the close flag.
-                        closeActivityAfterDismissingSnackbar = true;
-
-                        // Dismiss the snackbar.
-                        undoDeleteSnackbar.dismiss();
-                    } else {
-                        // Go home.
-                        NavUtils.navigateUpFromSameTask(this);
-                    }
-                } else if (closeOnBack) {  // Go directly back to the main WebView activity because the domains activity was launched from the options menu.
-                    // Save the current domain settings.
+        // Run the command according to the selected menu item.
+        if (menuItemId == android.R.id.home) {  // The home arrow is identified as `android.R.id.home`, not just `R.id.home`.
+            // Check if the device is in two-paned mode.
+            if (twoPanedMode) {  // The device is in two-paned mode.
+                // Save the current domain settings if the domain settings fragment is displayed.
+                if (findViewById(R.id.domain_settings_scrollview) != null) {
                     saveDomainSettings(coordinatorLayout, resources);
                     saveDomainSettings(coordinatorLayout, resources);
+                }
+
+                // Dismiss the undo delete snackbar if it is shown.
+                if (undoDeleteSnackbar != null && undoDeleteSnackbar.isShown()) {
+                    // Set the close flag.
+                    closeActivityAfterDismissingSnackbar = true;
 
 
+                    // Dismiss the snackbar.
+                    undoDeleteSnackbar.dismiss();
+                } else {
                     // Go home.
                     NavUtils.navigateUpFromSameTask(this);
                     // Go home.
                     NavUtils.navigateUpFromSameTask(this);
-                } else if (findViewById(R.id.domain_settings_scrollview) != null) {  // The device is in single-paned mode and the domain settings fragment is displayed.
-                    // Save the current domain settings.
-                    saveDomainSettings(coordinatorLayout, resources);
+                }
+            } else if (closeOnBack) {  // Go directly back to the main WebView activity because the domains activity was launched from the options menu.
+                // Save the current domain settings.
+                saveDomainSettings(coordinatorLayout, resources);
 
 
-                    // Display the domains list fragment.
-                    DomainsListFragment domainsListFragment = new DomainsListFragment();
-                    fragmentManager.beginTransaction().replace(R.id.domains_listview_fragment_container, domainsListFragment).commit();
-                    fragmentManager.executePendingTransactions();
+                // Go home.
+                NavUtils.navigateUpFromSameTask(this);
+            } else if (findViewById(R.id.domain_settings_scrollview) != null) {  // The device is in single-paned mode and the domain settings fragment is displayed.
+                // Save the current domain settings.
+                saveDomainSettings(coordinatorLayout, resources);
 
 
-                    // Populate the list of domains.  `-1` highlights the first domain if in two-paned mode.  It has no effect in single-paned mode.
-                    populateDomainsListView(-1, domainsListViewPosition);
+                // Display the domains list fragment.
+                DomainsListFragment domainsListFragment = new DomainsListFragment();
+                fragmentManager.beginTransaction().replace(R.id.domains_listview_fragment_container, domainsListFragment).commit();
+                fragmentManager.executePendingTransactions();
 
 
-                    // Show the add domain floating action button.
-                    addDomainFAB.show();
+                // Populate the list of domains.  `-1` highlights the first domain if in two-paned mode.  It has no effect in single-paned mode.
+                populateDomainsListView(-1, domainsListViewPosition);
 
 
-                    // Hide the delete menu item.
-                    deleteMenuItem.setVisible(false);
-                } else {  // The device is in single-paned mode and `DomainsListFragment` is displayed.
-                    // Dismiss the undo delete `SnackBar` if it is shown.
-                    if (undoDeleteSnackbar != null && undoDeleteSnackbar.isShown()) {
-                        // Set the close flag.
-                        closeActivityAfterDismissingSnackbar = true;
-
-                        // Dismiss the snackbar.
-                        undoDeleteSnackbar.dismiss();
-                    } else {
-                        // Go home.
-                        NavUtils.navigateUpFromSameTask(this);
-                    }
-                }
-                break;
+                // Show the add domain floating action button.
+                addDomainFAB.show();
+
+                // Hide the delete menu item.
+                deleteMenuItem.setVisible(false);
+            } else {  // The device is in single-paned mode and domains list fragment is displayed.
+                // Dismiss the undo delete `SnackBar` if it is shown.
+                if (undoDeleteSnackbar != null && undoDeleteSnackbar.isShown()) {
+                    // Set the close flag.
+                    closeActivityAfterDismissingSnackbar = true;
 
 
-            case R.id.delete_domain:
+                    // Dismiss the snackbar.
+                    undoDeleteSnackbar.dismiss();
+                } else {
+                    // Go home.
+                    NavUtils.navigateUpFromSameTask(this);
+                }
+            }
+        } else if (menuItemId == R.id.delete_domain) {  // Delete.
+            // Get a handle for the activity.
+            Activity activity = this;
+
+            // Check to see if the domain settings were loaded directly for editing of this app in single-paned mode.
+            if (closeOnBack && !twoPanedMode) {  // The activity should delete the domain settings and exit straight to the the main WebView activity.
+                // Delete the selected domain.
+                domainsDatabaseHelper.deleteDomain(currentDomainDatabaseId);
+
+                // Go home.
+                NavUtils.navigateUpFromSameTask(activity);
+            } else {  // A snackbar should be shown before deleting the domain settings.
                 // Reset close-on-back, which otherwise can cause errors if the system attempts to save settings for a domain that no longer exists.
                 closeOnBack = false;
 
                 // Reset close-on-back, which otherwise can cause errors if the system attempts to save settings for a domain that no longer exists.
                 closeOnBack = false;
 
-                // Store a copy of `currentDomainDatabaseId` because it could change while the `Snackbar` is displayed.
+                // Store a copy of the current domain database ID because it could change while the snackbar is displayed.
                 final int databaseIdToDelete = currentDomainDatabaseId;
 
                 // Update the fragments and menu items.
                 if (twoPanedMode) {  // Two-paned mode.
                 final int databaseIdToDelete = currentDomainDatabaseId;
 
                 // Update the fragments and menu items.
                 if (twoPanedMode) {  // Two-paned mode.
-                    // Store the deleted domain position, which is needed if `Undo` is selected in the `Snackbar`.
+                    // Store the deleted domain position, which is needed if undo is selected in the snackbar.
                     deletedDomainPosition = domainsListView.getCheckedItemPosition();
 
                     deletedDomainPosition = domainsListView.getCheckedItemPosition();
 
-                    // Disable the options `MenuItems`.
+                    // Disable the options menu items.
                     deleteMenuItem.setEnabled(false);
                     deleteMenuItem.setIcon(R.drawable.delete_disabled);
 
                     // Remove the domain settings fragment.
                     fragmentManager.beginTransaction().remove(Objects.requireNonNull(fragmentManager.findFragmentById(R.id.domain_settings_fragment_container))).commit();
                 } else {  // Single-paned mode.
                     deleteMenuItem.setEnabled(false);
                     deleteMenuItem.setIcon(R.drawable.delete_disabled);
 
                     // Remove the domain settings fragment.
                     fragmentManager.beginTransaction().remove(Objects.requireNonNull(fragmentManager.findFragmentById(R.id.domain_settings_fragment_container))).commit();
                 } else {  // Single-paned mode.
-                    // Display `DomainsListFragment`.
+                    // Display the domains list fragment.
                     DomainsListFragment domainsListFragment = new DomainsListFragment();
                     fragmentManager.beginTransaction().replace(R.id.domains_listview_fragment_container, domainsListFragment).commit();
                     fragmentManager.executePendingTransactions();
                     DomainsListFragment domainsListFragment = new DomainsListFragment();
                     fragmentManager.beginTransaction().replace(R.id.domains_listview_fragment_container, domainsListFragment).commit();
                     fragmentManager.executePendingTransactions();
@@ -423,35 +433,36 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo
                     deleteMenuItem.setVisible(false);
                 }
 
                     deleteMenuItem.setVisible(false);
                 }
 
-                // Get a `Cursor` that does not show the domain to be deleted.
+                // Get a cursor that does not show the domain to be deleted.
                 Cursor domainsPendingDeleteCursor = domainsDatabaseHelper.getDomainNameCursorOrderedByDomainExcept(databaseIdToDelete);
 
                 Cursor domainsPendingDeleteCursor = domainsDatabaseHelper.getDomainNameCursorOrderedByDomainExcept(databaseIdToDelete);
 
-                // Setup `domainsPendingDeleteCursorAdapter` with `this` context.  `false` disables `autoRequery`.
+                // Setup the domains pending delete cursor adapter.
                 CursorAdapter domainsPendingDeleteCursorAdapter = new CursorAdapter(this, domainsPendingDeleteCursor, false) {
                     @Override
                     public View newView(Context context, Cursor cursor, ViewGroup parent) {
                 CursorAdapter domainsPendingDeleteCursorAdapter = new CursorAdapter(this, domainsPendingDeleteCursor, false) {
                     @Override
                     public View newView(Context context, Cursor cursor, ViewGroup parent) {
-                        // Inflate the individual item layout.  `false` does not attach it to the root.
+                        // Inflate the individual item layout.
                         return getLayoutInflater().inflate(R.layout.domain_name_linearlayout, parent, false);
                     }
 
                     @Override
                     public void bindView(View view, Context context, Cursor cursor) {
                         return getLayoutInflater().inflate(R.layout.domain_name_linearlayout, parent, false);
                     }
 
                     @Override
                     public void bindView(View view, Context context, Cursor cursor) {
-                        // Set the domain name.
+                        // Get the domain name string.
                         String domainNameString = cursor.getString(cursor.getColumnIndex(DomainsDatabaseHelper.DOMAIN_NAME));
                         String domainNameString = cursor.getString(cursor.getColumnIndex(DomainsDatabaseHelper.DOMAIN_NAME));
+
+                        // Get a handle for the domain name text view.
                         TextView domainNameTextView = view.findViewById(R.id.domain_name_textview);
                         TextView domainNameTextView = view.findViewById(R.id.domain_name_textview);
+
+                        // Display the domain name.
                         domainNameTextView.setText(domainNameString);
                     }
                 };
 
                         domainNameTextView.setText(domainNameString);
                     }
                 };
 
-                // Update the handle for the current `domains_listview`.
+                // Update the handle for the current domains list view.
                 domainsListView = findViewById(R.id.domains_listview);
 
                 domainsListView = findViewById(R.id.domains_listview);
 
-                // Update the `ListView`.
+                // Update the list view.
                 domainsListView.setAdapter(domainsPendingDeleteCursorAdapter);
 
                 domainsListView.setAdapter(domainsPendingDeleteCursorAdapter);
 
-                // Get a handle for the activity.
-                Activity activity = this;
-
                 // Display a snackbar.
                 undoDeleteSnackbar = Snackbar.make(domainsListView, R.string.domain_deleted, Snackbar.LENGTH_LONG)
                         .setAction(R.string.undo, (View v) -> {
                 // Display a snackbar.
                 undoDeleteSnackbar = Snackbar.make(domainsListView, R.string.domain_deleted, Snackbar.LENGTH_LONG)
                         .setAction(R.string.undo, (View v) -> {
@@ -477,22 +488,26 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo
 
                                     // Display the correct fragments.
                                     if (twoPanedMode) {  // The device in in two-paned mode.
 
                                     // Display the correct fragments.
                                     if (twoPanedMode) {  // The device in in two-paned mode.
-                                        // Get a `Cursor` with the current contents of the domains database.
+                                        // Get a cursor with the current contents of the domains database.
                                         Cursor undoDeleteDomainsCursor = domainsDatabaseHelper.getDomainNameCursorOrderedByDomain();
 
                                         Cursor undoDeleteDomainsCursor = domainsDatabaseHelper.getDomainNameCursorOrderedByDomain();
 
-                                        // Setup `domainsCursorAdapter` with `this` context.  `false` disables `autoRequery`.
+                                        // Setup the domains cursor adapter.
                                         CursorAdapter undoDeleteDomainsCursorAdapter = new CursorAdapter(getApplicationContext(), undoDeleteDomainsCursor, false) {
                                             @Override
                                             public View newView(Context context, Cursor cursor, ViewGroup parent) {
                                         CursorAdapter undoDeleteDomainsCursorAdapter = new CursorAdapter(getApplicationContext(), undoDeleteDomainsCursor, false) {
                                             @Override
                                             public View newView(Context context, Cursor cursor, ViewGroup parent) {
-                                                // Inflate the individual item layout.  `false` does not attach it to the root.
+                                                // Inflate the individual item layout.
                                                 return getLayoutInflater().inflate(R.layout.domain_name_linearlayout, parent, false);
                                             }
 
                                             @Override
                                             public void bindView(View view, Context context, Cursor cursor) {
                                                 return getLayoutInflater().inflate(R.layout.domain_name_linearlayout, parent, false);
                                             }
 
                                             @Override
                                             public void bindView(View view, Context context, Cursor cursor) {
-                                                // Set the domain name.
+                                                /// Get the domain name string.
                                                 String domainNameString = cursor.getString(cursor.getColumnIndex(DomainsDatabaseHelper.DOMAIN_NAME));
                                                 String domainNameString = cursor.getString(cursor.getColumnIndex(DomainsDatabaseHelper.DOMAIN_NAME));
+
+                                                // Get a handle for the domain name text view.
                                                 TextView domainNameTextView = view.findViewById(R.id.domain_name_textview);
                                                 TextView domainNameTextView = view.findViewById(R.id.domain_name_textview);
+
+                                                // Display the domain name.
                                                 domainNameTextView.setText(domainNameString);
                                             }
                                         };
                                                 domainNameTextView.setText(domainNameString);
                                             }
                                         };
@@ -578,7 +593,7 @@ public class DomainsActivity extends AppCompatActivity implements AddDomainDialo
 
                 // Show the Snackbar.
                 undoDeleteSnackbar.show();
 
                 // Show the Snackbar.
                 undoDeleteSnackbar.show();
-                break;
+            }
         }
 
         // Consume the event.
         }
 
         // Consume the event.
index 3cdc9df9262be844445583148252bc9f22ba4cc5..d65b3ccbe296d985c39738d5210e080c60f2e1c0 100644 (file)
@@ -25,7 +25,7 @@ buildscript {
         google()
     }
     dependencies {
         google()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:4.1.0'
+        classpath 'com.android.tools.build:gradle:4.1.1'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10"
 
         // NOTE: Do not place your application dependencies here; they belong
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10"
 
         // NOTE: Do not place your application dependencies here; they belong