From 6cdef1695278c38a617c16e8ce936999b2c460b0 Mon Sep 17 00:00:00 2001 From: b-dev-mobile Date: Fri, 10 Jul 2026 15:12:19 +0000 Subject: [PATCH] =?UTF-8?q?fix(files):=20.whiteboard=20=D0=B1=D0=B5=D0=BB?= =?UTF-8?q?=D1=8B=D0=B9=20=D1=8D=D0=BA=D1=80=D0=B0=D0=BD=20=E2=80=94=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D0=BF=D1=80=D1=8F=D1=82=D0=B0=D1=82=D1=8C=20chr?= =?UTF-8?q?ome=20(=D1=81=D0=BD=D0=BE=D1=81=D0=B8=D0=BB=D1=81=D1=8F=20#body?= =?UTF-8?q?-user)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Скрипт HIDE_F7CLOUD_CHROME_JS делал hide(#body-user) — это ВЕСЬ контейнер приложения Nextcloud; на Collabora-странице документ в отдельном #documents-content, а на Files-странице (whiteboard) внутри #body-user лежит и сам viewer → удалялось всё → белый экран. Теперь скрипт инжектится ТОЛЬКО для Collabora (collaboraBaseUrl не пуст); для web-файлов chrome не трогаем — доска рисуется в штатном viewer. Co-Authored-By: Claude Fable 5 --- .../ru/forbion/f7cloud/mobile/OfficeEditorActivity.kt | 9 +++++---- .../ru/forbion/f7cloud/mobile/OfficeWebViewClient.kt | 9 +++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/ru/forbion/f7cloud/mobile/OfficeEditorActivity.kt b/app/src/main/java/ru/forbion/f7cloud/mobile/OfficeEditorActivity.kt index a1bde70..656a946 100644 --- a/app/src/main/java/ru/forbion/f7cloud/mobile/OfficeEditorActivity.kt +++ b/app/src/main/java/ru/forbion/f7cloud/mobile/OfficeEditorActivity.kt @@ -346,10 +346,11 @@ class OfficeEditorActivity : ComponentActivity() { }, onPageReady = { view -> runOnUiThread { - view?.evaluateJavascript(HIDE_F7CLOUD_CHROME_JS, null) - // Web-файлы (whiteboard и пр.): Collabora-JS-моста нет, готовность = загрузка - // страницы. Иначе всегда срабатывал таймаут «редактор не ответил вовремя». - if (launch.collaboraBaseUrl.isBlank()) { + if (launch.collaboraBaseUrl.isNotBlank()) { + view?.evaluateJavascript(HIDE_F7CLOUD_CHROME_JS, null) + } else { + // Web-файлы (whiteboard и пр.): Collabora-моста нет — готовность = загрузка + // страницы; chrome НЕ прячем (иначе снесётся весь контейнер приложения). editorVisible = true loadError = null } diff --git a/app/src/main/java/ru/forbion/f7cloud/mobile/OfficeWebViewClient.kt b/app/src/main/java/ru/forbion/f7cloud/mobile/OfficeWebViewClient.kt index 0ecad27..5ba1d36 100644 --- a/app/src/main/java/ru/forbion/f7cloud/mobile/OfficeWebViewClient.kt +++ b/app/src/main/java/ru/forbion/f7cloud/mobile/OfficeWebViewClient.kt @@ -23,12 +23,17 @@ internal class OfficeWebViewClient( private val onPageReady: (WebView?) -> Unit, ) : WebViewClient() { + // Скрытие chrome forbion — ТОЛЬКО для Collabora-страницы (там документ в отдельном + // #documents-content). На Files-странице (whiteboard и пр.) этот скрипт сносит #body-user + // = весь контейнер приложения → белый экран. Поэтому для web-файлов не инжектим. + private val hideChrome: Boolean get() = launch.collaboraBaseUrl.isNotBlank() + override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) { - view?.evaluateJavascript(OfficeEditorActivity.HIDE_F7CLOUD_CHROME_JS, null) + if (hideChrome) view?.evaluateJavascript(OfficeEditorActivity.HIDE_F7CLOUD_CHROME_JS, null) } override fun onPageFinished(view: WebView?, url: String?) { - view?.evaluateJavascript(OfficeEditorActivity.HIDE_F7CLOUD_CHROME_JS, null) + if (hideChrome) view?.evaluateJavascript(OfficeEditorActivity.HIDE_F7CLOUD_CHROME_JS, null) onPageReady(view) }