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 44c8bab6819b..af4a8fa55782 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 @@ -304,7 +304,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 6f9eb6e22a85..9466a9fd71a2 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 @@ -278,6 +278,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