Fix the loading of intents when the app is restarted. https://redmine.stoutner.com...
authorSoren Stoutner <soren@stoutner.com>
Tue, 25 Aug 2020 02:09:17 +0000 (19:09 -0700)
committerSoren Stoutner <soren@stoutner.com>
Tue, 25 Aug 2020 02:09:17 +0000 (19:09 -0700)
15 files changed:
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/fr/about_changelog_dark.html
app/src/main/assets/fr/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

index 6f62bfa580659255f68a9fa841f01231071a0123..7a55adb5294546b48c929bd75d32105a8f4d4d7b 100644 (file)
@@ -30,8 +30,8 @@
     </head>
 
     <body>
-        <h3>3.5 (version code 50)</h3>
-        <p>18. August 2020 - Mindest-API 19, Ziel-API 29</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-5/">3.5</a> (version code 50)</h3>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=379ae3eabfd9ee949151b7b218b875ffcc627c5a">18. August 2020</a> - Mindest-API 19, Ziel-API 29</p>
         <ul>
             <li>Androids <a href="https://redmine.stoutner.com/issues/572">relativ</a> <a href="https://redmine.stoutner.com/issues/523">neues</a>
                 <a href="https://redmine.stoutner.com/issues/522">Tag/Nacht-</a><a href="https://redmine.stoutner.com/issues/506">Theme</a> wurde implementiert.</li>
index 44897178dfd7e01407a2a1935239d61e49645f4d..b5c11cfda194b649b9412c5dae9e2095712722db 100644 (file)
@@ -30,8 +30,8 @@
     </head>
 
     <body>
-        <h3>3.5 (version code 50)</h3>
-        <p>18. August 2020 - Mindest-API 19, Ziel-API 29</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-5/">3.5</a> (version code 50)</h3>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=379ae3eabfd9ee949151b7b218b875ffcc627c5a">18. August 2020</a> - Mindest-API 19, Ziel-API 29</p>
         <ul>
             <li>Androids <a href="https://redmine.stoutner.com/issues/572">relativ</a> <a href="https://redmine.stoutner.com/issues/523">neues</a>
                 <a href="https://redmine.stoutner.com/issues/522">Tag/Nacht-</a><a href="https://redmine.stoutner.com/issues/506">Theme</a> wurde implementiert.</li>
index d3464511999bf77341b3a8be9168db1b7949150e..1cd622eb963f28b660370b3d2c9ff7c44a63d334 100644 (file)
@@ -24,8 +24,8 @@
     </head>
 
     <body>
-        <h3>3.5 (version code 50)</h3>
-        <p>18 August 2020 - minimum API 19, target API 29</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-5/">3.5</a> (version code 50)</h3>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=379ae3eabfd9ee949151b7b218b875ffcc627c5a">18 August 2020</a> - minimum API 19, target API 29</p>
         <ul>
             <li>Implement Android’s <a href="https://redmine.stoutner.com/issues/572">relatively</a> <a href="https://redmine.stoutner.com/issues/523">new</a>
                 <a href="https://redmine.stoutner.com/issues/522">Day/Night</a> <a href="https://redmine.stoutner.com/issues/506">theme</a>.</li>
index 17a69a7d3431f69374910685e5453aab9fdcb90f..0dd6f3b061a1809dc136808874ee5e471de53525 100644 (file)
@@ -24,8 +24,8 @@
     </head>
 
     <body>
-        <h3>3.5 (version code 50)</h3>
-        <p>18 August 2020 - minimum API 19, target API 29</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-5/">3.5</a> (version code 50)</h3>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=379ae3eabfd9ee949151b7b218b875ffcc627c5a">18 August 2020</a> - minimum API 19, target API 29</p>
         <ul>
             <li>Implement Android’s <a href="https://redmine.stoutner.com/issues/572">relatively</a> <a href="https://redmine.stoutner.com/issues/523">new</a>
                 <a href="https://redmine.stoutner.com/issues/522">Day/Night</a> <a href="https://redmine.stoutner.com/issues/506">theme</a>.</li>
index 15bd2c40c5d911d4751e8122543a18990e75a0ed..c943077b55743ae5cf22dde02ca29340814e1252 100644 (file)
@@ -26,8 +26,8 @@
     </head>
 
     <body>
-        <h3>3.5 (código de versión 50)</h3>
-        <p>18 de agosto de 2020 - API mínimo 19, API dirigido 29</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-5/">3.5</a> (código de versión 50)</h3>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=379ae3eabfd9ee949151b7b218b875ffcc627c5a">18 de agosto de 2020</a> - API mínimo 19, API dirigido 29</p>
         <ul>
             <li>Implementar el relativamente <a href="https://redmine.stoutner.com/issues/572">nuevo</a> <a href="https://redmine.stoutner.com/issues/523">tema</a>
                 <a href="https://redmine.stoutner.com/issues/522">Día/Noche</a> <a href="https://redmine.stoutner.com/issues/506">de Android</a>.</li>
index e0ba55684a062a3bb05f1aafad1d50291d9e4dac..8f66e931e835a3bad7d9f05fe54bd27598d8349b 100644 (file)
@@ -26,8 +26,8 @@
     </head>
 
     <body>
-        <h3>3.5 (código de versión 50)</h3>
-        <p>18 de agosto de 2020 - API mínimo 19, API dirigido 29</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-5/">3.5</a> (código de versión 50)</h3>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=379ae3eabfd9ee949151b7b218b875ffcc627c5a">18 de agosto de 2020</a> - API mínimo 19, API dirigido 29</p>
         <ul>
             <li>Implementar el relativamente <a href="https://redmine.stoutner.com/issues/572">nuevo</a> <a href="https://redmine.stoutner.com/issues/523">tema</a>
                 <a href="https://redmine.stoutner.com/issues/522">Día/Noche</a> <a href="https://redmine.stoutner.com/issues/506">de Android</a>.</li>
index c2fb82464002992db20bceee91e5729976852bfa..5f711d43375c2aefee69421e255147ce2a6c806e 100644 (file)
@@ -26,8 +26,8 @@
     </head>
 
     <body>
-        <h3>3.5 (version du code 50)</h3>
-        <p>18 Août 2020 - API minimale : 19, API optimale : 29</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-5/">3.5</a> (version du code 50)</h3>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=379ae3eabfd9ee949151b7b218b875ffcc627c5a">18 Août 2020</a> - API minimale : 19, API optimale : 29</p>
         <ul>
             <li>Implement Android’s <a href="https://redmine.stoutner.com/issues/572">relatively</a> <a href="https://redmine.stoutner.com/issues/523">new</a>
                 <a href="https://redmine.stoutner.com/issues/522">Day/Night</a> <a href="https://redmine.stoutner.com/issues/506">theme</a>.</li>
index e9aa23fa33ec37d254945d8a029853f37452e8df..49100d46142cc717745ef274520574a597660839 100644 (file)
@@ -26,8 +26,8 @@
     </head>
 
     <body>
-        <h3>3.5 (version du code 50)</h3>
-        <p>18 Août 2020 - API minimale : 19, API optimale : 29</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-5/">3.5</a> (version du code 50)</h3>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=379ae3eabfd9ee949151b7b218b875ffcc627c5a">18 Août 2020</a> - API minimale : 19, API optimale : 29</p>
         <ul>
             <li>Implement Android’s <a href="https://redmine.stoutner.com/issues/572">relatively</a> <a href="https://redmine.stoutner.com/issues/523">new</a>
                 <a href="https://redmine.stoutner.com/issues/522">Day/Night</a> <a href="https://redmine.stoutner.com/issues/506">theme</a>.</li>
index e3722b5087fa77bd15d2776d1639c66d82f94772..a0bc106e79ffd0cd375f9b773a01cc504bcc1612 100644 (file)
     </head>
 
     <body>
-        <h3>3.5 (versione codice 50)</h3>
-        <p>18 Agosto 2020 - minima API 19, target API 29</p>
-        <ul>
-            <li>Implement Android’s <a href="https://redmine.stoutner.com/issues/572">relatively</a> <a href="https://redmine.stoutner.com/issues/523">new</a>
-                <a href="https://redmine.stoutner.com/issues/522">Day/Night</a> <a href="https://redmine.stoutner.com/issues/506">theme</a>.</li>
-            <li>Switch to using WebView relatively new built-in <a href="https://redmine.stoutner.com/issues/366">dark theme</a>.</li>
-            <li><a href="https://redmine.stoutner.com/issues/461">Save and restore the state</a> if Privacy Browser is restarted in the background by the OS.</li>
-            <li>Use the Content-Disposition header to get <a href="https://redmine.stoutner.com/issues/547">file names for downloads</a>.</li>
-            <li>Fix <a href="https://redmine.stoutner.com/issues/556">uploading files</a> to some sites.</li>
-            <li>Add <a href="https://redmine.stoutner.com/issues/576">Mojeek</a> and remove <a href="https://redmine.stoutner.com/issues/569">Qwant</a> and
-                <a href="https://redmine.stoutner.com/issues/571">Searx</a> from the list of search engines.</li>
-            <li>Fix a bug that sometimes caused swipe-to-refresh to operate <a href="https://redmine.stoutner.com/issues/514">even when disabled</a>.</li>
-            <li>Reorder the <a href="https://redmine.stoutner.com/issues/544">context menus</a>.</li>
-            <li>Apply <a href="https://redmine.stoutner.com/issues/584">custom headers</a> to links loaded from the WebView.</li>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-5/">3.5</a> (versione codice 50)</h3>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=379ae3eabfd9ee949151b7b218b875ffcc627c5a">18 Agosto 2020</a> - minima API 19, target API 29</p>
+        <ul>
+            <li>Implementazione del <a href="https://redmine.stoutner.com/issues/572">relativamente</a> <a href="https://redmine.stoutner.com/issues/523">nuovo</a>
+                <a href="https://redmine.stoutner.com/issues/522">tema</a> <a href="https://redmine.stoutner.com/issues/506">Giorno e Notte</a> di
+                Android.</li>
+            <li>Passaggio all'utilizzo del relativamente nuovo <a href="https://redmine.stoutner.com/issues/366">tema scuro</a> nativo di Webview.</li>
+            <li><a href="https://redmine.stoutner.com/issues/461">Salvataggio e ripristino dello stato</a> nel caso in cui Privacy Browser venga riavviato in background dal sistema operativo.</li>
+            <li>Utilizzo del "Content-Disposition header" per ottenere <a href="https://redmine.stoutner.com/issues/547">i nomi dei file nei download</a>.</li>
+            <li>Sistemazione <a href="https://redmine.stoutner.com/issues/556">dell'upload dei file</a> verso alcuni siti web.</li>
+            <li>Aggiunta di <a href="https://redmine.stoutner.com/issues/576">Mojeek</a> ed eliminazione di <a href="https://redmine.stoutner.com/issues/569">Qwant</a> e
+                <a href="https://redmine.stoutner.com/issues/571">Searx</a> dalla lista dei motori di ricerca.</li>
+            <li>Correzione di un baco che talvolta provocava il funzionamento dello swipe per aggiornare la pagina <a href="https://redmine.stoutner.com/issues/514">anche se disabilitato</a>.</li>
+            <li>Riordino dei <a href="https://redmine.stoutner.com/issues/544">menu contestuali</a>.</li>
+            <li>Applicazione di <a href="https://redmine.stoutner.com/issues/584">intestazioni personalizzate</a> ai collegamenti caricati da Webview.</li>
             <li>Aggiornamento della traduzione Italiana fornita da Francesco Buratti.</li>
             <li>Aggiornamento della traduzione Francese fornita da <a href="mailto:kevinliste@framalistes.org">Kévin LE FLOHIC</a>.</li>
             <li>Aggiornamento della traduzione in Russo.</li>
index afd52de3d41ff487aac317787ea711fc385b5c19..f9d0ff42246475a8d5c684f718670a4409a614dc 100644 (file)
     </head>
 
     <body>
-        <h3>3.5 (versione codice 50)</h3>
-        <p>18 Agosto 2020 - minima API 19, target API 29</p>
-        <ul>
-            <li>Implement Android’s <a href="https://redmine.stoutner.com/issues/572">relatively</a> <a href="https://redmine.stoutner.com/issues/523">new</a>
-                <a href="https://redmine.stoutner.com/issues/522">Day/Night</a> <a href="https://redmine.stoutner.com/issues/506">theme</a>.</li>
-            <li>Switch to using WebView relatively new built-in <a href="https://redmine.stoutner.com/issues/366">dark theme</a>.</li>
-            <li><a href="https://redmine.stoutner.com/issues/461">Save and restore the state</a> if Privacy Browser is restarted in the background by the OS.</li>
-            <li>Use the Content-Disposition header to get <a href="https://redmine.stoutner.com/issues/547">file names for downloads</a>.</li>
-            <li>Fix <a href="https://redmine.stoutner.com/issues/556">uploading files</a> to some sites.</li>
-            <li>Add <a href="https://redmine.stoutner.com/issues/576">Mojeek</a> and remove <a href="https://redmine.stoutner.com/issues/569">Qwant</a> and
-                <a href="https://redmine.stoutner.com/issues/571">Searx</a> from the list of search engines.</li>
-            <li>Fix a bug that sometimes caused swipe-to-refresh to operate <a href="https://redmine.stoutner.com/issues/514">even when disabled</a>.</li>
-            <li>Reorder the <a href="https://redmine.stoutner.com/issues/544">context menus</a>.</li>
-            <li>Apply <a href="https://redmine.stoutner.com/issues/584">custom headers</a> to links loaded from the WebView.</li>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-5/">3.5</a> (versione codice 50)</h3>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=379ae3eabfd9ee949151b7b218b875ffcc627c5a">18 Agosto 2020</a> - minima API 19, target API 29</p>
+        <ul>
+            <li>Implementazione del <a href="https://redmine.stoutner.com/issues/572">relativamente</a> <a href="https://redmine.stoutner.com/issues/523">nuovo</a>
+                <a href="https://redmine.stoutner.com/issues/522">tema</a> <a href="https://redmine.stoutner.com/issues/506">Giorno e Notte</a> di
+                Android.</li>
+            <li>Passaggio all'utilizzo del relativamente nuovo <a href="https://redmine.stoutner.com/issues/366">tema scuro</a> nativo di Webview.</li>
+            <li><a href="https://redmine.stoutner.com/issues/461">Salvataggio e ripristino dello stato</a> nel caso in cui Privacy Browser venga riavviato in background dal sistema operativo.</li>
+            <li>Utilizzo del "Content-Disposition header" per ottenere <a href="https://redmine.stoutner.com/issues/547">i nomi dei file nei download</a>.</li>
+            <li>Sistemazione <a href="https://redmine.stoutner.com/issues/556">dell'upload dei file</a> verso alcuni siti web.</li>
+            <li>Aggiunta di <a href="https://redmine.stoutner.com/issues/576">Mojeek</a> ed eliminazione di <a href="https://redmine.stoutner.com/issues/569">Qwant</a> e
+                <a href="https://redmine.stoutner.com/issues/571">Searx</a> dalla lista dei motori di ricerca.</li>
+            <li>Correzione di un baco che talvolta provocava il funzionamento dello swipe per aggiornare la pagina <a href="https://redmine.stoutner.com/issues/514">anche se disabilitato</a>.</li>
+            <li>Riordino dei <a href="https://redmine.stoutner.com/issues/544">menu contestuali</a>.</li>
+            <li>Applicazione di <a href="https://redmine.stoutner.com/issues/584">intestazioni personalizzate</a> ai collegamenti caricati da Webview.</li>
             <li>Aggiornamento della traduzione Italiana fornita da Francesco Buratti.</li>
             <li>Aggiornamento della traduzione Francese fornita da <a href="mailto:kevinliste@framalistes.org">Kévin LE FLOHIC</a>.</li>
             <li>Aggiornamento della traduzione in Russo.</li>
index cfc4b247715ccd4654c4555142f4202bcdd880a8..6a2923c555402ee5b3bee1e8e69e711754725d4a 100644 (file)
@@ -24,8 +24,8 @@
     </head>
 
     <body>
-        <h3>3.5 (код версии 50)</h3>
-        <p>18 августа 2020 года - минимальный API 19, целевой API 29</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-5/">3.5</a> (код версии 50)</h3>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=379ae3eabfd9ee949151b7b218b875ffcc627c5a">18 августа 2020 года</a> - минимальный API 19, целевой API 29</p>
         <ul>
             <li>Внедрена <a href="https://redmine.stoutner.com/issues/572">недавно</a> <a href="https://redmine.stoutner.com/issues/523">появившаяся в Android</a>
                 <a href="https://redmine.stoutner.com/issues/522">тема</a> <a href="https://redmine.stoutner.com/issues/506">День/Ночь</a>.</li>
index 05a0d9031bdd9585a3f58cbe5034e9a920fc054c..2637a359696220c1ba77fe35180a70448869d064 100644 (file)
@@ -24,8 +24,8 @@
     </head>
 
     <body>
-        <h3>3.5 (код версии 50)</h3>
-        <p>18 августа 2020 года - минимальный API 19, целевой API 29</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-5/">3.5</a> (код версии 50)</h3>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=379ae3eabfd9ee949151b7b218b875ffcc627c5a">18 августа 2020 года</a> - минимальный API 19, целевой API 29</p>
         <ul>
             <li>Внедрена <a href="https://redmine.stoutner.com/issues/572">недавно</a> <a href="https://redmine.stoutner.com/issues/523">появившаяся в Android</a>
                 <a href="https://redmine.stoutner.com/issues/522">тема</a> <a href="https://redmine.stoutner.com/issues/506">День/Ночь</a>.</li>
index ddd9d08d037f657210d8aeee0e5a4a7d359c07fb..50f19c6464a34c5388116863e11799b667509bcd 100644 (file)
@@ -24,8 +24,8 @@
     </head>
 
     <body>
-        <h3>3.5 (version code 50)</h3>
-        <p>18 August 2020 - minimum API 19, target API 29</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-5/">3.5</a> (version code 50)</h3>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=379ae3eabfd9ee949151b7b218b875ffcc627c5a">18 August 2020</a> - minimum API 19, target API 29</p>
         <ul>
             <li>Implement Android’s <a href="https://redmine.stoutner.com/issues/572">relatively</a> <a href="https://redmine.stoutner.com/issues/523">new</a>
                 <a href="https://redmine.stoutner.com/issues/522">Day/Night</a> <a href="https://redmine.stoutner.com/issues/506">theme</a>.</li>
index c9050051e1ddc56ca9b621664fd8543e63fb24a8..83810dfb84ff0697b5fea9f2ed3ed9cadfdd0f97 100644 (file)
@@ -24,8 +24,8 @@
     </head>
 
     <body>
-        <h3>3.5 (version code 50)</h3>
-        <p>18 August 2020 - minimum API 19, target API 29</p>
+        <h3><a href="https://www.stoutner.com/privacy-browser-3-5/">3.5</a> (version code 50)</h3>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=379ae3eabfd9ee949151b7b218b875ffcc627c5a">18 August 2020</a> - minimum API 19, target API 29</p>
         <ul>
             <li>Implement Android’s <a href="https://redmine.stoutner.com/issues/572">relatively</a> <a href="https://redmine.stoutner.com/issues/523">new</a>
                 <a href="https://redmine.stoutner.com/issues/522">Day/Night</a> <a href="https://redmine.stoutner.com/issues/506">theme</a>.</li>
index 4280c56afc41168110921900cc448b750d211c26..14a2264eb60492d4b4e8b68c9573800de0553fdd 100644 (file)
@@ -239,9 +239,6 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
     private TabLayout tabLayout;
     private ViewPager webViewPager;
 
-    // Define the class variables.
-    private String newIntentUrl;
-
     // The current WebView is used in `onCreate()`, `onPrepareOptionsMenu()`, `onOptionsItemSelected()`, `onNavigationItemSelected()`, `onRestart()`, `onCreateContextMenu()`, `findPreviousOnPage()`,
     // `findNextOnPage()`, `closeFindOnPage()`, `loadUrlFromTextBox()`, `onSslMismatchBack()`, `applyProxy()`, and `applyDomainSettings()`.
     private NestedScrollWebView currentWebView;
@@ -454,8 +451,8 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
         // Replace the intent that started the app with this one.
         setIntent(intent);
 
-        // Process the intent here if Privacy Browser is fully initialized.  If the process has been killed by the system while sitting in the background, this will be handled in `initializeWebView()`.
-        if (ultraPrivacy != null) {
+        // Check to see if the app is being restarted.
+        if (savedStateArrayList == null || savedStateArrayList.size() == 0) {  // The activity is running for the first time.
             // Get the information from the intent.
             String intentAction = intent.getAction();
             Uri intentUriData = intent.getData();
@@ -472,7 +469,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
                 String url;
 
                 // If the intent action is a web search, perform the search.
-                if (isWebSearch) {
+                if (isWebSearch) {  // The intent is a web search.
                     // Create an encoded URL string.
                     String encodedUrlString;
 
@@ -490,21 +487,16 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
                     url = intentUriData.toString();
                 }
 
-                // Check to see if the app is in the process of restarting
-                if (savedStateArrayList == null) {  // The app is not in the process of being restarted.  Process the new intent.
-                    // Add a new tab if specified in the preferences.
-                    if (sharedPreferences.getBoolean("open_intents_in_new_tab", true)) {  // Load the URL in a new tab.
-                        // Set the loading new intent flag.
-                        loadingNewIntent = true;
-
-                        // Add a new tab.
-                        addNewTab(url, true);
-                    } else {  // Load the URL in the current tab.
-                        // Make it so.
-                        loadUrl(currentWebView, url);
-                    }
-                } else {  // The app is being restarted.  Store the URL, which will be processed in `finishedPopulatingBlocklists()`.
-                    newIntentUrl = url;
+                // Add a new tab if specified in the preferences.
+                if (sharedPreferences.getBoolean("open_intents_in_new_tab", true)) {  // Load the URL in a new tab.
+                    // Set the loading new intent flag.
+                    loadingNewIntent = true;
+
+                    // Add a new tab.
+                    addNewTab(url, true);
+                } else {  // Load the URL in the current tab.
+                    // Make it so.
+                    loadUrl(currentWebView, url);
                 }
 
                 // Get a handle for the drawer layout.
@@ -3382,7 +3374,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
                         tab.select();
                     };
 
-                    // Select the tab layout after 150 milliseconds, which leaves enough time for a new tab to be inflated.  TODO.  Switch to a post command.
+                    // Select the tab layout after 150 milliseconds, which leaves enough time for a new tab to be inflated.
                     selectTabHandler.postDelayed(selectTabRunnable, 150);
                 }
             }
@@ -4783,25 +4775,54 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
                 webViewPager.setCurrentItem(savedTabPosition);
             }
 
-            // Process the new intent if it exists.
-            if (newIntentUrl != null) {
+            // Get the intent that started the app.
+            Intent intent = getIntent();
+
+            // Get the information from the intent.
+            String intentAction = intent.getAction();
+            Uri intentUriData = intent.getData();
+
+            // Determine if this is a web search.
+            boolean isWebSearch = ((intentAction != null) && intentAction.equals(Intent.ACTION_WEB_SEARCH));
+
+            // Only process the URI if it contains data or it is a web search.  If the user pressed the desktop icon after the app was already running the URI will be null.
+            if (intentUriData != null || isWebSearch) {
                 // Get the shared preferences.
                 SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
 
+                // Create a URL string.
+                String url;
+
+                // If the intent action is a web search, perform the search.
+                if (isWebSearch) {  // The intent is a web search.
+                    // Create an encoded URL string.
+                    String encodedUrlString;
+
+                    // Sanitize the search input and convert it to a search.
+                    try {
+                        encodedUrlString = URLEncoder.encode(intent.getStringExtra(SearchManager.QUERY), "UTF-8");
+                    } catch (UnsupportedEncodingException exception) {
+                        encodedUrlString = "";
+                    }
+
+                    // Add the base search URL.
+                    url = searchURL + encodedUrlString;
+                } else {  // The intent should contain a URL.
+                    // Set the intent data as the url.
+                    url = intentUriData.toString();
+                }
+
                 // Add a new tab if specified in the preferences.
                 if (sharedPreferences.getBoolean("open_intents_in_new_tab", true)) {  // Load the URL in a new tab.
                     // Set the loading new intent flag.
                     loadingNewIntent = true;
 
                     // Add a new tab.
-                    addNewTab(newIntentUrl, true);
+                    addNewTab(url, true);
                 } else {  // Load the URL in the current tab.
                     // Make it so.
-                    loadUrl(currentWebView, newIntentUrl);
+                    loadUrl(currentWebView, url);
                 }
-
-                // Reset the new intent URL.
-                newIntentUrl = null;
             }
         }
     }
@@ -5124,7 +5145,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
             } else {
                 urlRelativeLayout.setBackground(ResourcesCompat.getDrawable(getResources(), R.color.transparent, null));
             }
-        } else {  // The fragment has not been populated.  Try again in 100 milliseconds.  //TODO try to replace this with a post command.
+        } else {  // The fragment has not been populated.  Try again in 100 milliseconds.
             // Create a handler to set the current WebView.
             Handler setCurrentWebViewHandler = new Handler();
 
@@ -5494,19 +5515,19 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
                     // Get the custom view from the tab.
                     View tabView = tab.getCustomView();
 
-                    // Remove the incorrect warning below that the current tab view might be null.
-                    assert tabView != null;
+                    // Only populate the title text view if the tab view has been fully populated.
+                    if (tabView != null) {
+                        // Get the title text view from the tab.
+                        TextView tabTitleTextView = tabView.findViewById(R.id.title_textview);
 
-                    // Get the title text view from the tab.
-                    TextView tabTitleTextView = tabView.findViewById(R.id.title_textview);
-
-                    // Set the title according to the URL.
-                    if (title.equals("about:blank")) {
-                        // Set the title to indicate a new tab.
-                        tabTitleTextView.setText(R.string.new_tab);
-                    } else {
-                        // Set the title as the tab text.
-                        tabTitleTextView.setText(title);
+                        // Set the title according to the URL.
+                        if (title.equals("about:blank")) {
+                            // Set the title to indicate a new tab.
+                            tabTitleTextView.setText(R.string.new_tab);
+                        } else {
+                            // Set the title as the tab text.
+                            tabTitleTextView.setText(title);
+                        }
                     }
                 }
             }