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
1415import com.nextcloud.android.common.ui.util.PlatformThemeUtil
1516import com.nextcloud.client.appinfo.AppInfo
1617import com.nextcloud.client.device.DeviceInfo
17- import com.nextcloud.utils.EditorUtils
1818import com.owncloud.android.R
1919import com.owncloud.android.ui.asynctasks.TextEditorLoadUrlTask
2020import com.owncloud.android.utils.DisplayUtils
21- import com.owncloud.android.utils.theme.ThemeUtils
2221import javax.inject.Inject
2322
2423class 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