Skip to content

Commit 66f0731

Browse files
authored
Merge pull request #1697 from DSheirer/1665-refresh-broadcastify-streams
#1665 Refresh Broadcastify Streams In Playlist Editor
2 parents d4ba098 + dc23980 commit 66f0731

File tree

2 files changed

+35
-23
lines changed

2 files changed

+35
-23
lines changed

src/main/java/io/github/dsheirer/gui/control/IntegerTextField.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public Integer get()
6767
//Do nothing ... we couldn't parse the value
6868
}
6969

70-
return null;
70+
return 0;
7171
}
7272

7373
/**

src/main/java/io/github/dsheirer/gui/playlist/streaming/StreamingEditor.java

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
* *****************************************************************************
3-
* Copyright (C) 2014-2022 Dennis Sheirer
3+
* Copyright (C) 2014-2023 Dennis Sheirer
44
*
55
* This program is free software: you can redistribute it and/or modify
66
* it under the terms of the GNU General Public License as published by
@@ -28,6 +28,11 @@
2828
import io.github.dsheirer.playlist.PlaylistManager;
2929
import io.github.dsheirer.rrapi.type.UserFeedBroadcast;
3030
import io.github.dsheirer.util.ThreadPool;
31+
import java.util.ArrayList;
32+
import java.util.EnumMap;
33+
import java.util.List;
34+
import java.util.Map;
35+
import java.util.Optional;
3136
import javafx.application.Platform;
3237
import javafx.beans.value.ChangeListener;
3338
import javafx.beans.value.ObservableValue;
@@ -48,6 +53,7 @@
4853
import javafx.scene.control.TableCell;
4954
import javafx.scene.control.TableColumn;
5055
import javafx.scene.control.TableView;
56+
import javafx.scene.control.Tooltip;
5157
import javafx.scene.control.cell.PropertyValueFactory;
5258
import javafx.scene.layout.HBox;
5359
import javafx.scene.layout.Priority;
@@ -58,12 +64,6 @@
5864
import org.slf4j.Logger;
5965
import org.slf4j.LoggerFactory;
6066

61-
import java.util.ArrayList;
62-
import java.util.EnumMap;
63-
import java.util.List;
64-
import java.util.Map;
65-
import java.util.Optional;
66-
6767
/**
6868
* Editor for broadcast audio stream configurations
6969
*/
@@ -75,6 +75,7 @@ public class StreamingEditor extends SplitPane
7575
private TableView<ConfiguredBroadcast> mConfiguredBroadcastTableView;
7676
private MenuButton mNewButton;
7777
private Button mDeleteButton;
78+
private Button mRefreshButton;
7879
private TabPane mTabPane;
7980
private Tab mConfigurationTab;
8081
private Tab mAliasTab;
@@ -101,7 +102,7 @@ public StreamingEditor(PlaylistManager playlistManager)
101102
refreshBroadcastifyStreams();
102103

103104
VBox buttonsBox = new VBox();
104-
buttonsBox.getChildren().addAll(getNewButton(), getDeleteButton());
105+
buttonsBox.getChildren().addAll(getNewButton(), getDeleteButton(), getRefreshButton());
105106
buttonsBox.setPadding(new Insets(0, 0, 0, 10));
106107
buttonsBox.setSpacing(10);
107108

@@ -231,21 +232,16 @@ private void refreshBroadcastifyStreams()
231232
{
232233
if(mPlaylistManager.getRadioReference().availableProperty().get())
233234
{
234-
ThreadPool.CACHED.submit(new Runnable()
235-
{
236-
@Override
237-
public void run()
235+
ThreadPool.CACHED.submit(() -> {
236+
try
238237
{
239-
try
240-
{
241-
List<UserFeedBroadcast> feeds = mPlaylistManager.getRadioReference().getService().getUserFeeds();
242-
mBroadcastifyFeeds.clear();
243-
mBroadcastifyFeeds.addAll(feeds);
244-
}
245-
catch(Throwable t)
246-
{
247-
mLog.error("Unable to refresh broadcastify stream configuration(s)");
248-
}
238+
List<UserFeedBroadcast> feeds = mPlaylistManager.getRadioReference().getService().getUserFeeds();
239+
mBroadcastifyFeeds.clear();
240+
mBroadcastifyFeeds.addAll(feeds);
241+
}
242+
catch(Throwable t)
243+
{
244+
mLog.error("Unable to refresh broadcastify stream configuration(s)");
249245
}
250246
});
251247
}
@@ -348,6 +344,22 @@ private MenuButton getNewButton()
348344
return mNewButton;
349345
}
350346

347+
/**
348+
* Refresh broadcastify feeds.
349+
* @return button to refresh.
350+
*/
351+
private Button getRefreshButton()
352+
{
353+
if(mRefreshButton == null)
354+
{
355+
mRefreshButton = new Button("Refresh");
356+
mRefreshButton.setTooltip(new Tooltip("Refresh streams available from Broadcastify"));
357+
mRefreshButton.setOnAction(event -> refreshBroadcastifyStreams());
358+
}
359+
360+
return mRefreshButton;
361+
}
362+
351363
private Button getDeleteButton()
352364
{
353365
if(mDeleteButton == null)

0 commit comments

Comments
 (0)