From bd2b639a34f4b8829cd992c3872f075c198eb152 Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Mon, 7 Sep 2026 13:26:37 +0200 Subject: [PATCH] feat(direct-editing): add missing check Signed-off-by: alperozturk96 --- app/src/main/java/com/nextcloud/utils/EditorUtils.kt | 4 ++++ .../android/ui/dialog/ChooseTemplateDialogFragment.kt | 2 +- .../android/ui/fragment/OCFileListBottomSheetDialog.kt | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/nextcloud/utils/EditorUtils.kt b/app/src/main/java/com/nextcloud/utils/EditorUtils.kt index 8224fa316ca1..80d37c451d88 100644 --- a/app/src/main/java/com/nextcloud/utils/EditorUtils.kt +++ b/app/src/main/java/com/nextcloud/utils/EditorUtils.kt @@ -48,6 +48,9 @@ class EditorUtils @Inject constructor(private val arbitraryDataProvider: Arbitra return editors.any { usesOfficeUserAgent(it) && (mimeType in it.mimetypes || mimeType in it.optionalMimetypes) } } + fun isRichDocumentsDirectEditingAvailable(user: User?): Boolean = + getEditors(user)?.any { it.id == RICH_DOCUMENTS_EDITOR_ID } == true + private fun getEditors(user: User?): Collection? { val json = arbitraryDataProvider.getValue(user, ArbitraryDataProvider.DIRECT_EDITING) if (json.isEmpty()) return null @@ -57,6 +60,7 @@ class EditorUtils @Inject constructor(private val arbitraryDataProvider: Arbitra fun usesOfficeUserAgent(editor: Editor?): Boolean = editor?.id in OFFICE_EDITOR_IDS companion object { + private const val RICH_DOCUMENTS_EDITOR_ID = "richdocuments" private val OFFICE_EDITOR_IDS = setOf("onlyoffice", "eurooffice") } } diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.kt index 733205a9db3a..27b09e0382b7 100644 --- a/app/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.kt +++ b/app/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.kt @@ -314,7 +314,7 @@ class ChooseTemplateDialogFragment : path, creator?.editor, creator?.id, - template.title + template.id ).execute(nextcloudClient) if (!result.isSuccess) { return "" diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.kt b/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.kt index 1d049bd71c45..a71a3b3ebb4d 100644 --- a/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.kt +++ b/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.kt @@ -273,6 +273,11 @@ class OCFileListBottomSheetDialog( } private fun creatorsActionsFromCollabora(): List { + // richdocuments 11+ serves its creators through DirectEditing, so the legacy entries would be duplicates. + if (editorUtils.isRichDocumentsDirectEditingAvailable(user)) { + return emptyList() + } + val creatorsActions = ArrayList() fileActivity.capabilities