diff options
author | NicoleYarroch <nicole@livio.io> | 2020-07-07 14:59:39 -0400 |
---|---|---|
committer | NicoleYarroch <nicole@livio.io> | 2020-07-07 14:59:39 -0400 |
commit | aa1a667af466e00ccb3d6f0d07555b2550ec20ce (patch) | |
tree | 46071a6624cf1ded0665b7bed083d583496a7d89 | |
parent | c0ab688a2d900a804d6e6eb06f33b56fa6093538 (diff) | |
download | sdl_ios-aa1a667af466e00ccb3d6f0d07555b2550ec20ce.tar.gz |
Fixed unsubscribe code
Signed-off-by: NicoleYarroch <nicole@livio.io>
-rw-r--r-- | SmartDeviceLink/SDLSubscribeButtonManager.m | 17 | ||||
-rw-r--r-- | SmartDeviceLinkTests/SDLSubscribeButtonManagerSpec.m | 4 |
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)); |