summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicoleYarroch <nicole@livio.io>2020-07-07 14:59:39 -0400
committerNicoleYarroch <nicole@livio.io>2020-07-07 14:59:39 -0400
commitaa1a667af466e00ccb3d6f0d07555b2550ec20ce (patch)
tree46071a6624cf1ded0665b7bed083d583496a7d89
parentc0ab688a2d900a804d6e6eb06f33b56fa6093538 (diff)
downloadsdl_ios-aa1a667af466e00ccb3d6f0d07555b2550ec20ce.tar.gz
Fixed unsubscribe code
Signed-off-by: NicoleYarroch <nicole@livio.io>
-rw-r--r--SmartDeviceLink/SDLSubscribeButtonManager.m17
-rw-r--r--SmartDeviceLinkTests/SDLSubscribeButtonManagerSpec.m4
2 files changed, 9 insertions, 12 deletions
diff --git a/SmartDeviceLink/SDLSubscribeButtonManager.m b/SmartDeviceLink/SDLSubscribeButtonManager.m
index cc8947ae6..571807ea5 100644
--- a/SmartDeviceLink/SDLSubscribeButtonManager.m
+++ b/SmartDeviceLink/SDLSubscribeButtonManager.m
@@ -196,19 +196,16 @@ NS_ASSUME_NONNULL_BEGIN
/// @param observer The observer
/// @param buttonName The name of the button
- (void)sdl_removeSubscribedObserver:(id<NSObject>)observer forButtonName:(SDLButtonName)buttonName {
- NSMutableArray *subscribedObservers = self.subscribeButtonObservers[buttonName];
- for (NSUInteger i = 0; i < subscribedObservers.count; i++) {
- SDLSubscribeButtonObserver *subscribedObserver = (SDLSubscribeButtonObserver *)subscribedObservers[i];
- if (subscribedObserver.observer != observer) { continue; }
- // Okay to mutate because we will break immediately afterward
- [subscribedObservers removeObjectAtIndex:i];
- break;
- }
-
__weak typeof(self) weakSelf = self;
[self sdl_runSyncOnQueue:^{
__strong typeof(weakSelf) strongSelf = weakSelf;
- strongSelf.subscribeButtonObservers[buttonName] = (subscribedObservers.count > 0) ? subscribedObservers : nil;
+ for (NSUInteger i = 0; i < strongSelf.subscribeButtonObservers[buttonName].count; i++) {
+ SDLSubscribeButtonObserver *subscribedObserver = (SDLSubscribeButtonObserver *)strongSelf.subscribeButtonObservers[buttonName][i];
+ if (subscribedObserver.observer != observer) { continue; }
+ // Okay to mutate because we will break immediately afterward
+ [strongSelf.subscribeButtonObservers[buttonName] removeObjectAtIndex:i];
+ break;
+ }
}];
}
diff --git a/SmartDeviceLinkTests/SDLSubscribeButtonManagerSpec.m b/SmartDeviceLinkTests/SDLSubscribeButtonManagerSpec.m
index 9c32dc167..53bbefba7 100644
--- a/SmartDeviceLinkTests/SDLSubscribeButtonManagerSpec.m
+++ b/SmartDeviceLinkTests/SDLSubscribeButtonManagerSpec.m
@@ -649,7 +649,7 @@ describe(@"subscribe button manager", ^{
expect(testCompletionHandler2Error).to(beNil());
NSArray<SDLSubscribeButtonObserver *> *observers = testManager.subscribeButtonObservers[testButtonName];
- expect(observers).to(beNil());
+ expect(observers).to(beEmpty());
expect(testConnectionManager.receivedRequests.count).to(equal(2));
expect(testConnectionManager.receivedRequests[1]).to(beAKindOf(SDLUnsubscribeButton.class));
@@ -757,7 +757,7 @@ describe(@"subscribe button manager", ^{
expect(testCompletionHandler2Error).to(beNil());
NSArray<SDLSubscribeButtonObserver *> *observers = testManager.subscribeButtonObservers[testButtonName];
- expect(observers).to(beNil());
+ expect(observers).to(beEmpty());
expect(testConnectionManager.receivedRequests.count).to(equal(2));
expect(testConnectionManager.receivedRequests[1]).to(beAKindOf(SDLUnsubscribeButton.class));