diff --git a/5by5Browser.xcodeproj/project.xcworkspace/xcuserdata/sjs.xcuserdatad/UserInterfaceState.xcuserstate b/5by5Browser.xcodeproj/project.xcworkspace/xcuserdata/sjs.xcuserdatad/UserInterfaceState.xcuserstate index 85c1797..5f15cab 100644 Binary files a/5by5Browser.xcodeproj/project.xcworkspace/xcuserdata/sjs.xcuserdatad/UserInterfaceState.xcuserstate and b/5by5Browser.xcodeproj/project.xcworkspace/xcuserdata/sjs.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/5by5Browser/SSMasterViewController.h b/5by5Browser/SSMasterViewController.h index fc81057..74b0894 100644 --- a/5by5Browser/SSMasterViewController.h +++ b/5by5Browser/SSMasterViewController.h @@ -18,6 +18,7 @@ @property (nonatomic, retain) Show *currentShow; @property (nonatomic, retain) NSString *currentEpisodeNumber; @property (nonatomic, retain) NSString *currentEpisodeName; +@property (nonatomic, retain) NSTimer *checkNowPlayingTimer; - (void) checkNowPlaying; diff --git a/5by5Browser/SSMasterViewController.m b/5by5Browser/SSMasterViewController.m index f056209..f3923a0 100644 --- a/5by5Browser/SSMasterViewController.m +++ b/5by5Browser/SSMasterViewController.m @@ -18,6 +18,7 @@ @synthesize currentShow = _currentShow; @synthesize currentEpisodeNumber = _currentEpisodeNumber; @synthesize currentEpisodeName = _currentEpisodeName; +@synthesize checkNowPlayingTimer = _checkNowPlayingTimer; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { @@ -48,7 +49,19 @@ cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; } - [self checkNowPlaying]; + self.checkNowPlayingTimer = [NSTimer scheduledTimerWithTimeInterval: 1.0 + target: self + selector: @selector(checkNowPlaying) + userInfo: nil + repeats: YES]; +} + +- (void) viewWillDisappear: (BOOL)animated +{ + [super viewWillDisappear: animated]; + + [self.checkNowPlayingTimer invalidate]; + self.checkNowPlayingTimer = nil; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation @@ -66,20 +79,18 @@ MPMediaItem *song = [[MPMusicPlayerController iPodMusicPlayer] nowPlayingItem]; if (song) { NSString *title = [song valueForProperty: MPMediaItemPropertyTitle]; - self.currentEpisodeNumber = [title firstMatch: @"\\d+"]; - self.currentEpisodeName = [title substringFromIndex: [title rangeOfString: @": "].location + 2]; + NSString *episodeNumber = [title firstMatch: @"\\d+"]; NSString *showName = [song valueForProperty: MPMediaItemPropertyAlbumTitle]; - self.currentShow = [self.fiveByFive showWithName: showName]; - if (self.currentShow) { - NSLog(@"show: %@, episode: %@, name: %@", showName, self.currentEpisodeNumber, self.currentEpisodeName); - NSLog(@"show url: %@", [self.currentShow webURLForEpisodeNumber: self.currentEpisodeNumber]); + if (![self.currentEpisodeNumber isEqualToString: episodeNumber] && ![self.currentShow.name isEqualToString: showName]) { + Show *nowPlayingShow = [self.fiveByFive showWithName: showName]; + if (nowPlayingShow) { + self.currentShow = nowPlayingShow; + self.currentEpisodeNumber = episodeNumber; + self.currentEpisodeName = [title substringFromIndex: [title rangeOfString: @": "].location + 2]; + NSLog(@"show: %@, episode: %@, name: %@", showName, self.currentEpisodeNumber, self.currentEpisodeName); + NSLog(@"show url: %@", [self.currentShow webURLForEpisodeNumber: self.currentEpisodeNumber]); + } } - else { - NSLog(@"no show named %@", showName); - } - } - else { - NSLog(@"no song is currently playing"); } [self.tableView reloadData]; }