From 9b39440190302ec0ba783d3bffba5fc03041b94f Mon Sep 17 00:00:00 2001
From: 0xboobface <0xboobface@gmail.com>
Date: Fri, 2 Nov 2018 18:26:52 +0100
Subject: [PATCH] Make login dialog more robust

---
 .../ctbrec/sites/cam4/Cam4LoginDialog.java    | 26 +++++++++++--------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/src/main/java/ctbrec/sites/cam4/Cam4LoginDialog.java b/src/main/java/ctbrec/sites/cam4/Cam4LoginDialog.java
index 45fbf6e5..c170af83 100644
--- a/src/main/java/ctbrec/sites/cam4/Cam4LoginDialog.java
+++ b/src/main/java/ctbrec/sites/cam4/Cam4LoginDialog.java
@@ -73,19 +73,23 @@ public class Cam4LoginDialog {
         });
         webEngine.getLoadWorker().stateProperty().addListener((observable, oldState, newState) -> {
             if (newState == State.SUCCEEDED) {
-                String username = Config.getInstance().getSettings().cam4Username;
-                if (username != null && !username.trim().isEmpty()) {
-                    webEngine.executeScript("$('input[name=username]').attr('value','" + username + "')");
-                }
-                String password = Config.getInstance().getSettings().cam4Password;
-                if (password != null && !password.trim().isEmpty()) {
-                    webEngine.executeScript("$('input[name=password]').attr('value','" + password + "')");
-                }
-                webEngine.executeScript("$('div[class~=navbar]').css('display','none')");
-                webEngine.executeScript("$('div#footer').css('display','none')");
-                webEngine.executeScript("$('div#content').css('padding','0')");
                 veil.setVisible(false);
                 p.setVisible(false);
+                try {
+                    String username = Config.getInstance().getSettings().cam4Username;
+                    if (username != null && !username.trim().isEmpty()) {
+                        webEngine.executeScript("$('input[name=username]').attr('value','" + username + "')");
+                    }
+                    String password = Config.getInstance().getSettings().cam4Password;
+                    if (password != null && !password.trim().isEmpty()) {
+                        webEngine.executeScript("$('input[name=password]').attr('value','" + password + "')");
+                    }
+                    webEngine.executeScript("$('div[class~=navbar]').css('display','none')");
+                    webEngine.executeScript("$('div#footer').css('display','none')");
+                    webEngine.executeScript("$('div#content').css('padding','0')");
+                } catch(Exception e) {
+                    LOG.warn("Couldn't auto fill username and password for Cam4", e);
+                }
             } else if (newState == State.CANCELLED || newState == State.FAILED) {
                 veil.setVisible(false);
                 p.setVisible(false);