From: Soren Stoutner <soren@stoutner.com>
Date: Fri, 9 Oct 2020 23:42:42 +0000 (-0700)
Subject: Fix problems with audio still playing after a tab is closed.  https://redmine.stoutne... 
X-Git-Tag: v3.6~14
X-Git-Url: https://gitweb.stoutner.com/?a=commitdiff_plain;h=771125363f79df7b3a6b85321a08c7c201b54661;p=PrivacyBrowserAndroid.git

Fix problems with audio still playing after a tab is closed.  https://redmine.stoutner.com/issues/595
---

diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java
index c49c14ca..cdb2c9fb 100644
--- a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java
+++ b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java
@@ -4845,6 +4845,12 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook
     }
 
     private void closeCurrentTab() {
+        // Pause the current WebView.
+        currentWebView.onPause();
+
+        // Pause the current WebView JavaScript timers.
+        currentWebView.pauseTimers();
+
         // Get the current tab number.
         int currentTabNumber = tabLayout.getSelectedTabPosition();
 
diff --git a/app/src/main/res/layout/about_coordinatorlayout.xml b/app/src/main/res/layout/about_coordinatorlayout.xml
index b9c6dc06..c4dce552 100644
--- a/app/src/main/res/layout/about_coordinatorlayout.xml
+++ b/app/src/main/res/layout/about_coordinatorlayout.xml
@@ -37,7 +37,7 @@
             android:layout_height="wrap_content"
             android:layout_width="match_parent"
             android:background="?android:attr/colorBackground"
-            android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar" >
+            android:theme="@style/PrivacyBrowserAppBar" >
 
             <androidx.appcompat.widget.Toolbar
                 android:id="@+id/about_toolbar"
diff --git a/app/src/main/res/layout/bookmarks_coordinatorlayout.xml b/app/src/main/res/layout/bookmarks_coordinatorlayout.xml
index 20a88a0e..555e1853 100644
--- a/app/src/main/res/layout/bookmarks_coordinatorlayout.xml
+++ b/app/src/main/res/layout/bookmarks_coordinatorlayout.xml
@@ -36,7 +36,7 @@
             android:layout_height="wrap_content"
             android:layout_width="match_parent"
             android:background="?android:attr/colorBackground"
-            android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar" >
+            android:theme="@style/PrivacyBrowserAppBar" >
 
             <androidx.appcompat.widget.Toolbar
                 android:id="@+id/bookmarks_toolbar"
diff --git a/app/src/main/res/layout/bookmarks_databaseview_coordinatorlayout.xml b/app/src/main/res/layout/bookmarks_databaseview_coordinatorlayout.xml
index 49a913f3..f6474bb1 100644
--- a/app/src/main/res/layout/bookmarks_databaseview_coordinatorlayout.xml
+++ b/app/src/main/res/layout/bookmarks_databaseview_coordinatorlayout.xml
@@ -36,7 +36,7 @@
             android:layout_height="wrap_content"
             android:layout_width="match_parent"
             android:background="?android:attr/colorBackground"
-            android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar" >
+            android:theme="@style/PrivacyBrowserAppBar" >
 
             <androidx.appcompat.widget.Toolbar
                 android:id="@+id/bookmarks_databaseview_toolbar"
diff --git a/app/src/main/res/layout/domains_coordinatorlayout.xml b/app/src/main/res/layout/domains_coordinatorlayout.xml
index 3fb00720..60d14cb8 100644
--- a/app/src/main/res/layout/domains_coordinatorlayout.xml
+++ b/app/src/main/res/layout/domains_coordinatorlayout.xml
@@ -36,7 +36,7 @@
             android:layout_height="wrap_content"
             android:layout_width="match_parent"
             android:background="?android:attr/colorBackground"
-            android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar" >
+            android:theme="@style/PrivacyBrowserAppBar" >
 
             <androidx.appcompat.widget.Toolbar
                 android:id="@+id/domains_toolbar"
diff --git a/app/src/main/res/layout/guide_coordinatorlayout.xml b/app/src/main/res/layout/guide_coordinatorlayout.xml
index 5140dcc0..d3ac643c 100644
--- a/app/src/main/res/layout/guide_coordinatorlayout.xml
+++ b/app/src/main/res/layout/guide_coordinatorlayout.xml
@@ -37,7 +37,7 @@
             android:layout_height="wrap_content"
             android:layout_width="match_parent"
             android:background="?android:attr/colorBackground"
-            android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar" >
+            android:theme="@style/PrivacyBrowserAppBar" >
 
             <androidx.appcompat.widget.Toolbar
                 android:id="@+id/guide_toolbar"
diff --git a/app/src/main/res/layout/import_export_coordinatorlayout.xml b/app/src/main/res/layout/import_export_coordinatorlayout.xml
index 58033286..f5bcfe58 100644
--- a/app/src/main/res/layout/import_export_coordinatorlayout.xml
+++ b/app/src/main/res/layout/import_export_coordinatorlayout.xml
@@ -37,7 +37,7 @@
             android:layout_height="wrap_content"
             android:layout_width="match_parent"
             android:background="?android:attr/colorBackground"
-            android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar" >
+            android:theme="@style/PrivacyBrowserAppBar" >
 
             <androidx.appcompat.widget.Toolbar
                 android:id="@+id/import_export_toolbar"
diff --git a/app/src/main/res/layout/logcat_coordinatorlayout.xml b/app/src/main/res/layout/logcat_coordinatorlayout.xml
index 12345a76..2c605a33 100644
--- a/app/src/main/res/layout/logcat_coordinatorlayout.xml
+++ b/app/src/main/res/layout/logcat_coordinatorlayout.xml
@@ -36,7 +36,7 @@
             android:layout_height="wrap_content"
             android:layout_width="match_parent"
             android:background="?android:attr/colorBackground"
-            android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar" >
+            android:theme="@style/PrivacyBrowserAppBar" >
 
             <androidx.appcompat.widget.Toolbar
                 android:id="@+id/logcat_toolbar"
diff --git a/app/src/main/res/layout/main_framelayout.xml b/app/src/main/res/layout/main_framelayout.xml
index 3711e724..f912025d 100644
--- a/app/src/main/res/layout/main_framelayout.xml
+++ b/app/src/main/res/layout/main_framelayout.xml
@@ -53,7 +53,7 @@
                     android:id="@+id/appbar_layout"
                     android:layout_height="wrap_content"
                     android:layout_width="match_parent"
-                    android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar" >
+                    android:theme="@style/PrivacyBrowserAppBar" >
 
                     <!-- The toolbar.  It is initially `visibility="gone"` so it doesn't display while the blocklists are loading. -->
                     <androidx.appcompat.widget.Toolbar
diff --git a/app/src/main/res/layout/requests_coordinatorlayout.xml b/app/src/main/res/layout/requests_coordinatorlayout.xml
index 8df71310..7ca548f9 100644
--- a/app/src/main/res/layout/requests_coordinatorlayout.xml
+++ b/app/src/main/res/layout/requests_coordinatorlayout.xml
@@ -36,7 +36,7 @@
             android:layout_height="wrap_content"
             android:layout_width="match_parent"
             android:background="?android:attr/colorBackground"
-            android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar" >
+            android:theme="@style/PrivacyBrowserAppBar" >
 
             <androidx.appcompat.widget.Toolbar
                 android:id="@+id/requests_toolbar"
diff --git a/app/src/main/res/layout/view_source_coordinatorlayout.xml b/app/src/main/res/layout/view_source_coordinatorlayout.xml
index 603c1784..f8c1c8b6 100644
--- a/app/src/main/res/layout/view_source_coordinatorlayout.xml
+++ b/app/src/main/res/layout/view_source_coordinatorlayout.xml
@@ -39,7 +39,7 @@
             android:layout_height="wrap_content"
             android:layout_width="match_parent"
             android:background="?android:attr/colorBackground"
-            android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar" >
+            android:theme="@style/PrivacyBrowserAppBar" >
 
             <!-- The frame layout allows the toolbar and the progress bar to occupy the same space. -->
             <FrameLayout
diff --git a/app/src/main/res/values-night-v23/styles.xml b/app/src/main/res/values-night-v23/styles.xml
index 2d2f1ec0..fbc06cc0 100644
--- a/app/src/main/res/values-night-v23/styles.xml
+++ b/app/src/main/res/values-night-v23/styles.xml
@@ -67,6 +67,10 @@
         <item name="lockBlueIcon">@drawable/lock_night</item>
     </style>
 
+    <style name="PrivacyBrowserAppBar" parent="ThemeOverlay.AppCompat.DayNight.ActionBar" >
+        <item name="android:textColorHighlight">@color/violet_700</item>
+    </style>
+
     <style name="PrivacyBrowserSettings" parent="Theme.AppCompat.DayNight" >
         <!-- Main Items. -->
         <item name="android:statusBarColor">?android:attr/colorBackground</item>
diff --git a/app/src/main/res/values-night-v27/styles.xml b/app/src/main/res/values-night-v27/styles.xml
index 00b22081..42e31ec8 100644
--- a/app/src/main/res/values-night-v27/styles.xml
+++ b/app/src/main/res/values-night-v27/styles.xml
@@ -69,6 +69,10 @@
         <item name="lockBlueIcon">@drawable/lock_night</item>
     </style>
 
+    <style name="PrivacyBrowserAppBar" parent="ThemeOverlay.AppCompat.DayNight.ActionBar" >
+        <item name="android:textColorHighlight">@color/violet_700</item>
+    </style>
+
     <style name="PrivacyBrowserSettings" parent="Theme.AppCompat.DayNight" >
         <!-- Main Items. -->
         <item name="android:navigationBarColor">?android:attr/colorBackground</item>
diff --git a/app/src/main/res/values-night/styles.xml b/app/src/main/res/values-night/styles.xml
index ba21706c..0dbf04fa 100644
--- a/app/src/main/res/values-night/styles.xml
+++ b/app/src/main/res/values-night/styles.xml
@@ -65,6 +65,10 @@
         <item name="lockBlueIcon">@drawable/lock_night</item>
     </style>
 
+    <style name="PrivacyBrowserAppBar" parent="ThemeOverlay.AppCompat.DayNight.ActionBar" >
+        <item name="android:textColorHighlight">@color/violet_700</item>
+    </style>
+
     <style name="PrivacyBrowserSettings" parent="Theme.AppCompat.DayNight" >
         <!-- Colors. -->
         <item name="colorAccent">@color/violet_500</item>
diff --git a/app/src/main/res/values-v23/styles.xml b/app/src/main/res/values-v23/styles.xml
index ff8de443..5c22d038 100644
--- a/app/src/main/res/values-v23/styles.xml
+++ b/app/src/main/res/values-v23/styles.xml
@@ -67,6 +67,10 @@
         <item name="lockBlueIcon">@drawable/lock_day</item>
     </style>
 
+    <style name="PrivacyBrowserAppBar" parent="ThemeOverlay.AppCompat.DayNight.ActionBar" >
+        <item name="android:textColorHighlight">@color/blue_200</item>
+    </style>
+
     <style name="PrivacyBrowserSettings" parent="Theme.AppCompat.DayNight" >
         <!-- Main Items. -->
         <item name="android:statusBarColor">?android:attr/colorBackground</item>
diff --git a/app/src/main/res/values-v27/styles.xml b/app/src/main/res/values-v27/styles.xml
index b56b1179..7fa4b5c8 100644
--- a/app/src/main/res/values-v27/styles.xml
+++ b/app/src/main/res/values-v27/styles.xml
@@ -69,6 +69,10 @@
         <item name="lockBlueIcon">@drawable/lock_day</item>
     </style>
 
+    <style name="PrivacyBrowserAppBar" parent="ThemeOverlay.AppCompat.DayNight.ActionBar" >
+        <item name="android:textColorHighlight">@color/blue_200</item>
+    </style>
+
     <style name="PrivacyBrowserSettings" parent="Theme.AppCompat.DayNight" >
         <!-- Main Items. -->
         <item name="android:navigationBarColor">?android:attr/colorBackground</item>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index f57308ae..21d99f63 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -65,6 +65,10 @@
         <item name="lockBlueIcon">@drawable/lock_day</item>
     </style>
 
+    <style name="PrivacyBrowserAppBar" parent="ThemeOverlay.AppCompat.DayNight.ActionBar" >
+        <item name="android:textColorHighlight">@color/blue_200</item>
+    </style>
+
     <style name="PrivacyBrowserSettings" parent="Theme.AppCompat.DayNight" >
         <!-- Colors. -->
         <item name="colorAccent">@color/blue_700</item>