diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index a659e78e0037..1a092bd93b16 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -62,7 +62,7 @@ configurations.configureEach {
val versionMajor = 34
val versionMinor = 1
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/libs.versions.toml b/gradle/libs.versions.toml
index ce5b700224db..fb59d5b6fb99 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -5,7 +5,7 @@
androidCommonLibraryVersion = "0.33.2"
androidGifDrawableVersion = "1.2.32"
androidImageCropperVersion = "4.7.0"
-androidLibraryVersion ="25bd90c0f21b9b16acee6a7f433063040c75f30d"
+androidLibraryVersion ="rc-2.25.0"
androidOpensslVersion = "3.5.6"
androidPluginVersion = "9.2.1"
androidsvgVersion = "1.4"
diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml
index 4a578d42e3fe..a2a7b48c5cba 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -22333,6 +22333,14 @@
+
+
+
+
+
+
+
+