Skip to content

Commit 86563a2

Browse files
committed
Merge branch 'release/1.1.0'
2 parents f272751 + f098d76 commit 86563a2

File tree

5 files changed

+13
-8
lines changed

5 files changed

+13
-8
lines changed

library/build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
apply plugin: 'kotlin'
22
apply plugin: 'maven-publish'
33

4+
version = '1.1.0'
5+
46
dependencies {
57
def couchbaseLite = "com.couchbase.lite:couchbase-lite-java:2.7.0"
68

@@ -18,7 +20,7 @@ def mavPluginVersion = '1.0.3'
1820
apply from: "https://raw.githubusercontent.com/sky-uk/gradle-maven-plugin/${mavPluginVersion}/gradle-mavenizer.gradle"
1921

2022
project.ext {
21-
mavDevelopers = ["damiano": "Damiano Giusti"]
23+
mavDevelopers = ["damiano": "Damiano Giusti", "federico": "Federico Monti"]
2224
mavSiteUrl = "https://github.com/MOLO17/couchbase-lite-kotlin"
2325
mavGitUrl = mavSiteUrl + '.git'
2426
mavProjectName = 'Couchbase Lite Kotlin'

library/src/main/java/com/molo17/couchbase/lite/DatabaseExtensions.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.couchbase.lite.Database
2020
import com.couchbase.lite.DatabaseChange
2121
import com.couchbase.lite.DocumentChange
2222
import kotlinx.coroutines.channels.awaitClose
23+
import kotlinx.coroutines.channels.sendBlocking
2324
import kotlinx.coroutines.flow.Flow
2425
import kotlinx.coroutines.flow.callbackFlow
2526

@@ -29,7 +30,7 @@ import kotlinx.coroutines.flow.callbackFlow
2930
* @see Database.addChangeListener
3031
*/
3132
fun Database.changesFlow(): Flow<DatabaseChange> = callbackFlow {
32-
val token = addChangeListener { change -> offer(change) }
33+
val token = addChangeListener { change -> sendBlocking(change) }
3334
awaitClose { removeChangeListener(token) }
3435
}
3536

@@ -39,7 +40,7 @@ fun Database.changesFlow(): Flow<DatabaseChange> = callbackFlow {
3940
* @see Database.addDocumentChangeListener
4041
*/
4142
fun Database.documentChangesFlow(documentId: String): Flow<DocumentChange> = callbackFlow {
42-
val token = addDocumentChangeListener(documentId) { change -> offer(change) }
43+
val token = addDocumentChangeListener(documentId) { change -> sendBlocking(change) }
4344
awaitClose { removeChangeListener(token) }
4445
}
4546

library/src/main/java/com/molo17/couchbase/lite/QueryExtensions.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.couchbase.lite.Query
2020
import com.couchbase.lite.QueryChange
2121
import com.couchbase.lite.ResultSet
2222
import kotlinx.coroutines.channels.awaitClose
23+
import kotlinx.coroutines.channels.sendBlocking
2324
import kotlinx.coroutines.flow.Flow
2425
import kotlinx.coroutines.flow.callbackFlow
2526
import kotlinx.coroutines.flow.map
@@ -53,7 +54,7 @@ fun Query.asFlow(): Flow<ResultSet> = asQueryFlow().map { it.results }
5354
* @param factory the lambda used for creating object instances.
5455
*/
5556
fun <T : Any> Query.asObjectsFlow(
56-
factory: (Map<String, Any?>) -> T
57+
factory: (Map<String, Any?>) -> T?
5758
): Flow<List<T>> = asQueryFlow().map { queryChange -> queryChange.results.toObjects(factory) }
5859

5960
///////////////////////////////////////////////////////////////////////////
@@ -63,7 +64,7 @@ fun <T : Any> Query.asObjectsFlow(
6364
private fun Query.asQueryFlow(): Flow<QueryChange> = callbackFlow {
6465
val token = addChangeListener { queryChange ->
6566
if (queryChange.error == null) {
66-
offer(queryChange)
67+
sendBlocking(queryChange)
6768
} else {
6869
throw queryChange.error
6970
}

library/src/main/java/com/molo17/couchbase/lite/ReplicatorExtensions.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import com.couchbase.lite.DocumentReplication
2323
import com.couchbase.lite.Replicator
2424
import com.couchbase.lite.ReplicatorChange
2525
import kotlinx.coroutines.channels.awaitClose
26+
import kotlinx.coroutines.channels.sendBlocking
2627
import kotlinx.coroutines.flow.Flow
2728
import kotlinx.coroutines.flow.callbackFlow
2829

@@ -32,7 +33,7 @@ import kotlinx.coroutines.flow.callbackFlow
3233
* @see Replicator.addChangeListener
3334
*/
3435
fun Replicator.changesFlow(): Flow<ReplicatorChange> = callbackFlow {
35-
val token = addChangeListener { change -> offer(change) }
36+
val token = addChangeListener { change -> sendBlocking(change) }
3637
awaitClose { removeChangeListener(token) }
3738
}
3839

@@ -42,7 +43,7 @@ fun Replicator.changesFlow(): Flow<ReplicatorChange> = callbackFlow {
4243
* @see Replicator.addDocumentReplicationListener
4344
*/
4445
fun Replicator.documentReplicationFlow(): Flow<DocumentReplication> = callbackFlow {
45-
val token = addDocumentReplicationListener { replication -> offer(replication) }
46+
val token = addDocumentReplicationListener { replication -> sendBlocking(replication) }
4647
awaitClose { removeChangeListener(token) }
4748
}
4849

library/src/main/java/com/molo17/couchbase/lite/ResultSetExtensions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import com.couchbase.lite.ResultSet
3939
* @param factory lambda used for creating an object instance
4040
* @return a [List] of objects of type [T]
4141
*/
42-
inline fun <T : Any> ResultSet.toObjects(factory: (Map<String, Any?>) -> T): List<T> =
42+
inline fun <T : Any> ResultSet.toObjects(factory: (Map<String, Any?>) -> T?): List<T> =
4343
mapNotNull { result ->
4444
result.run {
4545

0 commit comments

Comments
 (0)