public void setDownloadProgress(String status, int progressValue, int totalProgressValue, final File file) {
        this.pbDownload.setString(status);
        
        this.pbDownload.setMaximum(totalProgressValue);
        this.pbDownload.setValue(progressValue);
        
        // Done downloading
        if (status.equals("Finished")) {
            if (file.getName().equals("condoms.package")) {
                ExtractingDialog ed = new ExtractingDialog(this, true, file, new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        // Loose virginity
                        ConfigManager.getInstance().getProperties().setProperty("virgin", "false");
                        ConfigManager.getInstance().saveProperties();                

                        // Remove used condoms
                        file.delete();                         
                        
                        // Download launcher
                        DownloadFileWorker dfw = new DownloadFileWorker(FirstLaunch.this, ConfigManager.getInstance().getLauncherDownloadUrl(), ConfigManager.getInstance().pathToJar + File.separatorChar + "Kubach.jar");
                        dfw.execute();                            
                    }
                });
                
                ed.setVisible(true);               
            } else if (file.getName().equals("Kubach.jar")) {                    
                try {                            
                    // Finally restart
                    restart();
                } catch (IOException ex) {
                    JOptionPane.showMessageDialog(FirstLaunch.this, "Please restart me\n" + ex.toString(), "I can't restart", JOptionPane.ERROR_MESSAGE);
                }
            }
        }
    }