From 51214b92cb3966beb8fdaf7fdebe7205e60b7be8 Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Wed, 14 Oct 2026 11:02:02 +0200 Subject: [PATCH] fix(text-editor): close on back press Signed-off-by: alperozturk96 --- .../android/ui/activity/TextEditorWebView.kt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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 7206179c08f2..480c7218c9b2 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 @@ -11,6 +11,7 @@ package com.owncloud.android.ui.activity import android.annotation.SuppressLint import android.content.Context import android.content.Intent +import androidx.activity.addCallback import androidx.core.net.toUri import androidx.webkit.WebSettingsCompat import androidx.webkit.WebViewFeature @@ -43,6 +44,10 @@ class TextEditorWebView : EditorWebView() { context.startActivity(it) } } + + private const val CLICK_TEXT_CLOSE_BUTTON_SCRIPT = + "(function() { const button = document.querySelector('#direct-editor .icon-close'); " + + "if (!button) return false; button.click(); return true; })()" } @SuppressLint("AddJavascriptInterface") // suppress warning as webview is only used > Lollipop @@ -76,6 +81,18 @@ class TextEditorWebView : EditorWebView() { webView.setDownloadListener { url, _, _, _, _ -> downloadFile(url.toUri(), fileName) } loadUrl(intent.getStringExtra(EXTRA_URL)) + closeTextSessionOnBackPressed() + } + } + + private fun closeTextSessionOnBackPressed() { + onBackPressedDispatcher.addCallback(this) { + isEnabled = false + webView.evaluateJavascript(CLICK_TEXT_CLOSE_BUTTON_SCRIPT) { isClosing -> + if (isClosing != "true") { + finish() + } + } } }