mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Fix add database workflow in some devices
This commit is contained in:
@@ -171,8 +171,6 @@ class FileDatabaseSelectActivity : SpecialModeActivity(),
|
|||||||
databaseFiles.databaseFileToActivate?.let { databaseFileToAdd ->
|
databaseFiles.databaseFileToActivate?.let { databaseFileToAdd ->
|
||||||
mAdapterDatabaseHistory?.addDatabaseFileHistory(databaseFileToAdd)
|
mAdapterDatabaseHistory?.addDatabaseFileHistory(databaseFileToAdd)
|
||||||
}
|
}
|
||||||
GroupActivity.launch(this@FileDatabaseSelectActivity,
|
|
||||||
PreferencesUtil.enableReadOnlyDatabase(this@FileDatabaseSelectActivity))
|
|
||||||
}
|
}
|
||||||
DatabaseFilesViewModel.DatabaseFileAction.UPDATE -> {
|
DatabaseFilesViewModel.DatabaseFileAction.UPDATE -> {
|
||||||
databaseFiles.databaseFileToActivate?.let { databaseFileToUpdate ->
|
databaseFiles.databaseFileToActivate?.let { databaseFileToUpdate ->
|
||||||
@@ -185,10 +183,10 @@ class FileDatabaseSelectActivity : SpecialModeActivity(),
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
databaseFilesViewModel.consumeAction()
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Log.e(TAG, "Unable to observe database action", e)
|
Log.e(TAG, "Unable to observe database action", e)
|
||||||
}
|
}
|
||||||
databaseFilesViewModel.consumeAction()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Observe default database
|
// Observe default database
|
||||||
@@ -206,6 +204,8 @@ class FileDatabaseSelectActivity : SpecialModeActivity(),
|
|||||||
val mainCredential = result.data?.getParcelable(DatabaseTaskNotificationService.MAIN_CREDENTIAL_KEY) ?: MainCredential()
|
val mainCredential = result.data?.getParcelable(DatabaseTaskNotificationService.MAIN_CREDENTIAL_KEY) ?: MainCredential()
|
||||||
databaseFilesViewModel.addDatabaseFile(databaseUri, mainCredential.keyFileUri)
|
databaseFilesViewModel.addDatabaseFile(databaseUri, mainCredential.keyFileUri)
|
||||||
}
|
}
|
||||||
|
GroupActivity.launch(this@FileDatabaseSelectActivity,
|
||||||
|
PreferencesUtil.enableReadOnlyDatabase(this@FileDatabaseSelectActivity))
|
||||||
}
|
}
|
||||||
ACTION_DATABASE_LOAD_TASK -> {
|
ACTION_DATABASE_LOAD_TASK -> {
|
||||||
val database = Database.getInstance()
|
val database = Database.getInstance()
|
||||||
|
|||||||
@@ -50,14 +50,18 @@ class DatabaseFilesViewModel(application: Application) : AndroidViewModel(applic
|
|||||||
).execute()
|
).execute()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getDatabaseFilesLoadedValue(): DatabaseFileData {
|
||||||
|
var newValue = databaseFilesLoaded.value
|
||||||
|
if (newValue == null) {
|
||||||
|
newValue = DatabaseFileData()
|
||||||
|
}
|
||||||
|
return newValue
|
||||||
|
}
|
||||||
|
|
||||||
fun loadListOfDatabases() {
|
fun loadListOfDatabases() {
|
||||||
checkDefaultDatabase()
|
checkDefaultDatabase()
|
||||||
mFileDatabaseHistoryAction?.getDatabaseFileList { databaseFileListRetrieved ->
|
mFileDatabaseHistoryAction?.getDatabaseFileList { databaseFileListRetrieved ->
|
||||||
var newValue = databaseFilesLoaded.value
|
databaseFilesLoaded.value = getDatabaseFilesLoadedValue().apply {
|
||||||
if (newValue == null) {
|
|
||||||
newValue = DatabaseFileData()
|
|
||||||
}
|
|
||||||
newValue.apply {
|
|
||||||
databaseFileAction = DatabaseFileAction.NONE
|
databaseFileAction = DatabaseFileAction.NONE
|
||||||
databaseFileToActivate = null
|
databaseFileToActivate = null
|
||||||
databaseFileList.apply {
|
databaseFileList.apply {
|
||||||
@@ -65,14 +69,13 @@ class DatabaseFilesViewModel(application: Application) : AndroidViewModel(applic
|
|||||||
addAll(databaseFileListRetrieved)
|
addAll(databaseFileListRetrieved)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
databaseFilesLoaded.value = newValue
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun addDatabaseFile(databaseUri: Uri, keyFileUri: Uri?) {
|
fun addDatabaseFile(databaseUri: Uri, keyFileUri: Uri?) {
|
||||||
mFileDatabaseHistoryAction?.addOrUpdateDatabaseUri(databaseUri, keyFileUri) { databaseFileAdded ->
|
mFileDatabaseHistoryAction?.addOrUpdateDatabaseUri(databaseUri, keyFileUri) { databaseFileAdded ->
|
||||||
databaseFileAdded?.let { _ ->
|
databaseFileAdded?.let { _ ->
|
||||||
databaseFilesLoaded.value = databaseFilesLoaded.value?.apply {
|
databaseFilesLoaded.value = getDatabaseFilesLoadedValue().apply {
|
||||||
this.databaseFileAction = DatabaseFileAction.ADD
|
this.databaseFileAction = DatabaseFileAction.ADD
|
||||||
this.databaseFileList.add(databaseFileAdded)
|
this.databaseFileList.add(databaseFileAdded)
|
||||||
this.databaseFileToActivate = databaseFileAdded
|
this.databaseFileToActivate = databaseFileAdded
|
||||||
@@ -84,7 +87,7 @@ class DatabaseFilesViewModel(application: Application) : AndroidViewModel(applic
|
|||||||
fun updateDatabaseFile(databaseFileToUpdate: DatabaseFile) {
|
fun updateDatabaseFile(databaseFileToUpdate: DatabaseFile) {
|
||||||
mFileDatabaseHistoryAction?.addOrUpdateDatabaseFile(databaseFileToUpdate) { databaseFileUpdated ->
|
mFileDatabaseHistoryAction?.addOrUpdateDatabaseFile(databaseFileToUpdate) { databaseFileUpdated ->
|
||||||
databaseFileUpdated?.let { _ ->
|
databaseFileUpdated?.let { _ ->
|
||||||
databaseFilesLoaded.value = databaseFilesLoaded.value?.apply {
|
databaseFilesLoaded.value = getDatabaseFilesLoadedValue().apply {
|
||||||
this.databaseFileAction = DatabaseFileAction.UPDATE
|
this.databaseFileAction = DatabaseFileAction.UPDATE
|
||||||
this.databaseFileList
|
this.databaseFileList
|
||||||
.find { it.databaseUri == databaseFileUpdated.databaseUri }
|
.find { it.databaseUri == databaseFileUpdated.databaseUri }
|
||||||
@@ -104,7 +107,7 @@ class DatabaseFilesViewModel(application: Application) : AndroidViewModel(applic
|
|||||||
fun deleteDatabaseFile(databaseFileToDelete: DatabaseFile) {
|
fun deleteDatabaseFile(databaseFileToDelete: DatabaseFile) {
|
||||||
mFileDatabaseHistoryAction?.deleteDatabaseFile(databaseFileToDelete) { databaseFileDeleted ->
|
mFileDatabaseHistoryAction?.deleteDatabaseFile(databaseFileToDelete) { databaseFileDeleted ->
|
||||||
databaseFileDeleted?.let { _ ->
|
databaseFileDeleted?.let { _ ->
|
||||||
databaseFilesLoaded.value = databaseFilesLoaded.value?.apply {
|
databaseFilesLoaded.value = getDatabaseFilesLoadedValue().apply {
|
||||||
databaseFileAction = DatabaseFileAction.DELETE
|
databaseFileAction = DatabaseFileAction.DELETE
|
||||||
databaseFileToActivate = databaseFileDeleted
|
databaseFileToActivate = databaseFileDeleted
|
||||||
databaseFileList.remove(databaseFileDeleted)
|
databaseFileList.remove(databaseFileDeleted)
|
||||||
|
|||||||
Reference in New Issue
Block a user