diff options
| author | Fabian Henneke <FabianHenneke@users.noreply.github.com> | 2020-03-25 17:13:30 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-25 17:13:30 +0100 |
| commit | fde8137b62a3d0cd8e4d94df6fde04f2f61cbbc9 (patch) | |
| tree | fb7c8baf439f3f4ef591b85770b0166651b8977d /app/src/main/java/com/zeapo/pwdstore/autofill | |
| parent | ff1b1ba39b25c29c3340b56756e599e73d8329ba (diff) | |
| download | HardenedPass-fde8137b62a3d0cd8e4d94df6fde04f2f61cbbc9.tar.gz HardenedPass-fde8137b62a3d0cd8e4d94df6fde04f2f61cbbc9.zip | |
Delete AutofillMatches when deleting files (#659)
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/autofill')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillMatcher.kt | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillMatcher.kt b/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillMatcher.kt index 5f9c081d..e6e16ef0 100644 --- a/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillMatcher.kt +++ b/app/src/main/java/com/zeapo/pwdstore/autofill/oreo/AutofillMatcher.kt @@ -148,10 +148,11 @@ class AutofillMatcher { /** * Goes through all existing matches and updates their associated entries by using - * [sourceDestinationMap] as a lookup table. + * [moveFromTo] as a lookup table and deleting the matches for files in [delete]. */ - fun updateMatchesFor(context: Context, sourceDestinationMap: Map<File, File>) { - val oldNewPathMap = sourceDestinationMap.mapValues { it.value.absolutePath } + fun updateMatches(context: Context, moveFromTo: Map<File, File> = emptyMap(), delete: Collection<File> = emptyList()) { + val deletePathList = delete.map { it.absolutePath } + val oldNewPathMap = moveFromTo.mapValues { it.value.absolutePath } .mapKeys { it.key.absolutePath } for (prefs in listOf(context.autofillAppMatches, context.autofillWebMatches)) { for ((key, value) in prefs.all) { @@ -164,7 +165,10 @@ class AutofillMatcher { // Delete all matches for file locations that are going to be overwritten, then // transfer matches over to the files at their new locations. val newMatches = - oldMatches.asSequence().minus(oldNewPathMap.values).map { match -> + oldMatches.asSequence() + .minus(deletePathList) + .minus(oldNewPathMap.values) + .map { match -> val newPath = oldNewPathMap[match] ?: return@map match d { "Updating match for $key: $match --> $newPath" } newPath |
