diff --git a/pom.xml b/pom.xml
index 6c9cff9ca..3fde9a06b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.tonikelope
MegaBasterd
- 7.84
+ 7.85
jar
diff --git a/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java b/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java
index 1707fa6ec..104034b1d 100644
--- a/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java
+++ b/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java
@@ -143,7 +143,7 @@ public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable {
SmartMegaProxyManager proxy_manager = MainPanel.getProxy_manager();
- if (MainPanel.FORCE_SMART_PROXY) {
+ if (proxy_manager.isForce_smart_proxy()) {
String[] smart_proxy = proxy_manager.getProxy(_excluded_proxy_list);
@@ -195,7 +195,7 @@ public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable {
if (_current_smart_proxy != null && chunk_error) {
- proxy_manager.blockProxy(_current_smart_proxy, "HTTP " + String.valueOf(http_error));
+ proxy_manager.blockProxy(_current_smart_proxy, timeout ? "TIMEOUT!" : "HTTP " + String.valueOf(http_error));
String[] smart_proxy = proxy_manager.getProxy(_excluded_proxy_list);
@@ -259,7 +259,7 @@ public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable {
if (_current_smart_proxy != null) {
con.setConnectTimeout(MainPanel.getProxy_manager().getProxy_timeout());
- con.setReadTimeout(Transference.HTTP_PROXY_READ_TIMEOUT);
+ con.setReadTimeout(MainPanel.getProxy_manager().getProxy_timeout() * 2);
} else {
con.setConnectTimeout(Transference.HTTP_CONNECT_TIMEOUT);
con.setReadTimeout(Transference.HTTP_READ_TIMEOUT);
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanel.java b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
index be8d730a5..85c124b86 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanel.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
@@ -69,7 +69,7 @@ import javax.swing.UIManager;
*/
public final class MainPanel {
- public static final String VERSION = "7.84";
+ public static final String VERSION = "7.85";
public static final boolean FORCE_SMART_PROXY = false; //TRUE FOR DEBUGING SMART PROXY
public static final int THROTTLE_SLICE_SIZE = 16 * 1024;
public static final int DEFAULT_BYTE_BUFFER_SIZE = 16 * 1024;
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanelView.form b/src/main/java/com/tonikelope/megabasterd/MainPanelView.form
index 704f1e32e..98ae84919 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanelView.form
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanelView.form
@@ -384,7 +384,7 @@
-
+
@@ -534,7 +534,7 @@
-
+
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
index dc5bac076..e3bd5fd09 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
@@ -684,7 +684,7 @@ public final class MainPanelView extends javax.swing.JFrame {
force_chunk_reset_button.setBackground(new java.awt.Color(255, 0, 153));
force_chunk_reset_button.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
force_chunk_reset_button.setForeground(new java.awt.Color(255, 255, 255));
- force_chunk_reset_button.setText("FORCE ALL CURRENT CHUNK RESET");
+ force_chunk_reset_button.setText("FORCE ALL CURRENT CHUNKS RESET");
force_chunk_reset_button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
force_chunk_reset_buttonActionPerformed(evt);
@@ -696,7 +696,7 @@ public final class MainPanelView extends javax.swing.JFrame {
downloads_panelLayout.setHorizontalGroup(
downloads_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(downloads_panelLayout.createSequentialGroup()
- .addComponent(global_speed_down_label, javax.swing.GroupLayout.DEFAULT_SIZE, 484, Short.MAX_VALUE)
+ .addComponent(global_speed_down_label, javax.swing.GroupLayout.DEFAULT_SIZE, 474, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(force_chunk_reset_button)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
diff --git a/src/main/java/com/tonikelope/megabasterd/MegaAPI.java b/src/main/java/com/tonikelope/megabasterd/MegaAPI.java
index 8b58b4829..36c22a18e 100644
--- a/src/main/java/com/tonikelope/megabasterd/MegaAPI.java
+++ b/src/main/java/com/tonikelope/megabasterd/MegaAPI.java
@@ -381,7 +381,7 @@ public class MegaAPI implements Serializable {
SmartMegaProxyManager proxy_manager = MainPanel.getProxy_manager();
- if (MainPanel.FORCE_SMART_PROXY) {
+ if (proxy_manager.isForce_smart_proxy()) {
String[] smart_proxy = proxy_manager.getProxy(excluded_proxy_list);
diff --git a/src/main/java/com/tonikelope/megabasterd/MiscTools.java b/src/main/java/com/tonikelope/megabasterd/MiscTools.java
index fc86bccd1..93a9dd88c 100644
--- a/src/main/java/com/tonikelope/megabasterd/MiscTools.java
+++ b/src/main/java/com/tonikelope/megabasterd/MiscTools.java
@@ -1011,7 +1011,7 @@ public class MiscTools {
ArrayList excluded_proxy_list = new ArrayList<>();
- if (MainPanel.FORCE_SMART_PROXY) {
+ if (proxy_manager.isForce_smart_proxy()) {
String[] smart_proxy = proxy_manager.getProxy(excluded_proxy_list);
@@ -1089,8 +1089,8 @@ public class MiscTools {
}
if (current_smart_proxy != null) {
- con.setConnectTimeout(Transference.HTTP_PROXY_CONNECT_TIMEOUT);
- con.setReadTimeout(Transference.HTTP_PROXY_READ_TIMEOUT);
+ con.setConnectTimeout(MainPanel.getProxy_manager().getProxy_timeout());
+ con.setReadTimeout(MainPanel.getProxy_manager().getProxy_timeout() * 2);
}
con.setUseCaches(false);
diff --git a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form
index 3c5f55aee..3b12ddd17 100644
--- a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form
+++ b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form
@@ -38,7 +38,7 @@
-
+
@@ -478,30 +478,39 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
-
-
-
-
-
-
-
-
-
+
@@ -530,6 +539,11 @@
+
+
+
+
+
@@ -655,6 +669,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1175,7 +1205,7 @@
-
+
@@ -1225,56 +1255,41 @@
-
+
+
+
+
+
+
-
-
-
-
-
-
-
+
-
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
-
@@ -1284,28 +1299,10 @@
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -1315,14 +1312,17 @@
-
-
-
+
+
+
+
+
+
+
+
-
-
@@ -1452,7 +1452,7 @@
-
+
@@ -1542,53 +1542,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1598,65 +1551,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1737,7 +1631,215 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java
index 629d95001..1cafbae20 100644
--- a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java
+++ b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java
@@ -338,7 +338,7 @@ public class SettingsDialog extends javax.swing.JDialog {
String smartproxy_timeout = DBTools.selectSettingValue("smartproxy_timeout");
- int smartproxy_timeout_int = (int) ((float) Transference.HTTP_PROXY_CONNECT_TIMEOUT / 1000);
+ int smartproxy_timeout_int = (int) ((float) Transference.HTTP_PROXY_TIMEOUT / 1000);
if (smartproxy_timeout != null) {
smartproxy_timeout_int = Integer.parseInt(smartproxy_timeout);
@@ -585,6 +585,17 @@ public class SettingsDialog extends javax.swing.JDialog {
MiscTools.containerSetEnabled(smart_proxy_settings, use_smart_proxy);
+ boolean force_smart_proxy = MainPanel.FORCE_SMART_PROXY;
+
+ String force_smart_proxy_string = DBTools.selectSettingValue("force_smart_proxy");
+
+ if (force_smart_proxy_string != null) {
+
+ force_smart_proxy = force_smart_proxy_string.equals("yes");
+ }
+
+ force_smart_proxy_checkbox.setSelected(force_smart_proxy);
+
boolean run_command = false;
String run_command_string = DBTools.selectSettingValue("run_command");
@@ -754,6 +765,8 @@ public class SettingsDialog extends javax.swing.JDialog {
rec_smart_proxy_label2 = new javax.swing.JLabel();
rec_smart_proxy_label = new javax.swing.JLabel();
proxy_timeout_spinner = new javax.swing.JSpinner();
+ force_smart_proxy_checkbox = new javax.swing.JCheckBox();
+ jLabel7 = new javax.swing.JLabel();
uploads_scrollpane = new javax.swing.JScrollPane();
uploads_panel = new javax.swing.JPanel();
default_slots_up_label = new javax.swing.JLabel();
@@ -799,16 +812,7 @@ public class SettingsDialog extends javax.swing.JDialog {
proxy_user_textfield = new javax.swing.JTextField();
proxy_pass_label = new javax.swing.JLabel();
proxy_pass_textfield = new javax.swing.JPasswordField();
- import_settings_button = new javax.swing.JButton();
- export_settings_button = new javax.swing.JButton();
- zoom_label = new javax.swing.JLabel();
- zoom_spinner = new javax.swing.JSpinner();
rec_zoom_label = new javax.swing.JLabel();
- jButton1 = new javax.swing.JButton();
- jLabel2 = new javax.swing.JLabel();
- language_combo = new javax.swing.JComboBox<>();
- font_label = new javax.swing.JLabel();
- font_combo = new javax.swing.JComboBox<>();
custom_chunks_dir_button = new javax.swing.JButton();
custom_chunks_dir_current_label = new javax.swing.JLabel();
custom_chunks_dir_checkbox = new javax.swing.JCheckBox();
@@ -818,6 +822,18 @@ public class SettingsDialog extends javax.swing.JDialog {
run_command_textbox.addMouseListener(new ContextMenuMouseListener());
run_command_test_button = new javax.swing.JButton();
debug_file_checkbox = new javax.swing.JCheckBox();
+ jPanel1 = new javax.swing.JPanel();
+ jButton1 = new javax.swing.JButton();
+ import_settings_button = new javax.swing.JButton();
+ export_settings_button = new javax.swing.JButton();
+ jPanel2 = new javax.swing.JPanel();
+ jLabel2 = new javax.swing.JLabel();
+ font_label = new javax.swing.JLabel();
+ language_combo = new javax.swing.JComboBox<>();
+ font_combo = new javax.swing.JComboBox<>();
+ zoom_label = new javax.swing.JLabel();
+ zoom_spinner = new javax.swing.JSpinner();
+ debug_file_path = new javax.swing.JLabel();
status = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
@@ -999,31 +1015,43 @@ public class SettingsDialog extends javax.swing.JDialog {
proxy_timeout_spinner.setFont(new java.awt.Font("Noto Sans", 0, 16)); // NOI18N
proxy_timeout_spinner.setModel(new javax.swing.SpinnerNumberModel(10, 1, null, 1));
+ force_smart_proxy_checkbox.setFont(new java.awt.Font("Noto Sans", 1, 16)); // NOI18N
+ force_smart_proxy_checkbox.setText("FORCE SMART PROXY");
+
+ jLabel7.setFont(new java.awt.Font("Noto Sans", 2, 16)); // NOI18N
+ jLabel7.setText("Forces the use of smart proxy even if we still have direct bandwidth available (useful to test proxies).");
+
javax.swing.GroupLayout smart_proxy_settingsLayout = new javax.swing.GroupLayout(smart_proxy_settings);
smart_proxy_settings.setLayout(smart_proxy_settingsLayout);
smart_proxy_settingsLayout.setHorizontalGroup(
smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(smart_proxy_settingsLayout.createSequentialGroup()
- .addContainerGap()
.addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(rec_smart_proxy_label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(custom_proxy_list_label, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 1151, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(rec_smart_proxy_label)
- .addComponent(rec_smart_proxy_label2))
.addGroup(smart_proxy_settingsLayout.createSequentialGroup()
+ .addContainerGap()
.addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel3)
- .addComponent(jLabel5))
+ .addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+ .addComponent(rec_smart_proxy_label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(custom_proxy_list_label, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 1151, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(rec_smart_proxy_label)
+ .addComponent(rec_smart_proxy_label2))
+ .addGroup(smart_proxy_settingsLayout.createSequentialGroup()
+ .addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel3)
+ .addComponent(jLabel5))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+ .addComponent(bad_proxy_time_spinner)
+ .addComponent(proxy_timeout_spinner))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel4)
+ .addComponent(jLabel6)))))
+ .addGroup(smart_proxy_settingsLayout.createSequentialGroup()
+ .addComponent(force_smart_proxy_checkbox)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(bad_proxy_time_spinner)
- .addComponent(proxy_timeout_spinner))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel4)
- .addComponent(jLabel6))))
+ .addComponent(jLabel7)))
.addContainerGap())
);
smart_proxy_settingsLayout.setVerticalGroup(
@@ -1046,6 +1074,10 @@ public class SettingsDialog extends javax.swing.JDialog {
.addComponent(proxy_timeout_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(force_smart_proxy_checkbox)
+ .addComponent(jLabel7))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(custom_proxy_list_label)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 344, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -1412,7 +1444,7 @@ public class SettingsDialog extends javax.swing.JDialog {
}
});
- jLabel1.setFont(new java.awt.Font("Dialog", 0, 14)); // NOI18N
+ jLabel1.setFont(new java.awt.Font("Dialog", 2, 14)); // NOI18N
jLabel1.setText("Note: you can use a (optional) alias for your email addresses -> bob@supermail.com#bob_mail (don't forget to save after entering your accounts).");
jLabel1.setDoubleBuffered(true);
@@ -1524,7 +1556,7 @@ public class SettingsDialog extends javax.swing.JDialog {
}
});
- proxy_warning_label.setFont(new java.awt.Font("Dialog", 0, 14)); // NOI18N
+ proxy_warning_label.setFont(new java.awt.Font("Dialog", 2, 14)); // NOI18N
proxy_warning_label.setText("Note: MegaBasterd will use this proxy for ALL connections.");
proxy_warning_label.setEnabled(false);
@@ -1618,57 +1650,10 @@ public class SettingsDialog extends javax.swing.JDialog {
.addContainerGap())
);
- import_settings_button.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
- import_settings_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-import-30.png"))); // NOI18N
- import_settings_button.setText("IMPORT SETTINGS");
- import_settings_button.setDoubleBuffered(true);
- import_settings_button.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- import_settings_buttonActionPerformed(evt);
- }
- });
-
- export_settings_button.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
- export_settings_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-export-30.png"))); // NOI18N
- export_settings_button.setText("EXPORT SETTINGS");
- export_settings_button.setDoubleBuffered(true);
- export_settings_button.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- export_settings_buttonActionPerformed(evt);
- }
- });
-
- zoom_label.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
- zoom_label.setText("Font ZOOM (%):");
- zoom_label.setDoubleBuffered(true);
-
- zoom_spinner.setFont(new java.awt.Font("Dialog", 0, 18)); // NOI18N
- zoom_spinner.setDoubleBuffered(true);
-
rec_zoom_label.setFont(new java.awt.Font("Dialog", 2, 16)); // NOI18N
rec_zoom_label.setText("Note: restart might be required.");
rec_zoom_label.setDoubleBuffered(true);
- jButton1.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
- jButton1.setForeground(new java.awt.Color(255, 0, 0));
- jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-cancel-30.png"))); // NOI18N
- jButton1.setText("RESET MEGABASTERD");
- jButton1.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- jButton1ActionPerformed(evt);
- }
- });
-
- jLabel2.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
- jLabel2.setText("Language:");
-
- language_combo.setFont(new java.awt.Font("Dialog", 0, 18)); // NOI18N
-
- font_label.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
- font_label.setText("Font:");
-
- font_combo.setFont(new java.awt.Font("Dialog", 0, 18)); // NOI18N
-
custom_chunks_dir_button.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
custom_chunks_dir_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-folder-30.png"))); // NOI18N
custom_chunks_dir_button.setText("Change it");
@@ -1713,7 +1698,122 @@ public class SettingsDialog extends javax.swing.JDialog {
});
debug_file_checkbox.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
- debug_file_checkbox.setText("Save debug info to file");
+ debug_file_checkbox.setText("Save debug info to file -> ");
+
+ jButton1.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
+ jButton1.setForeground(new java.awt.Color(255, 0, 0));
+ jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-cancel-30.png"))); // NOI18N
+ jButton1.setText("RESET MEGABASTERD");
+ jButton1.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jButton1ActionPerformed(evt);
+ }
+ });
+
+ import_settings_button.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
+ import_settings_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-import-30.png"))); // NOI18N
+ import_settings_button.setText("IMPORT SETTINGS");
+ import_settings_button.setDoubleBuffered(true);
+ import_settings_button.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ import_settings_buttonActionPerformed(evt);
+ }
+ });
+
+ export_settings_button.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
+ export_settings_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-export-30.png"))); // NOI18N
+ export_settings_button.setText("EXPORT SETTINGS");
+ export_settings_button.setDoubleBuffered(true);
+ export_settings_button.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ export_settings_buttonActionPerformed(evt);
+ }
+ });
+
+ javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
+ jPanel1.setLayout(jPanel1Layout);
+ jPanel1Layout.setHorizontalGroup(
+ jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addComponent(import_settings_button)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(export_settings_button, javax.swing.GroupLayout.PREFERRED_SIZE, 232, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addContainerGap())
+ );
+ jPanel1Layout.setVerticalGroup(
+ jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(import_settings_button)
+ .addComponent(export_settings_button))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jButton1)
+ .addContainerGap())
+ );
+
+ jLabel2.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
+ jLabel2.setText("Language:");
+
+ font_label.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
+ font_label.setText("Font:");
+
+ language_combo.setFont(new java.awt.Font("Dialog", 0, 18)); // NOI18N
+
+ font_combo.setFont(new java.awt.Font("Dialog", 0, 18)); // NOI18N
+
+ zoom_label.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
+ zoom_label.setText("Font ZOOM (%):");
+ zoom_label.setDoubleBuffered(true);
+
+ zoom_spinner.setFont(new java.awt.Font("Dialog", 0, 18)); // NOI18N
+ zoom_spinner.setDoubleBuffered(true);
+
+ javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(zoom_label)
+ .addComponent(font_label))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+ .addComponent(font_combo, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(zoom_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, 351, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addComponent(jLabel2)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(language_combo, javax.swing.GroupLayout.PREFERRED_SIZE, 351, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addContainerGap())
+ );
+ jPanel2Layout.setVerticalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(font_label)
+ .addComponent(font_combo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(zoom_label)
+ .addComponent(zoom_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel2)
+ .addComponent(language_combo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap())
+ );
+
+ debug_file_path.setFont(new java.awt.Font("Noto Sans", 0, 18)); // NOI18N
+ debug_file_path.setText(MainPanel.MEGABASTERD_HOME_DIR + "/.MEGABASTERD_DEBUG.log");
javax.swing.GroupLayout advanced_panelLayout = new javax.swing.GroupLayout(advanced_panel);
advanced_panel.setLayout(advanced_panelLayout);
@@ -1723,65 +1823,39 @@ public class SettingsDialog extends javax.swing.JDialog {
.addContainerGap()
.addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(proxy_panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(advanced_panelLayout.createSequentialGroup()
+ .addComponent(run_command_test_button)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(run_command_textbox))
.addGroup(advanced_panelLayout.createSequentialGroup()
.addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(advanced_panelLayout.createSequentialGroup()
- .addComponent(zoom_label)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(zoom_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(start_frozen_checkbox)
- .addComponent(debug_file_checkbox)
.addGroup(advanced_panelLayout.createSequentialGroup()
- .addComponent(custom_chunks_dir_checkbox)
+ .addComponent(debug_file_checkbox)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(custom_chunks_dir_button))
+ .addComponent(debug_file_path))
.addGroup(advanced_panelLayout.createSequentialGroup()
.addGap(165, 165, 165)
.addComponent(custom_chunks_dir_current_label))
.addComponent(rec_zoom_label)
+ .addComponent(run_command_checkbox)
.addGroup(advanced_panelLayout.createSequentialGroup()
- .addComponent(run_command_checkbox)
+ .addComponent(custom_chunks_dir_checkbox)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(run_command_test_button))
+ .addComponent(custom_chunks_dir_button))
.addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
- .addGroup(javax.swing.GroupLayout.Alignment.LEADING, advanced_panelLayout.createSequentialGroup()
- .addComponent(jLabel2)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(language_combo, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addGroup(javax.swing.GroupLayout.Alignment.LEADING, advanced_panelLayout.createSequentialGroup()
- .addComponent(import_settings_button)
- .addGap(18, 18, 18)
- .addComponent(export_settings_button))
- .addGroup(advanced_panelLayout.createSequentialGroup()
- .addComponent(font_label)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(font_combo, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
- .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 484, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(0, 644, Short.MAX_VALUE))
- .addComponent(run_command_textbox))
+ .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
+ .addGap(0, 409, Short.MAX_VALUE)))
.addContainerGap())
);
advanced_panelLayout.setVerticalGroup(
advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(advanced_panelLayout.createSequentialGroup()
.addContainerGap()
- .addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(import_settings_button)
- .addComponent(export_settings_button))
+ .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jButton1)
- .addGap(18, 18, 18)
- .addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(font_label)
- .addComponent(font_combo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(zoom_label)
- .addComponent(zoom_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel2)
- .addComponent(language_combo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(custom_chunks_dir_checkbox)
@@ -1791,13 +1865,15 @@ public class SettingsDialog extends javax.swing.JDialog {
.addGap(18, 18, 18)
.addComponent(start_frozen_checkbox)
.addGap(18, 18, 18)
- .addComponent(debug_file_checkbox)
- .addGap(18, 18, 18)
.addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(run_command_checkbox)
- .addComponent(run_command_test_button))
+ .addComponent(debug_file_checkbox)
+ .addComponent(debug_file_path))
+ .addGap(18, 18, 18)
+ .addComponent(run_command_checkbox)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(run_command_textbox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(run_command_textbox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(run_command_test_button))
.addGap(18, 18, 18)
.addComponent(proxy_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
@@ -1825,7 +1901,7 @@ public class SettingsDialog extends javax.swing.JDialog {
.addComponent(save_button)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(cancel_button))
- .addComponent(panel_tabs, javax.swing.GroupLayout.DEFAULT_SIZE, 1030, Short.MAX_VALUE))
+ .addComponent(panel_tabs, javax.swing.GroupLayout.DEFAULT_SIZE, 935, Short.MAX_VALUE))
.addContainerGap())
);
layout.setVerticalGroup(
@@ -1910,6 +1986,7 @@ public class SettingsDialog extends javax.swing.JDialog {
settings.put("clipboardspy", clipboardspy_checkbox.isSelected() ? "yes" : "no");
settings.put("thumbnails", thumbnail_checkbox.isSelected() ? "yes" : "no");
settings.put("upload_log", upload_log_checkbox.isSelected() ? "yes" : "no");
+ settings.put("force_smart_proxy", force_smart_proxy_checkbox.isSelected() ? "yes" : "no");
settings.put("upload_public_folder", upload_public_folder_checkbox.isSelected() ? "yes" : "no");
settings.put("smartproxy_ban_time", String.valueOf(bad_proxy_time_spinner.getValue()));
settings.put("smartproxy_timeout", String.valueOf(proxy_timeout_spinner.getValue()));
@@ -3208,6 +3285,7 @@ public class SettingsDialog extends javax.swing.JDialog {
private javax.swing.JLabel custom_proxy_list_label;
private javax.swing.JTextArea custom_proxy_textarea;
private javax.swing.JCheckBox debug_file_checkbox;
+ private javax.swing.JLabel debug_file_path;
private javax.swing.JLabel default_dir_label;
private javax.swing.JLabel default_slots_down_label;
private javax.swing.JSpinner default_slots_down_spinner;
@@ -3224,6 +3302,7 @@ public class SettingsDialog extends javax.swing.JDialog {
private javax.swing.JButton export_settings_button;
private javax.swing.JComboBox font_combo;
private javax.swing.JLabel font_label;
+ private javax.swing.JCheckBox force_smart_proxy_checkbox;
private javax.swing.JButton import_mega_button;
private javax.swing.JButton import_settings_button;
private javax.swing.JButton jButton1;
@@ -3233,6 +3312,9 @@ public class SettingsDialog extends javax.swing.JDialog {
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
+ private javax.swing.JLabel jLabel7;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
private javax.swing.JProgressBar jProgressBar1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JComboBox language_combo;
diff --git a/src/main/java/com/tonikelope/megabasterd/SmartMegaProxyManager.java b/src/main/java/com/tonikelope/megabasterd/SmartMegaProxyManager.java
index b7328be81..3fa90745e 100644
--- a/src/main/java/com/tonikelope/megabasterd/SmartMegaProxyManager.java
+++ b/src/main/java/com/tonikelope/megabasterd/SmartMegaProxyManager.java
@@ -45,6 +45,7 @@ public final class SmartMegaProxyManager {
private final MainPanel _main_panel;
private volatile int _ban_time;
private volatile int _proxy_timeout;
+ private volatile boolean _force_smart_proxy;
public int getBan_time() {
return _ban_time;
@@ -54,6 +55,10 @@ public final class SmartMegaProxyManager {
return _proxy_timeout;
}
+ public boolean isForce_smart_proxy() {
+ return _force_smart_proxy;
+ }
+
public SmartMegaProxyManager(String proxy_list_url, MainPanel main_panel) {
_proxy_list_url = (proxy_list_url != null && !"".equals(proxy_list_url)) ? proxy_list_url : DEFAULT_SMART_PROXY_URL;
_proxy_list = new LinkedHashMap<>();
@@ -78,10 +83,19 @@ public final class SmartMegaProxyManager {
if (smartproxy_timeout != null) {
_proxy_timeout = Integer.parseInt(smartproxy_timeout) * 1000;
} else {
- _proxy_timeout = Transference.HTTP_PROXY_CONNECT_TIMEOUT;
+ _proxy_timeout = Transference.HTTP_PROXY_TIMEOUT;
}
- LOG.log(Level.INFO, "SmartProxy BAN_TIME: " + String.valueOf(_ban_time) + " TIMEOUT: " + String.valueOf(_proxy_timeout / 1000));
+ String force_smart_proxy_string = DBTools.selectSettingValue("force_smart_proxy");
+
+ if (force_smart_proxy_string != null) {
+
+ _force_smart_proxy = force_smart_proxy_string.equals("yes");
+ } else {
+ _force_smart_proxy = MainPanel.FORCE_SMART_PROXY;
+ }
+
+ LOG.log(Level.INFO, "SmartProxy BAN_TIME: " + String.valueOf(_ban_time) + " TIMEOUT: " + String.valueOf(_proxy_timeout / 1000) + " FORCE: " + String.valueOf(_force_smart_proxy));
}
public synchronized int getProxyCount() {
@@ -131,7 +145,7 @@ public final class SmartMegaProxyManager {
_proxy_list.remove(proxy);
- LOG.log(Level.WARNING, "{0} Smart Proxy Manager: DELETING PROXY -> {1} ({2})", new Object[]{Thread.currentThread().getName(), proxy, cause});
+ LOG.log(Level.WARNING, "[Smart Proxy] REMOVING PROXY {0} ({1})", new Object[]{proxy, cause});
} else {
@@ -141,7 +155,7 @@ public final class SmartMegaProxyManager {
_proxy_list.put(proxy, proxy_data);
- LOG.log(Level.WARNING, "{0} Smart Proxy Manager: BLOCKING PROXY -> {1} ({2} secs) ({3})", new Object[]{Thread.currentThread().getName(), proxy, this._ban_time, cause});
+ LOG.log(Level.WARNING, "[Smart Proxy] BLOCKING PROXY {0} ({1} secs) ({2})", new Object[]{proxy, _ban_time, cause});
}
}
diff --git a/src/main/java/com/tonikelope/megabasterd/StreamChunkDownloader.java b/src/main/java/com/tonikelope/megabasterd/StreamChunkDownloader.java
index e66ccd0af..12ce58a51 100644
--- a/src/main/java/com/tonikelope/megabasterd/StreamChunkDownloader.java
+++ b/src/main/java/com/tonikelope/megabasterd/StreamChunkDownloader.java
@@ -66,7 +66,7 @@ public class StreamChunkDownloader implements Runnable {
ArrayList excluded_proxy_list = new ArrayList<>();
- if (MainPanel.FORCE_SMART_PROXY) {
+ if (proxy_manager.isForce_smart_proxy()) {
String[] smart_proxy = proxy_manager.getProxy(excluded_proxy_list);
@@ -165,8 +165,8 @@ public class StreamChunkDownloader implements Runnable {
}
if (current_smart_proxy != null) {
- con.setConnectTimeout(Transference.HTTP_PROXY_CONNECT_TIMEOUT);
- con.setReadTimeout(Transference.HTTP_PROXY_READ_TIMEOUT);
+ con.setConnectTimeout(MainPanel.getProxy_manager().getProxy_timeout());
+ con.setReadTimeout(MainPanel.getProxy_manager().getProxy_timeout() * 2);
}
con.setUseCaches(false);
diff --git a/src/main/java/com/tonikelope/megabasterd/Transference.java b/src/main/java/com/tonikelope/megabasterd/Transference.java
index 5669f8637..4b69a6306 100644
--- a/src/main/java/com/tonikelope/megabasterd/Transference.java
+++ b/src/main/java/com/tonikelope/megabasterd/Transference.java
@@ -19,8 +19,7 @@ public interface Transference {
int MIN_WORKERS = 1;
int MAX_WORKERS = 20;
- int HTTP_PROXY_CONNECT_TIMEOUT = 5000;
- int HTTP_PROXY_READ_TIMEOUT = 20000;
+ int HTTP_PROXY_TIMEOUT = 5000;
int HTTP_CONNECT_TIMEOUT = 60000;
int HTTP_READ_TIMEOUT = 60000;
int MAX_SIM_TRANSFERENCES = 50;
diff --git a/src/main/resources/images/mbasterd_screen.png b/src/main/resources/images/mbasterd_screen.png
index d747a917c..b1d2a887a 100644
Binary files a/src/main/resources/images/mbasterd_screen.png and b/src/main/resources/images/mbasterd_screen.png differ