mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
fix: replace error method
This commit is contained in:
@@ -67,6 +67,7 @@ import com.kunzisoft.keepass.settings.PreferencesUtil
|
|||||||
import com.kunzisoft.keepass.tasks.ActionRunnable
|
import com.kunzisoft.keepass.tasks.ActionRunnable
|
||||||
import com.kunzisoft.keepass.utils.*
|
import com.kunzisoft.keepass.utils.*
|
||||||
import com.kunzisoft.keepass.view.asError
|
import com.kunzisoft.keepass.view.asError
|
||||||
|
import com.kunzisoft.keepass.view.showActionErrorIfNeeded
|
||||||
import com.kunzisoft.keepass.viewmodels.DatabaseFilesViewModel
|
import com.kunzisoft.keepass.viewmodels.DatabaseFilesViewModel
|
||||||
import java.io.FileNotFoundException
|
import java.io.FileNotFoundException
|
||||||
|
|
||||||
@@ -271,18 +272,8 @@ class FileDatabaseSelectActivity : DatabaseModeActivity(),
|
|||||||
launchGroupActivityIfLoaded(database)
|
launchGroupActivityIfLoaded(database)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
var resultError = ""
|
|
||||||
val resultMessage = result.message
|
|
||||||
// Show error message
|
|
||||||
if (resultMessage != null && resultMessage.isNotEmpty()) {
|
|
||||||
resultError = "$resultError $resultMessage"
|
|
||||||
}
|
|
||||||
Log.e(TAG, resultError)
|
|
||||||
Snackbar.make(coordinatorLayout,
|
|
||||||
resultError,
|
|
||||||
Snackbar.LENGTH_LONG).asError().show()
|
|
||||||
}
|
}
|
||||||
|
coordinatorLayout.showActionErrorIfNeeded(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ import com.kunzisoft.keepass.utils.MenuUtil
|
|||||||
import com.kunzisoft.keepass.utils.UriUtil
|
import com.kunzisoft.keepass.utils.UriUtil
|
||||||
import com.kunzisoft.keepass.view.MainCredentialView
|
import com.kunzisoft.keepass.view.MainCredentialView
|
||||||
import com.kunzisoft.keepass.view.asError
|
import com.kunzisoft.keepass.view.asError
|
||||||
|
import com.kunzisoft.keepass.view.showActionErrorIfNeeded
|
||||||
import com.kunzisoft.keepass.viewmodels.AdvancedUnlockViewModel
|
import com.kunzisoft.keepass.viewmodels.AdvancedUnlockViewModel
|
||||||
import com.kunzisoft.keepass.viewmodels.DatabaseFileViewModel
|
import com.kunzisoft.keepass.viewmodels.DatabaseFileViewModel
|
||||||
import java.io.FileNotFoundException
|
import java.io.FileNotFoundException
|
||||||
@@ -292,67 +293,49 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
|
|||||||
launchGroupActivityIfLoaded(database)
|
launchGroupActivityIfLoaded(database)
|
||||||
} else {
|
} else {
|
||||||
mainCredentialView?.requestPasswordFocus()
|
mainCredentialView?.requestPasswordFocus()
|
||||||
|
// Manage special exceptions
|
||||||
|
when (result.exception) {
|
||||||
|
is DuplicateUuidDatabaseException -> {
|
||||||
|
// Relaunch loading if we need to fix UUID
|
||||||
|
showLoadDatabaseDuplicateUuidMessage {
|
||||||
|
|
||||||
var resultError = ""
|
var databaseUri: Uri? = null
|
||||||
val resultException = result.exception
|
var mainCredential = MainCredential()
|
||||||
val resultMessage = result.message
|
var readOnly = true
|
||||||
|
var cipherEncryptDatabase: CipherEncryptDatabase? = null
|
||||||
|
|
||||||
if (resultException != null) {
|
result.data?.let { resultData ->
|
||||||
resultError = resultException.getLocalizedMessage(resources)
|
databaseUri = resultData.getParcelable(DATABASE_URI_KEY)
|
||||||
|
mainCredential =
|
||||||
when (resultException) {
|
resultData.getParcelable(MAIN_CREDENTIAL_KEY)
|
||||||
is DuplicateUuidDatabaseException -> {
|
?: mainCredential
|
||||||
// Relaunch loading if we need to fix UUID
|
readOnly = resultData.getBoolean(READ_ONLY_KEY)
|
||||||
showLoadDatabaseDuplicateUuidMessage {
|
cipherEncryptDatabase =
|
||||||
|
resultData.getParcelable(CIPHER_DATABASE_KEY)
|
||||||
var databaseUri: Uri? = null
|
|
||||||
var mainCredential = MainCredential()
|
|
||||||
var readOnly = true
|
|
||||||
var cipherEncryptDatabase: CipherEncryptDatabase? = null
|
|
||||||
|
|
||||||
result.data?.let { resultData ->
|
|
||||||
databaseUri = resultData.getParcelable(DATABASE_URI_KEY)
|
|
||||||
mainCredential =
|
|
||||||
resultData.getParcelable(MAIN_CREDENTIAL_KEY)
|
|
||||||
?: mainCredential
|
|
||||||
readOnly = resultData.getBoolean(READ_ONLY_KEY)
|
|
||||||
cipherEncryptDatabase =
|
|
||||||
resultData.getParcelable(CIPHER_DATABASE_KEY)
|
|
||||||
}
|
|
||||||
|
|
||||||
databaseUri?.let { databaseFileUri ->
|
|
||||||
showProgressDialogAndLoadDatabase(
|
|
||||||
databaseFileUri,
|
|
||||||
mainCredential,
|
|
||||||
readOnly,
|
|
||||||
cipherEncryptDatabase,
|
|
||||||
true
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
is FileNotFoundDatabaseException -> {
|
databaseUri?.let { databaseFileUri ->
|
||||||
// Remove this default database inaccessible
|
showProgressDialogAndLoadDatabase(
|
||||||
if (mDefaultDatabase) {
|
databaseFileUri,
|
||||||
mDatabaseFileViewModel.removeDefaultDatabase()
|
mainCredential,
|
||||||
|
readOnly,
|
||||||
|
cipherEncryptDatabase,
|
||||||
|
true
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
is FileNotFoundDatabaseException -> {
|
||||||
|
// Remove this default database inaccessible
|
||||||
|
if (mDefaultDatabase) {
|
||||||
|
mDatabaseFileViewModel.removeDefaultDatabase()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show error message
|
|
||||||
if (resultMessage != null && resultMessage.isNotEmpty()) {
|
|
||||||
resultError = "$resultError $resultMessage"
|
|
||||||
}
|
|
||||||
Log.e(TAG, resultError)
|
|
||||||
Snackbar.make(
|
|
||||||
coordinatorLayout,
|
|
||||||
resultError,
|
|
||||||
Snackbar.LENGTH_LONG
|
|
||||||
).asError().show()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
coordinatorLayout.showActionErrorIfNeeded(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getUriFromIntent(intent: Intent?) {
|
private fun getUriFromIntent(intent: Intent?) {
|
||||||
|
|||||||
@@ -77,6 +77,9 @@ class CreateDatabaseRunnable(context: Context,
|
|||||||
override fun onFinishRun() {
|
override fun onFinishRun() {
|
||||||
super.onFinishRun()
|
super.onFinishRun()
|
||||||
|
|
||||||
|
if (result.isSuccess) {
|
||||||
|
mDatabase.loaded = true
|
||||||
|
}
|
||||||
createDatabaseResult?.invoke(result)
|
createDatabaseResult?.invoke(result)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -555,7 +555,6 @@ class Database {
|
|||||||
setDatabaseKDBX(newDatabase)
|
setDatabaseKDBX(newDatabase)
|
||||||
this.fileUri = databaseUri
|
this.fileUri = databaseUri
|
||||||
// Set Database state
|
// Set Database state
|
||||||
this.loaded = true
|
|
||||||
this.dataModifiedSinceLastLoading = false
|
this.dataModifiedSinceLastLoading = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -226,8 +226,8 @@ fun View.updateLockPaddingLeft() {
|
|||||||
|
|
||||||
fun Context.showActionErrorIfNeeded(result: ActionRunnable.Result) {
|
fun Context.showActionErrorIfNeeded(result: ActionRunnable.Result) {
|
||||||
if (!result.isSuccess) {
|
if (!result.isSuccess) {
|
||||||
result.exception?.errorId?.let { errorId ->
|
result.exception?.getLocalizedMessage(resources)?.let { errorMessage ->
|
||||||
Toast.makeText(this, errorId, Toast.LENGTH_LONG).show()
|
Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show()
|
||||||
} ?: result.message?.let { message ->
|
} ?: result.message?.let { message ->
|
||||||
Toast.makeText(this, message, Toast.LENGTH_LONG).show()
|
Toast.makeText(this, message, Toast.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
@@ -236,8 +236,8 @@ fun Context.showActionErrorIfNeeded(result: ActionRunnable.Result) {
|
|||||||
|
|
||||||
fun CoordinatorLayout.showActionErrorIfNeeded(result: ActionRunnable.Result) {
|
fun CoordinatorLayout.showActionErrorIfNeeded(result: ActionRunnable.Result) {
|
||||||
if (!result.isSuccess) {
|
if (!result.isSuccess) {
|
||||||
result.exception?.errorId?.let { errorId ->
|
result.exception?.getLocalizedMessage(resources)?.let { errorMessage ->
|
||||||
Snackbar.make(this, errorId, Snackbar.LENGTH_LONG).asError().show()
|
Snackbar.make(this, errorMessage, Snackbar.LENGTH_LONG).asError().show()
|
||||||
} ?: result.message?.let { message ->
|
} ?: result.message?.let { message ->
|
||||||
Snackbar.make(this, message, Snackbar.LENGTH_LONG).asError().show()
|
Snackbar.make(this, message, Snackbar.LENGTH_LONG).asError().show()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user