From b55e22ff56ec8c3fc0157d069089fd2a6535fb2a Mon Sep 17 00:00:00 2001 From: Kevin Mussi Date: Sat, 8 Aug 2020 21:21:58 +0200 Subject: [PATCH] Fixed issue with song history --- src/main/java/com/github/kevinmussi/itunesrp/data/Track.java | 5 +++++ .../github/kevinmussi/itunesrp/view/panels/ActivePanel.java | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/kevinmussi/itunesrp/data/Track.java b/src/main/java/com/github/kevinmussi/itunesrp/data/Track.java index c6e53ab..a5dc8cb 100644 --- a/src/main/java/com/github/kevinmussi/itunesrp/data/Track.java +++ b/src/main/java/com/github/kevinmussi/itunesrp/data/Track.java @@ -95,6 +95,11 @@ public boolean isNull() { return this == NULL_TRACK; } + public boolean isSameTrack(Track other) { + return name.equals(other.name) && album.equals(other.album) && artist.equals(other.artist) && app == other.app + && duration == other.duration && index == other.index && albumSize == other.albumSize; + } + @Override public String toString() { return new StringBuilder().append("Name: ").append(name).append("\nArtist: ").append(artist).append("\nAlbum: ") diff --git a/src/main/java/com/github/kevinmussi/itunesrp/view/panels/ActivePanel.java b/src/main/java/com/github/kevinmussi/itunesrp/view/panels/ActivePanel.java index ef30420..1c30f90 100644 --- a/src/main/java/com/github/kevinmussi/itunesrp/view/panels/ActivePanel.java +++ b/src/main/java/com/github/kevinmussi/itunesrp/view/panels/ActivePanel.java @@ -43,6 +43,7 @@ public class ActivePanel extends Commander implements Panel { private final JPanel panel; private final TrackPane trackPane; private final DefaultListModel listModel; + private Track latestTrack = Track.NULL_TRACK; private SettingsFrame settingsFrame; public ActivePanel() { @@ -109,9 +110,9 @@ public JPanel getPanel() { public void setTrack(Track track) { if(track != null) { trackPane.setTrack(track); - if(track.getState() == TrackState.PLAYING) { - // Only show the played songs in the history + if(track.getState() == TrackState.PLAYING && !track.isSameTrack(latestTrack)) { listModel.add(0, track); + latestTrack = track; } } }