diff options
author | Chen Liang <chliang@google.com> | 2018-06-19 14:08:53 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-19 14:08:53 -0700 |
commit | 69ccd6d8b18b833acfd47ce251f05e94000e6ff5 (patch) | |
tree | c6f9f3ac6632940022cbd19c17f34fe0b8390536 /Firebase/Messaging | |
parent | fb9482c303a3f53c2f16eb41a8614f2d4302a9e3 (diff) |
Corrected the deprecation warning when subscribing to or unsubscribing from a topic (#1425)
Diffstat (limited to 'Firebase/Messaging')
-rw-r--r-- | Firebase/Messaging/FIRMessaging.m | 6 | ||||
-rw-r--r-- | Firebase/Messaging/FIRMessagingPubSub.h | 9 | ||||
-rw-r--r-- | Firebase/Messaging/FIRMessagingPubSub.m | 8 |
3 files changed, 21 insertions, 2 deletions
diff --git a/Firebase/Messaging/FIRMessaging.m b/Firebase/Messaging/FIRMessaging.m index a97374b..efafcc2 100644 --- a/Firebase/Messaging/FIRMessaging.m +++ b/Firebase/Messaging/FIRMessaging.m @@ -700,7 +700,8 @@ NSString *const kFIRMessagingPlistAutoInitEnabled = if ([FIRMessagingPubSub hasTopicsPrefix:topic]) { FIRMessagingLoggerWarn(kFIRMessagingMessageCodeTopicFormatIsDeprecated, @"Format '%@' is deprecated. Only '%@' should be used in " - @"subscribeToTopic.", topic, normalizeTopic); + @"subscribeToTopic.", topic, + [FIRMessagingPubSub removePrefixFromTopic:topic]); } if (normalizeTopic.length) { [self.pubsub subscribeToTopic:normalizeTopic handler:completion]; @@ -726,7 +727,8 @@ NSString *const kFIRMessagingPlistAutoInitEnabled = if ([FIRMessagingPubSub hasTopicsPrefix:topic]) { FIRMessagingLoggerWarn(kFIRMessagingMessageCodeTopicFormatIsDeprecated, @"Format '%@' is deprecated. Only '%@' should be used in " - @"unsubscribeFromTopic.", topic, normalizeTopic); + @"unsubscribeFromTopic.", topic, + [FIRMessagingPubSub removePrefixFromTopic:topic]); } if (normalizeTopic.length) { [self.pubsub unsubscribeFromTopic:normalizeTopic handler:completion]; diff --git a/Firebase/Messaging/FIRMessagingPubSub.h b/Firebase/Messaging/FIRMessagingPubSub.h index 1c615d1..ebb4ca8 100644 --- a/Firebase/Messaging/FIRMessagingPubSub.h +++ b/Firebase/Messaging/FIRMessagingPubSub.h @@ -139,6 +139,15 @@ NS_ASSUME_NONNULL_BEGIN + (NSString *)addPrefixToTopic:(NSString *)topic; /** + * Removes the "/topics/" prefix from the topic. + * + * @param topic The topic to remove the prefix from. + * + * @return The new topic name with the "/topics/" prefix removed. + */ + ++ (NSString *)removePrefixFromTopic:(NSString *)topic; +/** * Check if the topic name has "/topics/" prefix. * * @param topic The topic name to verify. diff --git a/Firebase/Messaging/FIRMessagingPubSub.m b/Firebase/Messaging/FIRMessagingPubSub.m index 09491b4..3f954e8 100644 --- a/Firebase/Messaging/FIRMessagingPubSub.m +++ b/Firebase/Messaging/FIRMessagingPubSub.m @@ -231,6 +231,14 @@ static NSString *const kTopicRegexPattern = @"/topics/([a-zA-Z0-9-_.~%]+)"; } } ++ (NSString *)removePrefixFromTopic:(NSString *)topic { + if ([self hasTopicsPrefix:topic]) { + return [topic substringFromIndex:kTopicsPrefix.length]; + } else { + return [topic copy]; + } +} + + (BOOL)hasTopicsPrefix:(NSString *)topic { return [topic hasPrefix:kTopicsPrefix]; } |