@@ -8,9 +8,6 @@ import java.awt.Insets;
 | 
			
		||||
import java.awt.Toolkit;
 | 
			
		||||
import java.awt.event.KeyAdapter;
 | 
			
		||||
import java.awt.event.KeyEvent;
 | 
			
		||||
import java.awt.event.WindowAdapter;
 | 
			
		||||
import java.awt.event.WindowEvent;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.logging.Level;
 | 
			
		||||
import java.util.logging.Logger;
 | 
			
		||||
 | 
			
		||||
@@ -30,10 +27,9 @@ import envoy.client.Client;
 | 
			
		||||
import envoy.client.Config;
 | 
			
		||||
import envoy.client.LocalDB;
 | 
			
		||||
import envoy.client.Settings;
 | 
			
		||||
import envoy.client.util.EnvoyLog;
 | 
			
		||||
import envoy.client.event.EventBus;
 | 
			
		||||
import envoy.client.event.ThemeChangeEvent;
 | 
			
		||||
 | 
			
		||||
import envoy.client.util.EnvoyLog;
 | 
			
		||||
import envoy.schema.Message;
 | 
			
		||||
import envoy.schema.User;
 | 
			
		||||
 | 
			
		||||
@@ -80,21 +76,6 @@ public class ChatWindow extends JFrame {
 | 
			
		||||
		setLocationRelativeTo(null);
 | 
			
		||||
		setIconImage(Toolkit.getDefaultToolkit().createImage(getClass().getClassLoader().getResource("envoy_logo.png")));
 | 
			
		||||
 | 
			
		||||
		// Save chats when window closes
 | 
			
		||||
		addWindowListener(new WindowAdapter() {
 | 
			
		||||
 | 
			
		||||
			@Override
 | 
			
		||||
			public void windowClosing(WindowEvent evt) {
 | 
			
		||||
				try {
 | 
			
		||||
					localDB.save();
 | 
			
		||||
					Settings.getInstance().save();
 | 
			
		||||
				} catch (IOException e1) {
 | 
			
		||||
					e1.printStackTrace();
 | 
			
		||||
					logger.log(Level.WARNING, "Unable to save the messages", e1);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		contentPane.setBorder(new EmptyBorder(space, space, space, space));
 | 
			
		||||
		setContentPane(contentPane);
 | 
			
		||||
		GridBagLayout gbl_contentPane = new GridBagLayout();
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,7 @@ import javax.swing.JOptionPane;
 | 
			
		||||
import envoy.client.Client;
 | 
			
		||||
import envoy.client.Config;
 | 
			
		||||
import envoy.client.LocalDB;
 | 
			
		||||
import envoy.client.Settings;
 | 
			
		||||
import envoy.client.util.EnvoyLog;
 | 
			
		||||
import envoy.exception.EnvoyException;
 | 
			
		||||
import envoy.schema.User;
 | 
			
		||||
@@ -126,5 +127,18 @@ public class Startup {
 | 
			
		||||
				e.printStackTrace();
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
		
 | 
			
		||||
		// Save Settings and LocalDB on shutdown
 | 
			
		||||
		Runtime.getRuntime().addShutdownHook(new Thread(() -> {
 | 
			
		||||
			try {
 | 
			
		||||
				logger.info("Saving local database...");
 | 
			
		||||
				localDB.save();
 | 
			
		||||
				logger.info("Saving settings...");
 | 
			
		||||
				Settings.getInstance().save();
 | 
			
		||||
			} catch (IOException e1) {
 | 
			
		||||
				e1.printStackTrace();
 | 
			
		||||
				logger.log(Level.WARNING, "Unable to save the messages", e1);
 | 
			
		||||
			}
 | 
			
		||||
		}));
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user