diff --git a/CHANGELOG b/CHANGELOG index 2373913a3..b792d89bc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,7 +3,7 @@ KeePassDX(3.0.0) * Manually select RecycleBin group and Templates group #191 * Fix timeout in dialogs #716 * Check URI permissions #626 - * Small changes #1035 #1043 + * Small changes #1035 #1043 #942 KeePassDX(2.10.5) * Increase the saving speed of database #1028 diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt index d0a4c11c3..ed096d000 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt @@ -424,7 +424,7 @@ class EntryActivity : DatabaseLockActivity() { // Transit data in previous Activity after an update Intent().apply { putExtra(EntryEditActivity.ADD_OR_UPDATE_ENTRY_KEY, mMainEntryId) - setResult(EntryEditActivity.UPDATE_ENTRY_RESULT_CODE, this) + setResult(EntryEditActivity.ADD_OR_UPDATE_ENTRY_RESULT_CODE, this) } super.finish() } diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt index 1e49576fb..d747eba28 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt @@ -267,6 +267,24 @@ class EntryEditActivity : DatabaseLockActivity(), } ?: run { updateEntry(entrySave.oldEntry, entrySave.newEntry) } + + // Don't wait for saving if it's to provide autofill + mDatabase?.let { database -> + EntrySelectionHelper.doSpecialAction(intent, + {}, + {}, + {}, + { + entryValidatedForKeyboardSelection(database, entrySave.newEntry) + }, + { _, _ -> + entryValidatedForAutofillSelection(database, entrySave.newEntry) + }, + { + entryValidatedForAutofillRegistration(entrySave.newEntry) + } + ) + } } } @@ -376,22 +394,22 @@ class EntryEditActivity : DatabaseLockActivity(), EntrySelectionHelper.doSpecialAction(intent, { // Finish naturally - finishForEntryResult(actionTask, entry) + finishForEntryResult(entry) }, { // Nothing when search retrieved }, { - entryValidatedForSave(actionTask, entry) + entryValidatedForSave(entry) }, { - entryValidatedForKeyboardSelection(database, actionTask, entry) + entryValidatedForKeyboardSelection(database, entry) }, { _, _ -> entryValidatedForAutofillSelection(database, entry) }, { - entryValidatedForAutofillRegistration(actionTask, entry) + entryValidatedForAutofillRegistration(entry) } ) } @@ -405,19 +423,19 @@ class EntryEditActivity : DatabaseLockActivity(), coordinatorLayout?.showActionErrorIfNeeded(result) } - private fun entryValidatedForSave(actionTask: String, entry: Entry) { + private fun entryValidatedForSave(entry: Entry) { onValidateSpecialMode() - finishForEntryResult(actionTask, entry) + finishForEntryResult(entry) } - private fun entryValidatedForKeyboardSelection(database: Database, actionTask: String, entry: Entry) { + private fun entryValidatedForKeyboardSelection(database: Database, entry: Entry) { // Populate Magikeyboard with entry populateKeyboardAndMoveAppToBackground(this, entry.getEntryInfo(database), intent) onValidateSpecialMode() // Don't keep activity history for entry edition - finishForEntryResult(actionTask, entry) + finishForEntryResult(entry) } private fun entryValidatedForAutofillSelection(database: Database, entry: Entry) { @@ -430,9 +448,9 @@ class EntryEditActivity : DatabaseLockActivity(), onValidateSpecialMode() } - private fun entryValidatedForAutofillRegistration(actionTask: String, entry: Entry) { + private fun entryValidatedForAutofillRegistration(entry: Entry) { onValidateSpecialMode() - finishForEntryResult(actionTask, entry) + finishForEntryResult(entry) } override fun onResume() { @@ -712,21 +730,14 @@ class EntryEditActivity : DatabaseLockActivity(), } } - private fun finishForEntryResult(actionTask: String, entry: Entry) { + private fun finishForEntryResult(entry: Entry) { // Assign entry callback as a result try { val bundle = Bundle() val intentEntry = Intent() bundle.putParcelable(ADD_OR_UPDATE_ENTRY_KEY, entry.nodeId) intentEntry.putExtras(bundle) - when (actionTask) { - ACTION_DATABASE_CREATE_ENTRY_TASK -> { - setResult(ADD_ENTRY_RESULT_CODE, intentEntry) - } - ACTION_DATABASE_UPDATE_ENTRY_TASK -> { - setResult(UPDATE_ENTRY_RESULT_CODE, intentEntry) - } - } + setResult(ADD_OR_UPDATE_ENTRY_RESULT_CODE, intentEntry) super.finish() } catch (e: Exception) { // Exception when parcelable can't be done @@ -743,8 +754,7 @@ class EntryEditActivity : DatabaseLockActivity(), const val KEY_PARENT = "parent" // Keys for callback - const val ADD_ENTRY_RESULT_CODE = 31 - const val UPDATE_ENTRY_RESULT_CODE = 32 + const val ADD_OR_UPDATE_ENTRY_RESULT_CODE = 31 const val ADD_OR_UPDATE_ENTRY_REQUEST_CODE = 7129 const val ADD_OR_UPDATE_ENTRY_KEY = "ADD_OR_UPDATE_ENTRY_KEY" diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt index ae0b09454..ea485ab97 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt @@ -623,9 +623,8 @@ class GroupActivity : DatabaseLockActivity(), && PreferencesUtil.isKeyboardSaveSearchInfoEnable(this@GroupActivity) ) { updateEntryWithSearchInfo(database, entryVersioned, searchInfo) - } else { - entrySelectedForKeyboardSelection(database, entryVersioned) } + entrySelectedForKeyboardSelection(database, entryVersioned) }, { // Normally not append @@ -639,9 +638,8 @@ class GroupActivity : DatabaseLockActivity(), && PreferencesUtil.isAutofillSaveSearchInfoEnable(this@GroupActivity) ) { updateEntryWithSearchInfo(database, entryVersioned, searchInfo) - } else { - entrySelectedForAutofillSelection(database, entryVersioned) } + entrySelectedForAutofillSelection(database, entryVersioned) }, { registerInfo -> if (!database.isReadOnly) diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/fragments/GroupFragment.kt b/app/src/main/java/com/kunzisoft/keepass/activities/fragments/GroupFragment.kt index 45a800e79..8dac97f0d 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/fragments/GroupFragment.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/fragments/GroupFragment.kt @@ -406,8 +406,7 @@ class GroupFragment : DatabaseFragment(), SortDialogFragment.SortSelectionListen when (requestCode) { EntryEditActivity.ADD_OR_UPDATE_ENTRY_REQUEST_CODE -> { - if (resultCode == EntryEditActivity.ADD_ENTRY_RESULT_CODE - || resultCode == EntryEditActivity.UPDATE_ENTRY_RESULT_CODE) { + if (resultCode == EntryEditActivity.ADD_OR_UPDATE_ENTRY_RESULT_CODE) { data?.getParcelableExtra>(EntryEditActivity.ADD_OR_UPDATE_ENTRY_KEY)?.let { // Simply refresh the list rebuildList() diff --git a/fastlane/metadata/android/en-US/changelogs/84.txt b/fastlane/metadata/android/en-US/changelogs/84.txt index 46d6d2b7c..44ebd8831 100644 --- a/fastlane/metadata/android/en-US/changelogs/84.txt +++ b/fastlane/metadata/android/en-US/changelogs/84.txt @@ -2,4 +2,4 @@ * Allow to manually select RecycleBin group and Templates group #191 * Fix timeout in dialogs #716 * Check URI permissions #626 - * Small changes #1035 #1043 \ No newline at end of file + * Small changes #1035 #1043 #942 \ No newline at end of file diff --git a/fastlane/metadata/android/fr-FR/changelogs/84.txt b/fastlane/metadata/android/fr-FR/changelogs/84.txt index 81d43d6ca..a1a3d71c1 100644 --- a/fastlane/metadata/android/fr-FR/changelogs/84.txt +++ b/fastlane/metadata/android/fr-FR/changelogs/84.txt @@ -2,4 +2,4 @@ * Sélection manuelle des groupes de la corbeille et des templates #191 * Correction du délai d'expiration dans les dialogues #716 * Vérification des permissions URI #626 - * Petits changements #1035 #1043 \ No newline at end of file + * Petits changements #1035 #1043 #942 \ No newline at end of file