From 0be6c56a93190898f5c5f852699efa1a02ce99d7 Mon Sep 17 00:00:00 2001 From: Sebastien Vincent Date: Tue, 26 Apr 2011 11:04:00 +0000 Subject: [PATCH] When a password mismatch in Google Contacts, open just one dialog. --- .../GoogleContactsSourceService.java | 33 ++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/src/net/java/sip/communicator/impl/googlecontacts/GoogleContactsSourceService.java b/src/net/java/sip/communicator/impl/googlecontacts/GoogleContactsSourceService.java index 339fee37d..fce0ff261 100644 --- a/src/net/java/sip/communicator/impl/googlecontacts/GoogleContactsSourceService.java +++ b/src/net/java/sip/communicator/impl/googlecontacts/GoogleContactsSourceService.java @@ -49,6 +49,11 @@ public class GoogleContactsSourceService */ private GoogleContactsConnection cnx = null; + /** + * The account settings form. + */ + private AccountSettingsForm settings = null; + /** * Constructor. * @@ -181,8 +186,18 @@ public GoogleContactsConnectionImpl getConnection() if(cnx.connect() == false) { - AccountSettingsForm settings = - new AccountSettingsForm(); + synchronized(this) + { + if(settings != null) + { + cnx = null; + return null; + } + else + { + settings = new AccountSettingsForm(); + } + } settings.setModal(true); settings.loadData(cnx); int ret = settings.showDialog(); @@ -202,8 +217,18 @@ public GoogleContactsConnectionImpl getConnection() } else if(!cnx.connect()) { - AccountSettingsForm settings = - new AccountSettingsForm(); + synchronized(this) + { + if(settings != null) + { + cnx = null; + return null; + } + else + { + settings = new AccountSettingsForm(); + } + } settings.setModal(true); settings.loadData(cnx); int ret = settings.showDialog();