From 75bba75db2d5abcf2799fe090ba5944e4b166103 Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Mon, 13 Jul 2026 16:01:45 +0200 Subject: [PATCH] fix(text-editor-web-view): user no such element Signed-off-by: alperozturk96 --- .../android/ui/activity/TextEditorWebView.kt | 48 +++++++++---------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/com/owncloud/android/ui/activity/TextEditorWebView.kt b/app/src/main/java/com/owncloud/android/ui/activity/TextEditorWebView.kt index e3fe221abd9b..2f950420b6ac 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/TextEditorWebView.kt +++ b/app/src/main/java/com/owncloud/android/ui/activity/TextEditorWebView.kt @@ -1,6 +1,7 @@ /* * Nextcloud - Android Client * + * SPDX-FileCopyrightText: 2026 Alper Ozturk * SPDX-FileCopyrightText: 2019 Tobias Kaminsky * SPDX-FileCopyrightText: 2019 Nextcloud GmbH * SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only @@ -14,11 +15,9 @@ import androidx.webkit.WebViewFeature import com.nextcloud.android.common.ui.util.PlatformThemeUtil import com.nextcloud.client.appinfo.AppInfo import com.nextcloud.client.device.DeviceInfo -import com.nextcloud.utils.EditorUtils import com.owncloud.android.R import com.owncloud.android.ui.asynctasks.TextEditorLoadUrlTask import com.owncloud.android.utils.DisplayUtils -import com.owncloud.android.utils.theme.ThemeUtils import javax.inject.Inject class TextEditorWebView : EditorWebView() { @@ -28,12 +27,6 @@ class TextEditorWebView : EditorWebView() { @Inject lateinit var deviceInfo: DeviceInfo - @Inject - lateinit var themeUtils: ThemeUtils - - @Inject - lateinit var editorUtils: EditorUtils - @SuppressLint("AddJavascriptInterface") // suppress warning as webview is only used > Lollipop override fun postOnCreate() { super.postOnCreate() @@ -43,38 +36,41 @@ class TextEditorWebView : EditorWebView() { finish() } - val editor = editorUtils.getEditor(user.get(), file?.mimeType) + user.ifPresent { + val editor = editorUtils.getEditor(it, file?.mimeType) - if (editorUtils.usesOfficeUserAgent(editor)) { - webView.settings.userAgentString = generateOfficeUserAgent() - } + if (editorUtils.usesOfficeUserAgent(editor)) { + webView.settings.userAgentString = generateOfficeUserAgent() + } - webView.addJavascriptInterface(MobileInterface(), "DirectEditingMobileInterface") + webView.addJavascriptInterface(MobileInterface(), "DirectEditingMobileInterface") - if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK_STRATEGY)) { - WebSettingsCompat.setForceDarkStrategy( - webView.settings, - WebSettingsCompat.DARK_STRATEGY_WEB_THEME_DARKENING_ONLY - ) - } - if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK) && PlatformThemeUtil.isDarkMode(this)) { - WebSettingsCompat.setForceDark(webView.settings, WebSettingsCompat.FORCE_DARK_ON) - } + if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK_STRATEGY)) { + WebSettingsCompat.setForceDarkStrategy( + webView.settings, + WebSettingsCompat.DARK_STRATEGY_WEB_THEME_DARKENING_ONLY + ) + } - webView.setDownloadListener { url, _, _, _, _ -> downloadFile(url.toUri(), fileName) } + if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK) && PlatformThemeUtil.isDarkMode(this)) { + WebSettingsCompat.setForceDark(webView.settings, WebSettingsCompat.FORCE_DARK_ON) + } - loadUrl(intent.getStringExtra(EXTRA_URL)) + webView.setDownloadListener { url, _, _, _, _ -> downloadFile(url.toUri(), fileName) } + loadUrl(intent.getStringExtra(EXTRA_URL)) + } } override fun loadUrl(url: String?) { if (url.isNullOrEmpty()) { - TextEditorLoadUrlTask(this, user.get(), file, editorUtils).execute() + user.ifPresent { + TextEditorLoadUrlTask(this, it, file, editorUtils).execute() + } } } private fun generateOfficeUserAgent(): String { val userAgent = applicationContext.resources.getString(R.string.office_user_agent) - return String.format(userAgent, deviceInfo.androidVersion, appInfo.getAppVersion(this)) } }