Skip to content

Commit

Permalink
Merge branch 'release/0.9.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
bmarty committed Dec 5, 2019
2 parents 8e9ac81 + 6d8850b commit f9c0256
Show file tree
Hide file tree
Showing 7 changed files with 18 additions and 8 deletions.
6 changes: 6 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Changes in RiotX 0.9.1 (2019-12-05)
===================================================

Bugfix 🐛:
- Fix an issue with DB transaction (#740)

Changes in RiotX 0.9.0 (2019-12-05)
===================================================

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -643,9 +643,10 @@ internal class RealmCryptoStore(private val realmConfiguration: RealmConfigurati
}

override fun getOutgoingRoomKeyRequestByState(states: Set<OutgoingRoomKeyRequest.RequestState>): OutgoingRoomKeyRequest? {
val statesIndex = states.map { it.ordinal }.toTypedArray()
return doRealmQueryAndCopy(realmConfiguration) {
it.where<OutgoingRoomKeyRequestEntity>()
.`in`(OutgoingRoomKeyRequestEntityFields.STATE, states.map { it.ordinal }.toTypedArray())
.`in`(OutgoingRoomKeyRequestEntityFields.STATE, statesIndex)
.findFirst()
}
?.toOutgoingRoomKeyRequest()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ internal open class OutgoingRoomKeyRequestEntity(
* Convert to OutgoingRoomKeyRequest
*/
fun toOutgoingRoomKeyRequest(): OutgoingRoomKeyRequest {
val cancellationTxnId = this.cancellationTxnId
return OutgoingRoomKeyRequest(
RoomKeyRequestBody().apply {
algorithm = requestBodyAlgorithm
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,13 @@ import kotlinx.coroutines.isActive
import kotlinx.coroutines.withContext
import timber.log.Timber

suspend fun awaitTransaction(config: RealmConfiguration, transaction: suspend (realm: Realm) -> Unit) = withContext(Dispatchers.Default) {
suspend fun <T> awaitTransaction(config: RealmConfiguration, transaction: suspend (realm: Realm) -> T) = withContext(Dispatchers.Default) {
Realm.getInstance(config).use { bgRealm ->
bgRealm.beginTransaction()
val result: T
try {
val start = System.currentTimeMillis()
transaction(bgRealm)
result = transaction(bgRealm)
if (isActive) {
bgRealm.commitTransaction()
val end = System.currentTimeMillis()
Expand All @@ -39,5 +40,6 @@ suspend fun awaitTransaction(config: RealmConfiguration, transaction: suspend (r
bgRealm.cancelTransaction()
}
}
result
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ internal class DefaultFilterRepository @Inject constructor(private val monarchy:
}

override suspend fun getFilter(): String {
return Realm.getInstance(monarchy.realmConfiguration).use {
return monarchy.awaitTransaction {
val filter = FilterEntity.getOrCreate(it)
if (filter.filterId.isBlank()) {
// Use the Json format
Expand All @@ -82,7 +82,7 @@ internal class DefaultFilterRepository @Inject constructor(private val monarchy:
}

override suspend fun getRoomFilter(): String {
return Realm.getInstance(monarchy.realmConfiguration).use {
return monarchy.awaitTransaction {
FilterEntity.getOrCreate(it).roomEventFilterJson
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ import io.realm.Realm
import io.realm.RealmModel
import java.util.concurrent.atomic.AtomicReference

internal suspend fun Monarchy.awaitTransaction(transaction: suspend (realm: Realm) -> Unit) {
awaitTransaction(realmConfiguration, transaction)
internal suspend fun <T> Monarchy.awaitTransaction(transaction: suspend (realm: Realm) -> T): T {
return awaitTransaction(realmConfiguration, transaction)
}

fun <T : RealmModel> Monarchy.fetchCopied(query: (Realm) -> T?): T? {
Expand Down
2 changes: 1 addition & 1 deletion vector/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ androidExtensions {

ext.versionMajor = 0
ext.versionMinor = 9
ext.versionPatch = 0
ext.versionPatch = 1

static def getGitTimestamp() {
def cmd = 'git show -s --format=%ct'
Expand Down

0 comments on commit f9c0256

Please sign in to comment.