Skip to content

Commit ad695f5

Browse files
Merge pull request #17324 from nextcloud/fix/text-editor-web-view-no-such-element
fix(text-editor-web-view): user no such element
2 parents 222bd1d + 75bba75 commit ad695f5

1 file changed

Lines changed: 22 additions & 26 deletions

File tree

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/*
22
* Nextcloud - Android Client
33
*
4+
* SPDX-FileCopyrightText: 2026 Alper Ozturk <alper.ozturk@nextcloud.com>
45
* SPDX-FileCopyrightText: 2019 Tobias Kaminsky <tobias@kaminsky.me>
56
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH
67
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
@@ -14,11 +15,9 @@ import androidx.webkit.WebViewFeature
1415
import com.nextcloud.android.common.ui.util.PlatformThemeUtil
1516
import com.nextcloud.client.appinfo.AppInfo
1617
import com.nextcloud.client.device.DeviceInfo
17-
import com.nextcloud.utils.EditorUtils
1818
import com.owncloud.android.R
1919
import com.owncloud.android.ui.asynctasks.TextEditorLoadUrlTask
2020
import com.owncloud.android.utils.DisplayUtils
21-
import com.owncloud.android.utils.theme.ThemeUtils
2221
import javax.inject.Inject
2322

2423
class TextEditorWebView : EditorWebView() {
@@ -28,12 +27,6 @@ class TextEditorWebView : EditorWebView() {
2827
@Inject
2928
lateinit var deviceInfo: DeviceInfo
3029

31-
@Inject
32-
lateinit var themeUtils: ThemeUtils
33-
34-
@Inject
35-
lateinit var editorUtils: EditorUtils
36-
3730
@SuppressLint("AddJavascriptInterface") // suppress warning as webview is only used > Lollipop
3831
override fun postOnCreate() {
3932
super.postOnCreate()
@@ -43,38 +36,41 @@ class TextEditorWebView : EditorWebView() {
4336
finish()
4437
}
4538

46-
val editor = editorUtils.getEditor(user.get(), file?.mimeType)
39+
user.ifPresent {
40+
val editor = editorUtils.getEditor(it, file?.mimeType)
4741

48-
if (editorUtils.usesOfficeUserAgent(editor)) {
49-
webView.settings.userAgentString = generateOfficeUserAgent()
50-
}
42+
if (editorUtils.usesOfficeUserAgent(editor)) {
43+
webView.settings.userAgentString = generateOfficeUserAgent()
44+
}
5145

52-
webView.addJavascriptInterface(MobileInterface(), "DirectEditingMobileInterface")
46+
webView.addJavascriptInterface(MobileInterface(), "DirectEditingMobileInterface")
5347

54-
if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK_STRATEGY)) {
55-
WebSettingsCompat.setForceDarkStrategy(
56-
webView.settings,
57-
WebSettingsCompat.DARK_STRATEGY_WEB_THEME_DARKENING_ONLY
58-
)
59-
}
60-
if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK) && PlatformThemeUtil.isDarkMode(this)) {
61-
WebSettingsCompat.setForceDark(webView.settings, WebSettingsCompat.FORCE_DARK_ON)
62-
}
48+
if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK_STRATEGY)) {
49+
WebSettingsCompat.setForceDarkStrategy(
50+
webView.settings,
51+
WebSettingsCompat.DARK_STRATEGY_WEB_THEME_DARKENING_ONLY
52+
)
53+
}
6354

64-
webView.setDownloadListener { url, _, _, _, _ -> downloadFile(url.toUri(), fileName) }
55+
if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK) && PlatformThemeUtil.isDarkMode(this)) {
56+
WebSettingsCompat.setForceDark(webView.settings, WebSettingsCompat.FORCE_DARK_ON)
57+
}
6558

66-
loadUrl(intent.getStringExtra(EXTRA_URL))
59+
webView.setDownloadListener { url, _, _, _, _ -> downloadFile(url.toUri(), fileName) }
60+
loadUrl(intent.getStringExtra(EXTRA_URL))
61+
}
6762
}
6863

6964
override fun loadUrl(url: String?) {
7065
if (url.isNullOrEmpty()) {
71-
TextEditorLoadUrlTask(this, user.get(), file, editorUtils).execute()
66+
user.ifPresent {
67+
TextEditorLoadUrlTask(this, it, file, editorUtils).execute()
68+
}
7269
}
7370
}
7471

7572
private fun generateOfficeUserAgent(): String {
7673
val userAgent = applicationContext.resources.getString(R.string.office_user_agent)
77-
7874
return String.format(userAgent, deviceInfo.androidVersion, appInfo.getAppVersion(this))
7975
}
8076
}

0 commit comments

Comments
 (0)