mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-15 10:26:53 -04:00
#2303 Impossible to surf on 3D printing SE ZIM file - minor refactor
This commit is contained in:
parent
2372ecda94
commit
f8c9c5b151
@ -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();
|
||||
|
@ -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 = """
|
||||
<html>
|
||||
<head>
|
||||
<script type="text/javascript">
|
||||
function do_unregister() {
|
||||
if (!navigator.serviceWorker) {
|
||||
ServiceWorkerUninitialiser.onUninitialised();
|
||||
$UNINITIALISER_INTERFACE.onUninitialised();
|
||||
return;
|
||||
}
|
||||
navigator.serviceWorker.getRegistrations().then(async function (registrations) {
|
||||
@ -38,11 +39,11 @@ const val UNINITIALISE_HTML = """
|
||||
console.debug('we do have ' + registrations.length + ' registration(s)');
|
||||
var registration = registrations[0];
|
||||
registration.unregister()
|
||||
.then(function (success) { ServiceWorkerUninitialiser.onUninitialised();})
|
||||
.then(function (success) { $UNINITIALISER_INTERFACE.onUninitialised();})
|
||||
.catch(function (e) {alert("ERR:" + e)});
|
||||
}
|
||||
else {
|
||||
ServiceWorkerUninitialiser.onUninitialised();
|
||||
$UNINITIALISER_INTERFACE.onUninitialised();
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -74,13 +75,11 @@ const val UNINITIALISE_HTML = """
|
||||
class ServiceWorkerUninitialiser(val onUninitialisedAction: () -> Unit) {
|
||||
|
||||
fun initInterface(webView: WebView) {
|
||||
webView.addJavascriptInterface(this, "ServiceWorkerUninitialiser")
|
||||
webView.addJavascriptInterface(this, UNINITIALISER_INTERFACE)
|
||||
}
|
||||
|
||||
@JavascriptInterface
|
||||
fun onUninitialised() {
|
||||
Handler(Looper.getMainLooper()).post {
|
||||
onUninitialisedAction()
|
||||
}
|
||||
Handler(Looper.getMainLooper()).post { onUninitialisedAction() }
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user