diff --git a/pom.xml b/pom.xml index 4f062054b..793333b3d 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.tonikelope MegaBasterd - 6.57 + 6.58 jar diff --git a/src/main/java/com/tonikelope/megabasterd/AboutDialog.java b/src/main/java/com/tonikelope/megabasterd/AboutDialog.java index c07346ec4..d872ef223 100644 --- a/src/main/java/com/tonikelope/megabasterd/AboutDialog.java +++ b/src/main/java/com/tonikelope/megabasterd/AboutDialog.java @@ -252,39 +252,29 @@ public class AboutDialog extends javax.swing.JDialog { final Dialog tthis = this; - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + final String new_version = checkNewVersion(MEGABASTERD_URL); - final String new_version = checkNewVersion(MEGABASTERD_URL); + swingInvoke(() -> { + if (new_version != null) { - swingInvoke(new Runnable() { - @Override - public void run() { + JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("MegaBasterd NEW VERSION is available! -> ") + new_version); - if (new_version != null) { + mcdown_url_button.setEnabled(true); - JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("MegaBasterd NEW VERSION is available! -> ") + new_version); + } else { - mcdown_url_button.setEnabled(true); + JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("You have the latest version ;)")); - } else { + mcdown_url_button.setEnabled(false); + } - JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("You have the latest version ;)")); + check_version_button.setText(old_check_version_button_text); - mcdown_url_button.setEnabled(false); - } + check_version_button.setEnabled(true); - check_version_button.setText(old_check_version_button_text); - - check_version_button.setEnabled(true); - - pack(); - - } - }); - - } + pack(); + }); }); }//GEN-LAST:event_check_version_buttonActionPerformed diff --git a/src/main/java/com/tonikelope/megabasterd/Download.java b/src/main/java/com/tonikelope/megabasterd/Download.java index 62de28ec6..1370a4cd6 100644 --- a/src/main/java/com/tonikelope/megabasterd/Download.java +++ b/src/main/java/com/tonikelope/megabasterd/Download.java @@ -216,15 +216,10 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif Download tthis = this; - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getView().getSlots_label().setForeground(Color.BLUE); - getView().getSlots_label().setForeground(Color.BLUE); - - getView().getSlots_spinner().setEnabled(false); - } + getView().getSlots_spinner().setEnabled(false); }); synchronized (_workers_lock) { @@ -240,15 +235,10 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif } - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getView().getSlots_spinner().setValue(Transference.MAX_WORKERS); - getView().getSlots_spinner().setValue(Transference.MAX_WORKERS); - - getView().getSlots_spinner().setEnabled(true); - } + getView().getSlots_spinner().setEnabled(true); }); } @@ -505,16 +495,12 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif @Override public void run() { - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().getQueue_down_button().setVisible(false); - getView().getQueue_up_button().setVisible(false); - getView().getClose_button().setVisible(false); - getView().getCopy_link_button().setVisible(true); - getView().getOpen_folder_button().setVisible(true); - } + swingInvoke(() -> { + getView().getQueue_down_button().setVisible(false); + getView().getQueue_up_button().setVisible(false); + getView().getClose_button().setVisible(false); + getView().getCopy_link_button().setVisible(true); + getView().getOpen_folder_button().setVisible(true); }); getView().printStatusNormal("Starting download, please wait..."); @@ -541,8 +527,6 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif if (!_exit) { - _progress_bar_rate = MAX_VALUE / (double) _file_size; - String temp_filename = (getCustom_chunks_dir() != null ? getCustom_chunks_dir() : _download_path) + "/" + _file_name + ".mctemp"; _file = new File(temp_filename); @@ -603,15 +587,10 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif _thread_pool.execute(c); } - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + for (JComponent c : new JComponent[]{getView().getSlots_label(), getView().getSlots_spinner(), getView().getSlot_status_label()}) { - for (JComponent c : new JComponent[]{getView().getSlots_label(), getView().getSlots_spinner(), getView().getSlot_status_label()}) { - - c.setVisible(true); - } + c.setVisible(true); } }); @@ -623,15 +602,9 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif _thread_pool.execute(c); - swingInvoke( - new Runnable() { - @Override - public void run() { - - for (JComponent c : new JComponent[]{getView().getSlots_label(), getView().getSlots_spinner(), getView().getSlot_status_label()}) { - - c.setVisible(false); - } + swingInvoke(() -> { + for (JComponent c1 : new JComponent[]{getView().getSlots_label(), getView().getSlots_spinner(), getView().getSlot_status_label()}) { + c1.setVisible(false); } }); } @@ -639,15 +612,10 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif getView().printStatusNormal(LabelTranslatorSingleton.getInstance().translate("Downloading file from mega ") + (_ma.getFull_email() != null ? "(" + _ma.getFull_email() + ")" : "") + " ..."); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + for (JComponent c : new JComponent[]{getView().getPause_button(), getView().getProgress_pbar()}) { - for (JComponent c : new JComponent[]{getView().getPause_button(), getView().getProgress_pbar()}) { - - c.setVisible(true); - } + c.setVisible(true); } }); @@ -684,15 +652,10 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif _output_stream.close(); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + for (JComponent c : new JComponent[]{getView().getSpeed_label(), getView().getPause_button(), getView().getStop_button(), getView().getSlots_label(), getView().getSlots_spinner(), getView().getKeep_temp_checkbox()}) { - for (JComponent c : new JComponent[]{getView().getSpeed_label(), getView().getPause_button(), getView().getStop_button(), getView().getSlots_label(), getView().getSlots_spinner(), getView().getKeep_temp_checkbox()}) { - - c.setVisible(false); - } + c.setVisible(false); } }); @@ -726,15 +689,10 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif getView().printStatusNormal("Checking file integrity, please wait..."); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getView().getStop_button().setVisible(true); - getView().getStop_button().setVisible(true); - - getView().getStop_button().setText(LabelTranslatorSingleton.getInstance().translate("CANCEL CHECK")); - } + getView().getStop_button().setText(LabelTranslatorSingleton.getInstance().translate("CANCEL CHECK")); }); getMain_panel().getDownload_manager().getTransference_running_list().remove(this); @@ -757,13 +715,8 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif } - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getStop_button().setVisible(false); - } + swingInvoke(() -> { + getView().getStop_button().setVisible(false); }); } else { @@ -878,34 +831,24 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif getMain_panel().getDownload_manager().getTransference_finished_queue().add(this); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getMain_panel().getDownload_manager().getScroll_panel().remove(getView()); - getMain_panel().getDownload_manager().getScroll_panel().remove(getView()); - - getMain_panel().getDownload_manager().getScroll_panel().add(getView()); - } + getMain_panel().getDownload_manager().getScroll_panel().add(getView()); }); getMain_panel().getDownload_manager().secureNotify(); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getView().getClose_button().setVisible(true); - getView().getClose_button().setVisible(true); + if (_status_error != null || _canceled) { - if (_status_error != null || _canceled) { + getView().getRestart_button().setVisible(true); - getView().getRestart_button().setVisible(true); + } else { - } else { - - getView().getClose_button().setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-ok-30.png"))); - } + getView().getClose_button().setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-ok-30.png"))); } }); @@ -916,14 +859,9 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif getView().printStatusNormal("Provisioning download, please wait..."); - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getCopy_link_button().setVisible(true); - getView().getOpen_folder_button().setVisible(true); - } + swingInvoke(() -> { + getView().getCopy_link_button().setVisible(true); + getView().getOpen_folder_button().setVisible(true); }); String[] file_info; @@ -996,46 +934,7 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif _status_error = "PROVISION FAILED"; if (_file_name != null) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getFile_name_label().setVisible(true); - - getView().getFile_name_label().setText(truncateText(_download_path + "/" + _file_name, 100)); - - getView().getFile_name_label().setToolTipText(_download_path + "/" + _file_name); - - getView().getFile_size_label().setVisible(true); - - getView().getFile_size_label().setText(formatBytes(_file_size)); - } - }); - } - - getView().hideAllExceptStatus(); - - getView().printStatusError(_status_error); - - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getRestart_button().setVisible(true); - } - }); - - } else { - - getView().printStatusNormal(_frozen ? "(FROZEN) Waiting to start..." : "Waiting to start..."); - - swingInvoke( - new Runnable() { - @Override - public void run() { - + swingInvoke(() -> { getView().getFile_name_label().setVisible(true); getView().getFile_name_label().setText(truncateText(_download_path + "/" + _file_name, 100)); @@ -1045,19 +944,40 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif getView().getFile_size_label().setVisible(true); getView().getFile_size_label().setText(formatBytes(_file_size)); - } + }); + } + + getView().hideAllExceptStatus(); + + getView().printStatusError(_status_error); + + swingInvoke(() -> { + getView().getRestart_button().setVisible(true); + }); + + } else { + + _progress_bar_rate = MAX_VALUE / (double) _file_size; + + getView().printStatusNormal(_frozen ? "(FROZEN) Waiting to start..." : "Waiting to start..."); + + swingInvoke(() -> { + getView().getFile_name_label().setVisible(true); + + getView().getFile_name_label().setText(truncateText(_download_path + "/" + _file_name, 100)); + + getView().getFile_name_label().setToolTipText(_download_path + "/" + _file_name); + + getView().getFile_size_label().setVisible(true); + + getView().getFile_size_label().setText(formatBytes(_file_size)); }); } - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getClose_button().setVisible(true); - getView().getQueue_up_button().setVisible(true); - getView().getQueue_down_button().setVisible(true); - } + swingInvoke(() -> { + getView().getClose_button().setVisible(true); + getView().getQueue_up_button().setVisible(true); + getView().getQueue_down_button().setVisible(true); }); } @@ -1070,14 +990,9 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif getView().printStatusNormal("Download paused!"); - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getPause_button().setText(LabelTranslatorSingleton.getInstance().translate("RESUME DOWNLOAD")); - getView().getPause_button().setEnabled(true); - } + swingInvoke(() -> { + getView().getPause_button().setText(LabelTranslatorSingleton.getInstance().translate("RESUME DOWNLOAD")); + getView().getPause_button().setEnabled(true); }); } @@ -1088,14 +1003,9 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif getView().printStatusNormal("Download paused!"); - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getPause_button().setText(LabelTranslatorSingleton.getInstance().translate("RESUME DOWNLOAD")); - getView().getPause_button().setEnabled(true); - } + swingInvoke(() -> { + getView().getPause_button().setText(LabelTranslatorSingleton.getInstance().translate("RESUME DOWNLOAD")); + getView().getPause_button().setEnabled(true); }); } @@ -1186,13 +1096,8 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif if (!_chunkworkers.isEmpty()) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getSlots_spinner().setEnabled(false); - } + swingInvoke(() -> { + getView().getSlots_spinner().setEnabled(false); }); int i = _chunkworkers.size() - 1; @@ -1233,28 +1138,18 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif if (_use_slots) { - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getView().getSlots_spinner().setEnabled(false); - getView().getSlots_spinner().setEnabled(false); - - getView().getSlots_spinner().setValue((int) getView().getSlots_spinner().getValue() - 1); - } + getView().getSlots_spinner().setValue((int) getView().getSlots_spinner().getValue() - 1); }); } } else if (!_finishing_download && _use_slots) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getSlots_spinner().setEnabled(true); - } + swingInvoke(() -> { + getView().getSlots_spinner().setEnabled(true); }); } @@ -1263,15 +1158,10 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif getView().printStatusNormal("Download paused!"); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getView().getPause_button().setText(LabelTranslatorSingleton.getInstance().translate("RESUME DOWNLOAD")); - getView().getPause_button().setText(LabelTranslatorSingleton.getInstance().translate("RESUME DOWNLOAD")); - - getView().getPause_button().setEnabled(true); - } + getView().getPause_button().setEnabled(true); }); } @@ -1466,17 +1356,12 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif _retrying_request = true; - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getMain_panel().getView().getNew_download_menu().setEnabled(true); - getMain_panel().getView().getNew_download_menu().setEnabled(true); + getView().getStop_button().setVisible(true); - getView().getStop_button().setVisible(true); - - getView().getStop_button().setText(LabelTranslatorSingleton.getInstance().translate("CANCEL RETRY")); - } + getView().getStop_button().setText(LabelTranslatorSingleton.getInstance().translate("CANCEL RETRY")); }); for (long i = getWaitTimeExpBackOff(retry++); i > 0 && !_exit; i--) { @@ -1504,14 +1389,9 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif if (!_exit && !error) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getStop_button().setText(LabelTranslatorSingleton.getInstance().translate("CANCEL DOWNLOAD")); - getView().getStop_button().setVisible(false); - } + swingInvoke(() -> { + getView().getStop_button().setText(LabelTranslatorSingleton.getInstance().translate("CANCEL DOWNLOAD")); + getView().getStop_button().setVisible(false); }); } @@ -1553,15 +1433,10 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif _retrying_request = true; - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getView().getStop_button().setVisible(true); - getView().getStop_button().setVisible(true); - - getView().getStop_button().setText(LabelTranslatorSingleton.getInstance().translate("CANCEL RETRY")); - } + getView().getStop_button().setText(LabelTranslatorSingleton.getInstance().translate("CANCEL RETRY")); }); for (long i = getWaitTimeExpBackOff(retry++); i > 0 && !_exit; i--) { @@ -1583,14 +1458,9 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif if (!error) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getStop_button().setText(LabelTranslatorSingleton.getInstance().translate("CANCEL DOWNLOAD")); - getView().getStop_button().setVisible(false); - } + swingInvoke(() -> { + getView().getStop_button().setText(LabelTranslatorSingleton.getInstance().translate("CANCEL DOWNLOAD")); + getView().getStop_button().setVisible(false); }); } @@ -1660,18 +1530,14 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif _progress = progress; - swingInvoke( - new Runnable() { - @Override - public void run() { + getMain_panel().getUpload_manager().increment_total_progress(_progress - old_progress); - getView().updateProgressBar(_progress, _progress_bar_rate); - } - }); + int old_percent_progress = (int) Math.floor(((double) old_progress / _file_size) * 100); - if (!isChecking_cbc()) { + int new_percent_progress = (int) Math.floor(((double) progress / _file_size) * 100); - getMain_panel().getDownload_manager().increment_total_progress(_progress - old_progress); + if (new_percent_progress > old_percent_progress) { + getView().updateProgressBar(_progress, _progress_bar_rate); } } } diff --git a/src/main/java/com/tonikelope/megabasterd/DownloadManager.java b/src/main/java/com/tonikelope/megabasterd/DownloadManager.java index eac62d4c1..3294c00fc 100644 --- a/src/main/java/com/tonikelope/megabasterd/DownloadManager.java +++ b/src/main/java/com/tonikelope/megabasterd/DownloadManager.java @@ -31,12 +31,8 @@ public class DownloadManager extends TransferenceManager { for (final Transference d : downloads) { - swingInvoke( - new Runnable() { - @Override - public void run() { - getScroll_panel().remove(((Download) d).getView()); - } + swingInvoke(() -> { + getScroll_panel().remove(((Download) d).getView()); }); getTransference_waitstart_queue().remove(d); @@ -70,12 +66,8 @@ public class DownloadManager extends TransferenceManager { @Override public void provision(final Transference download) { - swingInvoke( - new Runnable() { - @Override - public void run() { - getScroll_panel().add(((Download) download).getView()); - } + swingInvoke(() -> { + getScroll_panel().add(((Download) download).getView()); }); try { @@ -88,22 +80,17 @@ public class DownloadManager extends TransferenceManager { LOG.log(Level.INFO, "{0} Provision failed! Retrying in separated thread...", Thread.currentThread().getName()); - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + try { - try { + _provision((Download) download, true); - _provision((Download) download, true); - - } catch (APIException ex1) { - - LOG.log(SEVERE, null, ex1); - } - - secureNotify(); + } catch (APIException ex1) { + LOG.log(SEVERE, null, ex1); } + + secureNotify(); }); } @@ -132,23 +119,15 @@ public class DownloadManager extends TransferenceManager { getTransference_waitstart_queue().addAll(aux); getTransference_waitstart_queue().forEach((t1) -> { - swingInvoke( - new Runnable() { - @Override - public void run() { - getScroll_panel().remove((Component) t1.getView()); - getScroll_panel().add((Component) t1.getView()); - } + swingInvoke(() -> { + getScroll_panel().remove((Component) t1.getView()); + getScroll_panel().add((Component) t1.getView()); }); }); getTransference_finished_queue().forEach((t2) -> { - swingInvoke( - new Runnable() { - @Override - public void run() { - getScroll_panel().remove((Component) t2.getView()); - getScroll_panel().add((Component) t2.getView()); - } + swingInvoke(() -> { + getScroll_panel().remove((Component) t2.getView()); + getScroll_panel().add((Component) t2.getView()); }); }); diff --git a/src/main/java/com/tonikelope/megabasterd/DownloadView.java b/src/main/java/com/tonikelope/megabasterd/DownloadView.java index 5465305dd..f0b593faf 100644 --- a/src/main/java/com/tonikelope/megabasterd/DownloadView.java +++ b/src/main/java/com/tonikelope/megabasterd/DownloadView.java @@ -123,20 +123,15 @@ public class DownloadView extends javax.swing.JPanel implements TransferenceView public void hideAllExceptStatus() { - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + for (JComponent c : new JComponent[]{speed_label, slots_spinner, slots_label, slot_status_label, slot_status_label, pause_button, stop_button, progress_pbar, keep_temp_checkbox}) { - for (JComponent c : new JComponent[]{speed_label, slots_spinner, slots_label, slot_status_label, slot_status_label, pause_button, stop_button, progress_pbar, keep_temp_checkbox}) { + c.setVisible(false); + } - c.setVisible(false); - } + for (JComponent c : new JComponent[]{status_label, file_name_label, file_size_label}) { - for (JComponent c : new JComponent[]{status_label, file_name_label, file_size_label}) { - - c.setVisible(true); - } + c.setVisible(true); } }); } @@ -381,15 +376,9 @@ public class DownloadView extends javax.swing.JPanel implements TransferenceView private void slots_spinnerStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_slots_spinnerStateChanged - THREAD_POOL.execute(new Runnable() { - - @Override - public void run() { - - if (_download.isUse_slots()) { - _download.checkSlotsAndWorkers(); - } - + THREAD_POOL.execute(() -> { + if (_download.isUse_slots()) { + _download.checkSlotsAndWorkers(); } }); }//GEN-LAST:event_slots_spinnerStateChanged @@ -439,23 +428,11 @@ public class DownloadView extends javax.swing.JPanel implements TransferenceView queue_up_button.setEnabled(false); - THREAD_POOL.execute(new Runnable() { - - @Override - public void run() { - - _download.upWaitQueue(); - - swingInvoke( - new Runnable() { - @Override - public void run() { - - queue_up_button.setEnabled(true); - } - }); - - } + THREAD_POOL.execute(() -> { + _download.upWaitQueue(); + swingInvoke(() -> { + queue_up_button.setEnabled(true); + }); }); }//GEN-LAST:event_queue_up_buttonActionPerformed @@ -464,23 +441,11 @@ public class DownloadView extends javax.swing.JPanel implements TransferenceView queue_down_button.setEnabled(false); - THREAD_POOL.execute(new Runnable() { - - @Override - public void run() { - - _download.downWaitQueue(); - - swingInvoke( - new Runnable() { - @Override - public void run() { - - queue_down_button.setEnabled(true); - } - }); - - } + THREAD_POOL.execute(() -> { + _download.downWaitQueue(); + swingInvoke(() -> { + queue_down_button.setEnabled(true); + }); }); }//GEN-LAST:event_queue_down_buttonActionPerformed @@ -489,20 +454,15 @@ public class DownloadView extends javax.swing.JPanel implements TransferenceView printStatusNormal("Pausing download ..."); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + for (JComponent c : new JComponent[]{pause_button, speed_label, slots_label, slots_spinner, progress_pbar, file_name_label, file_size_label}) { - for (JComponent c : new JComponent[]{pause_button, speed_label, slots_label, slots_spinner, progress_pbar, file_name_label, file_size_label}) { + c.setEnabled(false); + } - c.setEnabled(false); - } + for (JComponent c : new JComponent[]{stop_button, keep_temp_checkbox}) { - for (JComponent c : new JComponent[]{stop_button, keep_temp_checkbox}) { - - c.setVisible(true); - } + c.setVisible(true); } }); } @@ -512,24 +472,19 @@ public class DownloadView extends javax.swing.JPanel implements TransferenceView printStatusNormal("Downloading file from mega ..."); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + for (JComponent c : new JComponent[]{pause_button, speed_label, slots_label, slots_spinner, progress_pbar, file_name_label, file_size_label}) { - for (JComponent c : new JComponent[]{pause_button, speed_label, slots_label, slots_spinner, progress_pbar, file_name_label, file_size_label}) { - - c.setEnabled(true); - } - - for (JComponent c : new JComponent[]{stop_button, keep_temp_checkbox}) { - - c.setVisible(false); - } - - pause_button.setText(LabelTranslatorSingleton.getInstance().translate("PAUSE DOWNLOAD")); - _download.getMain_panel().getView().getPause_all_down_button().setVisible(true); + c.setEnabled(true); } + + for (JComponent c : new JComponent[]{stop_button, keep_temp_checkbox}) { + + c.setVisible(false); + } + + pause_button.setText(LabelTranslatorSingleton.getInstance().translate("PAUSE DOWNLOAD")); + _download.getMain_panel().getView().getPause_all_down_button().setVisible(true); }); } @@ -539,16 +494,10 @@ public class DownloadView extends javax.swing.JPanel implements TransferenceView printStatusNormal(status); - swingInvoke( - new Runnable() { - @Override - public void run() { - - for (JComponent c : new JComponent[]{pause_button, keep_temp_checkbox, stop_button, speed_label, slots_label, slots_spinner, progress_pbar, file_name_label, file_size_label}) { - - c.setEnabled(false); - } + swingInvoke(() -> { + for (JComponent c : new JComponent[]{pause_button, keep_temp_checkbox, stop_button, speed_label, slots_label, slots_spinner, progress_pbar, file_name_label, file_size_label}) { + c.setEnabled(false); } }); @@ -557,18 +506,13 @@ public class DownloadView extends javax.swing.JPanel implements TransferenceView @Override public void updateSpeed(final String speed, final Boolean visible) { - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + if (speed != null) { + speed_label.setText(speed); + } - if (speed != null) { - speed_label.setText(speed); - } - - if (visible != null) { - speed_label.setVisible(visible); - } + if (visible != null) { + speed_label.setVisible(visible); } }); } @@ -576,67 +520,42 @@ public class DownloadView extends javax.swing.JPanel implements TransferenceView @Override public void updateProgressBar(final long progress, final double bar_rate) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - progress_pbar.setValue((int) Math.floor(bar_rate * progress)); - } + swingInvoke(() -> { + progress_pbar.setValue((int) Math.floor(bar_rate * progress)); }); } @Override public void updateProgressBar(final int value) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - progress_pbar.setValue(value); - } + swingInvoke(() -> { + progress_pbar.setValue(value); }); } @Override public void printStatusError(final String message) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - status_label.setForeground(Color.red); - status_label.setText(LabelTranslatorSingleton.getInstance().translate(message)); - } + swingInvoke(() -> { + status_label.setForeground(Color.red); + status_label.setText(LabelTranslatorSingleton.getInstance().translate(message)); }); } @Override public void printStatusOK(final String message) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - status_label.setForeground(new Color(0, 170, 0)); - status_label.setText(LabelTranslatorSingleton.getInstance().translate(message)); - } + swingInvoke(() -> { + status_label.setForeground(new Color(0, 170, 0)); + status_label.setText(LabelTranslatorSingleton.getInstance().translate(message)); }); } @Override public void printStatusNormal(final String message) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - status_label.setForeground(new Color(102, 102, 102)); - status_label.setText(LabelTranslatorSingleton.getInstance().translate(message)); - } + swingInvoke(() -> { + status_label.setForeground(new Color(102, 102, 102)); + status_label.setText(LabelTranslatorSingleton.getInstance().translate(message)); }); } @@ -658,40 +577,21 @@ public class DownloadView extends javax.swing.JPanel implements TransferenceView final String status = (conta_exit > 0 ? "Tot removing: " + conta_exit : "") + (conta_error > 0 ? ((conta_exit > 0 ? " / " : "") + "Tot error: " + conta_error) : ""); - swingInvoke(new Runnable() { - @Override - public void run() { - slot_status_label.setForeground(status_color); - slot_status_label.setText(LabelTranslatorSingleton.getInstance().translate(status)); - } + swingInvoke(() -> { + slot_status_label.setForeground(status_color); + slot_status_label.setText(LabelTranslatorSingleton.getInstance().translate(status)); }); } } @Override public int getSlots() { - return (int) swingInvokeAndWaitForReturn(new Callable() { - - @Override - public Object call() throws Exception { - - return getSlots_spinner().getValue(); - } - - }); + return (int) swingInvokeAndWaitForReturn((Callable) getSlots_spinner()::getValue); } public boolean isKeepTempFileSelected() { - return (boolean) swingInvokeAndWaitForReturn(new Callable() { - - @Override - public Object call() throws Exception { - - return getKeep_temp_checkbox().isSelected(); - } - - }); + return (boolean) swingInvokeAndWaitForReturn((Callable) getKeep_temp_checkbox()::isSelected); } // Variables declaration - do not modify//GEN-BEGIN:variables diff --git a/src/main/java/com/tonikelope/megabasterd/FileDropHandler.java b/src/main/java/com/tonikelope/megabasterd/FileDropHandler.java index 5625aba81..b9a03fb99 100644 --- a/src/main/java/com/tonikelope/megabasterd/FileDropHandler.java +++ b/src/main/java/com/tonikelope/megabasterd/FileDropHandler.java @@ -69,11 +69,8 @@ class FileDropHandler extends TransferHandler { return false; } - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { - _notifiable.file_drop_notify(files); - } + THREAD_POOL.execute(() -> { + _notifiable.file_drop_notify(files); }); return true; diff --git a/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.java b/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.java index 02695b8f4..e34b16250 100644 --- a/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.java +++ b/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.java @@ -99,64 +99,46 @@ public class FileGrabberDialog extends javax.swing.JDialog implements FileDropHa pack(); - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + if (_drag_drop_files != null) { - if (_drag_drop_files != null) { + file_drop_notify(_drag_drop_files); + } + if (_main_panel.getMega_accounts().size() > 0) { + swingInvoke(() -> { + if (!_main_panel.getMega_active_accounts().isEmpty()) { + _inserting_mega_accounts = true; - file_drop_notify(_drag_drop_files); - } + _main_panel.getMega_accounts().keySet().forEach((o) -> { + account_combobox.addItem(o); + }); - if (_main_panel.getMega_accounts().size() > 0) { + _inserting_mega_accounts = false; - swingInvoke(new Runnable() { - @Override - public void run() { + for (Object o : _main_panel.getMega_active_accounts().keySet()) { - if (!_main_panel.getMega_active_accounts().isEmpty()) { - _inserting_mega_accounts = true; + account_combobox.setSelectedItem(o); - _main_panel.getMega_accounts().keySet().forEach((o) -> { - account_combobox.addItem(o); - }); - - _inserting_mega_accounts = false; - - for (Object o : _main_panel.getMega_active_accounts().keySet()) { - - account_combobox.setSelectedItem(o); - - account_comboboxItemStateChanged(null); - - break; - } - - } else { - - _main_panel.getMega_accounts().keySet().forEach((o) -> { - account_combobox.addItem(o); - }); - } - - pack(); + account_comboboxItemStateChanged(null); + break; } - }); - } else { - swingInvoke(new Runnable() { - @Override - public void run() { + } else { - used_space_label.setForeground(Color.red); - used_space_label.setEnabled(true); - used_space_label.setText(LabelTranslatorSingleton.getInstance().translate("No MEGA accounts available (Go to Settings > Accounts)")); - - } - }); - } + _main_panel.getMega_accounts().keySet().forEach((o) -> { + account_combobox.addItem(o); + }); + } + pack(); + }); + } else { + swingInvoke(() -> { + used_space_label.setForeground(Color.red); + used_space_label.setEnabled(true); + used_space_label.setText(LabelTranslatorSingleton.getInstance().translate("No MEGA accounts available (Go to Settings > Accounts)")); + }); } }); @@ -455,36 +437,26 @@ public class FileGrabberDialog extends javax.swing.JDialog implements FileDropHa file_tree.setModel(tree_model); - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + _genFileList(); + swingInvoke(() -> { + add_files_button.setEnabled(true); - _genFileList(); + add_folder_button.setEnabled(true); - swingInvoke(new Runnable() { - @Override - public void run() { - add_files_button.setEnabled(true); + add_files_button.setText(LabelTranslatorSingleton.getInstance().translate("Add files")); - add_folder_button.setEnabled(true); + boolean root_childs = ((TreeNode) tree_model.getRoot()).getChildCount() > 0; - add_files_button.setText(LabelTranslatorSingleton.getInstance().translate("Add files")); - - boolean root_childs = ((TreeNode) tree_model.getRoot()).getChildCount() > 0; - - file_tree.setRootVisible(root_childs); - file_tree.setEnabled(root_childs); - warning_label.setEnabled(root_childs); - dance_button.setEnabled(root_childs); - total_file_size_label.setEnabled(root_childs); - skip_button.setEnabled(root_childs); - skip_rest_button.setEnabled(root_childs); - upload_log_checkbox.setEnabled(root_childs); - - } - }); - - } + file_tree.setRootVisible(root_childs); + file_tree.setEnabled(root_childs); + warning_label.setEnabled(root_childs); + dance_button.setEnabled(root_childs); + total_file_size_label.setEnabled(root_childs); + skip_button.setEnabled(root_childs); + skip_rest_button.setEnabled(root_childs); + upload_log_checkbox.setEnabled(root_childs); + }); }); } else { @@ -539,66 +511,43 @@ public class FileGrabberDialog extends javax.swing.JDialog implements FileDropHa if (filechooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION && filechooser.getSelectedFile().canRead()) { - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + swingInvoke(() -> { + total_file_size_label.setText("[0 B]"); - swingInvoke(new Runnable() { - @Override - public void run() { - total_file_size_label.setText("[0 B]"); + _base_path = filechooser.getSelectedFile().getAbsolutePath(); - _base_path = filechooser.getSelectedFile().getAbsolutePath(); + dir_name_textfield.setText(filechooser.getSelectedFile().getName() + "_" + genID(10)); - dir_name_textfield.setText(filechooser.getSelectedFile().getName() + "_" + genID(10)); + dir_name_textfield.setEnabled(true); - dir_name_textfield.setEnabled(true); + dir_name_label.setEnabled(true); + }); + DefaultMutableTreeNode root = new DefaultMutableTreeNode(filechooser.getSelectedFile().getAbsolutePath()); + _genFileTree(filechooser.getSelectedFile().getAbsolutePath(), root, null); + DefaultTreeModel tree_model = new DefaultTreeModel(sortTree(root)); + swingInvoke(() -> { + file_tree.setModel(tree_model); + }); + _genFileList(); + swingInvoke(() -> { + add_files_button.setEnabled(true); - dir_name_label.setEnabled(true); - } - }); + add_folder_button.setEnabled(true); - DefaultMutableTreeNode root = new DefaultMutableTreeNode(filechooser.getSelectedFile().getAbsolutePath()); + add_folder_button.setText(LabelTranslatorSingleton.getInstance().translate("Add folder")); - _genFileTree(filechooser.getSelectedFile().getAbsolutePath(), root, null); + boolean root_childs = ((TreeNode) tree_model.getRoot()).getChildCount() > 0; - DefaultTreeModel tree_model = new DefaultTreeModel(sortTree(root)); - - swingInvoke(new Runnable() { - @Override - public void run() { - file_tree.setModel(tree_model); - - } - }); - - _genFileList(); - - swingInvoke(new Runnable() { - @Override - public void run() { - - add_files_button.setEnabled(true); - - add_folder_button.setEnabled(true); - - add_folder_button.setText(LabelTranslatorSingleton.getInstance().translate("Add folder")); - - boolean root_childs = ((TreeNode) tree_model.getRoot()).getChildCount() > 0; - - file_tree.setRootVisible(root_childs); - file_tree.setEnabled(root_childs); - warning_label.setEnabled(root_childs); - dance_button.setEnabled(root_childs); - total_file_size_label.setEnabled(root_childs); - skip_button.setEnabled(root_childs); - skip_rest_button.setEnabled(root_childs); - upload_log_checkbox.setEnabled(root_childs); - - } - }); - - } + file_tree.setRootVisible(root_childs); + file_tree.setEnabled(root_childs); + warning_label.setEnabled(root_childs); + dance_button.setEnabled(root_childs); + total_file_size_label.setEnabled(root_childs); + skip_button.setEnabled(root_childs); + skip_rest_button.setEnabled(root_childs); + upload_log_checkbox.setEnabled(root_childs); + }); }); } else { @@ -664,98 +613,48 @@ public class FileGrabberDialog extends javax.swing.JDialog implements FileDropHa warning_label.setEnabled(false); file_tree.setEnabled(false); - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + MegaAPI ma = null; + try { + _quota_ok = false; + ma = checkMegaAccountLoginAndShowMasterPassDialog(_main_panel, tthis, email); + Long[] quota = ma.getQuota(); + if (isDisplayable()) { + if (quota != null) { + final Color used_space_color; + if (quota[0] <= Math.round((double) quota[1] / 2)) { - MegaAPI ma = null; - try { + used_space_color = new Color(0, 170, 0); - _quota_ok = false; + } else if (quota[0] < quota[1]) { - ma = checkMegaAccountLoginAndShowMasterPassDialog(_main_panel, tthis, email); - - Long[] quota = ma.getQuota(); - - if (isDisplayable()) { - if (quota != null) { - - final Color used_space_color; - - if (quota[0] <= Math.round((double) quota[1] / 2)) { - - used_space_color = new Color(0, 170, 0); - - } else if (quota[0] < quota[1]) { - - used_space_color = new Color(230, 115, 0); - - } else { - - used_space_color = Color.red; - } - - final String quota_m = LabelTranslatorSingleton.getInstance().translate("Quota used: ") + formatBytes(quota[0]) + "/" + formatBytes(quota[1]); - - _quota_ok = true; - - swingInvoke(new Runnable() { - @Override - public void run() { - boolean root_childs = ((TreeNode) file_tree.getModel().getRoot()).getChildCount() > 0; - - used_space_label.setText(quota_m); - - used_space_label.setForeground(used_space_color); - - for (JComponent c : new JComponent[]{used_space_label, add_files_button, add_folder_button, account_combobox, account_label, upload_log_checkbox}) { - - c.setEnabled(true); - } - - for (JComponent c : new JComponent[]{dir_name_textfield, dir_name_label, warning_label, dance_button, file_tree, total_file_size_label, skip_button, skip_rest_button}) { - - c.setEnabled(root_childs); - } - } - }); + used_space_color = new Color(230, 115, 0); } else { - swingInvoke(new Runnable() { - @Override - public void run() { - - account_combobox.setEnabled(true); - account_label.setEnabled(true); - account_combobox.setSelectedIndex(-1); - used_space_label.setForeground(Color.red); - used_space_label.setText(LabelTranslatorSingleton.getInstance().translate("ERROR checking account quota!")); - used_space_label.setEnabled(true); - _last_selected_index = account_combobox.getSelectedIndex(); - dance_button.setEnabled(false); - total_file_size_label.setEnabled(false); - skip_button.setEnabled(false); - skip_rest_button.setEnabled(false); - warning_label.setEnabled(false); - file_tree.setEnabled(false); - add_files_button.setEnabled(false); - add_folder_button.setEnabled(false); - upload_log_checkbox.setEnabled(false); - dir_name_textfield.setEnabled(false); - dir_name_label.setEnabled(false); - } - }); - + used_space_color = Color.red; } - } + final String quota_m = LabelTranslatorSingleton.getInstance().translate("Quota used: ") + formatBytes(quota[0]) + "/" + formatBytes(quota[1]); + _quota_ok = true; + swingInvoke(() -> { + boolean root_childs = ((TreeNode) file_tree.getModel().getRoot()).getChildCount() > 0; - } catch (Exception ex) { + used_space_label.setText(quota_m); - swingInvoke(new Runnable() { - @Override - public void run() { + used_space_label.setForeground(used_space_color); + for (JComponent c : new JComponent[]{used_space_label, add_files_button, add_folder_button, account_combobox, account_label, upload_log_checkbox}) { + + c.setEnabled(true); + } + + for (JComponent c : new JComponent[]{dir_name_textfield, dir_name_label, warning_label, dance_button, file_tree, total_file_size_label, skip_button, skip_rest_button}) { + + c.setEnabled(root_childs); + } + }); + } else { + swingInvoke(() -> { account_combobox.setEnabled(true); account_label.setEnabled(true); account_combobox.setSelectedIndex(-1); @@ -774,11 +673,30 @@ public class FileGrabberDialog extends javax.swing.JDialog implements FileDropHa upload_log_checkbox.setEnabled(false); dir_name_textfield.setEnabled(false); dir_name_label.setEnabled(false); - } - }); - + }); + } } - + } catch (Exception ex) { + swingInvoke(() -> { + account_combobox.setEnabled(true); + account_label.setEnabled(true); + account_combobox.setSelectedIndex(-1); + used_space_label.setForeground(Color.red); + used_space_label.setText(LabelTranslatorSingleton.getInstance().translate("ERROR checking account quota!")); + used_space_label.setEnabled(true); + _last_selected_index = account_combobox.getSelectedIndex(); + dance_button.setEnabled(false); + total_file_size_label.setEnabled(false); + skip_button.setEnabled(false); + skip_rest_button.setEnabled(false); + warning_label.setEnabled(false); + file_tree.setEnabled(false); + add_files_button.setEnabled(false); + add_folder_button.setEnabled(false); + upload_log_checkbox.setEnabled(false); + dir_name_textfield.setEnabled(false); + dir_name_label.setEnabled(false); + }); } }); @@ -866,12 +784,7 @@ public class FileGrabberDialog extends javax.swing.JDialog implements FileDropHa _total_space = 0L; - DefaultTreeModel tree_model = (DefaultTreeModel) swingInvokeAndWaitForReturn(new Callable() { - @Override - public Object call() { - return file_tree.getModel(); - } - }); + DefaultTreeModel tree_model = (DefaultTreeModel) swingInvokeAndWaitForReturn((Callable) file_tree::getModel); DefaultMutableTreeNode root = (DefaultMutableTreeNode) tree_model.getRoot(); @@ -905,11 +818,8 @@ public class FileGrabberDialog extends javax.swing.JDialog implements FileDropHa } } - swingInvoke(new Runnable() { - @Override - public void run() { - total_file_size_label.setText("[" + formatBytes(_total_space) + "]"); - } + swingInvoke(() -> { + total_file_size_label.setText("[" + formatBytes(_total_space) + "]"); }); } @@ -938,82 +848,61 @@ public class FileGrabberDialog extends javax.swing.JDialog implements FileDropHa @Override public void file_drop_notify(List files) { - swingInvoke(new Runnable() { - @Override - public void run() { - add_files_button.setEnabled(false); - add_folder_button.setEnabled(false); - warning_label.setEnabled(false); - skip_button.setEnabled(false); - skip_rest_button.setEnabled(false); - dance_button.setEnabled(false); - dir_name_textfield.setEnabled(false); - dir_name_label.setEnabled(false); - upload_log_checkbox.setEnabled(false); - total_file_size_label.setText("[0 B]"); - - } + swingInvoke(() -> { + add_files_button.setEnabled(false); + add_folder_button.setEnabled(false); + warning_label.setEnabled(false); + skip_button.setEnabled(false); + skip_rest_button.setEnabled(false); + dance_button.setEnabled(false); + dir_name_textfield.setEnabled(false); + dir_name_label.setEnabled(false); + upload_log_checkbox.setEnabled(false); + total_file_size_label.setText("[0 B]"); }); _base_path = (files.size() == 1 && files.get(0).isDirectory()) ? files.get(0).getAbsolutePath() : files.get(0).getParentFile().getAbsolutePath(); - swingInvoke(new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + dir_name_textfield.setText(((files.size() == 1 && files.get(0).isDirectory()) ? files.get(0).getName() : files.get(0).getParentFile().getName()) + "_" + genID(10)); - dir_name_textfield.setText(((files.size() == 1 && files.get(0).isDirectory()) ? files.get(0).getName() : files.get(0).getParentFile().getName()) + "_" + genID(10)); + dir_name_textfield.setEnabled(true); - dir_name_textfield.setEnabled(true); - - dir_name_label.setEnabled(true); - - } + dir_name_label.setEnabled(true); }); DefaultMutableTreeNode root = new DefaultMutableTreeNode(_base_path); - swingInvoke(new Runnable() { - @Override - public void run() { - dance_button.setText(LabelTranslatorSingleton.getInstance().translate("Loading files, please wait...")); - } + swingInvoke(() -> { + dance_button.setText(LabelTranslatorSingleton.getInstance().translate("Loading files, please wait...")); }); _genFileTree(_base_path, root, files.toArray(new File[files.size()])); DefaultTreeModel tree_model = new DefaultTreeModel(sortTree(root)); - swingInvoke(new Runnable() { - @Override - public void run() { - file_tree.setModel(tree_model); - - } + swingInvoke(() -> { + file_tree.setModel(tree_model); }); _genFileList(); - swingInvoke(new Runnable() { - @Override - public void run() { - - dance_button.setText(LabelTranslatorSingleton.getInstance().translate("Let's dance baby")); - - if (_last_selected_index != -1 && _quota_ok) { - add_files_button.setEnabled(true); - add_folder_button.setEnabled(true); - file_tree.setRootVisible(true); - file_tree.setEnabled(true); - warning_label.setEnabled(true); - dance_button.setEnabled(true); - total_file_size_label.setEnabled(true); - skip_button.setEnabled(true); - skip_rest_button.setEnabled(true); - dir_name_textfield.setEnabled(true); - dir_name_label.setEnabled(true); - upload_log_checkbox.setEnabled(true); - } + swingInvoke(() -> { + dance_button.setText(LabelTranslatorSingleton.getInstance().translate("Let's dance baby")); + if (_last_selected_index != -1 && _quota_ok) { + add_files_button.setEnabled(true); + add_folder_button.setEnabled(true); + file_tree.setRootVisible(true); + file_tree.setEnabled(true); + warning_label.setEnabled(true); + dance_button.setEnabled(true); + total_file_size_label.setEnabled(true); + skip_button.setEnabled(true); + skip_rest_button.setEnabled(true); + dir_name_textfield.setEnabled(true); + dir_name_label.setEnabled(true); + upload_log_checkbox.setEnabled(true); } }); } diff --git a/src/main/java/com/tonikelope/megabasterd/FileMergerDialog.java b/src/main/java/com/tonikelope/megabasterd/FileMergerDialog.java index 3b5d7f35e..129a64601 100644 --- a/src/main/java/com/tonikelope/megabasterd/FileMergerDialog.java +++ b/src/main/java/com/tonikelope/megabasterd/FileMergerDialog.java @@ -82,13 +82,8 @@ public class FileMergerDialog extends javax.swing.JDialog { _progress += rfile.length(); - swingInvoke( - new Runnable() { - @Override - public void run() { - - jProgressBar2.setValue((int) Math.floor((MAX_VALUE / (double) _file_size) * _progress)); - } + swingInvoke(() -> { + jProgressBar2.setValue((int) Math.floor((MAX_VALUE / (double) _file_size) * _progress)); }); } } @@ -358,85 +353,67 @@ public class FileMergerDialog extends javax.swing.JDialog { Dialog tthis = this; - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { - - try { - if (_mergeFile()) { - if (delete_parts_checkbox.isSelected()) { - _deleteParts(); - } - swingInvoke( - new Runnable() { - @Override - public void run() { - - JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("File successfully merged!")); - - if (Desktop.isDesktopSupported()) { - try { - Desktop.getDesktop().open(new File(file_name_label.getText()).getParentFile()); - } catch (IOException ex) { - - } - } - - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - - setVisible(false); - } - }); - - } else { - _file_parts.clear(); - - swingInvoke( - new Runnable() { - @Override - public void run() { - - file_name_label.setText(""); - - file_size_label.setText(""); - - output_folder_label.setText(""); - - _output_dir = null; - - _file_name = null; - - _file_size = 0L; - - _progress = 0L; - - jProgressBar2.setMinimum(0); - jProgressBar2.setMaximum(MAX_VALUE); - jProgressBar2.setStringPainted(true); - jProgressBar2.setValue(0); - jProgressBar2.setVisible(false); - - merge_button.setText(LabelTranslatorSingleton.getInstance().translate("MERGE FILE")); - - file_button.setEnabled(true); - - output_button.setEnabled(true); - - merge_button.setEnabled(true); - - delete_parts_checkbox.setEnabled(true); - - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - - pack(); - - } - }); + THREAD_POOL.execute(() -> { + try { + if (_mergeFile()) { + if (delete_parts_checkbox.isSelected()) { + _deleteParts(); } - } catch (IOException ex) { - Logger.getLogger(FileMergerDialog.class.getName()).log(Level.SEVERE, ex.getMessage()); - } + swingInvoke(() -> { + JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("File successfully merged!")); + if (Desktop.isDesktopSupported()) { + try { + Desktop.getDesktop().open(new File(file_name_label.getText()).getParentFile()); + } catch (IOException ex) { + + } + } + + setDefaultCloseOperation(DISPOSE_ON_CLOSE); + + setVisible(false); + }); + } else { + _file_parts.clear(); + swingInvoke(() -> { + file_name_label.setText(""); + + file_size_label.setText(""); + + output_folder_label.setText(""); + + _output_dir = null; + + _file_name = null; + + _file_size = 0L; + + _progress = 0L; + + jProgressBar2.setMinimum(0); + jProgressBar2.setMaximum(MAX_VALUE); + jProgressBar2.setStringPainted(true); + jProgressBar2.setValue(0); + jProgressBar2.setVisible(false); + + merge_button.setText(LabelTranslatorSingleton.getInstance().translate("MERGE FILE")); + + file_button.setEnabled(true); + + output_button.setEnabled(true); + + merge_button.setEnabled(true); + + delete_parts_checkbox.setEnabled(true); + + setDefaultCloseOperation(DISPOSE_ON_CLOSE); + + pack(); + }); + } + } catch (IOException ex) { + Logger.getLogger(FileMergerDialog.class.getName()).log(Level.SEVERE, ex.getMessage()); } }); diff --git a/src/main/java/com/tonikelope/megabasterd/FileSplitterDialog.java b/src/main/java/com/tonikelope/megabasterd/FileSplitterDialog.java index c6663c169..b97f0ecfd 100644 --- a/src/main/java/com/tonikelope/megabasterd/FileSplitterDialog.java +++ b/src/main/java/com/tonikelope/megabasterd/FileSplitterDialog.java @@ -113,13 +113,8 @@ public class FileSplitterDialog extends javax.swing.JDialog { _progress += byteSize; - swingInvoke( - new Runnable() { - @Override - public void run() { - - jProgressBar2.setValue((int) Math.floor((MAX_VALUE / (double) _file.length()) * _progress)); - } + swingInvoke(() -> { + jProgressBar2.setValue((int) Math.floor((MAX_VALUE / (double) _file.length()) * _progress)); }); } @@ -358,80 +353,61 @@ public class FileSplitterDialog extends javax.swing.JDialog { Dialog tthis = this; - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + try { + if (_splitFile()) { + swingInvoke(() -> { + JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("File successfully splitted!")); - try { - if (_splitFile()) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("File successfully splitted!")); - - if (Desktop.isDesktopSupported()) { - try { - Desktop.getDesktop().open(_output_dir); - } catch (IOException ex) { - - } - } - - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - - setVisible(false); + if (Desktop.isDesktopSupported()) { + try { + Desktop.getDesktop().open(_output_dir); + } catch (IOException ex) { } - }); + } - } else { - _file = null; + setDefaultCloseOperation(DISPOSE_ON_CLOSE); - _output_dir = null; + setVisible(false); + }); + } else { + _file = null; + _output_dir = null; + swingInvoke(() -> { + file_name_label.setText(""); - swingInvoke( - new Runnable() { - @Override - public void run() { + output_folder_label.setText(""); - file_name_label.setText(""); + split_size_text.setText(""); - output_folder_label.setText(""); + file_size_label.setText(""); - split_size_text.setText(""); + _progress = 0L; - file_size_label.setText(""); + jProgressBar2.setMinimum(0); + jProgressBar2.setMaximum(MAX_VALUE); + jProgressBar2.setStringPainted(true); + jProgressBar2.setValue(0); + jProgressBar2.setVisible(false); - _progress = 0L; + split_button.setText(LabelTranslatorSingleton.getInstance().translate("SPLIT FILE")); - jProgressBar2.setMinimum(0); - jProgressBar2.setMaximum(MAX_VALUE); - jProgressBar2.setStringPainted(true); - jProgressBar2.setValue(0); - jProgressBar2.setVisible(false); + file_button.setEnabled(true); - split_button.setText(LabelTranslatorSingleton.getInstance().translate("SPLIT FILE")); + output_button.setEnabled(true); - file_button.setEnabled(true); + split_button.setEnabled(true); - output_button.setEnabled(true); + split_size_text.setEnabled(true); - split_button.setEnabled(true); + setDefaultCloseOperation(DISPOSE_ON_CLOSE); - split_size_text.setEnabled(true); - - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - - pack(); - } - }); - } - } catch (IOException ex) { - Logger.getLogger(FileSplitterDialog.class.getName()).log(Level.SEVERE, ex.getMessage()); + pack(); + }); } - + } catch (IOException ex) { + Logger.getLogger(FileSplitterDialog.class.getName()).log(Level.SEVERE, ex.getMessage()); } }); diff --git a/src/main/java/com/tonikelope/megabasterd/FolderLinkDialog.java b/src/main/java/com/tonikelope/megabasterd/FolderLinkDialog.java index c62200635..f6448a853 100644 --- a/src/main/java/com/tonikelope/megabasterd/FolderLinkDialog.java +++ b/src/main/java/com/tonikelope/megabasterd/FolderLinkDialog.java @@ -75,26 +75,21 @@ public class FolderLinkDialog extends javax.swing.JDialog { final Dialog tthis = this; - THREAD_POOL.execute( - new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + _loadMegaDirTree(); - _loadMegaDirTree(); + if (!_mega_error) { - if (!_mega_error) { + _genDownloadLiks(); - _genDownloadLiks(); + dance_button.setText(LabelTranslatorSingleton.getInstance().translate("Let's dance, baby")); - dance_button.setText(LabelTranslatorSingleton.getInstance().translate("Let's dance, baby")); + pack(); - pack(); + } else { + JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("MEGA LINK ERROR!"), "Error", JOptionPane.ERROR_MESSAGE); - } else { - JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("MEGA LINK ERROR!"), "Error", JOptionPane.ERROR_MESSAGE); - - setVisible(false); - } + setVisible(false); } }); @@ -302,47 +297,28 @@ public class FolderLinkDialog extends javax.swing.JDialog { dance_button.setEnabled(false); - THREAD_POOL.execute( - new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + _loadMegaDirTree(); + _genDownloadLiks(); + swingInvoke(() -> { + restore_button.setVisible(false); + restore_button.setText(LabelTranslatorSingleton.getInstance().translate("Restore folder data")); + boolean root_childs = ((TreeNode) file_tree.getModel().getRoot()).getChildCount() > 0; - _loadMegaDirTree(); + for (JComponent c : new JComponent[]{restore_button, dance_button, skip_button, skip_rest_button, file_tree}) { - _genDownloadLiks(); - - swingInvoke( - new Runnable() { - @Override - public void run() { - - restore_button.setVisible(false); - restore_button.setText(LabelTranslatorSingleton.getInstance().translate("Restore folder data")); - boolean root_childs = ((TreeNode) file_tree.getModel().getRoot()).getChildCount() > 0; - - for (JComponent c : new JComponent[]{restore_button, dance_button, skip_button, skip_rest_button, file_tree}) { - - c.setEnabled(root_childs); - } - - } - }); - - } - } - ); + c.setEnabled(root_childs); + } + }); + }); }//GEN-LAST:event_restore_buttonActionPerformed private void _loadMegaDirTree() { try { - swingInvoke( - new Runnable() { - @Override - public void run() { - setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); - } + swingInvoke(() -> { + setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); }); HashMap folder_nodes; @@ -415,18 +391,12 @@ public class FolderLinkDialog extends javax.swing.JDialog { final MegaMutableTreeNode roott = root; - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + ftree.setModel(new DefaultTreeModel(sortTree(roott))); - ftree.setModel(new DefaultTreeModel(sortTree(roott))); + ftree.setRootVisible(roott != null ? roott.getChildCount() > 0 : false); - ftree.setRootVisible(roott != null ? roott.getChildCount() > 0 : false); - - ftree.setEnabled(true); - - } + ftree.setEnabled(true); }); } catch (Exception ex) { @@ -436,80 +406,70 @@ public class FolderLinkDialog extends javax.swing.JDialog { _mega_error = true; } - swingInvoke( - new Runnable() { - @Override - public void run() { - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - } + swingInvoke(() -> { + setDefaultCloseOperation(DISPOSE_ON_CLOSE); }); } private void _genDownloadLiks() { - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); - setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); + String folder_id = findFirstRegex("#F!([^!]+)", _link, 1); - String folder_id = findFirstRegex("#F!([^!]+)", _link, 1); + _download_links.clear(); - _download_links.clear(); + MegaMutableTreeNode root = (MegaMutableTreeNode) file_tree.getModel().getRoot(); - MegaMutableTreeNode root = (MegaMutableTreeNode) file_tree.getModel().getRoot(); + Enumeration files_tree = root.depthFirstEnumeration(); - Enumeration files_tree = root.depthFirstEnumeration(); + _total_space = 0L; - _total_space = 0L; + while (files_tree.hasMoreElements()) { - while (files_tree.hasMoreElements()) { + MegaMutableTreeNode node = (MegaMutableTreeNode) files_tree.nextElement(); - MegaMutableTreeNode node = (MegaMutableTreeNode) files_tree.nextElement(); + if (node.isLeaf() && node != root && ((HashMap) node.getUserObject()).get("size") != null) { - if (node.isLeaf() && node != root && ((HashMap) node.getUserObject()).get("size") != null) { + String path = ""; - String path = ""; + Object[] object_path = node.getUserObjectPath(); - Object[] object_path = node.getUserObjectPath(); + for (Object p : object_path) { - for (Object p : object_path) { - - path += "/" + ((Map) p).get("name"); - } - - path = path.replaceAll("^/+", "").trim(); - - String url = "https://mega.nz/#N!" + ((Map) node.getUserObject()).get("h") + "!" + ((Map) node.getUserObject()).get("key") + "###n=" + folder_id; - - HashMap download_link = new HashMap<>(); - - download_link.put("url", url); - - download_link.put("filename", cleanFilePath(path)); - - download_link.put("filekey", ((Map) node.getUserObject()).get("key")); - - download_link.put("filesize", ((Map) node.getUserObject()).get("size")); - - _total_space += (long) download_link.get("filesize"); - - _download_links.add(download_link); + path += "/" + ((Map) p).get("name"); } + + path = path.replaceAll("^/+", "").trim(); + + String url = "https://mega.nz/#N!" + ((Map) node.getUserObject()).get("h") + "!" + ((Map) node.getUserObject()).get("key") + "###n=" + folder_id; + + HashMap download_link = new HashMap<>(); + + download_link.put("url", url); + + download_link.put("filename", cleanFilePath(path)); + + download_link.put("filekey", ((Map) node.getUserObject()).get("key")); + + download_link.put("filesize", ((Map) node.getUserObject()).get("size")); + + _total_space += (long) download_link.get("filesize"); + + _download_links.add(download_link); } - - total_space_label.setText("[" + formatBytes(_total_space) + "]"); - - for (JComponent c : new JComponent[]{dance_button, warning_label, skip_button, skip_rest_button, total_space_label}) { - - c.setEnabled(root.getChildCount() > 0); - } - - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - } + + total_space_label.setText("[" + formatBytes(_total_space) + "]"); + + for (JComponent c : new JComponent[]{dance_button, warning_label, skip_button, skip_rest_button, total_space_label}) { + + c.setEnabled(root.getChildCount() > 0); + } + + setDefaultCloseOperation(DISPOSE_ON_CLOSE); }); } diff --git a/src/main/java/com/tonikelope/megabasterd/GetMasterPasswordDialog.java b/src/main/java/com/tonikelope/megabasterd/GetMasterPasswordDialog.java index d1fd9e4a4..3ea748eff 100644 --- a/src/main/java/com/tonikelope/megabasterd/GetMasterPasswordDialog.java +++ b/src/main/java/com/tonikelope/megabasterd/GetMasterPasswordDialog.java @@ -204,48 +204,36 @@ public class GetMasterPasswordDialog extends javax.swing.JDialog { final Dialog tthis = this; - THREAD_POOL.execute(new Runnable() { + THREAD_POOL.execute(() -> { + try { + byte[] pass = CryptTools.PBKDF2HMACSHA256(new String(current_pass_textfield.getPassword()), BASE642Bin(_salt), CryptTools.MASTER_PASSWORD_PBKDF2_ITERATIONS, CryptTools.MASTER_PASSWORD_PBKDF2_OUTPUT_BIT_LENGTH); + String pass_hash = Bin2BASE64(HashBin("SHA-1", pass)); + swingInvoke(() -> { + if (!pass_hash.equals(_current_pass_hash)) { - @Override - public void run() { - try { - byte[] pass = CryptTools.PBKDF2HMACSHA256(new String(current_pass_textfield.getPassword()), BASE642Bin(_salt), CryptTools.MASTER_PASSWORD_PBKDF2_ITERATIONS, CryptTools.MASTER_PASSWORD_PBKDF2_OUTPUT_BIT_LENGTH); + JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("BAD PASSWORD!"), "Error", JOptionPane.ERROR_MESSAGE); - String pass_hash = Bin2BASE64(HashBin("SHA-1", pass)); + status_label.setText(""); - swingInvoke( - new Runnable() { - @Override - public void run() { - if (!pass_hash.equals(_current_pass_hash)) { + pack(); - JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("BAD PASSWORD!"), "Error", JOptionPane.ERROR_MESSAGE); + current_pass_textfield.setText(""); - status_label.setText(""); + current_pass_textfield.grabFocus(); - pack(); + } else { - current_pass_textfield.setText(""); + _pass = pass; - current_pass_textfield.grabFocus(); + _current_pass_hash = pass_hash; - } else { - - _pass = pass; - - _current_pass_hash = pass_hash; - - _pass_ok = true; - - tthis.setVisible(false); - } - } - }); - - } catch (HeadlessException | NoSuchAlgorithmException | InvalidKeySpecException ex) { - LOG.log(Level.SEVERE, ex.getMessage()); - } + _pass_ok = true; + tthis.setVisible(false); + } + }); + } catch (HeadlessException | NoSuchAlgorithmException | InvalidKeySpecException ex) { + LOG.log(Level.SEVERE, ex.getMessage()); } }); diff --git a/src/main/java/com/tonikelope/megabasterd/LinkGrabberDialog.java b/src/main/java/com/tonikelope/megabasterd/LinkGrabberDialog.java index f395fcd73..4de3e1894 100644 --- a/src/main/java/com/tonikelope/megabasterd/LinkGrabberDialog.java +++ b/src/main/java/com/tonikelope/megabasterd/LinkGrabberDialog.java @@ -79,28 +79,19 @@ public class LinkGrabberDialog extends javax.swing.JDialog implements ClipboardC if (_main_panel.isUse_mega_account_down() && _main_panel.getMega_accounts().size() > 0) { - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + swingInvoke(() -> { + String mega_default_down = _main_panel.getMega_account_down(); - swingInvoke(new Runnable() { - @Override - public void run() { + use_mega_account_down_combobox.addItem(mega_default_down); - String mega_default_down = _main_panel.getMega_account_down(); - - use_mega_account_down_combobox.addItem(mega_default_down); - - _main_panel.getMega_accounts().keySet().stream().filter((k) -> (!mega_default_down.equals(k))).forEachOrdered((k) -> { - use_mega_account_down_combobox.addItem(k); - }); - - use_mega_account_down_combobox.addItem(""); - use_mega_account_down_combobox.setSelectedIndex(0); - } + _main_panel.getMega_accounts().keySet().stream().filter((k) -> (!mega_default_down.equals(k))).forEachOrdered((k) -> { + use_mega_account_down_combobox.addItem(k); }); - } + use_mega_account_down_combobox.addItem(""); + use_mega_account_down_combobox.setSelectedIndex(0); + }); }); } else { @@ -312,78 +303,56 @@ public class LinkGrabberDialog extends javax.swing.JDialog implements ClipboardC final File file = filechooser.getSelectedFile(); - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + try (final InputStream is = new BufferedInputStream(new FileInputStream(file)); final ByteArrayOutputStream out = new ByteArrayOutputStream()) { + byte[] buffer = new byte[MainPanel.DEFAULT_BYTE_BUFFER_SIZE]; + int reads; + while ((reads = is.read(buffer)) != -1) { - try (InputStream is = new BufferedInputStream(new FileInputStream(file)); ByteArrayOutputStream out = new ByteArrayOutputStream()) { - - byte[] buffer = new byte[MainPanel.DEFAULT_BYTE_BUFFER_SIZE]; - - int reads; - - while ((reads = is.read(buffer)) != -1) { - - out.write(buffer, 0, reads); - } - - String dlc = new String(out.toByteArray(), "UTF-8"); - - Set links = CryptTools.decryptDLC(dlc, ((MainPanelView) getParent()).getMain_panel()); - - for (Iterator i = links.iterator(); i.hasNext();) { - - String link = i.next(); - - if (findFirstRegex("(?:https?|mega)://[^/]*/(#.*?)?!.+![^\r\n]+", link, 0) == null) { - - i.remove(); - } - } - - if (!links.isEmpty()) { - - swingInvoke(new Runnable() { - @Override - public void run() { - links_textarea.setText(""); - - for (Iterator i = links.iterator(); i.hasNext();) { - - links_textarea.append(i.next()); - - if (i.hasNext()) { - - links_textarea.append("\r\n"); - } - } - } - }); - - } - - } catch (FileNotFoundException ex) { - LOG.log(Level.SEVERE, ex.getMessage()); - } catch (IOException ex) { - LOG.log(Level.SEVERE, ex.getMessage()); + out.write(buffer, 0, reads); } + String dlc = new String(out.toByteArray(), "UTF-8"); + Set links = CryptTools.decryptDLC(dlc, ((MainPanelView) getParent()).getMain_panel()); + for (Iterator i = links.iterator(); i.hasNext();) { - swingInvoke(new Runnable() { - @Override - public void run() { - dlc_button.setText(LabelTranslatorSingleton.getInstance().translate("Load DLC container")); + String link = i.next(); - dlc_button.setEnabled(true); + if (findFirstRegex("(?:https?|mega)://[^/]*/(#.*?)?!.+![^\r\n]+", link, 0) == null) { - links_textarea.setEnabled(true); - - dance_button.setEnabled(true); - - pack(); + i.remove(); } - }); + } + if (!links.isEmpty()) { + swingInvoke(() -> { + links_textarea.setText(""); + for (Iterator i = links.iterator(); i.hasNext();) { + + links_textarea.append(i.next()); + + if (i.hasNext()) { + + links_textarea.append("\r\n"); + } + } + }); + } + } catch (FileNotFoundException ex) { + LOG.log(Level.SEVERE, ex.getMessage()); + } catch (IOException ex) { + LOG.log(Level.SEVERE, ex.getMessage()); } + swingInvoke(() -> { + dlc_button.setText(LabelTranslatorSingleton.getInstance().translate("Load DLC container")); + + dlc_button.setEnabled(true); + + links_textarea.setEnabled(true); + + dance_button.setEnabled(true); + + pack(); + }); }); } else { @@ -418,48 +387,32 @@ public class LinkGrabberDialog extends javax.swing.JDialog implements ClipboardC final LinkGrabberDialog tthis = this; - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { - - boolean use_account = true; - - try { - - if (checkMegaAccountLoginAndShowMasterPassDialog(_main_panel, tthis, _selected_item) == null) { - use_account = false; - } - - } catch (Exception ex) { + THREAD_POOL.execute(() -> { + boolean use_account = true; + try { + if (checkMegaAccountLoginAndShowMasterPassDialog(_main_panel, tthis, _selected_item) == null) { use_account = false; } - if (!use_account) { - swingInvoke(new Runnable() { - @Override - public void run() { - use_mega_account_down_combobox.setSelectedIndex(_main_panel.getMega_accounts().size()); - - } - }); - } - - swingInvoke(new Runnable() { - @Override - public void run() { - getUse_mega_account_down_combobox().setEnabled(true); - - getDance_button().setText(LabelTranslatorSingleton.getInstance().translate("Let's dance, baby")); - - getDance_button().setEnabled(true); - - pack(); - - } - }); + } catch (Exception ex) { + use_account = false; } + if (!use_account) { + swingInvoke(() -> { + use_mega_account_down_combobox.setSelectedIndex(_main_panel.getMega_accounts().size()); + }); + } + swingInvoke(() -> { + getUse_mega_account_down_combobox().setEnabled(true); + + getDance_button().setText(LabelTranslatorSingleton.getInstance().translate("Let's dance, baby")); + + getDance_button().setEnabled(true); + + pack(); + }); }); } @@ -482,14 +435,10 @@ public class LinkGrabberDialog extends javax.swing.JDialog implements ClipboardC @Override public void notifyClipboardChange() { - swingInvoke(new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + String current_text = links_textarea.getText(); - String current_text = links_textarea.getText(); - - links_textarea.append((current_text.length() > 0 ? "\n\n" : "") + extractMegaLinksFromString(extractStringFromClipboardContents(_clipboardspy.getContents()))); - } + links_textarea.append((current_text.length() > 0 ? "\n\n" : "") + extractMegaLinksFromString(extractStringFromClipboardContents(_clipboardspy.getContents()))); }); } private static final Logger LOG = Logger.getLogger(LinkGrabberDialog.class.getName()); diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanel.java b/src/main/java/com/tonikelope/megabasterd/MainPanel.java index f940fb8d5..fe1b8c311 100644 --- a/src/main/java/com/tonikelope/megabasterd/MainPanel.java +++ b/src/main/java/com/tonikelope/megabasterd/MainPanel.java @@ -53,7 +53,7 @@ import javax.swing.UIManager; */ public final class MainPanel { - public static final String VERSION = "6.57"; + public static final String VERSION = "6.58"; public static final int THROTTLE_SLICE_SIZE = 16 * 1024; public static final int DEFAULT_BYTE_BUFFER_SIZE = 16 * 1024; public static final int STREAMER_PORT = 1337; @@ -106,11 +106,8 @@ public final class MainPanel { final MainPanel main_panel = new MainPanel(); - invokeLater(new Runnable() { - @Override - public void run() { - main_panel.getView().setVisible(true); - } + invokeLater(() -> { + main_panel.getView().setVisible(true); }); } @@ -188,7 +185,6 @@ public final class MainPanel { private boolean _megacrypter_reverse; private float _zoom_factor; private volatile boolean _exit; - private volatile boolean _forcing_gc; public MainPanel() { @@ -263,43 +259,38 @@ public final class MainPanel { THREAD_POOL.execute((_clipboardspy = new ClipboardSpy())); - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + Object timer_lock = new Object(); - Object timer_lock = new Object(); + Timer timer = new Timer(); - Timer timer = new Timer(); - - TimerTask task = new TimerTask() { - - @Override - public void run() { - synchronized (timer_lock) { - - timer_lock.notify(); - } - } - }; - - timer.schedule(task, 0, 5000); - - while (true) { + TimerTask task = new TimerTask() { + @Override + public void run() { synchronized (timer_lock) { - try { - - if (_download_manager.no_transferences() && _upload_manager.no_transferences() && (!_download_manager.getTransference_finished_queue().isEmpty() || !_upload_manager.getTransference_finished_queue().isEmpty()) && getView().getAuto_close_menu().isSelected()) { - System.exit(0); - } - - timer_lock.wait(); - } catch (InterruptedException ex) { - LOG.log(Level.SEVERE, ex.getMessage()); - } + timer_lock.notify(); } + } + }; + timer.schedule(task, 0, 5000); + + while (true) { + + synchronized (timer_lock) { + + try { + + if (_download_manager.no_transferences() && _upload_manager.no_transferences() && (!_download_manager.getTransference_finished_queue().isEmpty() || !_upload_manager.getTransference_finished_queue().isEmpty()) && getView().getAuto_close_menu().isSelected()) { + System.exit(0); + } + + timer_lock.wait(); + } catch (InterruptedException ex) { + LOG.log(Level.SEVERE, ex.getMessage()); + } } } @@ -314,16 +305,12 @@ public final class MainPanel { check_old_version(); - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + _new_version = checkNewVersion(AboutDialog.MEGABASTERD_URL); - _new_version = checkNewVersion(AboutDialog.MEGABASTERD_URL); + if (_new_version != null) { - if (_new_version != null) { - - JOptionPane.showMessageDialog(getView(), LabelTranslatorSingleton.getInstance().translate("MegaBasterd NEW VERSION is available! -> ") + _new_version); - } + JOptionPane.showMessageDialog(getView(), LabelTranslatorSingleton.getInstance().translate("MegaBasterd NEW VERSION is available! -> ") + _new_version); } }); @@ -336,12 +323,8 @@ public final class MainPanel { } else { _mega_proxy_server = null; - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().updateMCReverseStatus("MC reverse mode: OFF"); - } + swingInvoke(() -> { + getView().updateMCReverseStatus("MC reverse mode: OFF"); }); } @@ -350,64 +333,35 @@ public final class MainPanel { MainPanel tthis = this; - THREAD_POOL.execute( - new Runnable() { - @Override - public void run() { - _proxy_manager = new SmartMegaProxyManager(null, tthis); - } + THREAD_POOL.execute(() -> { + _proxy_manager = new SmartMegaProxyManager(null, tthis); }); } else { - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().updateSmartProxyStatus("SmartProxy: OFF"); - } + swingInvoke(() -> { + getView().updateSmartProxyStatus("SmartProxy: OFF"); }); } - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().getGlobal_speed_down_label().setForeground(_limit_download_speed ? new Color(255, 0, 0) : new Color(0, 128, 255)); + swingInvoke(() -> { + getView().getGlobal_speed_down_label().setForeground(_limit_download_speed ? new Color(255, 0, 0) : new Color(0, 128, 255)); - getView().getGlobal_speed_up_label().setForeground(_limit_upload_speed ? new Color(255, 0, 0) : new Color(0, 128, 255)); - } + getView().getGlobal_speed_up_label().setForeground(_limit_upload_speed ? new Color(255, 0, 0) : new Color(0, 128, 255)); }); - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { - - Runtime instance = Runtime.getRuntime(); - - _forcing_gc = false; - - while (true) { - - long used_memory = instance.totalMemory() - instance.freeMemory(); - - long max_memory = instance.maxMemory(); - - swingInvoke(new Runnable() { - @Override - public void run() { - - _view.getMemory_status().setText(MiscTools.formatBytes(used_memory) + " / " + MiscTools.formatBytes(max_memory)); - - } - }); - - try { - Thread.sleep(2000); - } catch (InterruptedException ex) { - Logger.getLogger(MainPanelView.class.getName()).log(Level.SEVERE, ex.getMessage()); - } + THREAD_POOL.execute(() -> { + Runtime instance = Runtime.getRuntime(); + while (true) { + long used_memory = instance.totalMemory() - instance.freeMemory(); + long max_memory = instance.maxMemory(); + swingInvoke(() -> { + _view.getMemory_status().setText(MiscTools.formatBytes(used_memory) + " / " + MiscTools.formatBytes(max_memory)); + }); + try { + Thread.sleep(2000); + } catch (InterruptedException ex) { + Logger.getLogger(MainPanelView.class.getName()).log(Level.SEVERE, ex.getMessage()); } - } }); @@ -1018,110 +972,73 @@ public final class MainPanel { if (!_download_manager.getTransference_running_list().isEmpty() || !_upload_manager.getTransference_running_list().isEmpty()) { - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { - - boolean wait; - - do { - - wait = false; - - if (!_download_manager.getTransference_running_list().isEmpty()) { - - for (Transference trans : _download_manager.getTransference_running_list()) { - - Download download = (Download) trans; - - if (download.isPaused()) { - download.pause(); - } - - if (!download.getChunkworkers().isEmpty()) { - - wait = true; - - swingInvoke(new Runnable() { - @Override - public void run() { - - download.getView().printStatusNormal("Stopping download safely before exit MegaBasterd, please wait..."); - download.getView().getSlots_spinner().setEnabled(false); - download.getView().getPause_button().setEnabled(false); - download.getView().getCopy_link_button().setEnabled(false); - download.getView().getOpen_folder_button().setEnabled(false); - download.getView().getFile_size_label().setEnabled(false); - download.getView().getFile_name_label().setEnabled(false); - download.getView().getSpeed_label().setEnabled(false); - download.getView().getSlots_label().setEnabled(false); - download.getView().getProgress_pbar().setEnabled(false); - - } - }); - - } + THREAD_POOL.execute(() -> { + boolean wait; + do { + wait = false; + if (!_download_manager.getTransference_running_list().isEmpty()) { + for (Transference trans : _download_manager.getTransference_running_list()) { + Download download = (Download) trans; + if (download.isPaused()) { + download.pause(); } - - } - - if (!_upload_manager.getTransference_running_list().isEmpty()) { - - for (Transference trans : _upload_manager.getTransference_running_list()) { - - Upload upload = (Upload) trans; - - upload.getMac_generator().secureNotify(); - - if (upload.isPaused()) { - upload.pause(); - } - - if (!upload.getChunkworkers().isEmpty()) { - - wait = true; - - swingInvoke(new Runnable() { - @Override - public void run() { - - upload.getView().printStatusNormal("Stopping upload safely before exit MegaBasterd, please wait..."); - upload.getView().getSlots_spinner().setEnabled(false); - upload.getView().getPause_button().setEnabled(false); - upload.getView().getFolder_link_button().setEnabled(false); - upload.getView().getFile_link_button().setEnabled(false); - upload.getView().getFile_size_label().setEnabled(false); - upload.getView().getFile_name_label().setEnabled(false); - upload.getView().getSpeed_label().setEnabled(false); - upload.getView().getSlots_label().setEnabled(false); - upload.getView().getProgress_pbar().setEnabled(false); - - } - }); - } else { - try { - DBTools.updateUploadProgress(upload.getFile_name(), upload.getMa().getFull_email(), upload.getProgress(), upload.getTemp_mac_data() != null ? upload.getTemp_mac_data() : null); - } catch (SQLException ex) { - Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, ex.getMessage()); - } - } - + if (!download.getChunkworkers().isEmpty()) { + wait = true; + swingInvoke(() -> { + download.getView().printStatusNormal("Stopping download safely before exit MegaBasterd, please wait..."); + download.getView().getSlots_spinner().setEnabled(false); + download.getView().getPause_button().setEnabled(false); + download.getView().getCopy_link_button().setEnabled(false); + download.getView().getOpen_folder_button().setEnabled(false); + download.getView().getFile_size_label().setEnabled(false); + download.getView().getFile_name_label().setEnabled(false); + download.getView().getSpeed_label().setEnabled(false); + download.getView().getSlots_label().setEnabled(false); + download.getView().getProgress_pbar().setEnabled(false); + }); } } - - if (wait) { - - try { - Thread.sleep(1000); - } catch (InterruptedException ex) { - Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, ex.getMessage()); + } + if (!_upload_manager.getTransference_running_list().isEmpty()) { + for (Transference trans : _upload_manager.getTransference_running_list()) { + Upload upload = (Upload) trans; + upload.getMac_generator().secureNotify(); + if (upload.isPaused()) { + upload.pause(); + } + if (!upload.getChunkworkers().isEmpty()) { + wait = true; + swingInvoke(() -> { + upload.getView().printStatusNormal("Stopping upload safely before exit MegaBasterd, please wait..."); + upload.getView().getSlots_spinner().setEnabled(false); + upload.getView().getPause_button().setEnabled(false); + upload.getView().getFolder_link_button().setEnabled(false); + upload.getView().getFile_link_button().setEnabled(false); + upload.getView().getFile_size_label().setEnabled(false); + upload.getView().getFile_name_label().setEnabled(false); + upload.getView().getSpeed_label().setEnabled(false); + upload.getView().getSlots_label().setEnabled(false); + upload.getView().getProgress_pbar().setEnabled(false); + }); + } else { + try { + DBTools.updateUploadProgress(upload.getFile_name(), upload.getMa().getFull_email(), upload.getProgress(), upload.getTemp_mac_data() != null ? upload.getTemp_mac_data() : null); + } catch (SQLException ex) { + Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, ex.getMessage()); + } } } + } + if (wait) { - } while (wait); - - byebyenow(restart); - } + try { + Thread.sleep(1000); + } catch (InterruptedException ex) { + Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, ex.getMessage()); + } + } + } while (wait); + byebyenow(restart); }); WarningExitMessage exit_message = new WarningExitMessage(getView(), true, this, restart); @@ -1153,33 +1070,19 @@ public final class MainPanel { final ServerSocket serverSocket = new ServerSocket(WATCHDOG_PORT, 0, InetAddress.getLoopbackAddress()); - THREAD_POOL.execute(new Runnable() { + THREAD_POOL.execute(() -> { + final ServerSocket socket = serverSocket; + while (true) { + try { + socket.accept(); + swingInvoke(() -> { + getView().setExtendedState(NORMAL); - @Override - public void run() { - - final ServerSocket socket = serverSocket; - - while (true) { - - try { - socket.accept(); - - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().setExtendedState(NORMAL); - - getView().setVisible(true); - } - }); - - } catch (Exception ex) { - Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, ex.getMessage()); - } + getView().setVisible(true); + }); + } catch (Exception ex1) { + Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, ex1.getMessage()); } - } }); } catch (Exception ex2) { @@ -1195,77 +1098,53 @@ public final class MainPanel { private void resumeDownloads() { - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().getStatus_down_label().setText(LabelTranslatorSingleton.getInstance().translate("Checking if there are previous downloads, please wait...")); - } + swingInvoke(() -> { + getView().getStatus_down_label().setText(LabelTranslatorSingleton.getInstance().translate("Checking if there are previous downloads, please wait...")); }); final MainPanel tthis = this; - THREAD_POOL.execute(new Runnable() { + THREAD_POOL.execute(() -> { + int conta_downloads = 0; + try { - @Override - public void run() { + ArrayList> res = selectDownloads(); - int conta_downloads = 0; + for (HashMap o : res) { - try { + try { - ArrayList> res = selectDownloads(); + String email = (String) o.get("email"); - for (HashMap o : res) { + MegaAPI ma = new MegaAPI(); - try { + if (!tthis.isUse_mega_account_down() || (_mega_accounts.get(email) != null && (ma = checkMegaAccountLoginAndShowMasterPassDialog(tthis, getView(), email)) != null)) { - String email = (String) o.get("email"); + Download download = new Download(tthis, ma, (String) o.get("url"), (String) o.get("path"), (String) o.get("filename"), (String) o.get("filekey"), (Long) o.get("filesize"), (String) o.get("filepass"), (String) o.get("filenoexpire"), _use_slots_down, false, (String) o.get("custom_chunks_dir")); - MegaAPI ma = new MegaAPI(); + getDownload_manager().getTransference_provision_queue().add(download); - if (!tthis.isUse_mega_account_down() || (_mega_accounts.get(email) != null && (ma = checkMegaAccountLoginAndShowMasterPassDialog(tthis, getView(), email)) != null)) { - - Download download = new Download(tthis, ma, (String) o.get("url"), (String) o.get("path"), (String) o.get("filename"), (String) o.get("filekey"), (Long) o.get("filesize"), (String) o.get("filepass"), (String) o.get("filenoexpire"), _use_slots_down, false, (String) o.get("custom_chunks_dir")); - - getDownload_manager().getTransference_provision_queue().add(download); - - conta_downloads++; - } - - } catch (Exception ex) { - Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, ex.getMessage()); + conta_downloads++; } + + } catch (Exception ex) { + Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, ex.getMessage()); } - - } catch (SQLException ex) { - - Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex); } - if (conta_downloads > 0) { - - getDownload_manager().secureNotify(); - - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().getjTabbedPane1().setSelectedIndex(0); - } - }); - - } - - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().getStatus_down_label().setText(""); - } - }); + } catch (SQLException ex) { + Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex); } + if (conta_downloads > 0) { + getDownload_manager().secureNotify(); + swingInvoke(() -> { + getView().getjTabbedPane1().setSelectedIndex(0); + }); + } + swingInvoke(() -> { + getView().getStatus_down_label().setText(""); + }); }); } @@ -1282,79 +1161,50 @@ public final class MainPanel { MenuItem messageItem = new MenuItem(LabelTranslatorSingleton.getInstance().translate("Restore window")); - messageItem.addActionListener(new ActionListener() { + messageItem.addActionListener((ActionEvent e) -> { + swingInvoke(() -> { + getView().setExtendedState(NORMAL); - @Override - public void actionPerformed(ActionEvent e) { + getView().setVisible(true); - swingInvoke( - new Runnable() { - @Override - public void run() { + getView().revalidate(); - getView().setExtendedState(NORMAL); - - getView().setVisible(true); - - getView().revalidate(); - - getView().repaint(); - } - }); - - } + getView().repaint(); + }); }); menu.add(messageItem); MenuItem closeItem = new MenuItem(LabelTranslatorSingleton.getInstance().translate("EXIT")); - closeItem.addActionListener(new ActionListener() { + closeItem.addActionListener((ActionEvent e) -> { + if (!getView().isVisible()) { - @Override - public void actionPerformed(ActionEvent e) { + getView().setExtendedState(NORMAL); + getView().setVisible(true); + getView().revalidate(); + getView().repaint(); + } + + byebye(false); + }); + + menu.add(closeItem); + + ActionListener actionListener = (ActionEvent e) -> { + swingInvoke(() -> { if (!getView().isVisible()) { - getView().setExtendedState(NORMAL); getView().setVisible(true); getView().revalidate(); getView().repaint(); + } else { + + getView().dispatchEvent(new WindowEvent(getView(), WINDOW_CLOSING)); } - - byebye(false); - - } - - }); - - menu.add(closeItem); - - ActionListener actionListener = new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - - swingInvoke( - new Runnable() { - @Override - public void run() { - - if (!getView().isVisible()) { - getView().setExtendedState(NORMAL); - getView().setVisible(true); - getView().revalidate(); - getView().repaint(); - - } else { - - getView().dispatchEvent(new WindowEvent(getView(), WINDOW_CLOSING)); - } - } - }); - - } + }); }; _trayicon = new TrayIcon(getDefaultToolkit().getImage(getClass().getResource(ICON_FILE)), "MegaBasterd", menu); @@ -1373,81 +1223,55 @@ public final class MainPanel { private void resumeUploads() { - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().getStatus_up_label().setText(LabelTranslatorSingleton.getInstance().translate("Checking if there are previous uploads, please wait...")); - } + swingInvoke(() -> { + getView().getStatus_up_label().setText(LabelTranslatorSingleton.getInstance().translate("Checking if there are previous uploads, please wait...")); }); final MainPanel tthis = this; - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + try { + int conta_uploads = 0; + ArrayList> res = selectUploads(); + for (HashMap o : res) { - try { + try { - int conta_uploads = 0; + String email = (String) o.get("email"); - ArrayList> res = selectUploads(); + if (_mega_accounts.get(email) != null) { - for (HashMap o : res) { + MegaAPI ma; - try { + if ((ma = checkMegaAccountLoginAndShowMasterPassDialog(tthis, getView(), email)) != null) { - String email = (String) o.get("email"); + Upload upload = new Upload(tthis, ma, (String) o.get("filename"), (String) o.get("parent_node"), (String) o.get("ul_key") != null ? bin2i32a(BASE642Bin((String) o.get("ul_key"))) : null, (String) o.get("url"), (String) o.get("root_node"), BASE642Bin((String) o.get("share_key")), (String) o.get("folder_link")); - if (_mega_accounts.get(email) != null) { + getUpload_manager().getTransference_provision_queue().add(upload); - MegaAPI ma; - - if ((ma = checkMegaAccountLoginAndShowMasterPassDialog(tthis, getView(), email)) != null) { - - Upload upload = new Upload(tthis, ma, (String) o.get("filename"), (String) o.get("parent_node"), (String) o.get("ul_key") != null ? bin2i32a(BASE642Bin((String) o.get("ul_key"))) : null, (String) o.get("url"), (String) o.get("root_node"), BASE642Bin((String) o.get("share_key")), (String) o.get("folder_link")); - - getUpload_manager().getTransference_provision_queue().add(upload); - - conta_uploads++; - } - - } else { - - deleteUpload((String) o.get("filename"), email); + conta_uploads++; } - } catch (Exception ex) { - Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex); + } else { + + deleteUpload((String) o.get("filename"), email); } + + } catch (Exception ex) { + Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex); } - - if (conta_uploads > 0) { - - getUpload_manager().secureNotify(); - - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().getjTabbedPane1().setSelectedIndex(1); - } - }); - - } - - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().getStatus_up_label().setText(""); - } - }); - - } catch (SQLException ex) { - Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex); } - + if (conta_uploads > 0) { + getUpload_manager().secureNotify(); + swingInvoke(() -> { + getView().getjTabbedPane1().setSelectedIndex(1); + }); + } + swingInvoke(() -> { + getView().getStatus_up_label().setText(""); + }); + } catch (SQLException ex) { + Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex); } }); diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java index e8b5beb12..4a54f2475 100644 --- a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java +++ b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java @@ -150,16 +150,11 @@ public final class MainPanelView extends javax.swing.JFrame implements FileDropH if (!old_status.equals(status + " ")) { Dimension frame_size = this.getSize(); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getKiss_server_status().setText(status + " "); - getKiss_server_status().setText(status + " "); - - pack(); - setSize(frame_size); - } + pack(); + setSize(frame_size); }); } @@ -172,16 +167,11 @@ public final class MainPanelView extends javax.swing.JFrame implements FileDropH if (!old_status.equals(status + " ")) { Dimension frame_size = this.getSize(); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getSmart_proxy_status().setText(status + " "); - getSmart_proxy_status().setText(status + " "); - - pack(); - setSize(frame_size); - } + pack(); + setSize(frame_size); }); } @@ -194,16 +184,11 @@ public final class MainPanelView extends javax.swing.JFrame implements FileDropH if (!old_status.equals(status + " ")) { Dimension frame_size = this.getSize(); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getMc_reverse_status().setText(status + " "); - getMc_reverse_status().setText(status + " "); - - pack(); - setSize(frame_size); - } + pack(); + setSize(frame_size); }); } @@ -231,108 +216,106 @@ public final class MainPanelView extends javax.swing.JFrame implements FileDropH jTabbedPane1.setSelectedIndex(1); - Runnable run = new Runnable() { - @Override - public void run() { + Runnable run = () -> { - MegaAPI ma = getMain_panel().getMega_active_accounts().get(mega_account); + Thread.currentThread().setPriority(Thread.MIN_PRIORITY); - try { + MegaAPI ma = getMain_panel().getMega_active_accounts().get(mega_account); - byte[] parent_key = ma.genFolderKey(); + try { - byte[] share_key = ma.genShareKey(); + byte[] parent_key = ma.genFolderKey(); - HashMap res = ma.createDir(dir_name != null ? dir_name : dialog.getFiles().get(0).getName() + "_" + genID(10), ma.getRoot_id(), parent_key, i32a2bin(ma.getMaster_key())); + byte[] share_key = ma.genShareKey(); - String parent_node = (String) ((Map) ((List) res.get("f")).get(0)).get("h"); + HashMap res = ma.createDir(dir_name != null ? dir_name : dialog.getFiles().get(0).getName() + "_" + genID(10), ma.getRoot_id(), parent_key, i32a2bin(ma.getMaster_key())); - LOG.log(Level.INFO, "{0} Dir {1} created", new Object[]{Thread.currentThread().getName(), parent_node}); + String parent_node = (String) ((Map) ((List) res.get("f")).get(0)).get("h"); - ma.shareFolder(parent_node, parent_key, share_key); + LOG.log(Level.INFO, "{0} Dir {1} created", new Object[]{Thread.currentThread().getName(), parent_node}); - String folder_link = ma.getPublicFolderLink(parent_node, share_key); + ma.shareFolder(parent_node, parent_key, share_key); - if (dialog.getUpload_log_checkbox().isSelected()) { + String folder_link = ma.getPublicFolderLink(parent_node, share_key); - File upload_log = new File(System.getProperty("user.home") + "/megabasterd_upload_" + parent_node + ".log"); - upload_log.createNewFile(); + if (dialog.getUpload_log_checkbox().isSelected()) { - FileWriter fr; - try { - fr = new FileWriter(upload_log, true); - fr.write("***** MegaBasterd UPLOAD LOG FILE *****\n\n"); - fr.write(dir_name + " " + folder_link + "\n\n"); - fr.close(); - } catch (IOException ex) { - Logger.getLogger(Upload.class.getName()).log(Level.SEVERE, ex.getMessage()); - } + File upload_log = new File(System.getProperty("user.home") + "/megabasterd_upload_" + parent_node + ".log"); + upload_log.createNewFile(); + + FileWriter fr; + try { + fr = new FileWriter(upload_log, true); + fr.write("***** MegaBasterd UPLOAD LOG FILE *****\n\n"); + fr.write(dir_name + " " + folder_link + "\n\n"); + fr.close(); + } catch (IOException ex) { + Logger.getLogger(Upload.class.getName()).log(Level.SEVERE, ex.getMessage()); } - - MegaDirNode file_paths = new MegaDirNode(parent_node); - - for (File f : dialog.getFiles()) { - - String file_path = f.getParentFile().getAbsolutePath().replace(base_path, ""); - - String[] dirs = file_path.split("/"); - - MegaDirNode current_node = file_paths; - - String file_parent = current_node.getNode_id(); - - for (String d : dirs) { - - if (!d.isEmpty()) { - - if (current_node.getChildren().get(d) != null) { - - current_node = current_node.getChildren().get(d); - - file_parent = current_node.getNode_id(); - - } else { - - res = ma.createDirInsideAnotherSharedDir(d, current_node.getNode_id(), ma.genFolderKey(), i32a2bin(ma.getMaster_key()), parent_node, share_key); - - file_parent = (String) ((Map) ((List) res.get("f")).get(0)).get("h"); - - current_node.getChildren().put(d, new MegaDirNode(file_parent)); - - current_node = current_node.getChildren().get(d); - } - } - } - - while (getMain_panel().getUpload_manager().getTransference_waitstart_queue().size() >= TransferenceManager.MAX_WAIT_QUEUE) { - - synchronized (getMain_panel().getUpload_manager().getWait_queue_lock()) { - getMain_panel().getUpload_manager().getWait_queue_lock().wait(1000); - } - } - - if (!getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().isEmpty()) { - - Upload upload = new Upload(getMain_panel(), ma, f.getAbsolutePath(), file_parent, null, null, parent_node, share_key, folder_link); - - getMain_panel().getUpload_manager().getTransference_provision_queue().add(upload); - - getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().remove(f); - - getMain_panel().getUpload_manager().secureNotify(); - - } else { - break; - } - - } - - } catch (Exception ex) { - - LOG.log(SEVERE, null, ex); } - } + MegaDirNode file_paths = new MegaDirNode(parent_node); + + for (File f : dialog.getFiles()) { + + String file_path = f.getParentFile().getAbsolutePath().replace(base_path, ""); + + String[] dirs = file_path.split("/"); + + MegaDirNode current_node = file_paths; + + String file_parent = current_node.getNode_id(); + + for (String d : dirs) { + + if (!d.isEmpty()) { + + if (current_node.getChildren().get(d) != null) { + + current_node = current_node.getChildren().get(d); + + file_parent = current_node.getNode_id(); + + } else { + + res = ma.createDirInsideAnotherSharedDir(d, current_node.getNode_id(), ma.genFolderKey(), i32a2bin(ma.getMaster_key()), parent_node, share_key); + + file_parent = (String) ((Map) ((List) res.get("f")).get(0)).get("h"); + + current_node.getChildren().put(d, new MegaDirNode(file_parent)); + + current_node = current_node.getChildren().get(d); + } + } + } + + while (getMain_panel().getUpload_manager().getTransference_waitstart_queue().size() >= TransferenceManager.MAX_WAIT_QUEUE) { + + synchronized (getMain_panel().getUpload_manager().getWait_queue_lock()) { + getMain_panel().getUpload_manager().getWait_queue_lock().wait(1000); + } + } + + if (!getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().isEmpty()) { + + Upload upload = new Upload(getMain_panel(), ma, f.getAbsolutePath(), file_parent, null, null, parent_node, share_key, folder_link); + + getMain_panel().getUpload_manager().getTransference_provision_queue().add(upload); + + getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().remove(f); + + getMain_panel().getUpload_manager().secureNotify(); + + } else { + break; + } + + } + + } catch (Exception ex) { + + LOG.log(SEVERE, null, ex); + } }; getMain_panel().getUpload_manager().getTransference_preprocess_queue().add(run); @@ -358,49 +341,43 @@ public final class MainPanelView extends javax.swing.JFrame implements FileDropH final MainPanelView tthis = this; - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + int n; - int n; + if (files.size() > 1) { - if (files.size() > 1) { + Object[] options = {LabelTranslatorSingleton.getInstance().translate("Split content in different uploads"), LabelTranslatorSingleton.getInstance().translate("Merge content in the same upload")}; - Object[] options = {LabelTranslatorSingleton.getInstance().translate("Split content in different uploads"), LabelTranslatorSingleton.getInstance().translate("Merge content in the same upload")}; + n = showOptionDialog(_main_panel.getView(), + LabelTranslatorSingleton.getInstance().translate("How do you want to proceed?"), + LabelTranslatorSingleton.getInstance().translate("File Grabber"), DEFAULT_OPTION, INFORMATION_MESSAGE, + null, + options, + null); - n = showOptionDialog(_main_panel.getView(), - LabelTranslatorSingleton.getInstance().translate("How do you want to proceed?"), - LabelTranslatorSingleton.getInstance().translate("File Grabber"), DEFAULT_OPTION, INFORMATION_MESSAGE, - null, - options, - null); + } else { - } else { - - n = 1; - - } - - if (n == 0) { - - files.stream().map((file) -> { - List aux = new ArrayList<>(); - aux.add(file); - return aux; - }).map((aux) -> new FileGrabberDialog(tthis, true, aux)).forEachOrdered((dialog) -> { - _new_upload_dialog(dialog); - }); - - } else if (n == 1) { - - final FileGrabberDialog dialog = new FileGrabberDialog(tthis, true, files); - - _new_upload_dialog(dialog); - - } + n = 1; } + if (n == 0) { + + files.stream().map((file) -> { + List aux = new ArrayList<>(); + aux.add(file); + return aux; + }).map((aux) -> new FileGrabberDialog(tthis, true, aux)).forEachOrdered((dialog) -> { + _new_upload_dialog(dialog); + }); + + } else if (n == 1) { + + final FileGrabberDialog dialog = new FileGrabberDialog(tthis, true, files); + + _new_upload_dialog(dialog); + + } }); } @@ -898,143 +875,141 @@ public final class MainPanelView extends javax.swing.JFrame implements FileDropH final MainPanelView tthis = this; - Runnable run = new Runnable() { - @Override - public void run() { + Runnable run = () -> { - Set urls = new HashSet(findAllRegex("(?:https?|mega)://[^/\r\n]+/(#[^\r\n!]*?)?![^\r\n!]+![^\r\n]+", dialog.getLinks_textarea().getText(), 0)); + Thread.currentThread().setPriority(Thread.MIN_PRIORITY); - Set megadownloader = new HashSet(findAllRegex("mega://enc[^\r\n]+", dialog.getLinks_textarea().getText(), 0)); + Set urls = new HashSet(findAllRegex("(?:https?|mega)://[^/\r\n]+/(#[^\r\n!]*?)?![^\r\n!]+![^\r\n]+", dialog.getLinks_textarea().getText(), 0)); + + Set megadownloader = new HashSet(findAllRegex("mega://enc[^\r\n]+", dialog.getLinks_textarea().getText(), 0)); + + megadownloader.forEach((link) -> { + try { + + urls.add(decryptMegaDownloaderLink(link)); + + } catch (Exception ex) { + LOG.log(SEVERE, null, ex); + } + }); + + Set elc = new HashSet(findAllRegex("mega://elc[^\r\n]+", dialog.getLinks_textarea().getText(), 0)); + + elc.forEach((link) -> { + try { + + urls.addAll(CryptTools.decryptELC(link, getMain_panel())); + + } catch (Exception ex) { + LOG.log(SEVERE, null, ex); + } + }); + + Set dlc = new HashSet(findAllRegex("dlc://([^\r\n]+)", dialog.getLinks_textarea().getText(), 1)); + + dlc.stream().map((d) -> CryptTools.decryptDLC(d, _main_panel)).forEachOrdered((links) -> { + links.stream().filter((link) -> (findFirstRegex("(?:https?|mega)://[^/\r\n]+/(#[^\r\n!]*?)?![^\r\n!]+![^\r\n]+", link, 0) != null)).forEachOrdered((link) -> { + urls.add(link); + }); + }); + + if (!urls.isEmpty()) { + + getMain_panel().getDownload_manager().getTransference_preprocess_global_queue().addAll(urls); + + getMain_panel().getDownload_manager().secureNotify(); + + boolean link_warning; + + for (String url : urls) { - megadownloader.forEach((link) -> { try { - urls.add(decryptMegaDownloaderLink(link)); + link_warning = false; - } catch (Exception ex) { - LOG.log(SEVERE, null, ex); - } - }); + url = URLDecoder.decode(url, "UTF-8").replaceAll("^mega://", "https://mega.nz").trim(); - Set elc = new HashSet(findAllRegex("mega://elc[^\r\n]+", dialog.getLinks_textarea().getText(), 0)); + Download download; - elc.forEach((link) -> { - try { + if (findFirstRegex("#F!", url, 0) != null) { - urls.addAll(CryptTools.decryptELC(link, getMain_panel())); + FolderLinkDialog fdialog = new FolderLinkDialog(_main_panel.getView(), true, url); - } catch (Exception ex) { - LOG.log(SEVERE, null, ex); - } - }); + if (!fdialog.isMega_error()) { - Set dlc = new HashSet(findAllRegex("dlc://([^\r\n]+)", dialog.getLinks_textarea().getText(), 1)); + fdialog.setLocationRelativeTo(_main_panel.getView()); - dlc.stream().map((d) -> CryptTools.decryptDLC(d, _main_panel)).forEachOrdered((links) -> { - links.stream().filter((link) -> (findFirstRegex("(?:https?|mega)://[^/\r\n]+/(#[^\r\n!]*?)?![^\r\n!]+![^\r\n]+", link, 0) != null)).forEachOrdered((link) -> { - urls.add(link); - }); - }); + fdialog.setVisible(true); - if (!urls.isEmpty()) { + if (fdialog.isDownload()) { - getMain_panel().getDownload_manager().getTransference_preprocess_global_queue().addAll(urls); + List folder_links = fdialog.getDownload_links(); - getMain_panel().getDownload_manager().secureNotify(); + fdialog.dispose(); - boolean link_warning; + for (HashMap folder_link : folder_links) { - for (String url : urls) { + while (getMain_panel().getDownload_manager().getTransference_waitstart_queue().size() >= TransferenceManager.MAX_WAIT_QUEUE) { - try { + if (!link_warning) { + link_warning = true; - link_warning = false; - - url = URLDecoder.decode(url, "UTF-8").replaceAll("^mega://", "https://mega.nz").trim(); - - Download download; - - if (findFirstRegex("#F!", url, 0) != null) { - - FolderLinkDialog fdialog = new FolderLinkDialog(_main_panel.getView(), true, url); - - if (!fdialog.isMega_error()) { - - fdialog.setLocationRelativeTo(_main_panel.getView()); - - fdialog.setVisible(true); - - if (fdialog.isDownload()) { - - List folder_links = fdialog.getDownload_links(); - - fdialog.dispose(); - - for (HashMap folder_link : folder_links) { - - while (getMain_panel().getDownload_manager().getTransference_waitstart_queue().size() >= TransferenceManager.MAX_WAIT_QUEUE) { - - if (!link_warning) { - link_warning = true; - - JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("There are a lot of files in this folder.\nNot all links will be provisioned at once to avoid saturating MegaBasterd"), "Warning", JOptionPane.WARNING_MESSAGE); - } - - synchronized (getMain_panel().getDownload_manager().getWait_queue_lock()) { - getMain_panel().getDownload_manager().getWait_queue_lock().wait(1000); - } + JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("There are a lot of files in this folder.\nNot all links will be provisioned at once to avoid saturating MegaBasterd"), "Warning", JOptionPane.WARNING_MESSAGE); } - if (!getMain_panel().getDownload_manager().getTransference_preprocess_global_queue().isEmpty()) { - - download = new Download(getMain_panel(), ma, (String) folder_link.get("url"), dl_path, (String) folder_link.get("filename"), (String) folder_link.get("filekey"), (long) folder_link.get("filesize"), null, null, getMain_panel().isUse_slots_down(), true, getMain_panel().isUse_custom_chunks_dir() ? getMain_panel().getCustom_chunks_dir() : null); - - getMain_panel().getDownload_manager().getTransference_provision_queue().add(download); - - getMain_panel().getDownload_manager().secureNotify(); - } else { - break; + synchronized (getMain_panel().getDownload_manager().getWait_queue_lock()) { + getMain_panel().getDownload_manager().getWait_queue_lock().wait(1000); } } + + if (!getMain_panel().getDownload_manager().getTransference_preprocess_global_queue().isEmpty()) { + + download = new Download(getMain_panel(), ma, (String) folder_link.get("url"), dl_path, (String) folder_link.get("filename"), (String) folder_link.get("filekey"), (long) folder_link.get("filesize"), null, null, getMain_panel().isUse_slots_down(), true, getMain_panel().isUse_custom_chunks_dir() ? getMain_panel().getCustom_chunks_dir() : null); + + getMain_panel().getDownload_manager().getTransference_provision_queue().add(download); + + getMain_panel().getDownload_manager().secureNotify(); + } else { + break; + } } - - } - - fdialog.dispose(); - - } else { - - while (getMain_panel().getDownload_manager().getTransference_waitstart_queue().size() >= TransferenceManager.MAX_WAIT_QUEUE) { - - synchronized (getMain_panel().getDownload_manager().getWait_queue_lock()) { - getMain_panel().getDownload_manager().getWait_queue_lock().wait(1000); - } - } - - if (!getMain_panel().getDownload_manager().getTransference_preprocess_global_queue().isEmpty()) { - - download = new Download(getMain_panel(), ma, url, dl_path, null, null, null, null, null, getMain_panel().isUse_slots_down(), false, getMain_panel().isUse_custom_chunks_dir() ? getMain_panel().getCustom_chunks_dir() : null); - - getMain_panel().getDownload_manager().getTransference_provision_queue().add(download); - - getMain_panel().getDownload_manager().secureNotify(); } } - getMain_panel().getDownload_manager().getTransference_preprocess_global_queue().remove(url); + fdialog.dispose(); - getMain_panel().getDownload_manager().secureNotify(); + } else { + + while (getMain_panel().getDownload_manager().getTransference_waitstart_queue().size() >= TransferenceManager.MAX_WAIT_QUEUE) { + + synchronized (getMain_panel().getDownload_manager().getWait_queue_lock()) { + getMain_panel().getDownload_manager().getWait_queue_lock().wait(1000); + } + } + + if (!getMain_panel().getDownload_manager().getTransference_preprocess_global_queue().isEmpty()) { + + download = new Download(getMain_panel(), ma, url, dl_path, null, null, null, null, null, getMain_panel().isUse_slots_down(), false, getMain_panel().isUse_custom_chunks_dir() ? getMain_panel().getCustom_chunks_dir() : null); + + getMain_panel().getDownload_manager().getTransference_provision_queue().add(download); + + getMain_panel().getDownload_manager().secureNotify(); + } - } catch (UnsupportedEncodingException ex) { - LOG.log(Level.SEVERE, ex.getMessage()); - } catch (InterruptedException ex) { - Logger.getLogger(MainPanelView.class.getName()).log(Level.SEVERE, ex.getMessage()); } - } - } + getMain_panel().getDownload_manager().getTransference_preprocess_global_queue().remove(url); + getMain_panel().getDownload_manager().secureNotify(); + + } catch (UnsupportedEncodingException ex) { + LOG.log(Level.SEVERE, ex.getMessage()); + } catch (InterruptedException ex) { + Logger.getLogger(MainPanelView.class.getName()).log(Level.SEVERE, ex.getMessage()); + } + + } } }; @@ -1315,25 +1290,9 @@ public final class MainPanelView extends javax.swing.JFrame implements FileDropH unfreeze_transferences_button.setVisible(false); - THREAD_POOL.execute(new Runnable() { + THREAD_POOL.execute(_main_panel.getDownload_manager()::unfreezeTransferenceWaitStartQueue); - @Override - public void run() { - - _main_panel.getDownload_manager().unfreezeTransferenceWaitStartQueue(); - - } - }); - - THREAD_POOL.execute(new Runnable() { - - @Override - public void run() { - - _main_panel.getUpload_manager().unfreezeTransferenceWaitStartQueue(); - - } - }); + THREAD_POOL.execute(_main_panel.getUpload_manager()::unfreezeTransferenceWaitStartQueue); }//GEN-LAST:event_unfreeze_transferences_buttonActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables diff --git a/src/main/java/com/tonikelope/megabasterd/MiscTools.java b/src/main/java/com/tonikelope/megabasterd/MiscTools.java index 8ad1f974d..daa819882 100644 --- a/src/main/java/com/tonikelope/megabasterd/MiscTools.java +++ b/src/main/java/com/tonikelope/megabasterd/MiscTools.java @@ -87,20 +87,15 @@ public class MiscTools { public static final int EXP_BACKOFF_MAX_WAIT_TIME = 8; public static final Object PASS_LOCK = new Object(); public static final int HTTP_TIMEOUT = 30; - private static final Comparator TREE_NODE_COMPARATOR = new Comparator< DefaultMutableTreeNode>() { - - @Override - public int compare(DefaultMutableTreeNode a, DefaultMutableTreeNode b) { - - if (a.isLeaf() && !b.isLeaf()) { - return 1; - } else if (!a.isLeaf() && b.isLeaf()) { - return -1; - } else { - String sa = a.getUserObject().toString(); - String sb = b.getUserObject().toString(); - return sa.compareToIgnoreCase(sb); - } + private static final Comparator TREE_NODE_COMPARATOR = (DefaultMutableTreeNode a, DefaultMutableTreeNode b) -> { + if (a.isLeaf() && !b.isLeaf()) { + return 1; + } else if (!a.isLeaf() && b.isLeaf()) { + return -1; + } else { + String sa = a.getUserObject().toString(); + String sb = b.getUserObject().toString(); + return sa.compareToIgnoreCase(sb); } }; private static final Logger LOG = Logger.getLogger(MiscTools.class.getName()); diff --git a/src/main/java/com/tonikelope/megabasterd/SetMasterPasswordDialog.java b/src/main/java/com/tonikelope/megabasterd/SetMasterPasswordDialog.java index 5c4e8a2ba..05caa43cb 100644 --- a/src/main/java/com/tonikelope/megabasterd/SetMasterPasswordDialog.java +++ b/src/main/java/com/tonikelope/megabasterd/SetMasterPasswordDialog.java @@ -216,64 +216,37 @@ public class SetMasterPasswordDialog extends javax.swing.JDialog { final Dialog tthis = this; - THREAD_POOL.execute(new Runnable() { + THREAD_POOL.execute(() -> { + try { + if (Arrays.equals(new_pass_textfield.getPassword(), confirm_pass_textfield.getPassword())) { + swingInvoke(() -> { + status_label.setText(LabelTranslatorSingleton.getInstance().translate("Processing your password, please wait...")); + }); + if (new_pass_textfield.getPassword().length > 0) { - @Override - public void run() { - - try { - - if (Arrays.equals(new_pass_textfield.getPassword(), confirm_pass_textfield.getPassword())) { - - swingInvoke( - new Runnable() { - @Override - public void run() { - status_label.setText(LabelTranslatorSingleton.getInstance().translate("Processing your password, please wait...")); - } - }); - - if (new_pass_textfield.getPassword().length > 0) { - - _new_pass = CryptTools.PBKDF2HMACSHA256(new String(new_pass_textfield.getPassword()), BASE642Bin(_salt), CryptTools.MASTER_PASSWORD_PBKDF2_ITERATIONS, CryptTools.MASTER_PASSWORD_PBKDF2_OUTPUT_BIT_LENGTH); - - _new_pass_hash = Bin2BASE64(HashBin("SHA-1", _new_pass)); - } - - _pass_ok = true; - - swingInvoke( - new Runnable() { - @Override - public void run() { - - tthis.setVisible(false); - } - }); - - } else { - - swingInvoke( - new Runnable() { - @Override - public void run() { - JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("Passwords does not match!"), "Error", JOptionPane.ERROR_MESSAGE); - - status_label.setText(""); - - new_pass_textfield.setText(""); - - confirm_pass_textfield.setText(""); - - new_pass_textfield.grabFocus(); - } - }); + _new_pass = CryptTools.PBKDF2HMACSHA256(new String(new_pass_textfield.getPassword()), BASE642Bin(_salt), CryptTools.MASTER_PASSWORD_PBKDF2_ITERATIONS, CryptTools.MASTER_PASSWORD_PBKDF2_OUTPUT_BIT_LENGTH); + _new_pass_hash = Bin2BASE64(HashBin("SHA-1", _new_pass)); } + _pass_ok = true; + swingInvoke(() -> { + tthis.setVisible(false); + }); + } else { + swingInvoke(() -> { + JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("Passwords does not match!"), "Error", JOptionPane.ERROR_MESSAGE); - } catch (Exception ex) { - LOG.log(Level.SEVERE, ex.getMessage()); + status_label.setText(""); + + new_pass_textfield.setText(""); + + confirm_pass_textfield.setText(""); + + new_pass_textfield.grabFocus(); + }); } + } catch (Exception ex) { + LOG.log(Level.SEVERE, ex.getMessage()); } }); }//GEN-LAST:event_ok_buttonActionPerformed diff --git a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java index d43d6c435..aab2f159a 100644 --- a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java +++ b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java @@ -1823,27 +1823,106 @@ public class SettingsDialog extends javax.swing.JDialog { final Dialog tthis = this; - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + ArrayList email_error = new ArrayList<>(); + ArrayList new_valid_mega_accounts = new ArrayList<>(); + for (int i = 0; i < model_row_count; i++) { - ArrayList email_error = new ArrayList<>(); + String email = (String) model.getValueAt(i, 0); - ArrayList new_valid_mega_accounts = new ArrayList<>(); + String pass = (String) model.getValueAt(i, 1); - for (int i = 0; i < model_row_count; i++) { + if (!email.isEmpty() && !pass.isEmpty()) { - String email = (String) model.getValueAt(i, 0); + new_valid_mega_accounts.add(email); - String pass = (String) model.getValueAt(i, 1); + MegaAPI ma; - if (!email.isEmpty() && !pass.isEmpty()) { + if (_main_panel.getMega_accounts().get(email) == null) { - new_valid_mega_accounts.add(email); + ma = new MegaAPI(); - MegaAPI ma; + try { - if (_main_panel.getMega_accounts().get(email) == null) { + String pincode = null; + + boolean error_2FA = false; + + if (ma.check2FA(email)) { + + Get2FACode dialog = new Get2FACode((Frame) getParent(), true, email, _main_panel); + + dialog.setLocationRelativeTo(tthis); + + dialog.setVisible(true); + + if (dialog.isCode_ok()) { + pincode = dialog.getPin_code(); + } else { + error_2FA = true; + } + } + + if (!error_2FA) { + ma.login(email, pass, pincode); + + ByteArrayOutputStream bs = new ByteArrayOutputStream(); + + try (ObjectOutputStream os = new ObjectOutputStream(bs)) { + os.writeObject(ma); + } + + if (_main_panel.getMaster_pass() != null) { + + DBTools.insertMegaSession(email, CryptTools.aes_cbc_encrypt_pkcs7(bs.toByteArray(), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV), true); + + } else { + + DBTools.insertMegaSession(email, bs.toByteArray(), false); + } + + _main_panel.getMega_active_accounts().put(email, ma); + + String password = pass, password_aes = Bin2BASE64(i32a2bin(ma.getPassword_aes())), user_hash = ma.getUser_hash(); + + if (_main_panel.getMaster_pass_hash() != null) { + + password = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(pass.getBytes("UTF-8"), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); + + password_aes = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(i32a2bin(ma.getPassword_aes()), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); + + user_hash = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(UrlBASE642Bin(ma.getUser_hash()), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); + } + + DBTools.insertMegaAccount(email, password, password_aes, user_hash); + } else { + email_error.add(email); + } + + } catch (Exception ex) { + + email_error.add(email); + LOG.log(Level.SEVERE, ex.getMessage()); + } + + } else { + + HashMap mega_account_data = (HashMap) _main_panel.getMega_accounts().get(email); + + String password = (String) mega_account_data.get("password"); + + if (_main_panel.getMaster_pass() != null) { + + try { + + password = new String(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin(password), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV), "UTF-8"); + + } catch (Exception ex) { + LOG.log(Level.SEVERE, ex.getMessage()); + } + } + + if (!password.equals(pass)) { ma = new MegaAPI(); @@ -1869,6 +1948,7 @@ public class SettingsDialog extends javax.swing.JDialog { } if (!error_2FA) { + ma.login(email, pass, pincode); ByteArrayOutputStream bs = new ByteArrayOutputStream(); @@ -1888,9 +1968,11 @@ public class SettingsDialog extends javax.swing.JDialog { _main_panel.getMega_active_accounts().put(email, ma); - String password = pass, password_aes = Bin2BASE64(i32a2bin(ma.getPassword_aes())), user_hash = ma.getUser_hash(); + password = pass; - if (_main_panel.getMaster_pass_hash() != null) { + String password_aes = Bin2BASE64(i32a2bin(ma.getPassword_aes())), user_hash = ma.getUser_hash(); + + if (_main_panel.getMaster_pass() != null) { password = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(pass.getBytes("UTF-8"), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); @@ -1908,158 +1990,54 @@ public class SettingsDialog extends javax.swing.JDialog { email_error.add(email); LOG.log(Level.SEVERE, ex.getMessage()); - } - } else { - - HashMap mega_account_data = (HashMap) _main_panel.getMega_accounts().get(email); - - String password = (String) mega_account_data.get("password"); - - if (_main_panel.getMaster_pass() != null) { - - try { - - password = new String(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin(password), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV), "UTF-8"); - - } catch (Exception ex) { - LOG.log(Level.SEVERE, ex.getMessage()); - } - } - - if (!password.equals(pass)) { - - ma = new MegaAPI(); - - try { - - String pincode = null; - - boolean error_2FA = false; - - if (ma.check2FA(email)) { - - Get2FACode dialog = new Get2FACode((Frame) getParent(), true, email, _main_panel); - - dialog.setLocationRelativeTo(tthis); - - dialog.setVisible(true); - - if (dialog.isCode_ok()) { - pincode = dialog.getPin_code(); - } else { - error_2FA = true; - } - } - - if (!error_2FA) { - - ma.login(email, pass, pincode); - - ByteArrayOutputStream bs = new ByteArrayOutputStream(); - - try (ObjectOutputStream os = new ObjectOutputStream(bs)) { - os.writeObject(ma); - } - - if (_main_panel.getMaster_pass() != null) { - - DBTools.insertMegaSession(email, CryptTools.aes_cbc_encrypt_pkcs7(bs.toByteArray(), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV), true); - - } else { - - DBTools.insertMegaSession(email, bs.toByteArray(), false); - } - - _main_panel.getMega_active_accounts().put(email, ma); - - password = pass; - - String password_aes = Bin2BASE64(i32a2bin(ma.getPassword_aes())), user_hash = ma.getUser_hash(); - - if (_main_panel.getMaster_pass() != null) { - - password = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(pass.getBytes("UTF-8"), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); - - password_aes = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(i32a2bin(ma.getPassword_aes()), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); - - user_hash = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(UrlBASE642Bin(ma.getUser_hash()), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); - } - - DBTools.insertMegaAccount(email, password, password_aes, user_hash); - } else { - email_error.add(email); - } - - } catch (Exception ex) { - - email_error.add(email); - LOG.log(Level.SEVERE, ex.getMessage()); - - } } } } } + } + if (email_error.size() > 0) { + String email_error_s = ""; + email_error_s = email_error.stream().map((s) -> s + "\n").reduce(email_error_s, String::concat); + final String final_email_error = email_error_s; + swingInvoke(() -> { + status.setText(""); - if (email_error.size() > 0) { + JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("There were errors with some accounts (email and/or password are/is wrong). Please, check them:\n\n") + final_email_error, "Mega Account Check Error", JOptionPane.ERROR_MESSAGE); - String email_error_s = ""; + save_button.setEnabled(true); - email_error_s = email_error.stream().map((s) -> s + "\n").reduce(email_error_s, String::concat); + cancel_button.setEnabled(true); - final String final_email_error = email_error_s; + remove_mega_account_button.setEnabled(mega_accounts_table.getModel().getRowCount() > 0); - swingInvoke(new Runnable() { - @Override - public void run() { + remove_elc_account_button.setEnabled(elc_accounts_table.getModel().getRowCount() > 0); - status.setText(""); + add_mega_account_button.setEnabled(true); - JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("There were errors with some accounts (email and/or password are/is wrong). Please, check them:\n\n") + final_email_error, "Mega Account Check Error", JOptionPane.ERROR_MESSAGE); + add_elc_account_button.setEnabled(true); - save_button.setEnabled(true); + mega_accounts_table.setEnabled(true); - cancel_button.setEnabled(true); + elc_accounts_table.setEnabled(true); - remove_mega_account_button.setEnabled(mega_accounts_table.getModel().getRowCount() > 0); + delete_all_accounts_button.setEnabled(true); - remove_elc_account_button.setEnabled(elc_accounts_table.getModel().getRowCount() > 0); + encrypt_pass_checkbox.setEnabled(true); - add_mega_account_button.setEnabled(true); - - add_elc_account_button.setEnabled(true); - - mega_accounts_table.setEnabled(true); - - elc_accounts_table.setEnabled(true); - - delete_all_accounts_button.setEnabled(true); - - encrypt_pass_checkbox.setEnabled(true); - - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - - } - }); - - } else { - - _main_panel.getMega_accounts().entrySet().stream().map((entry) -> entry.getKey()).filter((email) -> (!new_valid_mega_accounts.contains(email))).forEachOrdered((email) -> { - _deleted_mega_accounts.add(email); - }); - - swingInvoke(new Runnable() { - @Override - public void run() { - status.setText(""); - JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("Settings successfully saved!"), LabelTranslatorSingleton.getInstance().translate("Settings saved"), JOptionPane.INFORMATION_MESSAGE); - _settings_ok = true; - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - setVisible(false); - } - }); - } + setDefaultCloseOperation(DISPOSE_ON_CLOSE); + }); + } else { + _main_panel.getMega_accounts().entrySet().stream().map((entry) -> entry.getKey()).filter((email) -> (!new_valid_mega_accounts.contains(email))).forEachOrdered((email) -> { + _deleted_mega_accounts.add(email); + }); + swingInvoke(() -> { + status.setText(""); + JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("Settings successfully saved!"), LabelTranslatorSingleton.getInstance().translate("Settings saved"), JOptionPane.INFORMATION_MESSAGE); + _settings_ok = true; + setDefaultCloseOperation(DISPOSE_ON_CLOSE); + setVisible(false); + }); } }); @@ -2251,108 +2229,103 @@ public class SettingsDialog extends javax.swing.JDialog { final Dialog tthis = this; - swingInvoke(new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + GetMasterPasswordDialog dialog = new GetMasterPasswordDialog((Frame) getParent(), true, _main_panel.getMaster_pass_hash(), _main_panel.getMaster_pass_salt(), _main_panel); - GetMasterPasswordDialog dialog = new GetMasterPasswordDialog((Frame) getParent(), true, _main_panel.getMaster_pass_hash(), _main_panel.getMaster_pass_salt(), _main_panel); + dialog.setLocationRelativeTo(tthis); - dialog.setLocationRelativeTo(tthis); + dialog.setVisible(true); - dialog.setVisible(true); + if (dialog.isPass_ok()) { - if (dialog.isPass_ok()) { + _main_panel.setMaster_pass(dialog.getPass()); - _main_panel.setMaster_pass(dialog.getPass()); + dialog.deletePass(); - dialog.deletePass(); + DefaultTableModel mega_model = new DefaultTableModel(new Object[][]{}, new String[]{"Email", "Password"}); - DefaultTableModel mega_model = new DefaultTableModel(new Object[][]{}, new String[]{"Email", "Password"}); + DefaultTableModel elc_model = new DefaultTableModel(new Object[][]{}, new String[]{"Host", "User", "API KEY"}); - DefaultTableModel elc_model = new DefaultTableModel(new Object[][]{}, new String[]{"Host", "User", "API KEY"}); + mega_accounts_table.setModel(mega_model); - mega_accounts_table.setModel(mega_model); + elc_accounts_table.setModel(elc_model); - elc_accounts_table.setModel(elc_model); + encrypt_pass_checkbox.setEnabled(true); - encrypt_pass_checkbox.setEnabled(true); + mega_accounts_table.setEnabled(true); - mega_accounts_table.setEnabled(true); + elc_accounts_table.setEnabled(true); - elc_accounts_table.setEnabled(true); + remove_mega_account_button.setEnabled(true); - remove_mega_account_button.setEnabled(true); + remove_elc_account_button.setEnabled(true); - remove_elc_account_button.setEnabled(true); + add_mega_account_button.setEnabled(true); - add_mega_account_button.setEnabled(true); + add_elc_account_button.setEnabled(true); - add_elc_account_button.setEnabled(true); + unlock_accounts_button.setVisible(false); - unlock_accounts_button.setVisible(false); + delete_all_accounts_button.setEnabled(true); - delete_all_accounts_button.setEnabled(true); + _main_panel.getMega_accounts().entrySet().stream().map((pair) -> { + HashMap data = (HashMap) pair.getValue(); + String pass = null; + try { - _main_panel.getMega_accounts().entrySet().stream().map((pair) -> { - HashMap data = (HashMap) pair.getValue(); - String pass = null; - try { + pass = new String(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("password")), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV), "UTF-8"); - pass = new String(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("password")), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV), "UTF-8"); + } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | InvalidAlgorithmParameterException | IllegalBlockSizeException | BadPaddingException ex) { + LOG.log(Level.SEVERE, ex.getMessage()); + } catch (Exception ex) { + LOG.log(Level.SEVERE, ex.getMessage()); + } + String[] new_row_data = {(String) pair.getKey(), pass}; + return new_row_data; + }).forEachOrdered((new_row_data) -> { + mega_model.addRow(new_row_data); + }); + _main_panel.getElc_accounts().entrySet().stream().map((pair) -> { + HashMap data = (HashMap) pair.getValue(); + String user = null, apikey = null; + try { - } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | InvalidAlgorithmParameterException | IllegalBlockSizeException | BadPaddingException ex) { - LOG.log(Level.SEVERE, ex.getMessage()); - } catch (Exception ex) { - LOG.log(Level.SEVERE, ex.getMessage()); - } - String[] new_row_data = {(String) pair.getKey(), pass}; - return new_row_data; - }).forEachOrdered((new_row_data) -> { - mega_model.addRow(new_row_data); - }); - _main_panel.getElc_accounts().entrySet().stream().map((pair) -> { - HashMap data = (HashMap) pair.getValue(); - String user = null, apikey = null; - try { + user = new String(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("user")), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV), "UTF-8"); - user = new String(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("user")), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV), "UTF-8"); + apikey = new String(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("apikey")), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV), "UTF-8"); - apikey = new String(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("apikey")), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV), "UTF-8"); + } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | InvalidAlgorithmParameterException | IllegalBlockSizeException | BadPaddingException ex) { + LOG.log(Level.SEVERE, ex.getMessage()); + } catch (Exception ex) { + LOG.log(Level.SEVERE, ex.getMessage()); + } + String[] new_row_data = {(String) pair.getKey(), user, apikey}; + return new_row_data; + }).forEachOrdered((new_row_data) -> { + elc_model.addRow(new_row_data); + }); - } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | InvalidAlgorithmParameterException | IllegalBlockSizeException | BadPaddingException ex) { - LOG.log(Level.SEVERE, ex.getMessage()); - } catch (Exception ex) { - LOG.log(Level.SEVERE, ex.getMessage()); - } - String[] new_row_data = {(String) pair.getKey(), user, apikey}; - return new_row_data; - }).forEachOrdered((new_row_data) -> { - elc_model.addRow(new_row_data); - }); + mega_accounts_table.setAutoCreateRowSorter(true); + DefaultRowSorter sorter_mega = ((DefaultRowSorter) mega_accounts_table.getRowSorter()); + ArrayList list_mega = new ArrayList(); + list_mega.add(new RowSorter.SortKey(0, SortOrder.ASCENDING)); + sorter_mega.setSortKeys(list_mega); + sorter_mega.sort(); - mega_accounts_table.setAutoCreateRowSorter(true); - DefaultRowSorter sorter_mega = ((DefaultRowSorter) mega_accounts_table.getRowSorter()); - ArrayList list_mega = new ArrayList(); - list_mega.add(new RowSorter.SortKey(0, SortOrder.ASCENDING)); - sorter_mega.setSortKeys(list_mega); - sorter_mega.sort(); - - elc_accounts_table.setAutoCreateRowSorter(true); - DefaultRowSorter sorter_elc = ((DefaultRowSorter) elc_accounts_table.getRowSorter()); - ArrayList list_elc = new ArrayList(); - list_elc.add(new RowSorter.SortKey(0, SortOrder.ASCENDING)); - sorter_elc.setSortKeys(list_elc); - sorter_elc.sort(); - - } - - _remember_master_pass = dialog.getRemember_checkbox().isSelected(); - - dialog.dispose(); - - unlock_accounts_button.setEnabled(true); + elc_accounts_table.setAutoCreateRowSorter(true); + DefaultRowSorter sorter_elc = ((DefaultRowSorter) elc_accounts_table.getRowSorter()); + ArrayList list_elc = new ArrayList(); + list_elc.add(new RowSorter.SortKey(0, SortOrder.ASCENDING)); + sorter_elc.setSortKeys(list_elc); + sorter_elc.sort(); } + + _remember_master_pass = dialog.getRemember_checkbox().isSelected(); + + dialog.dispose(); + + unlock_accounts_button.setEnabled(true); }); }//GEN-LAST:event_unlock_accounts_buttonActionPerformed @@ -2433,142 +2406,137 @@ public class SettingsDialog extends javax.swing.JDialog { final Dialog tthis = this; - swingInvoke(new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + SetMasterPasswordDialog dialog = new SetMasterPasswordDialog((Frame) getParent(), true, _main_panel.getMaster_pass_salt(), _main_panel); - SetMasterPasswordDialog dialog = new SetMasterPasswordDialog((Frame) getParent(), true, _main_panel.getMaster_pass_salt(), _main_panel); + dialog.setLocationRelativeTo(tthis); - dialog.setLocationRelativeTo(tthis); + dialog.setVisible(true); - dialog.setVisible(true); + byte[] old_master_pass = null; - byte[] old_master_pass = null; + if (_main_panel.getMaster_pass() != null) { - if (_main_panel.getMaster_pass() != null) { + old_master_pass = new byte[_main_panel.getMaster_pass().length]; - old_master_pass = new byte[_main_panel.getMaster_pass().length]; + System.arraycopy(_main_panel.getMaster_pass(), 0, old_master_pass, 0, _main_panel.getMaster_pass().length); + } - System.arraycopy(_main_panel.getMaster_pass(), 0, old_master_pass, 0, _main_panel.getMaster_pass().length); - } + String old_master_pass_hash = _main_panel.getMaster_pass_hash(); - String old_master_pass_hash = _main_panel.getMaster_pass_hash(); + if (dialog.isPass_ok()) { - if (dialog.isPass_ok()) { + try { - try { + DBTools.truncateMegaSessions(); - DBTools.truncateMegaSessions(); + if (dialog.getNew_pass() != null && dialog.getNew_pass().length > 0) { - if (dialog.getNew_pass() != null && dialog.getNew_pass().length > 0) { + _main_panel.setMaster_pass_hash(dialog.getNew_pass_hash()); - _main_panel.setMaster_pass_hash(dialog.getNew_pass_hash()); + _main_panel.setMaster_pass(dialog.getNew_pass()); - _main_panel.setMaster_pass(dialog.getNew_pass()); + } else { + + _main_panel.setMaster_pass_hash(null); + + _main_panel.setMaster_pass(null); + } + + dialog.deleteNewPass(); + + insertSettingValue("master_pass_hash", _main_panel.getMaster_pass_hash()); + + for (Map.Entry pair : _main_panel.getMega_accounts().entrySet()) { + + HashMap data = (HashMap) pair.getValue(); + + String email, password, password_aes, user_hash; + + email = (String) pair.getKey(); + + if (old_master_pass_hash != null) { + + password = new String(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("password")), old_master_pass, CryptTools.AES_ZERO_IV), "UTF-8"); + + password_aes = Bin2BASE64(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("password_aes")), old_master_pass, CryptTools.AES_ZERO_IV)); + + user_hash = Bin2BASE64(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("user_hash")), old_master_pass, CryptTools.AES_ZERO_IV)); } else { - _main_panel.setMaster_pass_hash(null); + password = (String) data.get("password"); - _main_panel.setMaster_pass(null); + password_aes = (String) data.get("password_aes"); + + user_hash = (String) data.get("user_hash"); } - dialog.deleteNewPass(); + if (_main_panel.getMaster_pass() != null) { - insertSettingValue("master_pass_hash", _main_panel.getMaster_pass_hash()); + password = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(password.getBytes("UTF-8"), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); - for (Map.Entry pair : _main_panel.getMega_accounts().entrySet()) { + password_aes = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(BASE642Bin(password_aes), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); - HashMap data = (HashMap) pair.getValue(); - - String email, password, password_aes, user_hash; - - email = (String) pair.getKey(); - - if (old_master_pass_hash != null) { - - password = new String(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("password")), old_master_pass, CryptTools.AES_ZERO_IV), "UTF-8"); - - password_aes = Bin2BASE64(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("password_aes")), old_master_pass, CryptTools.AES_ZERO_IV)); - - user_hash = Bin2BASE64(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("user_hash")), old_master_pass, CryptTools.AES_ZERO_IV)); - - } else { - - password = (String) data.get("password"); - - password_aes = (String) data.get("password_aes"); - - user_hash = (String) data.get("user_hash"); - } - - if (_main_panel.getMaster_pass() != null) { - - password = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(password.getBytes("UTF-8"), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); - - password_aes = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(BASE642Bin(password_aes), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); - - user_hash = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(BASE642Bin(user_hash), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); - } - - data.put("password", password); - - data.put("password_aes", password_aes); - - data.put("user_hash", user_hash); - - DBTools.insertMegaAccount(email, password, password_aes, user_hash); + user_hash = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(BASE642Bin(user_hash), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); } - for (Map.Entry pair : _main_panel.getElc_accounts().entrySet()) { + data.put("password", password); - HashMap data = (HashMap) pair.getValue(); + data.put("password_aes", password_aes); - String host, user, apikey; + data.put("user_hash", user_hash); - host = (String) pair.getKey(); - - if (old_master_pass_hash != null) { - - user = new String(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("user")), old_master_pass, CryptTools.AES_ZERO_IV), "UTF-8"); - - apikey = new String(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("apikey")), old_master_pass, CryptTools.AES_ZERO_IV), "UTF-8"); - - } else { - - user = (String) data.get("user"); - - apikey = (String) data.get("apikey"); - - } - - if (_main_panel.getMaster_pass() != null) { - - user = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(user.getBytes("UTF-8"), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); - - apikey = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(apikey.getBytes("UTF-8"), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); - } - - data.put("user", user); - - data.put("apikey", apikey); - - DBTools.insertELCAccount(host, user, apikey); - } - - } catch (Exception ex) { - LOG.log(Level.SEVERE, ex.getMessage()); + DBTools.insertMegaAccount(email, password, password_aes, user_hash); } + for (Map.Entry pair : _main_panel.getElc_accounts().entrySet()) { + + HashMap data = (HashMap) pair.getValue(); + + String host, user, apikey; + + host = (String) pair.getKey(); + + if (old_master_pass_hash != null) { + + user = new String(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("user")), old_master_pass, CryptTools.AES_ZERO_IV), "UTF-8"); + + apikey = new String(CryptTools.aes_cbc_decrypt_pkcs7(BASE642Bin((String) data.get("apikey")), old_master_pass, CryptTools.AES_ZERO_IV), "UTF-8"); + + } else { + + user = (String) data.get("user"); + + apikey = (String) data.get("apikey"); + + } + + if (_main_panel.getMaster_pass() != null) { + + user = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(user.getBytes("UTF-8"), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); + + apikey = Bin2BASE64(CryptTools.aes_cbc_encrypt_pkcs7(apikey.getBytes("UTF-8"), _main_panel.getMaster_pass(), CryptTools.AES_ZERO_IV)); + } + + data.put("user", user); + + data.put("apikey", apikey); + + DBTools.insertELCAccount(host, user, apikey); + } + + } catch (Exception ex) { + LOG.log(Level.SEVERE, ex.getMessage()); } - encrypt_pass_checkbox.setSelected((_main_panel.getMaster_pass_hash() != null)); - - dialog.dispose(); - - encrypt_pass_checkbox.setEnabled(true); - } + + encrypt_pass_checkbox.setSelected((_main_panel.getMaster_pass_hash() != null)); + + dialog.dispose(); + + encrypt_pass_checkbox.setEnabled(true); }); }//GEN-LAST:event_encrypt_pass_checkboxActionPerformed diff --git a/src/main/java/com/tonikelope/megabasterd/SmartMegaProxyManager.java b/src/main/java/com/tonikelope/megabasterd/SmartMegaProxyManager.java index e0e930cf2..f6e31a636 100644 --- a/src/main/java/com/tonikelope/megabasterd/SmartMegaProxyManager.java +++ b/src/main/java/com/tonikelope/megabasterd/SmartMegaProxyManager.java @@ -118,12 +118,8 @@ public final class SmartMegaProxyManager { } } - swingInvoke( - new Runnable() { - @Override - public void run() { - _main_panel.getView().updateSmartProxyStatus("SmartProxy: ON (" + String.valueOf(getProxyCount()) + ")"); - } + swingInvoke(() -> { + _main_panel.getView().updateSmartProxyStatus("SmartProxy: ON (" + String.valueOf(getProxyCount()) + ")"); }); LOG.log(Level.INFO, "{0} Smart Proxy Manager: proxy list refreshed ({1})", new Object[]{Thread.currentThread().getName(), _proxy_list.size()}); diff --git a/src/main/java/com/tonikelope/megabasterd/StreamerDialog.java b/src/main/java/com/tonikelope/megabasterd/StreamerDialog.java index 750531520..b368eaef5 100644 --- a/src/main/java/com/tonikelope/megabasterd/StreamerDialog.java +++ b/src/main/java/com/tonikelope/megabasterd/StreamerDialog.java @@ -62,26 +62,18 @@ public class StreamerDialog extends javax.swing.JDialog implements ClipboardChan if (_main_panel.isUse_mega_account_down() && _main_panel.getMega_accounts().size() > 0) { - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + swingInvoke(() -> { + String mega_default_down = _main_panel.getMega_account_down(); - swingInvoke(new Runnable() { - @Override - public void run() { - String mega_default_down = _main_panel.getMega_account_down(); + use_mega_account_down_combobox.addItem(mega_default_down); - use_mega_account_down_combobox.addItem(mega_default_down); - - _main_panel.getMega_accounts().keySet().stream().filter((k) -> (!mega_default_down.equals(k))).forEachOrdered((k) -> { - use_mega_account_down_combobox.addItem(k); - }); - use_mega_account_down_combobox.addItem(""); - use_mega_account_down_combobox.setSelectedIndex(0); - } + _main_panel.getMega_accounts().keySet().stream().filter((k) -> (!mega_default_down.equals(k))).forEachOrdered((k) -> { + use_mega_account_down_combobox.addItem(k); }); - - } + use_mega_account_down_combobox.addItem(""); + use_mega_account_down_combobox.setSelectedIndex(0); + }); }); } else { @@ -187,84 +179,79 @@ public class StreamerDialog extends javax.swing.JDialog implements ClipboardChan final Dialog tthis = this; - swingInvoke(new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + try { + boolean error = false; - try { - boolean error = false; + String stream_link = null; - String stream_link = null; + String link = URLDecoder.decode(original_link_textfield.getText(), "UTF-8").trim(); - String link = URLDecoder.decode(original_link_textfield.getText(), "UTF-8").trim(); + if (link.length() > 0) { - if (link.length() > 0) { + try { - try { + if (findFirstRegex("://enc", link, 0) != null) { - if (findFirstRegex("://enc", link, 0) != null) { + link = CryptTools.decryptMegaDownloaderLink(link); - link = CryptTools.decryptMegaDownloaderLink(link); + } else if (findFirstRegex("://elc", link, 0) != null) { - } else if (findFirstRegex("://elc", link, 0) != null) { + HashSet links = CryptTools.decryptELC(link, ((MainPanelView) tthis.getParent()).getMain_panel()); - HashSet links = CryptTools.decryptELC(link, ((MainPanelView) tthis.getParent()).getMain_panel()); + if (links != null) { - if (links != null) { - - link = (String) links.iterator().next(); - } + link = (String) links.iterator().next(); } - - } catch (Exception ex) { - - error = true; - - LOG.log(Level.SEVERE, ex.getMessage()); } - String data; + } catch (Exception ex) { - if (findFirstRegex("://mega(\\.co)?\\.nz/#[^fF]", link, 0) != null || findFirstRegex("https?://[^/]+/![^!]+![0-9a-fA-F]+", link, 0) != null) { + error = true; - String selected_account = (String) use_mega_account_down_combobox.getSelectedItem(); + LOG.log(Level.SEVERE, ex.getMessage()); + } - data = Bin2UrlBASE64(((selected_account != null ? selected_account : "") + "|" + link).getBytes("UTF-8")); + String data; - stream_link = "http://localhost:1337/video/" + data; + if (findFirstRegex("://mega(\\.co)?\\.nz/#[^fF]", link, 0) != null || findFirstRegex("https?://[^/]+/![^!]+![0-9a-fA-F]+", link, 0) != null) { - } else { + String selected_account = (String) use_mega_account_down_combobox.getSelectedItem(); - error = true; - } + data = Bin2UrlBASE64(((selected_account != null ? selected_account : "") + "|" + link).getBytes("UTF-8")); + + stream_link = "http://localhost:1337/video/" + data; } else { error = true; } - if (error) { + } else { - JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("Please, paste a Mega/MegaCrypter/ELC link!"), "Error", JOptionPane.ERROR_MESSAGE); - - original_link_textfield.setText(""); - - dance_button.setEnabled(true); - - original_link_textfield.setEnabled(true); - - } else { - - _mainPanelView.getMain_panel().getClipboardspy().detachObserver((ClipboardChangeObserver) tthis); - copyTextToClipboard(stream_link); - JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("Streaming link was copied to clipboard!\nRemember to keep MegaBasterd running in background while playing content.")); - dispose(); - getParent().dispatchEvent(new WindowEvent(tthis, WINDOW_CLOSING)); - } - } catch (UnsupportedEncodingException ex) { - LOG.log(Level.SEVERE, ex.getMessage()); + error = true; } + if (error) { + + JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("Please, paste a Mega/MegaCrypter/ELC link!"), "Error", JOptionPane.ERROR_MESSAGE); + + original_link_textfield.setText(""); + + dance_button.setEnabled(true); + + original_link_textfield.setEnabled(true); + + } else { + + _mainPanelView.getMain_panel().getClipboardspy().detachObserver((ClipboardChangeObserver) tthis); + copyTextToClipboard(stream_link); + JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("Streaming link was copied to clipboard!\nRemember to keep MegaBasterd running in background while playing content.")); + dispose(); + getParent().dispatchEvent(new WindowEvent(tthis, WINDOW_CLOSING)); + } + } catch (UnsupportedEncodingException ex) { + LOG.log(Level.SEVERE, ex.getMessage()); } }); }//GEN-LAST:event_dance_buttonActionPerformed @@ -286,48 +273,32 @@ public class StreamerDialog extends javax.swing.JDialog implements ClipboardChan final StreamerDialog tthis = this; - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { - - boolean use_account = true; - - try { - - if (checkMegaAccountLoginAndShowMasterPassDialog(_main_panel, tthis, _selected_item) == null) { - use_account = false; - } - - } catch (Exception ex) { + THREAD_POOL.execute(() -> { + boolean use_account = true; + try { + if (checkMegaAccountLoginAndShowMasterPassDialog(_main_panel, tthis, _selected_item) == null) { use_account = false; } - if (!use_account) { - swingInvoke(new Runnable() { - @Override - public void run() { - use_mega_account_down_combobox.setSelectedIndex(_main_panel.getMega_accounts().size()); - - } - }); - } - - swingInvoke(new Runnable() { - @Override - public void run() { - getUse_mega_account_down_combobox().setEnabled(true); - - getDance_button().setText(LabelTranslatorSingleton.getInstance().translate("Let's dance, baby")); - - getDance_button().setEnabled(true); - - pack(); - - } - }); + } catch (Exception ex) { + use_account = false; } + if (!use_account) { + swingInvoke(() -> { + use_mega_account_down_combobox.setSelectedIndex(_main_panel.getMega_accounts().size()); + }); + } + swingInvoke(() -> { + getUse_mega_account_down_combobox().setEnabled(true); + + getDance_button().setText(LabelTranslatorSingleton.getInstance().translate("Let's dance, baby")); + + getDance_button().setEnabled(true); + + pack(); + }); }); } @@ -337,17 +308,12 @@ public class StreamerDialog extends javax.swing.JDialog implements ClipboardChan @Override public void notifyClipboardChange() { - swingInvoke(new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + String link = extractFirstMegaLinkFromString(extractStringFromClipboardContents(_clipboardspy.getContents())); - String link = extractFirstMegaLinkFromString(extractStringFromClipboardContents(_clipboardspy.getContents())); - - if (!link.contains("/#F!")) { - - original_link_textfield.setText(link); - } + if (!link.contains("/#F!")) { + original_link_textfield.setText(link); } }); } diff --git a/src/main/java/com/tonikelope/megabasterd/TransferenceManager.java b/src/main/java/com/tonikelope/megabasterd/TransferenceManager.java index b7cc46817..0d139fdb6 100644 --- a/src/main/java/com/tonikelope/megabasterd/TransferenceManager.java +++ b/src/main/java/com/tonikelope/megabasterd/TransferenceManager.java @@ -6,7 +6,6 @@ import java.awt.Component; import java.awt.TrayIcon; import java.util.ArrayList; import java.util.Collections; -import java.util.Comparator; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.logging.Level; import static java.util.logging.Level.SEVERE; @@ -312,23 +311,15 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea getTransference_waitstart_queue().addAll(wait_array); getTransference_waitstart_queue().forEach((t1) -> { - swingInvoke( - new Runnable() { - @Override - public void run() { - getScroll_panel().remove((Component) t1.getView()); - getScroll_panel().add((Component) t1.getView()); - } + swingInvoke(() -> { + getScroll_panel().remove((Component) t1.getView()); + getScroll_panel().add((Component) t1.getView()); }); }); getTransference_finished_queue().forEach((t1) -> { - swingInvoke( - new Runnable() { - @Override - public void run() { - getScroll_panel().remove((Component) t1.getView()); - getScroll_panel().add((Component) t1.getView()); - } + swingInvoke(() -> { + getScroll_panel().remove((Component) t1.getView()); + getScroll_panel().add((Component) t1.getView()); }); }); @@ -365,23 +356,15 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea getTransference_waitstart_queue().addAll(wait_array); getTransference_waitstart_queue().forEach((t1) -> { - swingInvoke( - new Runnable() { - @Override - public void run() { - getScroll_panel().remove((Component) t1.getView()); - getScroll_panel().add((Component) t1.getView()); - } + swingInvoke(() -> { + getScroll_panel().remove((Component) t1.getView()); + getScroll_panel().add((Component) t1.getView()); }); }); getTransference_finished_queue().forEach((t2) -> { - swingInvoke( - new Runnable() { - @Override - public void run() { - getScroll_panel().remove((Component) t2.getView()); - getScroll_panel().add((Component) t2.getView()); - } + swingInvoke(() -> { + getScroll_panel().remove((Component) t2.getView()); + getScroll_panel().add((Component) t2.getView()); }); }); @@ -415,14 +398,7 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea ArrayList trans_list = new ArrayList(getTransference_waitstart_queue()); - trans_list.sort(new Comparator() { - - @Override - public int compare(Transference o1, Transference o2) { - - return o1.getFile_name().compareToIgnoreCase(o2.getFile_name()); - } - }); + trans_list.sort((Transference o1, Transference o2) -> o1.getFile_name().compareToIgnoreCase(o2.getFile_name())); getTransference_waitstart_queue().clear(); @@ -452,40 +428,35 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea private void _updateView() { - swingInvoke( - new Runnable() { - @Override - public void run() { - - if (_paused_all) { - _pause_all_button.setText("RESUME ALL"); - } else { - _pause_all_button.setText("PAUSE ALL"); - } - - _pause_all_button.setVisible(!getTransference_running_list().isEmpty()); - - _clean_all_menu.getComponent().setEnabled(!_transference_preprocess_queue.isEmpty() || !_transference_provision_queue.isEmpty() || !getTransference_waitstart_queue().isEmpty()); - - if (!_transference_finished_queue.isEmpty() && _isOKFinishedInQueue()) { - - _close_all_button.setText(LabelTranslatorSingleton.getInstance().translate("Clear finished")); - - _close_all_button.setVisible(true); - - } else { - - _close_all_button.setVisible(false); - } - - _status.setText(_genStatus()); - - _main_panel.getView().getUnfreeze_transferences_button().setVisible(_main_panel.getDownload_manager().isFrozen() || _main_panel.getUpload_manager().isFrozen()); - - _main_panel.getView().revalidate(); - - _main_panel.getView().repaint(); + swingInvoke(() -> { + if (_paused_all) { + _pause_all_button.setText("RESUME ALL"); + } else { + _pause_all_button.setText("PAUSE ALL"); } + + _pause_all_button.setVisible(!getTransference_running_list().isEmpty()); + + _clean_all_menu.getComponent().setEnabled(!_transference_preprocess_queue.isEmpty() || !_transference_provision_queue.isEmpty() || !getTransference_waitstart_queue().isEmpty()); + + if (!_transference_finished_queue.isEmpty() && _isOKFinishedInQueue()) { + + _close_all_button.setText(LabelTranslatorSingleton.getInstance().translate("Clear finished")); + + _close_all_button.setVisible(true); + + } else { + + _close_all_button.setVisible(false); + } + + _status.setText(_genStatus()); + + _main_panel.getView().getUnfreeze_transferences_button().setVisible(_main_panel.getDownload_manager().isFrozen() || _main_panel.getUpload_manager().isFrozen()); + + _main_panel.getView().revalidate(); + + _main_panel.getView().repaint(); }); } @@ -528,23 +499,22 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea setRemoving_transferences(true); - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { - if (!getTransference_remove_queue().isEmpty()) { + Thread.currentThread().setPriority(Thread.MIN_PRIORITY); - ArrayList transferences = new ArrayList(getTransference_remove_queue()); + if (!getTransference_remove_queue().isEmpty()) { - getTransference_remove_queue().clear(); + ArrayList transferences = new ArrayList(getTransference_remove_queue()); - remove(transferences.toArray(new Transference[transferences.size()])); - } + getTransference_remove_queue().clear(); - setRemoving_transferences(false); - - secureNotify(); + remove(transferences.toArray(new Transference[transferences.size()])); } + + setRemoving_transferences(false); + + secureNotify(); }); } @@ -552,35 +522,33 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea setPreprocessing_transferences(true); - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { - while (!getTransference_preprocess_queue().isEmpty()) { - Runnable run = getTransference_preprocess_queue().poll(); + Thread.currentThread().setPriority(Thread.MIN_PRIORITY); - if (run != null) { + while (!getTransference_preprocess_queue().isEmpty()) { + Runnable run = getTransference_preprocess_queue().poll(); - boolean run_error; + if (run != null) { - do { - run_error = false; + boolean run_error; - try { - run.run(); - } catch (Exception ex) { - run_error = true; - LOG.log(SEVERE, null, ex); - } - } while (run_error); - } + do { + run_error = false; + + try { + run.run(); + } catch (Exception ex) { + run_error = true; + LOG.log(SEVERE, null, ex); + } + } while (run_error); } - - setPreprocessing_transferences(false); - - secureNotify(); - } + + setPreprocessing_transferences(false); + + secureNotify(); }); } @@ -590,59 +558,38 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea _tray_icon_finish = false; - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { + Thread.currentThread().setPriority(Thread.MIN_PRIORITY); - while (!getTransference_provision_queue().isEmpty()) { - Transference transference = getTransference_provision_queue().poll(); + while (!getTransference_provision_queue().isEmpty()) { + Transference transference = getTransference_provision_queue().poll(); - if (transference != null) { + if (transference != null) { - provision(transference); - - } - } - - synchronized (getQueue_sort_lock()) { - - if (!isPreprocessing_transferences() && !isProvisioning_transferences()) { - - sortTransferenceWaitStartQueue(); - - getTransference_waitstart_queue().forEach((up) -> { - swingInvoke( - new Runnable() { - @Override - public void run() { - getScroll_panel().remove((Component) up.getView()); - getScroll_panel().add((Component) up.getView()); - - } - }); - }); - getTransference_finished_queue().forEach((up) -> { - swingInvoke( - new Runnable() { - @Override - public void run() { - getScroll_panel().remove((Component) up.getView()); - getScroll_panel().add((Component) up.getView()); - - } - }); - }); - } + provision(transference); } - - _frozen = false; - - setProvisioning_transferences(false); - - secureNotify(); - } + synchronized (getQueue_sort_lock()) { + if (!isPreprocessing_transferences() && !isProvisioning_transferences()) { + sortTransferenceWaitStartQueue(); + getTransference_waitstart_queue().forEach((up) -> { + swingInvoke(() -> { + getScroll_panel().remove((Component) up.getView()); + getScroll_panel().add((Component) up.getView()); + }); + }); + getTransference_finished_queue().forEach((up) -> { + swingInvoke(() -> { + getScroll_panel().remove((Component) up.getView()); + getScroll_panel().add((Component) up.getView()); + }); + }); + } + } + _frozen = false; + setProvisioning_transferences(false); + secureNotify(); }); } @@ -651,41 +598,34 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea setStarting_transferences(true); - THREAD_POOL.execute(new Runnable() { - @Override - public void run() { + THREAD_POOL.execute(() -> { - while (!_frozen && !_main_panel.isExit() && !_paused_all && !getTransference_waitstart_queue().isEmpty() && getTransference_running_list().size() < _max_running_trans) { + Thread.currentThread().setPriority(Thread.MIN_PRIORITY); - Transference transference = getTransference_waitstart_queue().peek(); + while (!_frozen && !_main_panel.isExit() && !_paused_all && !getTransference_waitstart_queue().isEmpty() && getTransference_running_list().size() < _max_running_trans) { - if (transference != null && !transference.isFrozen()) { + Transference transference = getTransference_waitstart_queue().peek(); - getTransference_waitstart_queue().poll(); + if (transference != null && !transference.isFrozen()) { - start(transference); + getTransference_waitstart_queue().poll(); - try { - Thread.sleep(1000); - } catch (InterruptedException ex) { - Logger.getLogger(TransferenceManager.class.getName()).log(Level.SEVERE, ex.getMessage()); - } + start(transference); - } else { + } else { - _frozen = true; + _frozen = true; - } } - - synchronized (getWait_queue_lock()) { - getWait_queue_lock().notifyAll(); - } - - setStarting_transferences(false); - - secureNotify(); } + + synchronized (getWait_queue_lock()) { + getWait_queue_lock().notifyAll(); + } + + setStarting_transferences(false); + + secureNotify(); }); } diff --git a/src/main/java/com/tonikelope/megabasterd/Upload.java b/src/main/java/com/tonikelope/megabasterd/Upload.java index 3e331549e..78089444d 100644 --- a/src/main/java/com/tonikelope/megabasterd/Upload.java +++ b/src/main/java/com/tonikelope/megabasterd/Upload.java @@ -281,6 +281,7 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia return _folder_link; } + @Override public boolean isRestart() { return _restart; } @@ -370,6 +371,8 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia try { _file_size = the_file.length(); + _progress_bar_rate = Integer.MAX_VALUE / (double) _file_size; + HashMap upload_progress = DBTools.selectUploadProgress(getFile_name(), getMa().getFull_email()); if (upload_progress == null) { @@ -404,48 +407,7 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia _status_error = "PROVISION FAILED"; if (_file_name != null) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getFile_name_label().setVisible(true); - - getView().getFile_name_label().setText(_file_name); - - getView().getFile_name_label().setText(truncateText(_file_name, 100)); - - getView().getFile_name_label().setToolTipText(_file_name); - - getView().getFile_size_label().setVisible(true); - - getView().getFile_size_label().setText(formatBytes(_file_size)); - } - }); - } - - getView().hideAllExceptStatus(); - - getView().printStatusError(_status_error); - - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getRestart_button().setVisible(true); - } - }); - - } else { - - getView().printStatusNormal(LabelTranslatorSingleton.getInstance().translate(_frozen ? "(FROZEN) Waiting to start (" : "Waiting to start (") + _ma.getFull_email() + ") ..."); - - swingInvoke( - new Runnable() { - @Override - public void run() { - + swingInvoke(() -> { getView().getFile_name_label().setVisible(true); getView().getFile_name_label().setText(_file_name); @@ -457,20 +419,41 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia getView().getFile_size_label().setVisible(true); getView().getFile_size_label().setText(formatBytes(_file_size)); - } + }); + } + + getView().hideAllExceptStatus(); + + getView().printStatusError(_status_error); + + swingInvoke(() -> { + getView().getRestart_button().setVisible(true); + }); + + } else { + + getView().printStatusNormal(LabelTranslatorSingleton.getInstance().translate(_frozen ? "(FROZEN) Waiting to start (" : "Waiting to start (") + _ma.getFull_email() + ") ..."); + + swingInvoke(() -> { + getView().getFile_name_label().setVisible(true); + + getView().getFile_name_label().setText(_file_name); + + getView().getFile_name_label().setText(truncateText(_file_name, 100)); + + getView().getFile_name_label().setToolTipText(_file_name); + + getView().getFile_size_label().setVisible(true); + + getView().getFile_size_label().setText(formatBytes(_file_size)); }); } - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getClose_button().setVisible(true); - getView().getQueue_down_button().setVisible(true); - getView().getQueue_up_button().setVisible(true); - } + swingInvoke(() -> { + getView().getClose_button().setVisible(true); + getView().getQueue_down_button().setVisible(true); + getView().getQueue_up_button().setVisible(true); }); } @@ -628,13 +611,8 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia if (!_chunkworkers.isEmpty()) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getSlots_spinner().setEnabled(false); - } + swingInvoke(() -> { + getView().getSlots_spinner().setEnabled(false); }); int i = _chunkworkers.size() - 1; @@ -674,14 +652,9 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia LOG.log(Level.INFO, "{0} Uploader hello! {1}", new Object[]{Thread.currentThread().getName(), this.getFile_name()}); - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getQueue_down_button().setVisible(false); - getView().getQueue_up_button().setVisible(false); - } + swingInvoke(() -> { + getView().getQueue_down_button().setVisible(false); + getView().getQueue_up_button().setVisible(false); }); getView().printStatusNormal("Starting upload, please wait..."); @@ -739,21 +712,14 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia _byte_file_iv = i32a2bin(file_iv); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getView().getClose_button().setVisible(false); - getView().getClose_button().setVisible(false); - - getView().getCbc_label().setVisible(true); - } + getView().getCbc_label().setVisible(true); }); if (_file_size > 0) { - _progress_bar_rate = Integer.MAX_VALUE / (double) _file_size; - getView().updateProgressBar(0); } else { @@ -785,32 +751,22 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia _thread_pool.execute(c); } - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getView().getSlots_label().setVisible(true); - getView().getSlots_label().setVisible(true); + getView().getSlots_spinner().setVisible(true); - getView().getSlots_spinner().setVisible(true); - - getView().getSlot_status_label().setVisible(true); - } + getView().getSlot_status_label().setVisible(true); }); } getView().printStatusNormal(LabelTranslatorSingleton.getInstance().translate("Uploading file to mega (") + _ma.getFull_email() + ") ..."); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getView().getPause_button().setVisible(true); - getView().getPause_button().setVisible(true); - - getView().getProgress_pbar().setVisible(true); - } + getView().getProgress_pbar().setVisible(true); }); secureWait(); @@ -844,14 +800,9 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia getMain_panel().getGlobal_up_speed().detachTransference(this); - swingInvoke( - new Runnable() { - @Override - public void run() { - - for (JComponent c : new JComponent[]{getView().getSpeed_label(), getView().getCbc_label(), getView().getPause_button(), getView().getStop_button(), getView().getSlots_label(), getView().getSlots_spinner()}) { - c.setVisible(false); - } + swingInvoke(() -> { + for (JComponent c : new JComponent[]{getView().getSpeed_label(), getView().getCbc_label(), getView().getPause_button(), getView().getStop_button(), getView().getSlots_label(), getView().getSlots_spinner()}) { + c.setVisible(false); } }); @@ -909,13 +860,8 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia _file_link = _ma.getPublicFileLink(_fid, i32a2bin(node_key)); - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getFile_link_button().setEnabled(true); - } + swingInvoke(() -> { + getView().getFile_link_button().setEnabled(true); }); } catch (Exception ex) { @@ -1004,71 +950,45 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia getMain_panel().getUpload_manager().getTransference_finished_queue().add(this); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getMain_panel().getUpload_manager().getScroll_panel().remove(getView()); - getMain_panel().getUpload_manager().getScroll_panel().remove(getView()); + getMain_panel().getUpload_manager().getScroll_panel().add(getView()); - getMain_panel().getUpload_manager().getScroll_panel().add(getView()); - - getMain_panel().getUpload_manager().secureNotify(); - - } + getMain_panel().getUpload_manager().secureNotify(); }); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + getView().getClose_button().setVisible(true); - getView().getClose_button().setVisible(true); + if (_status_error == null && !_canceled) { - if (_status_error == null && !_canceled) { + getView().getClose_button().setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-ok-30.png"))); - getView().getClose_button().setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-ok-30.png"))); + } - } + if (_canceled || _status_error == null) { - if (_canceled || _status_error == null) { - - getView().getRestart_button().setVisible(true); - } + getView().getRestart_button().setVisible(true); } }); if (_status_error != null && !_fatal_error) { - THREAD_POOL.execute( - new Runnable() { - @Override - public void run() { - - for (int i = 3; !_closed && i > 0; i--) { - - final int j = i; - - swingInvoke( - new Runnable() { - - @Override - public void run() { - getView().getRestart_button().setText("Restart (" + String.valueOf(j) + " secs...)"); - } - }); - - try { - Thread.sleep(1000); - } catch (InterruptedException ex) { - Logger.getLogger(Upload.class.getName()).log(Level.SEVERE, ex.getMessage()); - } + THREAD_POOL.execute(() -> { + for (int i = 3; !_closed && i > 0; i--) { + final int j = i; + swingInvoke(() -> { + getView().getRestart_button().setText("Restart (" + String.valueOf(j) + " secs...)"); + }); + try { + Thread.sleep(1000); + } catch (InterruptedException ex) { + Logger.getLogger(Upload.class.getName()).log(Level.SEVERE, ex.getMessage()); } - - if (!_closed) { - LOG.log(Level.INFO, "{0} Uploader {1} AUTO RESTARTING UPLOAD...", new Object[]{Thread.currentThread().getName(), getFile_name()}); - restart(); - } - + } + if (!_closed) { + LOG.log(Level.INFO, "{0} Uploader {1} AUTO RESTARTING UPLOAD...", new Object[]{Thread.currentThread().getName(), getFile_name()}); + restart(); } }); } @@ -1086,14 +1006,9 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia getView().printStatusNormal("Upload paused!"); - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().getPause_button().setText(LabelTranslatorSingleton.getInstance().translate("RESUME UPLOAD")); - getView().getPause_button().setEnabled(true); - - } + swingInvoke(() -> { + getView().getPause_button().setText(LabelTranslatorSingleton.getInstance().translate("RESUME UPLOAD")); + getView().getPause_button().setEnabled(true); }); } @@ -1105,14 +1020,9 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia getView().printStatusNormal("Upload paused!"); - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().getPause_button().setText(LabelTranslatorSingleton.getInstance().translate("RESUME UPLOAD")); - getView().getPause_button().setEnabled(true); - } + swingInvoke(() -> { + getView().getPause_button().setText(LabelTranslatorSingleton.getInstance().translate("RESUME UPLOAD")); + getView().getPause_button().setEnabled(true); }); } @@ -1127,24 +1037,16 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia _finishing_upload = true; - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().getSlots_spinner().setEnabled(false); + swingInvoke(() -> { + getView().getSlots_spinner().setEnabled(false); - getView().getSlots_spinner().setValue((int) getView().getSlots_spinner().getValue() - 1); - } + getView().getSlots_spinner().setValue((int) getView().getSlots_spinner().getValue() - 1); }); } else if (!_finishing_upload) { - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().getSlots_spinner().setEnabled(true); - } + swingInvoke(() -> { + getView().getSlots_spinner().setEnabled(true); }); } @@ -1153,13 +1055,9 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia getView().printStatusNormal("Upload paused!"); - swingInvoke( - new Runnable() { - @Override - public void run() { - getView().getPause_button().setText(LabelTranslatorSingleton.getInstance().translate("RESUME UPLOAD")); - getView().getPause_button().setEnabled(true); - } + swingInvoke(() -> { + getView().getPause_button().setText(LabelTranslatorSingleton.getInstance().translate("RESUME UPLOAD")); + getView().getPause_button().setEnabled(true); }); } @@ -1227,17 +1125,16 @@ public class Upload implements Transference, Runnable, SecureSingleThreadNotifia _progress = progress; - swingInvoke( - new Runnable() { - @Override - public void run() { - - getView().updateProgressBar(_progress, _progress_bar_rate); - } - }); - getMain_panel().getUpload_manager().increment_total_progress(_progress - old_progress); + int old_percent_progress = (int) Math.floor(((double) old_progress / _file_size) * 100); + + int new_percent_progress = (int) Math.floor(((double) progress / _file_size) * 100); + + if (new_percent_progress > old_percent_progress) { + + getView().updateProgressBar(_progress, _progress_bar_rate); + } } } diff --git a/src/main/java/com/tonikelope/megabasterd/UploadManager.java b/src/main/java/com/tonikelope/megabasterd/UploadManager.java index d1d9e1a7b..6d8b90ba1 100644 --- a/src/main/java/com/tonikelope/megabasterd/UploadManager.java +++ b/src/main/java/com/tonikelope/megabasterd/UploadManager.java @@ -38,12 +38,8 @@ public class UploadManager extends TransferenceManager { @Override public void provision(final Transference upload) { - swingInvoke( - new Runnable() { - @Override - public void run() { - getScroll_panel().add(((Upload) upload).getView()); - } + swingInvoke(() -> { + getScroll_panel().add(((Upload) upload).getView()); }); ((Upload) upload).provisionIt(); @@ -66,23 +62,15 @@ public class UploadManager extends TransferenceManager { getTransference_waitstart_queue().addAll(aux); getTransference_waitstart_queue().forEach((t1) -> { - swingInvoke( - new Runnable() { - @Override - public void run() { - getScroll_panel().remove((Component) t1.getView()); - getScroll_panel().add((Component) t1.getView()); - } + swingInvoke(() -> { + getScroll_panel().remove((Component) t1.getView()); + getScroll_panel().add((Component) t1.getView()); }); }); getTransference_finished_queue().forEach((t2) -> { - swingInvoke( - new Runnable() { - @Override - public void run() { - getScroll_panel().remove((Component) t2.getView()); - getScroll_panel().add((Component) t2.getView()); - } + swingInvoke(() -> { + getScroll_panel().remove((Component) t2.getView()); + getScroll_panel().add((Component) t2.getView()); }); }); @@ -106,12 +94,8 @@ public class UploadManager extends TransferenceManager { for (final Transference u : uploads) { - swingInvoke( - new Runnable() { - @Override - public void run() { - getScroll_panel().remove(((Upload) u).getView()); - } + swingInvoke(() -> { + getScroll_panel().remove(((Upload) u).getView()); }); getTransference_waitstart_queue().remove(u); diff --git a/src/main/java/com/tonikelope/megabasterd/UploadView.java b/src/main/java/com/tonikelope/megabasterd/UploadView.java index f4b6af8a9..7b569ce12 100644 --- a/src/main/java/com/tonikelope/megabasterd/UploadView.java +++ b/src/main/java/com/tonikelope/megabasterd/UploadView.java @@ -353,15 +353,7 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView { private void slots_spinnerStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_slots_spinnerStateChanged - THREAD_POOL.execute(new Runnable() { - - @Override - public void run() { - - _upload.checkSlotsAndWorkers(); - - } - }); + THREAD_POOL.execute(_upload::checkSlotsAndWorkers); }//GEN-LAST:event_slots_spinnerStateChanged private void close_buttonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_close_buttonActionPerformed @@ -390,20 +382,15 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView { public void hideAllExceptStatus() { - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + for (JComponent c : new JComponent[]{speed_label, slots_spinner, slots_label, slot_status_label, pause_button, stop_button, progress_pbar, cbc_label}) { - for (JComponent c : new JComponent[]{speed_label, slots_spinner, slots_label, slot_status_label, pause_button, stop_button, progress_pbar, cbc_label}) { + c.setVisible(false); + } - c.setVisible(false); - } + for (JComponent c : new JComponent[]{status_label, file_name_label, file_size_label}) { - for (JComponent c : new JComponent[]{status_label, file_name_label, file_size_label}) { - - c.setVisible(true); - } + c.setVisible(true); } }); } @@ -440,23 +427,11 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView { queue_up_button.setEnabled(false); - THREAD_POOL.execute(new Runnable() { - - @Override - public void run() { - - _upload.upWaitQueue(); - - swingInvoke( - new Runnable() { - @Override - public void run() { - - queue_up_button.setEnabled(true); - } - }); - - } + THREAD_POOL.execute(() -> { + _upload.upWaitQueue(); + swingInvoke(() -> { + queue_up_button.setEnabled(true); + }); }); }//GEN-LAST:event_queue_up_buttonActionPerformed @@ -465,36 +440,18 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView { queue_down_button.setEnabled(false); - THREAD_POOL.execute(new Runnable() { - - @Override - public void run() { - - _upload.downWaitQueue(); - - swingInvoke( - new Runnable() { - @Override - public void run() { - - queue_down_button.setEnabled(true); - } - }); - - } + THREAD_POOL.execute(() -> { + _upload.downWaitQueue(); + swingInvoke(() -> { + queue_down_button.setEnabled(true); + }); }); }//GEN-LAST:event_queue_down_buttonActionPerformed public void updateCBC(String status) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - cbc_label.setText(status); - - } + swingInvoke(() -> { + cbc_label.setText(status); }); } @@ -503,20 +460,15 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView { printStatusNormal("Pausing upload ..."); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + for (JComponent c : new JComponent[]{pause_button, speed_label, slots_label, slots_spinner, progress_pbar, file_name_label, file_size_label}) { - for (JComponent c : new JComponent[]{pause_button, speed_label, slots_label, slots_spinner, progress_pbar, file_name_label, file_size_label}) { + c.setEnabled(false); + } - c.setEnabled(false); - } + for (JComponent c : new JComponent[]{stop_button}) { - for (JComponent c : new JComponent[]{stop_button}) { - - c.setVisible(true); - } + c.setVisible(true); } }); } @@ -526,16 +478,10 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView { printStatusNormal(status); - swingInvoke( - new Runnable() { - @Override - public void run() { - - for (JComponent c : new JComponent[]{pause_button, stop_button, speed_label, slots_label, slots_spinner, progress_pbar, file_name_label, file_size_label}) { - - c.setEnabled(false); - } + swingInvoke(() -> { + for (JComponent c : new JComponent[]{pause_button, stop_button, speed_label, slots_label, slots_spinner, progress_pbar, file_name_label, file_size_label}) { + c.setEnabled(false); } }); } @@ -545,42 +491,32 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView { printStatusNormal("Uploading file to mega ..."); - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + for (JComponent c : new JComponent[]{pause_button, speed_label, slots_label, slots_spinner, progress_pbar, file_name_label, file_size_label}) { - for (JComponent c : new JComponent[]{pause_button, speed_label, slots_label, slots_spinner, progress_pbar, file_name_label, file_size_label}) { - - c.setEnabled(true); - } - - for (JComponent c : new JComponent[]{stop_button}) { - - c.setVisible(false); - } - - pause_button.setText(LabelTranslatorSingleton.getInstance().translate("PAUSE UPLOAD")); - _upload.getMain_panel().getView().getPause_all_up_button().setVisible(true); + c.setEnabled(true); } + + for (JComponent c : new JComponent[]{stop_button}) { + + c.setVisible(false); + } + + pause_button.setText(LabelTranslatorSingleton.getInstance().translate("PAUSE UPLOAD")); + _upload.getMain_panel().getView().getPause_all_up_button().setVisible(true); }); } @Override public void updateSpeed(final String speed, final Boolean visible) { - swingInvoke( - new Runnable() { - @Override - public void run() { + swingInvoke(() -> { + if (speed != null) { + speed_label.setText(speed); + } - if (speed != null) { - speed_label.setText(speed); - } - - if (visible != null) { - speed_label.setVisible(visible); - } + if (visible != null) { + speed_label.setVisible(visible); } }); } @@ -588,67 +524,42 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView { @Override public void updateProgressBar(final long progress, final double bar_rate) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - progress_pbar.setValue((int) Math.floor(bar_rate * progress)); - } + swingInvoke(() -> { + progress_pbar.setValue((int) Math.floor(bar_rate * progress)); }); } @Override public void updateProgressBar(final int value) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - progress_pbar.setValue(value); - } + swingInvoke(() -> { + progress_pbar.setValue(value); }); } @Override public void printStatusError(final String message) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - status_label.setForeground(Color.red); - status_label.setText(LabelTranslatorSingleton.getInstance().translate(message)); - } + swingInvoke(() -> { + status_label.setForeground(Color.red); + status_label.setText(LabelTranslatorSingleton.getInstance().translate(message)); }); } @Override public void printStatusOK(final String message) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - status_label.setForeground(new Color(0, 170, 0)); - status_label.setText(LabelTranslatorSingleton.getInstance().translate(message)); - } + swingInvoke(() -> { + status_label.setForeground(new Color(0, 170, 0)); + status_label.setText(LabelTranslatorSingleton.getInstance().translate(message)); }); } @Override public void printStatusNormal(final String message) { - swingInvoke( - new Runnable() { - @Override - public void run() { - - status_label.setForeground(new Color(102, 102, 102)); - status_label.setText(LabelTranslatorSingleton.getInstance().translate(message)); - } + swingInvoke(() -> { + status_label.setForeground(new Color(102, 102, 102)); + status_label.setText(LabelTranslatorSingleton.getInstance().translate(message)); }); } @@ -670,27 +581,16 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView { final String status = (conta_exit > 0 ? "Tot removing: " + conta_exit : "") + (conta_error > 0 ? ((conta_exit > 0 ? " / " : "") + "Tot error: " + conta_error) : ""); - swingInvoke(new Runnable() { - @Override - public void run() { - slot_status_label.setForeground(status_color); - slot_status_label.setText(LabelTranslatorSingleton.getInstance().translate(status)); - } + swingInvoke(() -> { + slot_status_label.setForeground(status_color); + slot_status_label.setText(LabelTranslatorSingleton.getInstance().translate(status)); }); } } @Override public int getSlots() { - return (int) swingInvokeAndWaitForReturn(new Callable() { - - @Override - public Object call() throws Exception { - - return getSlots_spinner().getValue(); - } - - }); + return (int) swingInvokeAndWaitForReturn((Callable) getSlots_spinner()::getValue); } // Variables declaration - do not modify//GEN-BEGIN:variables diff --git a/src/main/resources/images/mbasterd_screen.png b/src/main/resources/images/mbasterd_screen.png index e1026af8f..e70b6c7e7 100644 Binary files a/src/main/resources/images/mbasterd_screen.png and b/src/main/resources/images/mbasterd_screen.png differ