diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java index 8032c8bb4..62571b16a 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java @@ -746,6 +746,12 @@ public abstract class CoreReaderFragment extends BaseFragment AttributeSet attrs = StyleUtils.getAttributes(requireActivity(), R.xml.webview); KiwixWebView webView = createWebView(attrs); loadUrl(url, webView); + setUpWebViewWithTextToSpeech(); + documentParser.initInterface(webView); + new ServiceWorkerUninitialiser(() -> { + openMainPage(); + return Unit.INSTANCE; + }).initInterface(webView); return webView; } @@ -761,26 +767,22 @@ public abstract class CoreReaderFragment extends BaseFragment return newTab(contentUrl(zimReaderContainer.getMainPage())); } - protected KiwixWebView newTab(String url) { - KiwixWebView webView = initalizeWebView(url); - webViewList.add(webView); - selectTab(webViewList.size() - 1); - tabsAdapter.notifyDataSetChanged(); - setUpWebViewWithTextToSpeech(); - documentParser.initInterface(webView); - new ServiceWorkerUninitialiser(() -> { - openMainPage(); - return Unit.INSTANCE; - }).initInterface(webView); - return webView; + private KiwixWebView newTab(String url) { + return newTab(url, true); } private void newTabInBackground(String url) { + newTab(url, false); + } + + private KiwixWebView newTab(String url, boolean selectTab) { KiwixWebView webView = initalizeWebView(url); webViewList.add(webView); + if(selectTab) { + selectTab(webViewList.size() - 1); + } tabsAdapter.notifyDataSetChanged(); - setUpWebViewWithTextToSpeech(); - documentParser.initInterface(webView); + return webView; } private void closeTab(int index) { @@ -1047,7 +1049,7 @@ public abstract class CoreReaderFragment extends BaseFragment if (mainMenu != null) { mainMenu.onFileOpened(urlIsValid()); } - openUninitialiserPage(); + openArticle(UNINITIALISER_ADDRESS); safeDispose(); bookmarkingDisposable = Flowable.combineLatest( newBookmarksDao.bookmarkUrlsForCurrentBook(zimFileReader), @@ -1067,10 +1069,6 @@ public abstract class CoreReaderFragment extends BaseFragment } } - private void openUninitialiserPage() { - openArticle(UNINITIALISER_ADDRESS); - } - private void safeDispose() { if (bookmarkingDisposable != null) { bookmarkingDisposable.dispose(); diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/ServiceWorkerUninitialiser.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/ServiceWorkerUninitialiser.kt index 1f55da001..60785b942 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/ServiceWorkerUninitialiser.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/ServiceWorkerUninitialiser.kt @@ -24,13 +24,14 @@ import android.webkit.JavascriptInterface import android.webkit.WebView const val UNINITIALISER_ADDRESS = "A/remove_service_workers.html" +private const val UNINITIALISER_INTERFACE = "ServiceWorkerUninitialiser" const val UNINITIALISE_HTML = """