mirror of
https://github.com/vector-im/element-android.git
synced 2024-11-16 02:05:06 +08:00
Add log to detect if a realm instance is not properly closed
This commit is contained in:
parent
538c4d1a64
commit
5b63856d96
@ -17,6 +17,7 @@
|
|||||||
package im.vector.matrix.android.internal.session.signout
|
package im.vector.matrix.android.internal.session.signout
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import im.vector.matrix.android.BuildConfig
|
||||||
import im.vector.matrix.android.internal.SessionManager
|
import im.vector.matrix.android.internal.SessionManager
|
||||||
import im.vector.matrix.android.internal.auth.SessionParamsStore
|
import im.vector.matrix.android.internal.auth.SessionParamsStore
|
||||||
import im.vector.matrix.android.internal.crypto.CryptoModule
|
import im.vector.matrix.android.internal.crypto.CryptoModule
|
||||||
@ -27,6 +28,8 @@ import im.vector.matrix.android.internal.session.SessionModule
|
|||||||
import im.vector.matrix.android.internal.session.cache.ClearCacheTask
|
import im.vector.matrix.android.internal.session.cache.ClearCacheTask
|
||||||
import im.vector.matrix.android.internal.task.Task
|
import im.vector.matrix.android.internal.task.Task
|
||||||
import im.vector.matrix.android.internal.worker.WorkManagerUtil
|
import im.vector.matrix.android.internal.worker.WorkManagerUtil
|
||||||
|
import io.realm.Realm
|
||||||
|
import io.realm.RealmConfiguration
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@ -42,6 +45,8 @@ internal class DefaultSignOutTask @Inject constructor(private val context: Conte
|
|||||||
@CryptoDatabase private val clearCryptoDataTask: ClearCacheTask,
|
@CryptoDatabase private val clearCryptoDataTask: ClearCacheTask,
|
||||||
@UserCacheDirectory private val userFile: File,
|
@UserCacheDirectory private val userFile: File,
|
||||||
private val realmKeysUtils: RealmKeysUtils,
|
private val realmKeysUtils: RealmKeysUtils,
|
||||||
|
@SessionDatabase private val realmSessionConfiguration: RealmConfiguration,
|
||||||
|
@CryptoDatabase private val realmCryptoConfiguration: RealmConfiguration,
|
||||||
@UserMd5 private val userMd5: String) : SignOutTask {
|
@UserMd5 private val userMd5: String) : SignOutTask {
|
||||||
|
|
||||||
override suspend fun execute(params: Unit) {
|
override suspend fun execute(params: Unit) {
|
||||||
@ -71,5 +76,15 @@ internal class DefaultSignOutTask @Inject constructor(private val context: Conte
|
|||||||
Timber.d("SignOut: clear the database keys")
|
Timber.d("SignOut: clear the database keys")
|
||||||
realmKeysUtils.clear(SessionModule.DB_ALIAS_PREFIX + userMd5)
|
realmKeysUtils.clear(SessionModule.DB_ALIAS_PREFIX + userMd5)
|
||||||
realmKeysUtils.clear(CryptoModule.DB_ALIAS_PREFIX + userMd5)
|
realmKeysUtils.clear(CryptoModule.DB_ALIAS_PREFIX + userMd5)
|
||||||
|
|
||||||
|
// Sanity check
|
||||||
|
if (BuildConfig.DEBUG) {
|
||||||
|
Realm.getGlobalInstanceCount(realmSessionConfiguration)
|
||||||
|
.takeIf { it > 0 }
|
||||||
|
?.let { Timber.e("All realm instance for session has not been closed ($it)") }
|
||||||
|
Realm.getGlobalInstanceCount(realmCryptoConfiguration)
|
||||||
|
.takeIf { it > 0 }
|
||||||
|
?.let { Timber.e("All realm instance for crypto has not been closed ($it)") }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user