Skip to content

Commit 0f6254d

Browse files
author
aytac.kayadelen
committed
fix more session close cases
1 parent d52f14c commit 0f6254d

2 files changed

Lines changed: 11 additions & 6 deletions

File tree

Artemis.MediaInfo/DataModels/MediaInfoDataModel.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ public class MediaInfoDataModel : DataModel
3737
public string SessionName { get; set; }
3838

3939
public DataModelEvent<MediaChangedEventArgs> MediaChanged { get; } = new();
40-
public HashSet<MediaManager.MediaSession> MediaSessions { get; set; }
41-
public HashSet<MediaManager.MediaSession> ArtMediaSessions { get; set; }
40+
public ISet<MediaManager.MediaSession> MediaSessions { get; set; }
41+
public ISet<MediaManager.MediaSession> ArtMediaSessions { get; set; }
4242
}
4343

4444
public class MediaChangedEventArgs : DataModelEventArgs

Artemis.MediaInfo/MediaInfoModule.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ public class MediaInfoModule : Module<MediaInfoDataModel>
1919

2020
public override List<IModuleActivationRequirement> ActivationRequirements { get; } = new();
2121

22-
private readonly HashSet<MediaSession> _mediaSessions = new(new MediaSessionComparer());
23-
private readonly HashSet<MediaSession> _albumArtSessions = new(new MediaSessionComparer());
22+
private readonly ISet<MediaSession> _mediaSessions = new HashSet<MediaSession>(new MediaSessionComparer());
23+
private readonly ISet<MediaSession> _albumArtSessions = new HashSet<MediaSession>(new MediaSessionComparer());
2424

2525
[CanBeNull]
2626
private MediaSession _currentSession;
@@ -98,7 +98,7 @@ private void MediaManager_OnAnySessionClosed(MediaSession mediaSession)
9898
_albumArtSessions.Remove(mediaSession);
9999
if (_currentSession.Id == mediaSession.Id)
100100
{
101-
_currentSession = _mediaSessions.First();
101+
_currentSession = _mediaManager.GetFocusedSession();
102102
}
103103
UpdateButtons(_currentSession);
104104
UpdateArtState();
@@ -107,6 +107,11 @@ private void MediaManager_OnAnySessionClosed(MediaSession mediaSession)
107107
private async void MediaManager_OnAnyMediaPropertyChanged(MediaSession mediaSession,
108108
GlobalSystemMediaTransportControlsSessionMediaProperties mediaProperties)
109109
{
110+
if (mediaSession.ControlSession == null)
111+
{
112+
MediaManager_OnAnySessionClosed(mediaSession);
113+
return;
114+
}
110115
try
111116
{
112117
if (mediaProperties.Thumbnail is null)
@@ -141,6 +146,7 @@ private void MediaSession_OnPlaybackStateChanged(MediaSession mediaSession,
141146
{
142147
if (playbackInfo == null || playbackInfo.PlaybackStatus == GlobalSystemMediaTransportControlsSessionPlaybackStatus.Closed)
143148
{
149+
MediaManager_OnAnySessionClosed(mediaSession);
144150
return;
145151
}
146152

@@ -176,7 +182,6 @@ private void UpdateButtons(MediaSession mediaSession)
176182

177183
private void UpdateArtState()
178184
{
179-
_albumArtSessions.TrimExcess();
180185
DataModel.HasArt = _albumArtSessions.Any();
181186
}
182187

0 commit comments

Comments
 (0)