From b315ba759835092ac024762151c24ab7a74887ec Mon Sep 17 00:00:00 2001 From: Daniel Aberger Date: Mon, 30 Nov 2015 17:00:22 +0100 Subject: [PATCH] [MODIFIED] StreamListe wird nun nach Aktualisierung nach online>offline sortiert. --- src/com/ixab/ConfigHandling/Config.java | 12 +-- .../ConfigHandling/StreamConfigSorter.java | 20 +++++ src/com/ixab/GUI/MainWindow.form | 18 ++-- src/com/ixab/GUI/MainWindow.java | 83 ++++++++++++------- src/com/ixab/UserInfoHandling/UserInfo.java | 4 +- 5 files changed, 89 insertions(+), 48 deletions(-) create mode 100644 src/com/ixab/ConfigHandling/StreamConfigSorter.java diff --git a/src/com/ixab/ConfigHandling/Config.java b/src/com/ixab/ConfigHandling/Config.java index d779e4e..1e09d6d 100644 --- a/src/com/ixab/ConfigHandling/Config.java +++ b/src/com/ixab/ConfigHandling/Config.java @@ -5,10 +5,8 @@ import java.util.ArrayList; public class Config implements Serializable { private String LSPath; - private ArrayList streamNames; private ArrayList streamItems; public Config() { - this.streamNames = new ArrayList(); this.streamItems = new ArrayList(); } public void setLSPath(String path) { @@ -20,24 +18,20 @@ public class Config implements Serializable { public String getStreamName(int streamIndex) { return this.streamItems.get(streamIndex).getName(); - //return this.streamNames.get(streamIndex); } - public void addStream(String streamName) { this.streamItems.add(new StreamConfigItem(streamName)); - this.streamNames.add(streamName); } public void removeStream(Object stream) { this.streamItems.remove(stream); - this.streamNames.remove(stream); } public ArrayList getStreams() { - // public ArrayList getStreams() { return this.streamItems; - // return this.streamNames; } public int getStreamCount() { return this.streamItems.size(); - // return this.streamNames.size(); + } + public void replaceStreamList(ArrayList list) { + this.streamItems = list; } } diff --git a/src/com/ixab/ConfigHandling/StreamConfigSorter.java b/src/com/ixab/ConfigHandling/StreamConfigSorter.java new file mode 100644 index 0000000..dd78b5c --- /dev/null +++ b/src/com/ixab/ConfigHandling/StreamConfigSorter.java @@ -0,0 +1,20 @@ +package com.ixab.ConfigHandling; + +import java.util.ArrayList; + +public class StreamConfigSorter { + public static ArrayList sortStreamItemArrayList(ArrayList list) { + ArrayList result = new ArrayList(); + for (int i = 0; i - + @@ -90,7 +90,7 @@ - + @@ -109,9 +109,17 @@ - + + + + + + + + + @@ -204,12 +212,12 @@ - + - + diff --git a/src/com/ixab/GUI/MainWindow.java b/src/com/ixab/GUI/MainWindow.java index af8682f..6d3fbba 100644 --- a/src/com/ixab/GUI/MainWindow.java +++ b/src/com/ixab/GUI/MainWindow.java @@ -3,7 +3,7 @@ package com.ixab.GUI; import com.ixab.ConfigHandling.ConfigFileIOHandler; import com.ixab.ConfigHandling.ConfigFileInstanceHandler; import com.ixab.ConfigHandling.StreamConfigItem; -import com.ixab.StreamHandling.StreamInfo; +import com.ixab.ConfigHandling.StreamConfigSorter; import com.ixab.StreamHandling.StreamOpener; import javax.swing.*; @@ -20,7 +20,7 @@ public class MainWindow { private JTextField textFieldStreamViewers; private JTextField textFieldStreamTitle; private JTextField textFieldStreamGame; - private JButton buttonReloadStreamData; + private JButton buttonReloadAllStreamData; private JPanel panelPreviewImage; private JButton buttonSettings; private Thread updateThread; @@ -30,38 +30,12 @@ public class MainWindow { } private JLabel errorLabel; + private JButton buttonReloadStreamData; protected boolean lockStreamInfoGetter = false; public MainWindow() { - //TODO: Updater thread - Runnable r = new Runnable() { - @Override - public void run() { - for (final StreamConfigItem sci : - ConfigFileInstanceHandler.getConfig().getStreams()) { - Runnable r2 = new Runnable() { - @Override - public void run() { - sci.refreshInfo(); - } - }; - Thread t2 = new Thread(r2); - t2.start(); - } - makeAPause(60000); - } - private void makeAPause(long time) { - try { - System.out.println("schläft "+time/1000.0+" sek"); - Thread.sleep(time); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - }; - Thread t = new Thread(r); - t.start(); + this.startUpdaterThread(); MainWindowGate.setMainWindow(this); @@ -98,10 +72,10 @@ public class MainWindow { } } }); - buttonReloadStreamData.addActionListener(new ActionListener() { + buttonReloadAllStreamData.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - updateStreamDetails(); + startUpdaterThread(); } }); buttonSettings.addActionListener(new ActionListener() { @@ -111,6 +85,47 @@ public class MainWindow { sw.create(); } }); + buttonReloadStreamData.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + updateStreamDetails(); + } + }); + } + private void startUpdaterThread() { + Runnable r = new Runnable() { + @Override + public void run() { + for (final StreamConfigItem sci : + ConfigFileInstanceHandler.getConfig().getStreams()) { + Runnable r2 = new Runnable() { + @Override + public void run() { + sci.refreshInfo(); + } + }; + Thread t2 = new Thread(r2); + t2.start(); + } + makeAPause(60000); + + ConfigFileInstanceHandler.getConfig().replaceStreamList( + StreamConfigSorter.sortStreamItemArrayList( + ConfigFileInstanceHandler.getConfig().getStreams() + )); + refreshComboBoxes(); + } + private void makeAPause(long time) { + try { + System.out.println("schläft "+time/1000.0+" sek"); + Thread.sleep(time); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }; + Thread t = new Thread(r); + t.start(); } private void updateStreamDetails() { if (updateThread != null) { @@ -142,15 +157,19 @@ public class MainWindow { as.create(); } private void refreshComboBoxes() { + lockStreamInfoGetter = true; refreshQualityComboBox(); refreshStreamsComboBox(); + lockStreamInfoGetter = false; } protected void refreshStreamsComboBox() { + Object o = comboBoxStreams.getSelectedItem(); comboBoxStreams.removeAllItems(); for (StreamConfigItem stream : ConfigFileInstanceHandler.getConfig().getStreams()) { comboBoxStreams.addItem(stream); } + comboBoxStreams.setSelectedItem(o); } private void refreshQualityComboBox() { comboBoxQuality.removeAllItems(); diff --git a/src/com/ixab/UserInfoHandling/UserInfo.java b/src/com/ixab/UserInfoHandling/UserInfo.java index ceef3ba..58fc140 100644 --- a/src/com/ixab/UserInfoHandling/UserInfo.java +++ b/src/com/ixab/UserInfoHandling/UserInfo.java @@ -23,8 +23,8 @@ public class UserInfo { try { JSONObject followed = new JSONObject(userFollowData.get(i).toString()); JSONObject channel = new JSONObject(followed.get("channel").toString()); - System.out.println(i+" "+channel.get("display_name").toString()); //remove this line if not needed anymore - names.add(channel.get("display_name").toString()); + System.out.println(i+" "+channel.get("name").toString()); //remove this line if not needed anymore + names.add(channel.get("name").toString()); // TODO: bisher nur maximal 100 importieren wegen twitch api. } catch (JSONException e) { // workaround for stupid limit of jsonarrays of twitch's api.