diff --git a/src/com/ixab/ConfigHandling/Config.java b/src/com/ixab/ConfigHandling/Config.java index 1e09d6d..813600c 100644 --- a/src/com/ixab/ConfigHandling/Config.java +++ b/src/com/ixab/ConfigHandling/Config.java @@ -6,11 +6,43 @@ import java.util.ArrayList; public class Config implements Serializable { private String LSPath; private ArrayList streamItems; + + public int getSortStreamsBy() { + return sortStreamsBy; + } + + public void setSortStreamsBy(int sortStreamsBy) { + this.sortStreamsBy = sortStreamsBy; + } + + private int sortStreamsBy; + + public int getLastSelectedStream() { + return lastSelectedStream; + } + + public void setLastSelectedStream(int lastSelectedStream) { + this.lastSelectedStream = lastSelectedStream; + } + + private int lastSelectedStream; + public int getLastSelectedQuality() { + return lastSelectedQuality; + } + public void setLastSelectedQuality(int lastSelectedQuality) { + this.lastSelectedQuality = lastSelectedQuality; + ConfigFileIOHandler.save(); + } + private int lastSelectedQuality; public Config() { this.streamItems = new ArrayList(); + setSortStreamsBy(1); + setLastSelectedStream(-1); + setLastSelectedQuality(-1); } public void setLSPath(String path) { this.LSPath = path; + ConfigFileIOHandler.save(); } public String getLSPath() { return this.LSPath; @@ -21,9 +53,11 @@ public class Config implements Serializable { } public void addStream(String streamName) { this.streamItems.add(new StreamConfigItem(streamName)); + ConfigFileIOHandler.save(); } public void removeStream(Object stream) { this.streamItems.remove(stream); + ConfigFileIOHandler.save(); } public ArrayList getStreams() { return this.streamItems; @@ -33,5 +67,6 @@ public class Config implements Serializable { } public void replaceStreamList(ArrayList list) { this.streamItems = list; + ConfigFileIOHandler.save(); } } diff --git a/src/com/ixab/ConfigHandling/StreamConfigSorter.java b/src/com/ixab/ConfigHandling/StreamConfigSorter.java index dd78b5c..ca9524a 100644 --- a/src/com/ixab/ConfigHandling/StreamConfigSorter.java +++ b/src/com/ixab/ConfigHandling/StreamConfigSorter.java @@ -4,6 +4,31 @@ import java.util.ArrayList; public class StreamConfigSorter { public static ArrayList sortStreamItemArrayList(ArrayList list) { + switch (ConfigFileInstanceHandler.getConfig().getSortStreamsBy()) { + case 1: return sortByStatus(list); + case 2: return sortByViewerCountAsc(list); + case 3: return sortByViewerCountDesc(list); + case 4: return sortByNameAsc(list); + default: return sortByStatus(list); + } + } + + private static ArrayList sortByViewerCountAsc(ArrayList list) { + // TODO: implement + return null; + } + + private static ArrayList sortByViewerCountDesc(ArrayList list) { + // TODO: implement + return null; + } + + private static ArrayList sortByNameAsc(ArrayList list) { + // TODO: implement + return null; + } + + private static ArrayList sortByStatus(ArrayList list) { ArrayList result = new ArrayList(); for (int i = 0; i0) { - comboBoxStreams.setSelectedIndex(0); + if (ConfigFileInstanceHandler.getConfig().getLastSelectedStream() == -1) { + comboBoxStreams.setSelectedIndex(0); + } else { + comboBoxStreams.setSelectedIndex(ConfigFileInstanceHandler.getConfig().getLastSelectedStream()); + } } + if (o == null && comboBoxStreams.getItemCount()>0) { + comboBoxStreams.setSelectedIndex(ConfigFileInstanceHandler.getConfig().getLastSelectedStream()); + } + lockStreamInfoGetter = false; } private void refreshQualityComboBox() { + Object o = comboBoxQuality.getSelectedItem(); comboBoxQuality.removeAllItems(); comboBoxQuality.addItem("best"); comboBoxQuality.addItem("high"); comboBoxQuality.addItem("medium"); comboBoxQuality.addItem("low"); comboBoxQuality.addItem("mobile"); + if (o != null) { + comboBoxQuality.setSelectedItem(o); + } + if (ConfigFileInstanceHandler.getConfig().getLastSelectedQuality() == -1) { + ConfigFileInstanceHandler.getConfig().setLastSelectedQuality(comboBoxQuality.getSelectedIndex()); + } else { + comboBoxQuality.setSelectedIndex(ConfigFileInstanceHandler.getConfig().getLastSelectedQuality()); + } + } public static void main(String[] args) { JFrame frame = new JFrame("jLSLauncher "+ com.ixab.Main.getVersion()); diff --git a/src/com/ixab/StreamHandling/StreamOpener.java b/src/com/ixab/StreamHandling/StreamOpener.java index 1af3814..8c1f8b7 100644 --- a/src/com/ixab/StreamHandling/StreamOpener.java +++ b/src/com/ixab/StreamHandling/StreamOpener.java @@ -18,6 +18,7 @@ public class StreamOpener extends Thread { } public void run() { try { + Logger.print("Starting stream livestreamer for "+this.streamName+" at "+this.quality+" quality"); Runtime rt = Runtime.getRuntime(); Process pr = rt.exec(this.c.getLSPath()+" twitch.tv/"+this.streamName+" "+this.quality);