mirror of
https://github.com/element-hq/element-android
synced 2024-11-29 05:58:50 +03:00
Merge pull request #667 from vector-im/feature/realm_cleanup
Import change form https://github.com/matrix-org/matrix-android-sdk/pull/505
This commit is contained in:
commit
fb3e953e28
3 changed files with 9 additions and 14 deletions
|
@ -41,8 +41,7 @@ fun <T> doWithRealm(realmConfiguration: RealmConfiguration, action: (Realm) -> T
|
||||||
*/
|
*/
|
||||||
fun <T : RealmObject> doRealmQueryAndCopy(realmConfiguration: RealmConfiguration, action: (Realm) -> T?): T? {
|
fun <T : RealmObject> doRealmQueryAndCopy(realmConfiguration: RealmConfiguration, action: (Realm) -> T?): T? {
|
||||||
return Realm.getInstance(realmConfiguration).use { realm ->
|
return Realm.getInstance(realmConfiguration).use { realm ->
|
||||||
val result = action.invoke(realm)
|
action.invoke(realm)?.let { realm.copyFromRealm(it) }
|
||||||
result?.let { realm.copyFromRealm(it) }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,8 +50,7 @@ fun <T : RealmObject> doRealmQueryAndCopy(realmConfiguration: RealmConfiguration
|
||||||
*/
|
*/
|
||||||
fun <T : RealmObject> doRealmQueryAndCopyList(realmConfiguration: RealmConfiguration, action: (Realm) -> Iterable<T>): Iterable<T> {
|
fun <T : RealmObject> doRealmQueryAndCopyList(realmConfiguration: RealmConfiguration, action: (Realm) -> Iterable<T>): Iterable<T> {
|
||||||
return Realm.getInstance(realmConfiguration).use { realm ->
|
return Realm.getInstance(realmConfiguration).use { realm ->
|
||||||
val result = action.invoke(realm)
|
action.invoke(realm).let { realm.copyFromRealm(it) }
|
||||||
realm.copyFromRealm(result)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -91,7 +91,7 @@ internal class RealmCryptoStore(private val realmConfiguration: RealmConfigurati
|
||||||
realmLocker = Realm.getInstance(realmConfiguration)
|
realmLocker = Realm.getInstance(realmConfiguration)
|
||||||
|
|
||||||
// Ensure CryptoMetadataEntity is inserted in DB
|
// Ensure CryptoMetadataEntity is inserted in DB
|
||||||
doWithRealm(realmConfiguration) { realm ->
|
doRealmTransaction(realmConfiguration) { realm ->
|
||||||
var currentMetadata = realm.where<CryptoMetadataEntity>().findFirst()
|
var currentMetadata = realm.where<CryptoMetadataEntity>().findFirst()
|
||||||
|
|
||||||
var deleteAll = false
|
var deleteAll = false
|
||||||
|
@ -109,19 +109,17 @@ internal class RealmCryptoStore(private val realmConfiguration: RealmConfigurati
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentMetadata == null) {
|
if (currentMetadata == null) {
|
||||||
realm.executeTransaction {
|
|
||||||
if (deleteAll) {
|
if (deleteAll) {
|
||||||
it.deleteAll()
|
realm.deleteAll()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metadata not found, or database cleaned, create it
|
// Metadata not found, or database cleaned, create it
|
||||||
it.createObject(CryptoMetadataEntity::class.java, credentials.userId).apply {
|
realm.createObject(CryptoMetadataEntity::class.java, credentials.userId).apply {
|
||||||
deviceId = credentials.deviceId
|
deviceId = credentials.deviceId
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
override fun close() {
|
override fun close() {
|
||||||
olmSessionsToRelease.forEach {
|
olmSessionsToRelease.forEach {
|
||||||
|
|
|
@ -56,7 +56,6 @@ object CommandParser {
|
||||||
return ParsedCommand.ErrorEmptySlashCommand
|
return ParsedCommand.ErrorEmptySlashCommand
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return when (val slashCommand = messageParts.first()) {
|
return when (val slashCommand = messageParts.first()) {
|
||||||
Command.CHANGE_DISPLAY_NAME.command -> {
|
Command.CHANGE_DISPLAY_NAME.command -> {
|
||||||
val newDisplayName = textMessage.substring(Command.CHANGE_DISPLAY_NAME.command.length).trim()
|
val newDisplayName = textMessage.substring(Command.CHANGE_DISPLAY_NAME.command.length).trim()
|
||||||
|
|
Loading…
Reference in a new issue