music list plugin: invalidate tracks and filter state on widget reload

This was keeping references to the old widget tracks, and having the
filter incorrectly applied.
This commit is contained in:
Adam
2019-06-05 20:59:53 -04:00
parent 8806bba274
commit 0c2a253718

View File

@@ -75,7 +75,7 @@ public class MusicListPlugin extends Plugin
private Collection<Widget> tracks; private Collection<Widget> tracks;
private MusicState currentMusicFilter; private MusicState currentMusicFilter = MusicState.ALL;
@Override @Override
protected void startUp() protected void startUp()
@@ -100,6 +100,7 @@ public class MusicListPlugin extends Plugin
{ {
if (gameStateChanged.getGameState() == GameState.LOGIN_SCREEN) if (gameStateChanged.getGameState() == GameState.LOGIN_SCREEN)
{ {
// Reset music filter on logout
currentMusicFilter = MusicState.ALL; currentMusicFilter = MusicState.ALL;
tracks = null; tracks = null;
} }
@@ -110,6 +111,10 @@ public class MusicListPlugin extends Plugin
{ {
if (widgetLoaded.getGroupId() == WidgetID.MUSIC_GROUP_ID) if (widgetLoaded.getGroupId() == WidgetID.MUSIC_GROUP_ID)
{ {
tracks = null;
// Reset filter state as the widget has been reloaded.
// It is too early here to call updateFilter()
currentMusicFilter = MusicState.ALL;
addMusicButtons(); addMusicButtons();
} }
} }
@@ -140,7 +145,7 @@ public class MusicListPlugin extends Plugin
musicSearchButton.revalidate(); musicSearchButton.revalidate();
musicFilterButton = header.createChild(-1, WidgetType.GRAPHIC); musicFilterButton = header.createChild(-1, WidgetType.GRAPHIC);
musicFilterButton.setSpriteId(SpriteID.MINIMAP_ORB_HITPOINTS); musicFilterButton.setSpriteId(SpriteID.MINIMAP_ORB_PRAYER);
musicFilterButton.setOriginalWidth(15); musicFilterButton.setOriginalWidth(15);
musicFilterButton.setOriginalHeight(15); musicFilterButton.setOriginalHeight(15);
musicFilterButton.setXPositionMode(WidgetPositionMode.ABSOLUTE_RIGHT); musicFilterButton.setXPositionMode(WidgetPositionMode.ABSOLUTE_RIGHT);