From 10a00b0d286dbfe4f91b0e9fc6b20dcf39b1a224 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 9 Jun 2018 16:28:37 -0700 Subject: [PATCH] Avoid leaving application lifetime notifications registered all the time --- .../ViewControllers/MainFrameViewController.m | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/Limelight/ViewControllers/MainFrameViewController.m b/Limelight/ViewControllers/MainFrameViewController.m index d9765fd..df4c44c 100644 --- a/Limelight/ViewControllers/MainFrameViewController.m +++ b/Limelight/ViewControllers/MainFrameViewController.m @@ -674,25 +674,10 @@ static NSMutableSet* hostList; [self retrieveSavedHosts]; _discMan = [[DiscoveryManager alloc] initWithHosts:[hostList allObjects] andCallback:self]; - [[NSNotificationCenter defaultCenter] addObserver: self - selector: @selector(handleReturnToForeground) - name: UIApplicationDidBecomeActiveNotification - object: nil]; - - [[NSNotificationCenter defaultCenter] addObserver: self - selector: @selector(handleEnterBackground) - name: UIApplicationWillResignActiveNotification - object: nil]; - [self.view addSubview:hostScrollView]; [self.view addSubview:_pullArrow]; } --(void)dealloc -{ - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -(void)beginForegroundRefresh { if (!_background) { @@ -735,6 +720,16 @@ static NSMutableSet* hostList; [self.navigationController.navigationBar setShadowImage:fakeImage]; [self.navigationController.navigationBar setBackgroundImage:fakeImage forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault]; + [[NSNotificationCenter defaultCenter] addObserver: self + selector: @selector(handleReturnToForeground) + name: UIApplicationDidBecomeActiveNotification + object: nil]; + + [[NSNotificationCenter defaultCenter] addObserver: self + selector: @selector(handleEnterBackground) + name: UIApplicationWillResignActiveNotification + object: nil]; + // We can get here on home press while streaming // since the stream view segues to us just before // entering the background. We can't check the app @@ -752,11 +747,17 @@ static NSMutableSet* hostList; - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; - // when discovery stops, we must create a new instance because you cannot restart an NSOperation when it is finished + + // when discovery stops, we must create a new instance because + // you cannot restart an NSOperation when it is finished [_discMan stopDiscovery]; // Purge the box art cache [_boxArtCache removeAllObjects]; + + // Remove our lifetime observers to avoid triggering them + // while streaming + [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (void) retrieveSavedHosts {