Skip to content

Commit 7db9bdd

Browse files
committed
Runtime approach
1 parent 73cb34f commit 7db9bdd

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

FirebaseCore/Extension/FIRHeartbeatLogger.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ typedef NS_ENUM(NSInteger, FIRDailyHeartbeatCode) {
4040

4141
#ifndef FIREBASE_BUILD_CMAKE
4242
/// Returns the header value for the heartbeat logger via the given completion handler..
43-
- (void)asyncHeaderValueWithCompletionHandler:(void (^)(NSString *_Nullable))completionHandler
44-
API_AVAILABLE(ios(13.0), macosx(10.15), macCatalyst(13.0), tvos(13.0), watchos(6.0));
43+
- (void)asyncHeaderValueWithCompletionHandler:(void (^)(NSString *_Nullable))completionHandler;
4544

4645
/// Return the header value for the heartbeat logger.
4746
- (NSString *_Nullable)headerValue;
@@ -87,8 +86,7 @@ NSString *_Nullable FIRHeaderValueFromHeartbeatsPayload(FIRHeartbeatsPayload *he
8786
/// @note This API is thread-safe.
8887
/// @param completionHandler A completion handler to process the flushed payload of heartbeats.
8988
- (void)flushHeartbeatsIntoPayloadWithCompletionHandler:
90-
(void (^)(FIRHeartbeatsPayload *))completionHandler
91-
API_AVAILABLE(ios(13.0), macosx(10.15), macCatalyst(13.0), tvos(13.0), watchos(6.0));
89+
(void (^)(FIRHeartbeatsPayload *))completionHandler;
9290
#endif // FIREBASE_BUILD_CMAKE
9391

9492
/// Gets today's corresponding heartbeat code.

FirebaseCore/Sources/FIRHeartbeatLogger.m

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,15 @@ - (NSString *_Nullable)headerValue {
7474
return FIRHeaderValueFromHeartbeatsPayload([self flushHeartbeatsIntoPayload]);
7575
}
7676

77-
- (void)asyncHeaderValueWithCompletionHandler:(void (^)(NSString *_Nullable))completionHandler
78-
API_AVAILABLE(ios(13.0), macosx(10.15), macCatalyst(13.0), tvos(13.0), watchos(6.0)) {
79-
[self flushHeartbeatsIntoPayloadWithCompletionHandler:^(FIRHeartbeatsPayload *payload) {
80-
completionHandler(FIRHeaderValueFromHeartbeatsPayload(payload));
81-
}];
77+
- (void)asyncHeaderValueWithCompletionHandler:(void (^)(NSString *_Nullable))completionHandler {
78+
if (@available(iOS 13.0, macOS 10.15, macCatalyst 13.0, tvOS 13.0, watchOS 6.0, *)) {
79+
[self flushHeartbeatsIntoPayloadWithCompletionHandler:^(FIRHeartbeatsPayload *payload) {
80+
completionHandler(FIRHeaderValueFromHeartbeatsPayload(payload));
81+
}];
82+
} else {
83+
// no-op
84+
completionHandler(nil);
85+
}
8286
}
8387

8488
- (FIRHeartbeatsPayload *)flushHeartbeatsIntoPayload {
@@ -87,11 +91,15 @@ - (FIRHeartbeatsPayload *)flushHeartbeatsIntoPayload {
8791
}
8892

8993
- (void)flushHeartbeatsIntoPayloadWithCompletionHandler:
90-
(void (^)(FIRHeartbeatsPayload *))completionHandler
91-
API_AVAILABLE(ios(13.0), macosx(10.15), macCatalyst(13.0), tvos(13.0), watchos(6.0)) {
92-
[_heartbeatController flushAsyncWithCompletionHandler:^(FIRHeartbeatsPayload *payload) {
93-
completionHandler(payload);
94-
}];
94+
(void (^)(FIRHeartbeatsPayload *))completionHandler {
95+
if (@available(iOS 13.0, macOS 10.15, macCatalyst 13.0, tvOS 13.0, watchOS 6.0, *)) {
96+
[_heartbeatController flushAsyncWithCompletionHandler:^(FIRHeartbeatsPayload *payload) {
97+
completionHandler(payload);
98+
}];
99+
} else {
100+
// no-op
101+
completionHandler(nil);
102+
}
95103
}
96104
#endif // FIREBASE_BUILD_CMAKE
97105

0 commit comments

Comments
 (0)