mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Fix show error
This commit is contained in:
@@ -200,8 +200,8 @@ class FileDatabaseSelectActivity : DatabaseModeActivity(),
|
|||||||
|
|
||||||
override fun onDatabaseRetrieved(database: Database?) {
|
override fun onDatabaseRetrieved(database: Database?) {
|
||||||
super.onDatabaseRetrieved(database)
|
super.onDatabaseRetrieved(database)
|
||||||
if (database?.loaded == true) {
|
if (database != null) {
|
||||||
launchGroupActivity(database)
|
launchGroupActivityIfLoaded(database)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -221,9 +221,8 @@ class FileDatabaseSelectActivity : DatabaseModeActivity(),
|
|||||||
PreferencesUtil.enableReadOnlyDatabase(this@FileDatabaseSelectActivity))
|
PreferencesUtil.enableReadOnlyDatabase(this@FileDatabaseSelectActivity))
|
||||||
}
|
}
|
||||||
ACTION_DATABASE_LOAD_TASK -> {
|
ACTION_DATABASE_LOAD_TASK -> {
|
||||||
if (result.isSuccess
|
if (result.isSuccess) {
|
||||||
&& database.loaded) {
|
launchGroupActivityIfLoaded(database)
|
||||||
launchGroupActivity(database)
|
|
||||||
} else {
|
} else {
|
||||||
var resultError = ""
|
var resultError = ""
|
||||||
val resultMessage = result.message
|
val resultMessage = result.message
|
||||||
@@ -265,12 +264,14 @@ class FileDatabaseSelectActivity : DatabaseModeActivity(),
|
|||||||
{ onLaunchActivitySpecialMode() })
|
{ onLaunchActivitySpecialMode() })
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun launchGroupActivity(database: Database) {
|
private fun launchGroupActivityIfLoaded(database: Database) {
|
||||||
GroupActivity.launch(this,
|
if (database.loaded) {
|
||||||
|
GroupActivity.launch(this,
|
||||||
database,
|
database,
|
||||||
{ onValidateSpecialMode() },
|
{ onValidateSpecialMode() },
|
||||||
{ onCancelSpecialMode() },
|
{ onCancelSpecialMode() },
|
||||||
{ onLaunchActivitySpecialMode() })
|
{ onLaunchActivitySpecialMode() })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onValidateSpecialMode() {
|
override fun onValidateSpecialMode() {
|
||||||
@@ -311,9 +312,7 @@ class FileDatabaseSelectActivity : DatabaseModeActivity(),
|
|||||||
}
|
}
|
||||||
|
|
||||||
mDatabase?.let { database ->
|
mDatabase?.let { database ->
|
||||||
if (database.loaded) {
|
launchGroupActivityIfLoaded(database)
|
||||||
launchGroupActivity(database)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -230,20 +230,14 @@ open class PasswordActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bui
|
|||||||
checkPermission()
|
checkPermission()
|
||||||
|
|
||||||
mDatabase?.let { database ->
|
mDatabase?.let { database ->
|
||||||
if (database.loaded) {
|
launchGroupActivityIfLoaded(database)
|
||||||
clearCredentialsViews(true)
|
|
||||||
launchGroupActivity(database)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDatabaseRetrieved(database: Database?) {
|
override fun onDatabaseRetrieved(database: Database?) {
|
||||||
super.onDatabaseRetrieved(database)
|
super.onDatabaseRetrieved(database)
|
||||||
if (database?.loaded == true) {
|
if (database != null) {
|
||||||
// If the database isn't accessible make sure to clear the password field, if it
|
launchGroupActivityIfLoaded(database)
|
||||||
// was saved in the instance state
|
|
||||||
clearCredentialsViews(true)
|
|
||||||
launchGroupActivity(database)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -255,73 +249,69 @@ open class PasswordActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bui
|
|||||||
super.onDatabaseActionFinished(database, actionTask, result)
|
super.onDatabaseActionFinished(database, actionTask, result)
|
||||||
when (actionTask) {
|
when (actionTask) {
|
||||||
ACTION_DATABASE_LOAD_TASK -> {
|
ACTION_DATABASE_LOAD_TASK -> {
|
||||||
// CHeck if database really loaded
|
// Recheck advanced unlock if error
|
||||||
if (database.loaded) {
|
advancedUnlockFragment?.initAdvancedUnlockMode()
|
||||||
// Recheck advanced unlock if error
|
|
||||||
advancedUnlockFragment?.initAdvancedUnlockMode()
|
|
||||||
|
|
||||||
if (result.isSuccess) {
|
if (result.isSuccess) {
|
||||||
clearCredentialsViews(true)
|
launchGroupActivityIfLoaded(database)
|
||||||
launchGroupActivity(database)
|
} else {
|
||||||
} else {
|
var resultError = ""
|
||||||
var resultError = ""
|
val resultException = result.exception
|
||||||
val resultException = result.exception
|
val resultMessage = result.message
|
||||||
val resultMessage = result.message
|
|
||||||
|
|
||||||
if (resultException != null) {
|
if (resultException != null) {
|
||||||
resultError = resultException.getLocalizedMessage(resources)
|
resultError = resultException.getLocalizedMessage(resources)
|
||||||
|
|
||||||
when (resultException) {
|
when (resultException) {
|
||||||
is DuplicateUuidDatabaseException -> {
|
is DuplicateUuidDatabaseException -> {
|
||||||
// Relaunch loading if we need to fix UUID
|
// Relaunch loading if we need to fix UUID
|
||||||
showLoadDatabaseDuplicateUuidMessage {
|
showLoadDatabaseDuplicateUuidMessage {
|
||||||
|
|
||||||
var databaseUri: Uri? = null
|
var databaseUri: Uri? = null
|
||||||
var mainCredential = MainCredential()
|
var mainCredential = MainCredential()
|
||||||
var readOnly = true
|
var readOnly = true
|
||||||
var cipherEntity: CipherDatabaseEntity? = null
|
var cipherEntity: CipherDatabaseEntity? = null
|
||||||
|
|
||||||
result.data?.let { resultData ->
|
result.data?.let { resultData ->
|
||||||
databaseUri = resultData.getParcelable(DATABASE_URI_KEY)
|
databaseUri = resultData.getParcelable(DATABASE_URI_KEY)
|
||||||
mainCredential =
|
mainCredential =
|
||||||
resultData.getParcelable(MAIN_CREDENTIAL_KEY)
|
resultData.getParcelable(MAIN_CREDENTIAL_KEY)
|
||||||
?: mainCredential
|
?: mainCredential
|
||||||
readOnly = resultData.getBoolean(READ_ONLY_KEY)
|
readOnly = resultData.getBoolean(READ_ONLY_KEY)
|
||||||
cipherEntity =
|
cipherEntity =
|
||||||
resultData.getParcelable(CIPHER_ENTITY_KEY)
|
resultData.getParcelable(CIPHER_ENTITY_KEY)
|
||||||
}
|
|
||||||
|
|
||||||
databaseUri?.let { databaseFileUri ->
|
|
||||||
showProgressDialogAndLoadDatabase(
|
|
||||||
databaseFileUri,
|
|
||||||
mainCredential,
|
|
||||||
readOnly,
|
|
||||||
cipherEntity,
|
|
||||||
true
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
is FileNotFoundDatabaseException -> {
|
databaseUri?.let { databaseFileUri ->
|
||||||
// Remove this default database inaccessible
|
showProgressDialogAndLoadDatabase(
|
||||||
if (mDefaultDatabase) {
|
databaseFileUri,
|
||||||
databaseFileViewModel.removeDefaultDatabase()
|
mainCredential,
|
||||||
|
readOnly,
|
||||||
|
cipherEntity,
|
||||||
|
true
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
is FileNotFoundDatabaseException -> {
|
||||||
|
// Remove this default database inaccessible
|
||||||
|
if (mDefaultDatabase) {
|
||||||
|
databaseFileViewModel.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()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Show error message
|
||||||
|
if (resultMessage != null && resultMessage.isNotEmpty()) {
|
||||||
|
resultError = "$resultError $resultMessage"
|
||||||
|
}
|
||||||
|
Log.e(TAG, resultError)
|
||||||
|
Snackbar.make(
|
||||||
|
coordinatorLayout,
|
||||||
|
resultError,
|
||||||
|
Snackbar.LENGTH_LONG
|
||||||
|
).asError().show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -348,13 +338,17 @@ open class PasswordActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bui
|
|||||||
getUriFromIntent(intent)
|
getUriFromIntent(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun launchGroupActivity(database: Database) {
|
private fun launchGroupActivityIfLoaded(database: Database) {
|
||||||
GroupActivity.launch(this,
|
// Check if database really loaded
|
||||||
|
if (database.loaded) {
|
||||||
|
clearCredentialsViews(true)
|
||||||
|
GroupActivity.launch(this,
|
||||||
database,
|
database,
|
||||||
{ onValidateSpecialMode() },
|
{ onValidateSpecialMode() },
|
||||||
{ onCancelSpecialMode() },
|
{ onCancelSpecialMode() },
|
||||||
{ onLaunchActivitySpecialMode() }
|
{ onLaunchActivitySpecialMode() }
|
||||||
)
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onValidateSpecialMode() {
|
override fun onValidateSpecialMode() {
|
||||||
|
|||||||
Reference in New Issue
Block a user