diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 99a4fd6a7be6..03e4179e7a6b 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -62,7 +62,7 @@ configurations.configureEach {
val versionMajor = 35
val versionMinor = 0
val versionPatch = 0
-val versionBuild = 50 // 0-50=Alpha / 51-98=RC / 90-99=stable
+val versionBuild = 51 // 0-50=Alpha / 51-98=RC / 90-99=stable
val ndkEnv = buildMap {
file("${project.rootDir}/ndk.env").readLines().forEach {
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 bc899c0607bc..07d9233deaf8 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
@@ -145,6 +145,28 @@ class OCFileListBottomSheetDialog(
}
}
+ /**
+ * Builds the label for a Direct Editing creator entry.
+ *
+ * Some connectors (e.g. ONLYOFFICE-based ones) already provide full phrases as creator names
+ * ("Neues Dokument" / "New document"). Blindly prefixing the localized "New" then produces
+ * duplicated wording like "Neu Neues Dokument" / "New New document". Only apply the prefix
+ * when the creator name does not already start with it; otherwise use the name as-is.
+ */
+ private fun buildCreatorButtonText(creatorName: String): String {
+ val createNew = fileActivity.getString(R.string.create_new)
+
+ return if (creatorName.trim().startsWith(createNew, ignoreCase = true)) {
+ creatorName
+ } else {
+ String.format(
+ fileActivity.getString(R.string.editor_placeholder),
+ createNew,
+ creatorName
+ )
+ }
+ }
+
@Suppress("DEPRECATION", "LongMethod", "MagicNumber")
private fun initCreatorContainer() {
val json = ArbitraryDataProviderImpl(context)
@@ -184,11 +206,7 @@ class OCFileListBottomSheetDialog(
gravity = Gravity.START or Gravity.CENTER_VERTICAL
setPaddingRelative(standardPadding, 0, standardPadding, 0)
- val buttonText = String.format(
- fileActivity.getString(R.string.editor_placeholder),
- fileActivity.getString(R.string.create_new),
- creator.name
- )
+ val buttonText = buildCreatorButtonText(creator.name)
text = buttonText
setTextColor(ContextCompat.getColor(context, R.color.text_color))
textSize = 16f
diff --git a/fastlane/metadata/android/en-US/changelogs/340100051.txt b/fastlane/metadata/android/en-US/changelogs/340100051.txt
new file mode 100644
index 000000000000..02aa119a675d
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/340100051.txt
@@ -0,0 +1,9 @@
+## 34.1.0 RC1 (July 16, 2026)
+
+- Faster and better connectivity check
+- Better end-to-end encryption support
+- Bug fixes and performance improvements
+
+Minimum: NC 20 Server, Android 9 Nougat
+
+For a full list, please see https://github.com/nextcloud/android/milestone/127
diff --git a/fastlane/metadata/android/en-US/changelogs/340100051.txt.license b/fastlane/metadata/android/en-US/changelogs/340100051.txt.license
new file mode 100644
index 000000000000..12a06277efc2
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/340100051.txt.license
@@ -0,0 +1,2 @@
+# SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors
+# SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml
index f1e276e4696d..89f7c07e148a 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -22343,6 +22343,14 @@
+
+
+
+
+
+
+
+