mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Catch exception when check database info
This commit is contained in:
@@ -129,41 +129,49 @@ open class DatabaseTaskNotificationService : LockNotificationService(), Progress
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun checkDatabaseInfo() {
|
fun checkDatabaseInfo() {
|
||||||
mDatabase.fileUri?.let {
|
try {
|
||||||
val previousDatabaseInfo = mSnapFileDatabaseInfo
|
mDatabase.fileUri?.let {
|
||||||
val lastFileDatabaseInfo = SnapFileDatabaseInfo.fromFileDatabaseInfo(
|
val previousDatabaseInfo = mSnapFileDatabaseInfo
|
||||||
FileDatabaseInfo(applicationContext, it))
|
val lastFileDatabaseInfo = SnapFileDatabaseInfo.fromFileDatabaseInfo(
|
||||||
|
FileDatabaseInfo(applicationContext, it))
|
||||||
|
|
||||||
val oldDatabaseModification = previousDatabaseInfo?.lastModification
|
val oldDatabaseModification = previousDatabaseInfo?.lastModification
|
||||||
val newDatabaseModification = lastFileDatabaseInfo.lastModification
|
val newDatabaseModification = lastFileDatabaseInfo.lastModification
|
||||||
|
|
||||||
val conditionExists = previousDatabaseInfo != null
|
val conditionExists = previousDatabaseInfo != null
|
||||||
&& previousDatabaseInfo.exists != lastFileDatabaseInfo.exists
|
&& previousDatabaseInfo.exists != lastFileDatabaseInfo.exists
|
||||||
// To prevent dialog opening too often
|
// To prevent dialog opening too often
|
||||||
val conditionLastModification = (oldDatabaseModification != null && newDatabaseModification != null
|
val conditionLastModification = (oldDatabaseModification != null && newDatabaseModification != null
|
||||||
&& oldDatabaseModification < newDatabaseModification
|
&& oldDatabaseModification < newDatabaseModification
|
||||||
&& mLastLocalSaveTime + 5000 < newDatabaseModification)
|
&& mLastLocalSaveTime + 5000 < newDatabaseModification)
|
||||||
|
|
||||||
if (conditionExists || conditionLastModification) {
|
if (conditionExists || conditionLastModification) {
|
||||||
// Show the dialog only if it's real new info and not a delay after a save
|
// Show the dialog only if it's real new info and not a delay after a save
|
||||||
Log.i(TAG, "Database file modified " +
|
Log.i(TAG, "Database file modified " +
|
||||||
"$previousDatabaseInfo != $lastFileDatabaseInfo ")
|
"$previousDatabaseInfo != $lastFileDatabaseInfo ")
|
||||||
// Call listener to indicate a change in database info
|
// Call listener to indicate a change in database info
|
||||||
if (previousDatabaseInfo != null) {
|
if (previousDatabaseInfo != null) {
|
||||||
mDatabaseInfoListeners.forEach { listener ->
|
mDatabaseInfoListeners.forEach { listener ->
|
||||||
listener.onDatabaseInfoChanged(previousDatabaseInfo, lastFileDatabaseInfo)
|
listener.onDatabaseInfoChanged(previousDatabaseInfo, lastFileDatabaseInfo)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
mSnapFileDatabaseInfo = lastFileDatabaseInfo
|
||||||
}
|
}
|
||||||
mSnapFileDatabaseInfo = lastFileDatabaseInfo
|
|
||||||
}
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
Log.e(TAG, "Unable to check database info", e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun saveDatabaseInfo() {
|
fun saveDatabaseInfo() {
|
||||||
mDatabase.fileUri?.let {
|
try {
|
||||||
mSnapFileDatabaseInfo = SnapFileDatabaseInfo.fromFileDatabaseInfo(
|
mDatabase.fileUri?.let {
|
||||||
FileDatabaseInfo(applicationContext, it))
|
mSnapFileDatabaseInfo = SnapFileDatabaseInfo.fromFileDatabaseInfo(
|
||||||
Log.i(TAG, "Database file saved $mSnapFileDatabaseInfo")
|
FileDatabaseInfo(applicationContext, it))
|
||||||
|
Log.i(TAG, "Database file saved $mSnapFileDatabaseInfo")
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
Log.e(TAG, "Unable to check database info", e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user