diff --git a/app/src/main/java/com/kunzisoft/keepass/database/action/LoadDatabaseRunnable.kt b/app/src/main/java/com/kunzisoft/keepass/database/action/LoadDatabaseRunnable.kt index fe1ce2090..f732f3779 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/action/LoadDatabaseRunnable.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/action/LoadDatabaseRunnable.kt @@ -58,9 +58,6 @@ class LoadDatabaseRunnable(private val context: Context, mFixDuplicateUUID, progressTaskUpdater) } - catch (e: DuplicateUuidDatabaseException) { - setError(e) - } catch (e: LoadDatabaseException) { setError(e) } diff --git a/app/src/main/java/com/kunzisoft/keepass/database/action/ReloadDatabaseRunnable.kt b/app/src/main/java/com/kunzisoft/keepass/database/action/ReloadDatabaseRunnable.kt index 1facff6af..8951d3615 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/action/ReloadDatabaseRunnable.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/action/ReloadDatabaseRunnable.kt @@ -30,7 +30,6 @@ import com.kunzisoft.keepass.utils.UriUtil class ReloadDatabaseRunnable(private val context: Context, private val mDatabase: Database, - private val mFixDuplicateUUID: Boolean, private val progressTaskUpdater: ProgressTaskUpdater?, private val mLoadDatabaseResult: ((Result) -> Unit)?) : ActionRunnable() { @@ -44,12 +43,8 @@ class ReloadDatabaseRunnable(private val context: Context, try { mDatabase.reloadData(context.contentResolver, UriUtil.getBinaryDir(context), - mFixDuplicateUUID, progressTaskUpdater) } - catch (e: DuplicateUuidDatabaseException) { - setError(e) - } catch (e: LoadDatabaseException) { setError(e) } 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 c59c0b9b9..d0da8c171 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 @@ -407,18 +407,18 @@ class Database { { databaseInputStream -> DatabaseInputKDB(cacheDirectory) .openDatabase(databaseInputStream, - password, - keyFileInputStream, - fixDuplicateUUID, - progressTaskUpdater) + password, + keyFileInputStream, + progressTaskUpdater, + fixDuplicateUUID) }, { databaseInputStream -> DatabaseInputKDBX(cacheDirectory) .openDatabase(databaseInputStream, password, keyFileInputStream, - fixDuplicateUUID, - progressTaskUpdater) + progressTaskUpdater, + fixDuplicateUUID) } ) } @@ -426,7 +426,6 @@ class Database { @Throws(LoadDatabaseException::class) fun reloadData(contentResolver: ContentResolver, cacheDirectory: File, - fixDuplicateUUID: Boolean, progressTaskUpdater: ProgressTaskUpdater?) { // Retrieve the stream from the old database URI @@ -436,14 +435,12 @@ class Database { DatabaseInputKDB(cacheDirectory) .openDatabase(databaseInputStream, masterKey, - fixDuplicateUUID, progressTaskUpdater) }, { databaseInputStream -> DatabaseInputKDBX(cacheDirectory) .openDatabase(databaseInputStream, masterKey, - fixDuplicateUUID, progressTaskUpdater) } ) diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInput.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInput.kt index 889efac64..ad819cde5 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInput.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInput.kt @@ -41,13 +41,13 @@ abstract class DatabaseInput> abstract fun openDatabase(databaseInputStream: InputStream, password: String?, keyInputStream: InputStream?, - fixDuplicateUUID: Boolean, - progressTaskUpdater: ProgressTaskUpdater?): PwDb + progressTaskUpdater: ProgressTaskUpdater?, + fixDuplicateUUID: Boolean = false): PwDb @Throws(LoadDatabaseException::class) abstract fun openDatabase(databaseInputStream: InputStream, masterKey: ByteArray, - fixDuplicateUUID: Boolean, - progressTaskUpdater: ProgressTaskUpdater?): PwDb + progressTaskUpdater: ProgressTaskUpdater?, + fixDuplicateUUID: Boolean = false): PwDb } diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDB.kt index ca7d2413c..f2b67e788 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDB.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDB.kt @@ -54,9 +54,9 @@ class DatabaseInputKDB(cacheDirectory: File) override fun openDatabase(databaseInputStream: InputStream, password: String?, keyInputStream: InputStream?, - fixDuplicateUUID: Boolean, - progressTaskUpdater: ProgressTaskUpdater?): DatabaseKDB { - return openDatabase(databaseInputStream, fixDuplicateUUID, progressTaskUpdater) { + progressTaskUpdater: ProgressTaskUpdater?, + fixDuplicateUUID: Boolean): DatabaseKDB { + return openDatabase(databaseInputStream, progressTaskUpdater, fixDuplicateUUID) { mDatabaseToOpen.retrieveMasterKey(password, keyInputStream) } } @@ -64,18 +64,18 @@ class DatabaseInputKDB(cacheDirectory: File) @Throws(LoadDatabaseException::class) override fun openDatabase(databaseInputStream: InputStream, masterKey: ByteArray, - fixDuplicateUUID: Boolean, - progressTaskUpdater: ProgressTaskUpdater?): DatabaseKDB { - return openDatabase(databaseInputStream, fixDuplicateUUID, progressTaskUpdater) { + progressTaskUpdater: ProgressTaskUpdater?, + fixDuplicateUUID: Boolean): DatabaseKDB { + return openDatabase(databaseInputStream, progressTaskUpdater, fixDuplicateUUID) { mDatabaseToOpen.masterKey = masterKey } } @Throws(LoadDatabaseException::class) private fun openDatabase(databaseInputStream: InputStream, - fixDuplicateUUID: Boolean, - progressTaskUpdater: ProgressTaskUpdater?, - assignMasterKey: (() -> Unit)? = null): DatabaseKDB { + progressTaskUpdater: ProgressTaskUpdater?, + fixDuplicateUUID: Boolean, + assignMasterKey: (() -> Unit)? = null): DatabaseKDB { try { // Load entire file, most of it's encrypted. diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDBX.kt index 553cb9c1f..f74d736b6 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDBX.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDBX.kt @@ -97,9 +97,9 @@ class DatabaseInputKDBX(cacheDirectory: File) override fun openDatabase(databaseInputStream: InputStream, password: String?, keyInputStream: InputStream?, - fixDuplicateUUID: Boolean, - progressTaskUpdater: ProgressTaskUpdater?): DatabaseKDBX { - return openDatabase(databaseInputStream, fixDuplicateUUID, progressTaskUpdater) { header -> + progressTaskUpdater: ProgressTaskUpdater?, + fixDuplicateUUID: Boolean): DatabaseKDBX { + return openDatabase(databaseInputStream, progressTaskUpdater, fixDuplicateUUID) { header -> mDatabase.retrieveMasterKey(password, keyInputStream) } } @@ -107,17 +107,17 @@ class DatabaseInputKDBX(cacheDirectory: File) @Throws(LoadDatabaseException::class) override fun openDatabase(databaseInputStream: InputStream, masterKey: ByteArray, - fixDuplicateUUID: Boolean, - progressTaskUpdater: ProgressTaskUpdater?): DatabaseKDBX { - return openDatabase(databaseInputStream, fixDuplicateUUID, progressTaskUpdater) { + progressTaskUpdater: ProgressTaskUpdater?, + fixDuplicateUUID: Boolean): DatabaseKDBX { + return openDatabase(databaseInputStream, progressTaskUpdater, fixDuplicateUUID) { mDatabase.masterKey = masterKey } } @Throws(LoadDatabaseException::class) private fun openDatabase(databaseInputStream: InputStream, - fixDuplicateUUID: Boolean, progressTaskUpdater: ProgressTaskUpdater?, + fixDuplicateUUID: Boolean, assignMasterKey: ((header: DatabaseHeaderKDBX) -> Unit)? = null): DatabaseKDBX { try { progressTaskUpdater?.updateMessage(R.string.retrieving_db_key) diff --git a/app/src/main/java/com/kunzisoft/keepass/notifications/DatabaseTaskNotificationService.kt b/app/src/main/java/com/kunzisoft/keepass/notifications/DatabaseTaskNotificationService.kt index 7c66dc450..3535fba62 100644 --- a/app/src/main/java/com/kunzisoft/keepass/notifications/DatabaseTaskNotificationService.kt +++ b/app/src/main/java/com/kunzisoft/keepass/notifications/DatabaseTaskNotificationService.kt @@ -180,7 +180,7 @@ open class DatabaseTaskNotificationService : LockNotificationService(), Progress val actionRunnable: ActionRunnable? = when (intentAction) { ACTION_DATABASE_CREATE_TASK -> buildDatabaseCreateActionTask(intent) ACTION_DATABASE_LOAD_TASK -> buildDatabaseLoadActionTask(intent) - ACTION_DATABASE_RELOAD_TASK -> buildDatabaseReloadActionTask(intent) + ACTION_DATABASE_RELOAD_TASK -> buildDatabaseReloadActionTask() ACTION_DATABASE_ASSIGN_PASSWORD_TASK -> buildDatabaseAssignPasswordActionTask(intent) ACTION_DATABASE_CREATE_GROUP_TASK -> buildDatabaseCreateGroupActionTask(intent) ACTION_DATABASE_UPDATE_GROUP_TASK -> buildDatabaseUpdateGroupActionTask(intent) @@ -515,21 +515,15 @@ open class DatabaseTaskNotificationService : LockNotificationService(), Progress } } - private fun buildDatabaseReloadActionTask(intent: Intent): ActionRunnable? { - - return if (intent.hasExtra(FIX_DUPLICATE_UUID_KEY)) { - ReloadDatabaseRunnable( + private fun buildDatabaseReloadActionTask(): ActionRunnable { + return ReloadDatabaseRunnable( this, mDatabase, - intent.getBooleanExtra(FIX_DUPLICATE_UUID_KEY, false), this ) { result -> // No need to add each info to reload database result.data = Bundle() } - } else { - null - } } private fun buildDatabaseAssignPasswordActionTask(intent: Intent): ActionRunnable? {