Avoid code duplication and log total count
This commit is contained in:
parent
5eb2f14375
commit
a216f82b35
@ -87,6 +87,7 @@ import org.matrix.android.sdk.internal.crypto.store.db.query.get
|
|||||||
import org.matrix.android.sdk.internal.crypto.store.db.query.getById
|
import org.matrix.android.sdk.internal.crypto.store.db.query.getById
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.query.getOrCreate
|
import org.matrix.android.sdk.internal.crypto.store.db.query.getOrCreate
|
||||||
import org.matrix.android.sdk.internal.database.mapper.ContentMapper
|
import org.matrix.android.sdk.internal.database.mapper.ContentMapper
|
||||||
|
import org.matrix.android.sdk.internal.database.tools.RealmDebugTools
|
||||||
import org.matrix.android.sdk.internal.di.CryptoDatabase
|
import org.matrix.android.sdk.internal.di.CryptoDatabase
|
||||||
import org.matrix.android.sdk.internal.di.DeviceId
|
import org.matrix.android.sdk.internal.di.DeviceId
|
||||||
import org.matrix.android.sdk.internal.di.MoshiProvider
|
import org.matrix.android.sdk.internal.di.MoshiProvider
|
||||||
@ -95,7 +96,6 @@ import org.matrix.android.sdk.internal.session.SessionScope
|
|||||||
import org.matrix.olm.OlmAccount
|
import org.matrix.olm.OlmAccount
|
||||||
import org.matrix.olm.OlmException
|
import org.matrix.olm.OlmException
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.lang.StringBuilder
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlin.collections.set
|
import kotlin.collections.set
|
||||||
|
|
||||||
@ -1709,19 +1709,6 @@ internal class RealmCryptoStore @Inject constructor(
|
|||||||
* Prints out database info
|
* Prints out database info
|
||||||
*/
|
*/
|
||||||
override fun logDbUsageInfo() {
|
override fun logDbUsageInfo() {
|
||||||
Realm.getInstance(realmConfiguration).use { realm ->
|
RealmDebugTools(realmConfiguration).logInfo("Crypto")
|
||||||
val info = StringBuilder()
|
|
||||||
// Check if we have data
|
|
||||||
info.append("\n==============================================")
|
|
||||||
info.append("\n==============================================")
|
|
||||||
info.append("\nCrypto Realm is empty: ${realm.isEmpty}")
|
|
||||||
realmConfiguration.realmObjectClasses.forEach { modelClazz ->
|
|
||||||
val count = realm.where(modelClazz).count()
|
|
||||||
info.append("\nCrypto Realm - count ${modelClazz.simpleName}: $count")
|
|
||||||
}
|
|
||||||
info.append("\n==============================================")
|
|
||||||
info.append("\n==============================================")
|
|
||||||
Timber.i(info.toString())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,23 +16,9 @@
|
|||||||
|
|
||||||
package org.matrix.android.sdk.internal.database.tools
|
package org.matrix.android.sdk.internal.database.tools
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.model.CrossSigningInfoEntity
|
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.model.CryptoMetadataEntity
|
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.model.CryptoRoomEntity
|
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.model.DeviceInfoEntity
|
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.model.GossipingEventEntity
|
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.model.IncomingGossipingRequestEntity
|
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.model.KeyInfoEntity
|
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.model.KeysBackupDataEntity
|
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.model.MyDeviceLastSeenInfoEntity
|
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.model.OlmInboundGroupSessionEntity
|
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.model.OlmSessionEntity
|
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.model.OutgoingGossipingRequestEntity
|
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.model.TrustLevelEntity
|
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.model.UserEntity
|
|
||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
import io.realm.RealmConfiguration
|
import io.realm.RealmConfiguration
|
||||||
import io.realm.kotlin.where
|
import org.matrix.android.sdk.BuildConfig
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
|
||||||
internal class RealmDebugTools(
|
internal class RealmDebugTools(
|
||||||
@ -41,30 +27,34 @@ internal class RealmDebugTools(
|
|||||||
/**
|
/**
|
||||||
* Log info about the DB
|
* Log info about the DB
|
||||||
*/
|
*/
|
||||||
fun logInfo() {
|
fun logInfo(baseName: String) {
|
||||||
Timber.d("Realm located at : ${realmConfiguration.realmDirectory}/${realmConfiguration.realmFileName}")
|
buildString {
|
||||||
|
append("\n$baseName Realm located at : ${realmConfiguration.realmDirectory}/${realmConfiguration.realmFileName}")
|
||||||
|
|
||||||
val key = realmConfiguration.encryptionKey.joinToString("") { byte -> "%02x".format(byte) }
|
if (BuildConfig.LOG_PRIVATE_DATA) {
|
||||||
Timber.d("Realm encryption key : $key")
|
val key = realmConfiguration.encryptionKey.joinToString("") { byte -> "%02x".format(byte) }
|
||||||
|
append("\n$baseName Realm encryption key : $key")
|
||||||
|
}
|
||||||
|
|
||||||
Realm.getInstance(realmConfiguration).use {
|
Realm.getInstance(realmConfiguration).use { realm ->
|
||||||
// Check if we have data
|
// Check if we have data
|
||||||
Timber.e("Realm is empty: ${it.isEmpty}")
|
separator()
|
||||||
|
separator()
|
||||||
Timber.d("Realm has CryptoMetadataEntity: ${it.where<CryptoMetadataEntity>().count()}")
|
append("\n$baseName Realm is empty: ${realm.isEmpty}")
|
||||||
Timber.d("Realm has CryptoRoomEntity: ${it.where<CryptoRoomEntity>().count()}")
|
var total = 0L
|
||||||
Timber.d("Realm has DeviceInfoEntity: ${it.where<DeviceInfoEntity>().count()}")
|
realmConfiguration.realmObjectClasses.forEach { modelClazz ->
|
||||||
Timber.d("Realm has KeysBackupDataEntity: ${it.where<KeysBackupDataEntity>().count()}")
|
val count = realm.where(modelClazz).count()
|
||||||
Timber.d("Realm has OlmInboundGroupSessionEntity: ${it.where<OlmInboundGroupSessionEntity>().count()}")
|
total += count
|
||||||
Timber.d("Realm has OlmSessionEntity: ${it.where<OlmSessionEntity>().count()}")
|
append("\n$baseName Realm - count ${modelClazz.simpleName}: $count")
|
||||||
Timber.d("Realm has UserEntity: ${it.where<UserEntity>().count()}")
|
}
|
||||||
Timber.d("Realm has KeyInfoEntity: ${it.where<KeyInfoEntity>().count()}")
|
separator()
|
||||||
Timber.d("Realm has CrossSigningInfoEntity: ${it.where<CrossSigningInfoEntity>().count()}")
|
append("\n$baseName Realm - total count: $total")
|
||||||
Timber.d("Realm has TrustLevelEntity: ${it.where<TrustLevelEntity>().count()}")
|
separator()
|
||||||
Timber.d("Realm has GossipingEventEntity: ${it.where<GossipingEventEntity>().count()}")
|
separator()
|
||||||
Timber.d("Realm has IncomingGossipingRequestEntity: ${it.where<IncomingGossipingRequestEntity>().count()}")
|
}
|
||||||
Timber.d("Realm has OutgoingGossipingRequestEntity: ${it.where<OutgoingGossipingRequestEntity>().count()}")
|
|
||||||
Timber.d("Realm has MyDeviceLastSeenInfoEntity: ${it.where<MyDeviceLastSeenInfoEntity>().count()}")
|
|
||||||
}
|
}
|
||||||
|
.let { Timber.i(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal fun StringBuilder.separator() = append("\n==============================================")
|
||||||
}
|
}
|
||||||
|
@ -18,9 +18,7 @@ package org.matrix.android.sdk.internal.session
|
|||||||
|
|
||||||
import androidx.annotation.MainThread
|
import androidx.annotation.MainThread
|
||||||
import dagger.Lazy
|
import dagger.Lazy
|
||||||
import io.realm.Realm
|
|
||||||
import io.realm.RealmConfiguration
|
import io.realm.RealmConfiguration
|
||||||
import io.realm.kotlin.where
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
@ -61,6 +59,7 @@ import org.matrix.android.sdk.api.session.user.UserService
|
|||||||
import org.matrix.android.sdk.api.session.widgets.WidgetService
|
import org.matrix.android.sdk.api.session.widgets.WidgetService
|
||||||
import org.matrix.android.sdk.internal.auth.SessionParamsStore
|
import org.matrix.android.sdk.internal.auth.SessionParamsStore
|
||||||
import org.matrix.android.sdk.internal.crypto.DefaultCryptoService
|
import org.matrix.android.sdk.internal.crypto.DefaultCryptoService
|
||||||
|
import org.matrix.android.sdk.internal.database.tools.RealmDebugTools
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
import org.matrix.android.sdk.internal.di.SessionId
|
import org.matrix.android.sdk.internal.di.SessionId
|
||||||
import org.matrix.android.sdk.internal.di.UnauthenticatedWithCertificate
|
import org.matrix.android.sdk.internal.di.UnauthenticatedWithCertificate
|
||||||
@ -288,20 +287,6 @@ internal class DefaultSession @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun logDbUsageInfo() {
|
override fun logDbUsageInfo() {
|
||||||
Realm.getInstance(realmConfiguration).use { realm ->
|
RealmDebugTools(realmConfiguration).logInfo("Session")
|
||||||
val info = StringBuilder()
|
|
||||||
|
|
||||||
// Check if we have data
|
|
||||||
info.append("\n==============================================")
|
|
||||||
info.append("\n==============================================")
|
|
||||||
info.append("\nSession Realm is empty: ${realm.isEmpty}")
|
|
||||||
realmConfiguration.realmObjectClasses.forEach { modelClazz ->
|
|
||||||
val count = realm.where(modelClazz).count()
|
|
||||||
info.append("\nSession Realm - count ${modelClazz.simpleName}: $count")
|
|
||||||
}
|
|
||||||
info.append("\n==============================================")
|
|
||||||
info.append("\n==============================================")
|
|
||||||
Timber.i(info.toString())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user