diff --git a/app/build.gradle b/app/build.gradle index 07a7f3d90..4fc248229 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -117,7 +117,6 @@ dependencies { implementation 'com.getkeepsafe.taptargetview:taptargetview:1.13.0' // Apache Commons Collections implementation 'commons-collections:commons-collections:3.2.1' - implementation 'org.apache.commons:commons-io:1.3.2' // Apache Commons Codec implementation 'commons-codec:commons-codec:1.11' // Icon pack diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/Database.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/Database.kt index b484622ac..4a006c620 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/element/Database.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/element/Database.kt @@ -51,7 +51,6 @@ import com.kunzisoft.keepass.stream.readBytes4ToUInt import com.kunzisoft.keepass.tasks.ProgressTaskUpdater import com.kunzisoft.keepass.utils.SingletonHolder import com.kunzisoft.keepass.utils.UriUtil -import org.apache.commons.io.FileUtils import java.io.* import java.util.* @@ -492,7 +491,9 @@ class Database { mDatabaseKDBX?.clearCache() // In all cases, delete all the files in the temp dir try { - FileUtils.cleanDirectory(filesDirectory) + filesDirectory?.let { directory -> + cleanDirectory(directory) + } } catch (e: Exception) { Log.e(TAG, "Unable to clear the directory cache.", e) } @@ -503,6 +504,17 @@ class Database { this.loaded = false } + private fun cleanDirectory(directory: File) { + directory.listFiles()?.let { files -> + for (file in files) { + if (file.isDirectory) { + cleanDirectory(file) + } + file.delete() + } + } + } + fun validatePasswordEncoding(password: String?, containsKeyFile: Boolean): Boolean { return mDatabaseKDB?.validatePasswordEncoding(password, containsKeyFile) ?: mDatabaseKDBX?.validatePasswordEncoding(password, containsKeyFile) diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt index 792af8123..483d67ef1 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt @@ -20,15 +20,14 @@ package com.kunzisoft.keepass.database.element.database import com.kunzisoft.keepass.crypto.keyDerivation.KdfEngine -import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm import com.kunzisoft.keepass.database.element.entry.EntryVersioned import com.kunzisoft.keepass.database.element.group.GroupVersioned import com.kunzisoft.keepass.database.element.icon.IconImageFactory import com.kunzisoft.keepass.database.element.node.NodeId import com.kunzisoft.keepass.database.element.node.Type +import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm import com.kunzisoft.keepass.database.exception.DuplicateUuidDatabaseException import com.kunzisoft.keepass.database.exception.KeyFileEmptyDatabaseException -import org.apache.commons.io.IOUtils import java.io.* import java.security.MessageDigest import java.security.NoSuchAlgorithmException @@ -127,7 +126,7 @@ abstract class DatabaseVersioned< protected fun getFileKey(keyInputStream: InputStream): ByteArray { val keyByteArrayOutputStream = ByteArrayOutputStream() - IOUtils.copy(keyInputStream, keyByteArrayOutputStream) + keyInputStream.copyTo(keyByteArrayOutputStream) val keyData = keyByteArrayOutputStream.toByteArray() val keyByteArrayInputStream = ByteArrayInputStream(keyData)