Compare commits

..

5 Commits
4.0.4 ... 4.0.5

Author SHA1 Message Date
J-Jamet
ac1590810f Merge branch 'release/4.0.5' 2023-11-09 08:16:29 +01:00
J-Jamet
9dd4d77535 fix: upgrade version 2023-11-09 08:06:30 +01:00
J-Jamet
c7aa6a9d96 fix: revert #1490 2023-11-09 08:02:16 +01:00
J-Jamet
fc56db2f83 fix: Autofill recognition 2023-11-08 20:43:50 +01:00
J-Jamet
78c7f4078c Merge tag '4.0.4' into develop
4.0.4
2023-11-07 00:33:28 +01:00
7 changed files with 27 additions and 12 deletions

View File

@@ -1,3 +1,7 @@
KeePassDX(4.0.5)
* Fix form filled recognition #1572 #1508
* Rollback password color #1686 #1490
KeePassDX(4.0.4)
* Fix form filled recognition #1572 #1677
* Fix device unlock #1682

View File

@@ -12,8 +12,8 @@ android {
applicationId "com.kunzisoft.keepass"
minSdkVersion 15
targetSdkVersion 33
versionCode = 127
versionName = "4.0.4"
versionCode = 128
versionName = "4.0.5"
multiDexEnabled true
testApplicationId = "com.kunzisoft.keepass.tests"

View File

@@ -131,23 +131,28 @@ class StructureParser(private val structure: AssistStructure) {
val autofillId = node.autofillId
node.autofillHints?.forEach {
when {
it.contains(View.AUTOFILL_HINT_USERNAME, true) -> {
result?.usernameId = autofillId
result?.usernameValue = node.autofillValue
Log.d(TAG, "Autofill username hint")
}
it.contains(View.AUTOFILL_HINT_USERNAME, true)
|| it.contains(View.AUTOFILL_HINT_EMAIL_ADDRESS, true)
|| it.contains("email", true)
|| it.contains(View.AUTOFILL_HINT_PHONE, true) -> {
// Priority to username or add if null
// Replace username until we have a password
if (result?.passwordId == null) {
result?.usernameId = autofillId
result?.usernameValue = node.autofillValue
Log.d(TAG, "Autofill username hint if no password")
} else {
usernameIdCandidate = autofillId
usernameValueCandidate = node.autofillValue
Log.d(TAG, "Autofill email hint")
Log.d(TAG, "Autofill username hint if password")
}
}
it.contains(View.AUTOFILL_HINT_PASSWORD, true) -> {
// Password Id changed if it's the second times we are here,
// So the last username candidate is most appropriate
if (result?.passwordId != null) {
result?.usernameId = usernameIdCandidate
result?.usernameValue = usernameValueCandidate
}
result?.passwordId = autofillId
result?.passwordValue = node.autofillValue
Log.d(TAG, "Autofill password hint")

View File

@@ -113,6 +113,7 @@ class PassKeyView @JvmOverloads constructor(context: Context,
}
override fun afterTextChanged(editable: Editable) {
/* Fixme 1686
if (textModified) {
textModified = false
} else {
@@ -121,7 +122,7 @@ class PassKeyView @JvmOverloads constructor(context: Context,
val selectionEnd = passwordText.selectionEnd
passwordString = editable.toString()
passwordText.setSelection(selectionStart, selectionEnd)
}
}*/
mPasswordTextWatchers.forEach {
it.afterTextChanged(editable)
}

View File

@@ -84,6 +84,7 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
// Manually write view to avoid view id bugs
buildViews()
// To change the password color dynamically
/* Fixme 1686
valueView.doAfterTextChanged { editable ->
editable?.let { text ->
if (textModified) {
@@ -92,11 +93,11 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
textModified = true
val selectionStart = valueView.selectionStart
val selectionEnd = valueView.selectionEnd
value = spannableValue(text.toString()).toString()
value = text.toString()
valueView.setSelection(selectionStart, selectionEnd)
}
}
}
}*/
labelView.addView(valueView)
addView(labelView)
addView(actionImageButton)

View File

@@ -0,0 +1,2 @@
* Fix form filled recognition #1572 #1508
* Rollback password color #1686 #1490

View File

@@ -0,0 +1,2 @@
* Correction de la reconnaissance de formulaire #1572 #1508
* Rollback de la couleur de mot de passe #1686 #1490