From 8fcc7d8ff60902a7982bbd93fb033f358f70723d Mon Sep 17 00:00:00 2001 From: Andrey Tabakov Date: Fri, 13 Feb 2026 11:26:30 +0300 Subject: [PATCH] Playlist: Hide play icon if not resume playback on startup enabled --- Application/AppController.m | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Application/AppController.m b/Application/AppController.m index dc53878c3..bf46a5be7 100644 --- a/Application/AppController.m +++ b/Application/AppController.m @@ -245,6 +245,7 @@ - (void)awakeFromNib { int lastStatus = (int)[[NSUserDefaults standardUserDefaults] integerForKey:@"lastPlaybackStatus"]; if(lastStatus != CogStatusStopped) { + BOOL resumePlaybackOnStartup = [[NSUserDefaults standardUserDefaults] boolForKey:@"resumePlaybackOnStartup"]; NSPredicate *hasUrlPredicate = [NSPredicate predicateWithFormat:@"urlString != nil && urlString != %@", @""]; NSPredicate *deletedPredicate = [NSPredicate predicateWithFormat:@"deLeted == NO || deLeted == nil"]; NSPredicate *currentPredicate = [NSPredicate predicateWithFormat:@"current == YES"]; @@ -261,12 +262,20 @@ - (void)awakeFromNib { PlaylistEntry *pe = results[0]; // Select this track [playlistView selectRowIndexes:[NSIndexSet indexSetWithIndex:pe.index] byExtendingSelection:NO]; - if([[NSUserDefaults standardUserDefaults] boolForKey:@"resumePlaybackOnStartup"]) { + if(resumePlaybackOnStartup) { // And play it [playbackController playEntryAtIndex:pe.index startPaused:(lastStatus == CogStatusPaused) andSeekTo:@(pe.currentPosition)]; + } else { + // Startup resume is disabled, so clear stale "currently playing" markers from the last run. + for(PlaylistEntry *entry in results) { + entry.current = NO; + entry.stopAfter = NO; + } + [playlistController commitPersistentStore]; + [playlistView reloadData]; } // Bug fix - if([results count] > 1) { + if(resumePlaybackOnStartup && [results count] > 1) { for(size_t i = 1; i < [results count]; ++i) { PlaylistEntry *pe = results[i]; [pe setCurrent:NO];