diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1ef79abdbd..f41b003117 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file
## [Unreleased]
+## [1.27.0] - 2026-10-27
+
### Added
- Setting to enable Autofill directly from the app settings
@@ -983,7 +985,8 @@ All notable changes to this project will be documented in this file
- Fix elements overlapping.
-[unreleased]: https://github.com/pando85/Android-Password-Store/compare/v1.26.0...HEAD
+[unreleased]: https://github.com/pando85/Android-Password-Store/compare/v1.27.0...HEAD
+[1.27.0]: https://github.com/pando85/Android-Password-Store/compare/v1.26.0...v1.27.0
[1.26.0]: https://github.com/pando85/Android-Password-Store/compare/v1.25.2...v1.26.0
[1.25.2]: https://github.com/pando85/Android-Password-Store/compare/v1.25.1...v1.25.2
[1.25.1]: https://github.com/pando85/Android-Password-Store/compare/v1.25.0...v1.25.1
diff --git a/app/src/main/java/app/passwordstore/ui/crypto/PasswordCreationActivity.kt b/app/src/main/java/app/passwordstore/ui/crypto/PasswordCreationActivity.kt
index 80fde7a14b..211e5dfa7a 100644
--- a/app/src/main/java/app/passwordstore/ui/crypto/PasswordCreationActivity.kt
+++ b/app/src/main/java/app/passwordstore/ui/crypto/PasswordCreationActivity.kt
@@ -473,8 +473,8 @@ class PasswordCreationActivity : BasePGPActivity() {
// username, if it is part of the file path
if (
- autofilling && directoryStructure != DirectoryStructure.EncryptedUsername ||
- !editing && directoryStructure == DirectoryStructure.FileBased
+ (autofilling && directoryStructure != DirectoryStructure.EncryptedUsername) ||
+ (!editing && directoryStructure == DirectoryStructure.FileBased)
) {
if (editUsername.isBlank()) {
username.requestFocus()
diff --git a/app/src/main/java/app/passwordstore/ui/git/config/GitServerConfigActivity.kt b/app/src/main/java/app/passwordstore/ui/git/config/GitServerConfigActivity.kt
index 02adf3a219..7f794d275d 100644
--- a/app/src/main/java/app/passwordstore/ui/git/config/GitServerConfigActivity.kt
+++ b/app/src/main/java/app/passwordstore/ui/git/config/GitServerConfigActivity.kt
@@ -288,8 +288,6 @@ class GitServerConfigActivity : BaseGitActivity() {
companion object {
- private val PORT_REGEX = ":[0-9]{1,5}/".toRegex()
-
fun createCloneIntent(context: Context): Intent {
return Intent(context, GitServerConfigActivity::class.java).apply {
putExtra("cloning", true)
diff --git a/app/src/main/java/app/passwordstore/ui/settings/RepositorySettings.kt b/app/src/main/java/app/passwordstore/ui/settings/RepositorySettings.kt
index 15efca4e9d..f21a4f3399 100644
--- a/app/src/main/java/app/passwordstore/ui/settings/RepositorySettings.kt
+++ b/app/src/main/java/app/passwordstore/ui/settings/RepositorySettings.kt
@@ -163,7 +163,7 @@ class RepositorySettings(private val activity: FragmentActivity) : SettingsProvi
val progressDialog =
MaterialAlertDialogBuilder(activity)
.setTitle(R.string.prefs_import_passwords_dialog_title)
- .setMessage(R.string.prefs_export_passwords_dialog_message)
+ .setMessage(R.string.prefs_import_passwords_dialog_message)
.setCancelable(false)
.create()
@@ -540,7 +540,7 @@ private fun renameFilesInDirectoryTree(
override fun visitFile(file: Path, attrs: BasicFileAttributes): FileVisitResult {
val fileName = file.fileName.toString()
if (fileName.endsWith(oldExtension)) {
- val newFileName = fileName.replace(oldExtension, newExtension)
+ val newFileName = fileName.removeSuffix(oldExtension) + newExtension
val newFile = file.resolveSibling(newFileName)
Files.move(file, newFile)
}
diff --git a/app/src/main/java/app/passwordstore/util/autofill/AutofillViewUtils.kt b/app/src/main/java/app/passwordstore/util/autofill/AutofillViewUtils.kt
index 4c3e6b99fe..fa2212ed2d 100644
--- a/app/src/main/java/app/passwordstore/util/autofill/AutofillViewUtils.kt
+++ b/app/src/main/java/app/passwordstore/util/autofill/AutofillViewUtils.kt
@@ -76,8 +76,8 @@ fun makeInlinePresentation(
)
val slice =
InlineSuggestionUi.newContentBuilder(launchIntent).run {
- setTitle(metadata.title?.let { it } ?: "")
- setSubtitle(metadata.subtitle?.let { it } ?: "")
+ setTitle(metadata.title ?: "")
+ setSubtitle(metadata.subtitle ?: "")
setContentDescription(listOfNotNull(metadata.title, metadata.subtitle).joinToString(" - "))
setStartIcon(Icon.createWithResource(context, metadata.iconRes))
build().slice
diff --git a/app/src/main/java/app/passwordstore/util/settings/DirectoryStructure.kt b/app/src/main/java/app/passwordstore/util/settings/DirectoryStructure.kt
index 8565c3ca82..39f08647d6 100644
--- a/app/src/main/java/app/passwordstore/util/settings/DirectoryStructure.kt
+++ b/app/src/main/java/app/passwordstore/util/settings/DirectoryStructure.kt
@@ -97,7 +97,7 @@ enum class DirectoryStructure(val value: String) {
when (this) {
EncryptedUsername -> file.nameWithoutExtension
FileBased -> file.parentFile?.name ?: file.nameWithoutExtension
- DirectoryBased -> file.parentFile?.parent
+ DirectoryBased -> file.parentFile?.parentFile?.name
}
/**
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5d298e25f8..31b146634e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -150,6 +150,7 @@
Import repository
Imports a password repository from an external directory.
Importing passwords
+ Please wait…
Local repository not empty
The local password repository must be deleted first.
Source directory unusable
diff --git a/app/version.properties b/app/version.properties
index 21f2bc4d1d..d86c1c84f0 100644
--- a/app/version.properties
+++ b/app/version.properties
@@ -1,5 +1,5 @@
#
# This file was automatically generated by 'versioning-plugin'. DO NOT EDIT MANUALLY.
#
-versioning-plugin.versionCode=12600
-versioning-plugin.versionName=1.26.0
+versioning-plugin.versionCode=12700
+versioning-plugin.versionName=1.27.0