Create an `Open with` menu item. https://redmine.stoutner.com/issues/362
authorSoren Stoutner <soren@stoutner.com>
Sat, 12 Jan 2019 20:22:34 +0000 (13:22 -0700)
committerSoren Stoutner <soren@stoutner.com>
Sat, 12 Jan 2019 20:22:34 +0000 (13:22 -0700)
27 files changed:
app/src/free/res/values-es/strings.xml
app/src/free/res/values-it/strings.xml
app/src/free/res/values-ru/strings.xml
app/src/main/assets/de/about_changelog_dark.html
app/src/main/assets/de/about_changelog_light.html
app/src/main/assets/en/about_changelog_dark.html
app/src/main/assets/en/about_changelog_light.html
app/src/main/assets/es/about_changelog_dark.html
app/src/main/assets/es/about_changelog_light.html
app/src/main/assets/it/about_changelog_dark.html
app/src/main/assets/it/about_changelog_light.html
app/src/main/assets/ru/about_changelog_dark.html
app/src/main/assets/ru/about_changelog_light.html
app/src/main/assets/tr/about_changelog_dark.html
app/src/main/assets/tr/about_changelog_light.html
app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java
app/src/main/res/menu/webview_options_menu.xml
app/src/main/res/values-de/strings.xml
app/src/main/res/values-es/strings.xml
app/src/main/res/values-it/strings.xml
app/src/main/res/values-ru/strings.xml
app/src/main/res/values-tr/strings.xml
app/src/main/res/values/strings.xml
fastlane/metadata/android/es-ES/changelogs/39.txt
fastlane/metadata/android/it-IT/changelogs/39.txt
fastlane/metadata/android/ru-RU/changelogs/39.txt
fastlane/metadata/android/tr-TR/changelogs/39.txt

index e06c7ee9c07f156ba3aeb7152bada1b820300951..cf0a11fd2bfbdcc0f17cb6cf59f574e55408de7c 100644 (file)
@@ -27,7 +27,7 @@
     <!-- Ad Consent. -->
     <string name="ad_consent_text">Navegador Privado Gratuíto muestra un anuncio de banner en la parte inferior de la pantalla.
         Estos anuncios proceden del conjunto de proveedores habituales de Google y están configurados para que no sean personalizados.
-        \n\nLa versión estándar de Navegador Privado no contiene anuncios.</string>
+        \n\nLa versión estándar de Navegador Privado no contiene anuncios de aplicaciones.</string>
     <string name="close_browser">Cerrar el navegador</string>
     <string name="accept_ads">Aceptar anuncios</string>
 </resources>
\ No newline at end of file
index 12cd684400407ef5648a40a19ee5a885d3ce6091..3224de196f55e0f81b463d06e1bdbea9dff39664 100644 (file)
@@ -27,7 +27,7 @@
     <!-- Ad Consent. -->
     <string name="ad_consent_text">Privacy Browser Free mostra un banner pubblicitario nella parte inferiore dello schermo.
         Questi annunci provengono dai provider normalmente utilizzati da Google e sono configurati in modo da non essere personalizzati.
-        \n\nLa versione standard di Privacy Browser non contiene annunci.</string>
+        \n\nLa versione standard di Privacy Browser non contiene annunci di applicazioni.</string>
     <string name="close_browser">Chiudi il Browser</string>
     <string name="accept_ads">Accetta gli Annunci</string>
 </resources>
\ No newline at end of file
index 5b87709e0a3092d6b64ff1071ad83459ce9b99c6..e9f49c07506d751ba06d577bb94ea7d4c05efad7 100644 (file)
@@ -24,8 +24,8 @@
 
     <!-- Ad Consent. -->
     <string name="ad_consent_text">Privacy Browser Free отображает рекламный баннер в нижней части экрана.
-        Ð ÐµÐºÐ»Ð°Ð¼Ð° Ð¿Ð¾Ñ\81Ñ\82Ñ\83паеÑ\82 Ð¾Ñ\82 Ñ\88иÑ\80око Ð¸Ñ\81полÑ\8cзÑ\83емÑ\8bÑ\85 Google Ð¿Ð¾Ñ\81Ñ\82авÑ\89иков и настроена так, чтобы исключить персонализацию.
-        \n\nСтандартная версия Privacy Browser не содержит рекламы.</string>
+        Ð­Ñ\82а Ñ\80еклама Ð¿Ð¾Ñ\81Ñ\82Ñ\83паеÑ\82 Ð¾Ñ\82 Google и настроена так, чтобы исключить персонализацию.
+        \n\nСтандартная версия Privacy Browser не содержит рекламы приложений.</string>
     <string name="close_browser">Закрыть браузер</string>
     <string name="accept_ads">Разрешить рекламу</string>
 </resources>
\ No newline at end of file
index 329805c26e3216a828841b9433b9f09a5aee1e33..4f12ed278b118e4c337b13db3cdf5ad02aa1814c 100644 (file)
@@ -29,7 +29,7 @@
 
     <body>
         <h3>2.15.1 (version code 39)</h3>
-        <p>27. Dezember 2018 - Mindest-API 19, Ziel-API 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=df8b520d10c3fa31b603ff7c50670ab1f0728d2f">27. Dezember 2018</a> - Mindest-API 19, Ziel-API 28</p>
         <ul>
             <li>Fix a bug that caused <a href="https://redmine.stoutner.com/issues/364">some devices to crash</a> when opening a secondary activity.</li>
         </ul>
index 0c249e3a1cb5ca4a227b05e41ba965439ab7a8f6..2604f4baf07ef8f06341f43fe3e56bfafa667f6d 100644 (file)
@@ -29,7 +29,7 @@
 
     <body>
         <h3>2.15.1 (version code 39)</h3>
-        <p>27. Dezember 2018 - Mindest-API 19, Ziel-API 28</p>
+        <p><a href=https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=df8b520d10c3fa31b603ff7c50670ab1f0728d2f>27. Dezember 2018</a> - Mindest-API 19, Ziel-API 28</p>
         <ul>
             <li>Fix a bug that caused <a href="https://redmine.stoutner.com/issues/364">some devices to crash</a> when opening a secondary activity.</li>
         </ul>
index 712e4155fd12e1e768254650116977befd9c2873..1a80f5aa383e300db6a04d7f9324a1f8fcff6306 100644 (file)
@@ -25,7 +25,7 @@
 
     <body>
         <h3>2.15.1 (version code 39)</h3>
-        <p>27 December 2018 - minimum API 19, target API 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=df8b520d10c3fa31b603ff7c50670ab1f0728d2f">27 December 2018</a> - minimum API 19, target API 28</p>
         <ul>
             <li>Fix a bug that caused <a href="https://redmine.stoutner.com/issues/364">some devices to crash</a> when opening a secondary activity.</li>
         </ul>
index c09d04cf8971a6d372e8286c1c5a3c1122d7feaf..5cd2363b601ecbe2c5fd4f761722515d33282a55 100644 (file)
@@ -25,7 +25,7 @@
 
     <body>
         <h3>2.15.1 (version code 39)</h3>
-        <p>27 December 2018 - minimum API 19, target API 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=df8b520d10c3fa31b603ff7c50670ab1f0728d2f">27 December 2018</a> - minimum API 19, target API 28</p>
         <ul>
             <li>Fix a bug that caused <a href="https://redmine.stoutner.com/issues/364">some devices to crash</a> when opening a secondary activity.</li>
         </ul>
index 43bb903b695178980ba6c084079eae9a7c23af2d..04005de323cccb0296cec6723c59c14872539ab9 100644 (file)
@@ -27,9 +27,9 @@
 
     <body>
         <h3>2.15.1 (código de versión 39)</h3>
-        <p>27 de diciembre de 2018 - API mínimo 19, API dirigido 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=df8b520d10c3fa31b603ff7c50670ab1f0728d2f">27 de diciembre de 2018</a> - API mínimo 19, API dirigido 28</p>
         <ul>
-            <li>Fix a bug that caused <a href="https://redmine.stoutner.com/issues/364">some devices to crash</a> when opening a secondary activity.</li>
+            <li>Corregir un error que provocaba que <a href="https://redmine.stoutner.com/issues/364">algunos dispositivos se bloquearan</a> al abrir una actividad secundaria.</li>
         </ul>
 
         <h3>2.15 (código de versión 38)</h3>
index 410b5e48f5f8cf4235118938e79df56db0822cc1..7bf2e1ccdb123d6987137f3803699ef77e2f6619 100644 (file)
@@ -27,9 +27,9 @@
 
     <body>
         <h3>2.15.1 (código de versión 39)</h3>
-        <p>27 de diciembre de 2018 - API mínimo 19, API dirigido 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=df8b520d10c3fa31b603ff7c50670ab1f0728d2f">27 de diciembre de 2018</a> - API mínimo 19, API dirigido 28</p>
         <ul>
-            <li>Fix a bug that caused <a href="https://redmine.stoutner.com/issues/364">some devices to crash</a> when opening a secondary activity.</li>
+            <li>Corregir un error que provocaba que <a href="https://redmine.stoutner.com/issues/364">algunos dispositivos se bloquearan</a> al abrir una actividad secundaria.</li>
         </ul>
 
         <h3>2.15 (código de versión 38)</h3>
index 176d55e62e3cc02293f57d68ca2d84be3844a5a2..e62dc4586034d7019c359fe39ce6be5e84f11fb7 100644 (file)
@@ -27,9 +27,9 @@
 
     <body>
         <h3>2.15.1 (versione codice 39)</h3>
-        <p>27 Dicembre 2018 - minima API 19, target API 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=df8b520d10c3fa31b603ff7c50670ab1f0728d2f">27 Dicembre 2018</a> - minima API 19, target API 28</p>
         <ul>
-            <li>Fix a bug that caused <a href="https://redmine.stoutner.com/issues/364">some devices to crash</a> when opening a secondary activity.</li>
+            <li>Correzione di un baco che provocava <a href="https://redmine.stoutner.com/issues/364">il crash di alcuni dispositivi</a> aprendo una attivita' secondaria.</li>
         </ul>
 
         <h3>2.15 (versione codice 38)</h3>
index f536e2873f3135f821bc7ecb3c689dda0cc74b3d..fea366f10c9c053657ff273a4ed0d0f877b996f7 100644 (file)
@@ -27,9 +27,9 @@
 
     <body>
         <h3>2.15.1 (versione codice 39)</h3>
-        <p>27 Dicembre 2018 - minima API 19, target API 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=df8b520d10c3fa31b603ff7c50670ab1f0728d2f">27 Dicembre 2018</a> - minima API 19, target API 28</p>
         <ul>
-            <li>Fix a bug that caused <a href="https://redmine.stoutner.com/issues/364">some devices to crash</a> when opening a secondary activity.</li>
+            <li>Correzione di un baco che provocava <a href="https://redmine.stoutner.com/issues/364">il crash di alcuni dispositivi</a> aprendo una attivita' secondaria.</li>
         </ul>
 
         <h3>2.15 (versione codice 38)</h3>
index 6ffd2dd7f5c9223846c59206e9e7e94089a7f7d5..2d163765f335a3777a8a8dbb7fbd0bc065c9cbe7 100644 (file)
@@ -25,9 +25,9 @@
 
     <body>
         <h3>2.15.1 (код версии 39)</h3>
-        <p>27 декабря 2018 года - minimum API 19, target API 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=df8b520d10c3fa31b603ff7c50670ab1f0728d2f">27 декабря 2018 года</a> - minimum API 19, target API 28</p>
         <ul>
-            <li>Fix a bug that caused <a href="https://redmine.stoutner.com/issues/364">some devices to crash</a> when opening a secondary activity.</li>
+            <li>Исправлена ошибка, приводившая к сбою приложения <a href="https://redmine.stoutner.com/issues/364">на некоторых устройствах</a> при открытии дополнительной активности.</li>
         </ul>
 
         <h3>2.15 (код версии 38)</h3>
index 79bf09c001f1187150c3e4ea395a5f7ef2ec3bef..8ad5f0972759d9f5d95636eb8cf60871438e2b1e 100644 (file)
@@ -25,9 +25,9 @@
 
     <body>
         <h3>2.15.1 (код версии 39)</h3>
-        <p>27 декабря 2018 года - minimum API 19, target API 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=df8b520d10c3fa31b603ff7c50670ab1f0728d2f">27 декабря 2018 года</a> - minimum API 19, target API 28</p>
         <ul>
-            <li>Fix a bug that caused <a href="https://redmine.stoutner.com/issues/364">some devices to crash</a> when opening a secondary activity.</li>
+            <li>Исправлена ошибка, приводившая к сбою приложения <a href="https://redmine.stoutner.com/issues/364">на некоторых устройствах</a> при открытии дополнительной активности.</li>
         </ul>
 
         <h3>2.15 (код версии 38)</h3>
index fb6ce3afaf90c2d7c446b49e496d30e26ca6b682..21889da6c1efedad0fd8bbb081d59c39e62973fc 100644 (file)
 
     <body>
         <h3>2.15.1 (version code 39)</h3>
-        <p>27 December 2018 - minimum API 19, target API 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=df8b520d10c3fa31b603ff7c50670ab1f0728d2f">27 Aralık 2018</a> - minimum API 19, target API 28</p>
         <ul>
-            <li>Fix a bug that caused <a href="https://redmine.stoutner.com/issues/364">some devices to crash</a> when opening a secondary activity.</li>
+            <li>İkinci bir işlem yaparken <a href="https://redmine.stoutner.com/issues/364">bazı cihazların çökmesine yol açan</a> problem düzeltildi.</li>
         </ul>
 
         <h3>2.15 (version code 38)</h3>
-        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=2250acd83180a9dcf1fbee80025a9d6aadbee510">24 December 2018</a> - minimum API 19, target API 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=2250acd83180a9dcf1fbee80025a9d6aadbee510">24 Aralık 2018</a> - minimum API 19, target API 28</p>
         <ul>
             <li>Domain <a href="https://redmine.stoutner.com/issues/160">ayarlarıyla kullanıcı aracısı değiştirme</a> ile ilgili sorun giderildi.</li>
             <li>Çekmece <a href="https://redmine.stoutner.com/issues/250">tasarımları çentiklerle düzeltildi</a>.</li>
@@ -52,7 +52,7 @@
         </ul>
 
         <h3>2.14 (version code 37)</h3>
-        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=57020e5c7cad1eec43c3627f136be1640d07d4aa">8 December 2018</a> - minimum API 19, target API 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=57020e5c7cad1eec43c3627f136be1640d07d4aa">8 Aralık 2018</a> - minimum API 19, target API 28</p>
         <ul>
             <li>Add <a href="https://redmine.stoutner.com/issues/338">encrypted import and export</a> options.</li>
             <li>Fix a bug when <a href="https://redmine.stoutner.com/issues/350">importing databases under certain circumstances</a>.</li>
         </ul>
 
         <h3>1.14 (version code 16)</h3>
-        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=6d3d23ab62cfdd6ef142dbdb764a6bac8fc38ce1">26 December 2016</a> - minimum API 19, target API 25</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=6d3d23ab62cfdd6ef142dbdb764a6bac8fc38ce1">26 Aralık 2016</a> - minimum API 19, target API 25</p>
         <ul>
             <li>Implement <a href="https://redmine.stoutner.com/issues/31">ad blocking</a>.</li>
             <li>Change the default user agent to PrivacyBrowser/1.0 <a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=7f0fda47dbd040262a8149e1e6d27f7abe9043ea">for real this time</a>.</li>
index 5eeb5a0c332a850ba1afdfc256c129347267c73a..619984ce863625fec8ed3f16e2581bbb16d0a39d 100644 (file)
 
     <body>
         <h3>2.15.1 (version code 39)</h3>
-        <p>27 December 2018 - minimum API 19, target API 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=df8b520d10c3fa31b603ff7c50670ab1f0728d2f">27 Aralık 2018</a> - minimum API 19, target API 28</p>
         <ul>
-            <li>Fix a bug that caused <a href="https://redmine.stoutner.com/issues/364">some devices to crash</a> when opening a secondary activity.</li>
+            <li>İkinci bir işlem yaparken <a href="https://redmine.stoutner.com/issues/364">bazı cihazların çökmesine yol açan</a> problem düzeltildi.</li>
         </ul>
 
         <h3>2.15 (version code 38)</h3>
-        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=2250acd83180a9dcf1fbee80025a9d6aadbee510">24 December 2018</a> - minimum API 19, target API 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=2250acd83180a9dcf1fbee80025a9d6aadbee510">24 Aralık 2018</a> - minimum API 19, target API 28</p>
         <ul>
             <li>Domain <a href="https://redmine.stoutner.com/issues/160">ayarlarıyla kullanıcı aracısı değiştirme</a> ile ilgili sorun giderildi.</li>
             <li>Çekmece <a href="https://redmine.stoutner.com/issues/250">tasarımları çentiklerle düzeltildi</a>.</li>
@@ -52,7 +52,7 @@
         </ul>
 
         <h3>2.14 (version code 37)</h3>
-        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=57020e5c7cad1eec43c3627f136be1640d07d4aa">8 December 2018</a> - minimum API 19, target API 28</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=57020e5c7cad1eec43c3627f136be1640d07d4aa">8 Aralık 2018</a> - minimum API 19, target API 28</p>
         <ul>
             <li>Add <a href="https://redmine.stoutner.com/issues/338">encrypted import and export</a> options.</li>
             <li>Fix a bug when <a href="https://redmine.stoutner.com/issues/350">importing databases under certain circumstances</a>.</li>
         </ul>
 
         <h3>1.14 (version code 16)</h3>
-        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=6d3d23ab62cfdd6ef142dbdb764a6bac8fc38ce1">26 December 2016</a> - minimum API 19, target API 25</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=6d3d23ab62cfdd6ef142dbdb764a6bac8fc38ce1">26 Aralık 2016</a> - minimum API 19, target API 25</p>
         <ul>
             <li>Implement <a href="https://redmine.stoutner.com/issues/31">ad blocking</a>.</li>
             <li>Change the default user agent to PrivacyBrowser/1.0 <a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=7f0fda47dbd040262a8149e1e6d27f7abe9043ea">for real this time</a>.</li>
index 0a61ce0a7298460c21b9a6dd334774f6dc24ece5..411972bbf60507190701e7ecc16b1350ed0fc9a7 100644 (file)
@@ -992,7 +992,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
 
                                 // Setup a runnable to display `mainWebView` after a delay to allow the CSS to be applied.
                                 Runnable displayWebViewRunnable = () -> {
-                                    // Only display `mainWebView` if the progress bar is one.  This prevents the display of the `WebView` while it is still loading.
+                                    // Only display `mainWebView` if the progress bar is gone.  This prevents the display of the `WebView` while it is still loading.
                                     if (progressBar.getVisibility() == View.GONE) {
                                         mainWebView.setVisibility(View.VISIBLE);
                                     }
@@ -1611,7 +1611,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
 
                 // Check to see if Privacy Browser is waiting on Orbot.
                 if (!waitingForOrbot) {  // We are not waiting on Orbot, so we need to process the URL.
-                    // We need to update `formattedUrlString` at the beginning of the load, so that if the user toggles JavaScript during the load the new website is reloaded.
+                    // The formatted URL string must be updated at the beginning of the load, so that if the user toggles JavaScript during the load the new website is reloaded.
                     formattedUrlString = url;
 
                     // Display the formatted URL text.
@@ -1725,10 +1725,10 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
                         // Apply the domain settings.  This clears any settings from the previous domain.
                         applyDomainSettings(formattedUrlString, true, false);
                     } else {  // `WebView` has loaded a webpage.
-                        // Set `formattedUrlString`.
-                        formattedUrlString = url;
+                        // Set the formatted URL string.  Getting the URL from the WebView instead of using the one provided by `onPageFinished` makes websites like YouTube function correctly.
+                        formattedUrlString = mainWebView.getUrl();
 
-                        // Only update `urlTextBox` if the user is not typing in it.
+                        // Only update the URL text box if the user is not typing in it.
                         if (!urlTextBox.hasFocus()) {
                             // Display the formatted URL text.
                             urlTextBox.setText(formattedUrlString);
@@ -2881,7 +2881,33 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
                 shareIntent.setType("text/plain");
 
                 // Make it so.
-                startActivity(Intent.createChooser(shareIntent, "Share URL"));
+                startActivity(Intent.createChooser(shareIntent, getString(R.string.share_url)));
+                return true;
+
+            case R.id.open_with:
+                // Convert the URL to an URI.
+                Uri shareUri = Uri.parse(formattedUrlString);
+
+                // Get the host.
+                String shareHost = shareUri.getHost();
+
+                // Create the open with intent with `ACTION_VIEW`.
+                Intent openWithIntent = new Intent(Intent.ACTION_VIEW);
+
+                // Set the data based on the host.
+                if ((shareHost != null) && (shareHost.endsWith("youtube.com") || shareHost.equals("play.google.com") || shareHost.equals("f-droid.org"))) {  // Handle App URLs.
+                    // Set the URI but not the MIME type.  This should open all available apps.
+                    openWithIntent.setData(shareUri);
+                } else {  // Handle a generic URL.
+                    // Set the URI and the MIME type.  `"text/html"` should load browser options.
+                    openWithIntent.setDataAndType(shareUri, "text/html");
+                }
+
+                // Flag the intent to open in a new task.
+                openWithIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+                // Show the chooser.
+                startActivity(Intent.createChooser(openWithIntent, getString(R.string.open_with)));
                 return true;
 
             case R.id.find_on_page:
@@ -4647,7 +4673,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
         // Create a download intent.  Not specifying the action type will display the maximum number of options.
         Intent downloadIntent = new Intent();
 
-        // Set the URI and the mime type.  `"*/*"` will display the maximum number of options.
+        // Set the URI and the MIME type.  Specifying `text/html` displays a good number of options.
         downloadIntent.setDataAndType(Uri.parse(url), "text/html");
 
         // Flag the intent to open in a new task.
index 4c1d9c26b14635adaab8d705d2efa651d4baca3e..b7760ed2d2a5aa7519d120f8e6bcafb14a554a92 100644 (file)
         android:orderInCategory="1100"
         app:showAsAction="never" />
 
+    <item
+        android:id="@+id/open_with"
+        android:title="@string/open_with"
+        android:orderInCategory="1200"
+        app:showAsAction="never" />
+
     <item
         android:id="@+id/find_on_page"
         android:title="@string/find_on_page"
-        android:orderInCategory="1200"
+        android:orderInCategory="1300"
         app:showAsAction="never|collapseActionView" />
 
     <item
         android:id="@+id/add_to_homescreen"
         android:title="@string/add_to_home_screen"
-        android:orderInCategory="1300"
+        android:orderInCategory="1400"
         app:showAsAction="never" />
 
     <item
         android:id="@+id/refresh"
         android:title="@string/refresh"
-        android:orderInCategory="1400"
+        android:orderInCategory="1500"
         app:showAsAction="never" />
 
     <item
         android:id="@+id/ad_consent"
         android:title="@string/ad_consent"
-        android:orderInCategory="1500"
+        android:orderInCategory="1600"
         app:showAsAction="never" />
 </menu>
\ No newline at end of file
index 993e1d469eef2b12790205a38a9b93bfc99b01c0..fa14fc3fb930ffaa89b9bb3f3b5de54951c6f0c5 100644 (file)
@@ -26,7 +26,7 @@
     <!-- Activities. -->
     <string name="privacy_browser">Privacy Browser</string>
     <string name="privacy_browser_settings">Privacy Browser Einstellungen</string>
-    <!-- For translations, `android_asset_path` should be the localization abbreviation.  For example, Spanish is `es`.  This should not be translated unless the Guide and About sections are localized. -->
+    <!-- For translations, `android_asset_path` should be the localization abbreviation.  This should not be translated unless the Guide and About sections are localized. -->
     <string name="android_asset_path">de</string>
 
     <!-- MainWebView. -->
index 83675a9d4f4b3df7a2751e0e777172fc9191b62e..f8b816df9f36ed3eaf1dcbf7df1e36e8988a9cc3 100644 (file)
@@ -24,7 +24,7 @@
     <!-- Activities. -->
     <string name="privacy_browser">Navegador Privado</string>
     <string name="privacy_browser_settings">Configuración de Navegador Privado</string>
-    <!-- For translations, `android_asset_path` should be the localization abbreviation.  For example, Spanish is `es`.  This should not be translated unless the Guide and About sections are localized. -->
+    <!-- For translations, `android_asset_path` should be the localization abbreviation.  This should not be translated unless the Guide and About sections are localized. -->
     <string name="android_asset_path">es</string>
 
     <!-- MainWebViewActivity. -->
index faa7f34b5b9f63e86e03e85de7f9b551719e2f13..2b14cc018ce2a613bd36705e1e91f9ef6da1c8d9 100644 (file)
@@ -24,7 +24,7 @@
     <!-- Activities. -->
     <string name="privacy_browser">Privacy Browser</string>
     <string name="privacy_browser_settings">Impostazioni</string>
-    <!-- For translations, `android_asset_path` should be the localization abbreviation.  For example, Spanish is `es`.  This should not be translated unless the Guide and About sections are localized. -->
+    <!-- For translations, `android_asset_path` should be the localization abbreviation.  This should not be translated unless the Guide and About sections are localized. -->
     <string name="android_asset_path">it</string>
 
     <!-- MainWebView. -->
index 2d0949390c87c4488d38f518cec7df852b9f609c..fcc3280d21fd94d6e8c0dd80965487eb600c4a5f 100644 (file)
   You should have received a copy of the GNU General Public License
   along with Privacy Browser.  If not, see <http://www.gnu.org/licenses/>. -->
 
-<!-- `tools:ignore="MissingTranslation"` allows release APKs to be built if translation strings are missing.  The missing strings will fall back to English. -->
-<resources
-    xmlns:tools="http://schemas.android.com/tools"
-    tools:ignore="MissingTranslation" >
-
+<resources>
     <!-- Activities. -->
     <string name="privacy_browser">Privacy Browser</string>
     <string name="privacy_browser_settings">Настройки Privacy Browser</string>
-    <!-- For translations, `android_asset_path` should be the localization abbreviation.  For example, Spanish is `es`.  This should not be translated unless the Guide and About sections are localized. -->
+    <!-- For translations, `android_asset_path` should be the localization abbreviation.  This should not be translated unless the Guide and About sections are localized. -->
     <string name="android_asset_path">ru</string> -->
 
     <!-- MainWebView. -->
index 39e826baeada8202e9d3516a3eb1a12bf58c4f0f..c4da7c6634fccdc0f66ed5e7375c641c014a245c 100644 (file)
   You should have received a copy of the GNU General Public License
   along with Privacy Browser.  If not, see <http://www.gnu.org/licenses/>. -->
 
-<!-- `tools:ignore="MissingTranslation"` allows release APKs to be built if translation strings are missing.  The missing strings will fall back to English. -->
-<resources
-    xmlns:tools="http://schemas.android.com/tools"
-    tools:ignore="MissingTranslation" >
-
+<resources>
     <!-- Activities. -->
     <string name="privacy_browser">Privacy Browser</string>
     <string name="privacy_browser_settings">Privacy Browser Ayarları</string>
index a9006c8b4a9180e0df65c7d6431bd01aa330ee9c..4d7f2a12ebd50700b5b8786bad813ba6330de316 100644 (file)
         <string name="display_images">Display Images</string>
         <string name="view_source">View Source</string>
     <string name="share">Share</string>
+        <string name="share_url">Share URL</string>
     <string name="find_on_page">Find on Page</string>
     <string name="print">Print</string>
         <string name="privacy_browser_web_page">Privacy Browser Web Page</string>
index 8c9424494780d2b2da02c10979f5441fbcaf7158..0c88a6c98b854fee91e384662a26728b35dde361 100644 (file)
@@ -1 +1 @@
-• Fix a bug that caused some devices to crash when opening a secondary activity.
\ No newline at end of file
+• Corregir un error que provocaba que algunos dispositivos se bloquearan al abrir una actividad secundaria.
\ No newline at end of file
index 8c9424494780d2b2da02c10979f5441fbcaf7158..f6ee494ff9bae6f73836478e64ecbdfea73e34e1 100644 (file)
@@ -1 +1 @@
-• Fix a bug that caused some devices to crash when opening a secondary activity.
\ No newline at end of file
+• Correzione di un baco che provocava il crash di alcuni dispositivi aprendo una attivita' secondaria.
\ No newline at end of file
index 8c9424494780d2b2da02c10979f5441fbcaf7158..456b31131317413ca2ead406d775ddc3c38f1a48 100644 (file)
@@ -1 +1 @@
-• Fix a bug that caused some devices to crash when opening a secondary activity.
\ No newline at end of file
+• Исправлена ошибка, приводившая к сбою приложения на некоторых устройствах при открытии дополнительной активности.
\ No newline at end of file
index 8c9424494780d2b2da02c10979f5441fbcaf7158..7c517e8ede1386c90ddc459c67b7dfdcd6606bd3 100644 (file)
@@ -1 +1 @@
-• Fix a bug that caused some devices to crash when opening a secondary activity.
\ No newline at end of file
+• İkinci bir işlem yaparken bazı cihazların çökmesine yol açan problem düzeltildi.
\ No newline at end of file