From 0dc3638fff572d7d4fa6ffbafe71e2993b98cf5d Mon Sep 17 00:00:00 2001 From: Daniel Kao Date: Sun, 27 Jun 2021 23:07:48 +0800 Subject: [PATCH] don't turn on reader mode in onyx translate feature --- .../de/baumann/browser/view/NinjaWebView.kt | 30 +++++++++---------- .../TranslationViewController.kt | 18 +++++------ 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/de/baumann/browser/view/NinjaWebView.kt b/app/src/main/java/de/baumann/browser/view/NinjaWebView.kt index db3c6f878..93aa146ba 100755 --- a/app/src/main/java/de/baumann/browser/view/NinjaWebView.kt +++ b/app/src/main/java/de/baumann/browser/view/NinjaWebView.kt @@ -401,21 +401,21 @@ class NinjaWebView : WebView, AlbumController { // only works in isReadModeOn suspend fun getRawText() = suspendCoroutine { continuation -> -// if (!isReaderModeOn) { -// injectMozReaderModeJs(false) -// evaluateJavascript(getReaderModeBodyTextJs) { text -> continuation.resume(text.substring(1, text.length-2)) } -// } else { - if (!isReaderModeOn) continuation.resume("") - - evaluateJavascript( - "(function() { return document.getElementsByTagName('html')[0].innerText; })();" - ) { text -> - val processedText = if (text.startsWith("\"") && text.endsWith("\"")) { - text.substring(1, text.length-2) - } else text - continuation.resume(processedText) - } -// } + if (!isReaderModeOn) { + injectMozReaderModeJs(false) + evaluateJavascript(getReaderModeBodyTextJs) { text -> continuation.resume(text.substring(1, text.length-2)) } + } else { + //if (!isReaderModeOn) continuation.resume("") + + evaluateJavascript( + "(function() { return document.getElementsByTagName('html')[0].innerText; })();" + ) { text -> + val processedText = if (text.startsWith("\"") && text.endsWith("\"")) { + text.substring(1, text.length-2) + } else text + continuation.resume(processedText) + } + } } private fun shiftOffset(): Int { diff --git a/app/src/main/java/de/baumann/browser/view/viewControllers/TranslationViewController.kt b/app/src/main/java/de/baumann/browser/view/viewControllers/TranslationViewController.kt index 8e48ddfc6..f94e3ff88 100644 --- a/app/src/main/java/de/baumann/browser/view/viewControllers/TranslationViewController.kt +++ b/app/src/main/java/de/baumann/browser/view/viewControllers/TranslationViewController.kt @@ -54,7 +54,7 @@ class TranslationViewController( } suspend fun showTranslation(webView: NinjaWebView) { - if (!webView.isReaderModeOn) { + if (!webView.isReaderModeOn && config.translationMode != TranslationMode.ONYX) { webView.toggleReaderMode { launchTranslateWindow(it.purify()) } } else { launchTranslateWindow(webView.getRawText().purify()) @@ -68,15 +68,10 @@ class TranslationViewController( } // onyx case if (config.translationMode == TranslationMode.ONYX) { - (activity as LifecycleOwner).lifecycleScope.launch { - if (!ViewUnit.isMultiWindowEnabled(activity)) { - ViewUnit.toggleMultiWindow(activity, true) - delay(2000) - } - try { - launchOnyxDictTranslation(text) - } catch (ignored: ClassNotFoundException) {} - } + ViewUnit.toggleMultiWindow(activity, true) + try { + launchOnyxDictTranslation(text) + } catch (ignored: ClassNotFoundException) {} return } @@ -105,7 +100,8 @@ class TranslationViewController( val selected = valueArray.indexOf(config.translationMode.ordinal) AlertDialog.Builder(activity, R.style.TouchAreaDialog).apply{ setTitle("Translation Mode") - setSingleChoiceItems(translationModeArray, selected) { _, which -> + setSingleChoiceItems(translationModeArray, selected) { dialog, which -> + dialog.dismiss() config.translationMode = enumValues[which] if (isTranslationModeOn()) showTranslationAction.invoke() }