Skip to content

Commit fa18d23

Browse files
committedDec 21, 2021
making obersver query predicate nullable
1 parent 3fd1471 commit fa18d23

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed
 

‎example/lib/main.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,7 @@ class _MyAppState extends State<MyApp> {
492492
}
493493

494494
void observerQuery(List<String> identifiers) async {
495-
final sub = HealthKitReporter.observerQuery(identifiers, _predicate,
495+
final sub = HealthKitReporter.observerQuery(identifiers, null,
496496
onUpdate: (identifier) async {
497497
print('Updates for observerQuerySub - $identifier');
498498
print(identifier);

‎ios/Classes/ObserverQueryStreamHandler.swift

+10-7
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,19 @@ public final class ObserverQueryStreamHandler: NSObject {
2121
extension ObserverQueryStreamHandler: StreamHandlerProtocol {
2222
public func setQueries(arguments: [String: Any], events: @escaping FlutterEventSink) throws {
2323
guard
24-
let identifiers = arguments["identifiers"] as? [String],
25-
let startTimestamp = arguments["startTimestamp"] as? Double,
26-
let endTimestamp = arguments["endTimestamp"] as? Double
24+
let identifiers = arguments["identifiers"] as? [String]
2725
else {
2826
return
2927
}
30-
let predicate = NSPredicate.samplesPredicate(
31-
startDate: Date.make(from: startTimestamp),
32-
endDate: Date.make(from: endTimestamp)
33-
)
28+
var predicate: NSPredicate?
29+
if
30+
let startTimestamp = arguments["startTimestamp"] as? Double,
31+
let endTimestamp = arguments["endTimestamp"] as? Double {
32+
predicate = NSPredicate.samplesPredicate(
33+
startDate: Date.make(from: startTimestamp),
34+
endDate: Date.make(from: endTimestamp)
35+
)
36+
}
3437
for identifier in identifiers {
3538
guard let type = identifier.objectType as? SampleType else {
3639
return

‎lib/health_kit_reporter.dart

+4-2
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,14 @@ class HealthKitReporter {
164164
/// Provide the [predicate] to set the date interval.
165165
///
166166
static StreamSubscription<dynamic> observerQuery(
167-
List<String> identifiers, Predicate predicate,
167+
List<String> identifiers, Predicate? predicate,
168168
{required Function(String) onUpdate}) {
169169
final arguments = <String, dynamic>{
170170
'identifiers': identifiers,
171171
};
172-
arguments.addAll(predicate.map);
172+
if (predicate != null) {
173+
arguments.addAll(predicate.map);
174+
}
173175
return _observerQueryChannel
174176
.receiveBroadcastStream(arguments)
175177
.listen((event) {

0 commit comments

Comments
 (0)
Please sign in to comment.