Skip to content

Commit 18bf553

Browse files
committed
1.2.0 last minute change: passing DataSubscriptionList
1 parent 572d1a8 commit 18bf553

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

objectbox-java/src/main/java/io/objectbox/query/Query.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import io.objectbox.annotation.apihint.Beta;
1818
import io.objectbox.internal.CallWithHandle;
1919
import io.objectbox.reactive.DataObserver;
20+
import io.objectbox.reactive.DataSubscriptionList;
2021
import io.objectbox.reactive.SubscriptionBuilder;
2122
import io.objectbox.relation.RelationInfo;
2223
import io.objectbox.relation.ToOne;
@@ -499,6 +500,18 @@ public SubscriptionBuilder<List<T>> subscribe() {
499500
return new SubscriptionBuilder<>(publisher, null, box.getStore().internalThreadPool());
500501
}
501502

503+
/**
504+
* Convenience for {@link #subscribe()} with a subsequent call to
505+
* {@link SubscriptionBuilder#dataSubscriptionList(DataSubscriptionList)}.
506+
*
507+
* @param dataSubscriptionList the resulting {@link io.objectbox.reactive.DataSubscription} will be added to it
508+
*/
509+
public SubscriptionBuilder<List<T>> subscribe(DataSubscriptionList dataSubscriptionList) {
510+
SubscriptionBuilder<List<T>> subscriptionBuilder = subscribe();
511+
subscriptionBuilder.dataSubscriptionList(dataSubscriptionList);
512+
return subscriptionBuilder;
513+
}
514+
502515
/**
503516
* Publishes the current data to all subscribed @{@link DataObserver}s.
504517
* This is useful triggering observers when new parameters have been set.

objectbox-java/src/main/java/io/objectbox/reactive/SubscriptionBuilder.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class SubscriptionBuilder<T> {
3838
private DataTransformer<T, Object> transformer;
3939
private Scheduler scheduler;
4040
private ErrorObserver errorObserver;
41+
private DataSubscriptionList dataSubscriptionList;
4142
// private boolean sync;
4243

4344

@@ -144,6 +145,10 @@ public DataSubscription observer(DataObserver<T> observer) {
144145
weakObserver.setSubscription(subscription);
145146
}
146147

148+
if(dataSubscriptionList != null) {
149+
dataSubscriptionList.add(subscription);
150+
}
151+
147152
// TODO FIXME when an observer subscribes twice, it currently won't be added, but we return a new subscription
148153

149154
// Trivial observers do not have to be wrapped
@@ -165,15 +170,9 @@ public DataSubscription observer(DataObserver<T> observer) {
165170
return subscription;
166171
}
167172

168-
/**
169-
* Convenience for calling {@link #observer(DataObserver)} with adding the resulting {@link DataSubscription} to the
170-
* given {@link DataSubscriptionList}.
171-
*/
172-
@Beta
173-
public DataSubscription observer(DataObserver<T> observer, DataSubscriptionList dataSubscriptionList) {
174-
DataSubscription dataSubscription = observer(observer);
175-
dataSubscriptionList.add(dataSubscription);
176-
return dataSubscription;
173+
public SubscriptionBuilder<T> dataSubscriptionList(DataSubscriptionList dataSubscriptionList) {
174+
this.dataSubscriptionList = dataSubscriptionList;
175+
return this;
177176
}
178177

179178
class ActionObserver implements DataObserver<T>, DelegatingObserver<T> {

0 commit comments

Comments
 (0)