Catch exception when check database info

This commit is contained in:
J-Jamet
2021-01-21 14:32:11 +01:00
parent 4d833d25ce
commit 7e7ab4ce19

View File

@@ -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)
} }
} }