From 769a06a03fbf07995c9332a0dbeef8d9f367b48a Mon Sep 17 00:00:00 2001 From: Yana Stamcheva Date: Wed, 4 Oct 2006 10:36:20 +0000 Subject: [PATCH] account index starts from 0 instead of 1 --- .../impl/gui/main/StatusPanel.java | 99 +++++++++++-------- 1 file changed, 57 insertions(+), 42 deletions(-) diff --git a/src/net/java/sip/communicator/impl/gui/main/StatusPanel.java b/src/net/java/sip/communicator/impl/gui/main/StatusPanel.java index 091189c2d..924c2d713 100644 --- a/src/net/java/sip/communicator/impl/gui/main/StatusPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/StatusPanel.java @@ -116,6 +116,59 @@ public void startConnecting(ProtocolProviderService protocolProvider) { selectorBox.repaint(); } + /** + * + * @param protocolProvider + * @return + */ + public PresenceStatus getProtocolProviderLastStatus( + ProtocolProviderService protocolProvider) + { + ConfigurationService configService + = GuiActivator.getConfigurationService(); + + //find the last contact status saved in the configuration. + String lastStatus = null; + + Iterator i = mainFrame.getProtocolPresence(protocolProvider) + .getSupportedStatusSet(); + + String prefix = "net.java.sip.communicator.impl.ui.accounts"; + + List accounts = configService + .getPropertyNamesByPrefix(prefix, true); + + Iterator accountsIter = accounts.iterator(); + + while(accountsIter.hasNext()) { + String accountRootPropName + = (String) accountsIter.next(); + + String accountUID + = configService.getString(accountRootPropName); + + if(accountUID.equals(protocolProvider + .getAccountID().getAccountUniqueID())) { + lastStatus = configService.getString( + accountRootPropName + ".lastAccountStatus"); + + if(lastStatus != null) + break; + } + } + + if(lastStatus != null) { + PresenceStatus status; + while(i.hasNext()) { + status = (PresenceStatus)i.next(); + if(status.getStatusName().equals(lastStatus)) { + return status; + } + } + } + return null; + } + /** * Updates the status for this protocol provider. * @@ -123,7 +176,6 @@ public void startConnecting(ProtocolProviderService protocolProvider) { * update. */ public void updateStatus(ProtocolProviderService protocolProvider) { - StatusSelectorBox selectorBox = (StatusSelectorBox) protocolStatusCombos .get(protocolProvider); @@ -135,52 +187,15 @@ public void updateStatus(ProtocolProviderService protocolProvider) { if(selectorBox.getLastSelectedStatus() != null) { selectorBox.updateStatus(selectorBox.getLastSelectedStatus()); } - else { - ConfigurationService configService - = GuiActivator.getConfigurationService(); - - //find the last contact status saved in the configuration. - String lastStatus = null; - - Iterator i = mainFrame.getProtocolPresence(protocolProvider) - .getSupportedStatusSet(); - - String prefix = "net.java.sip.communicator.impl.ui.accounts"; - - List accounts = configService - .getPropertyNamesByPrefix(prefix, true); - - Iterator accountsIter = accounts.iterator(); - - while(accountsIter.hasNext()) { - String accountRootPropName - = (String) accountsIter.next(); - - String accountUID - = configService.getString(accountRootPropName); - - if(accountUID.equals(protocolProvider - .getAccountID().getAccountUniqueID())) { - lastStatus = configService.getString( - accountRootPropName + ".lastAccountStatus"); - - if(lastStatus != null) - break; - } - } + else { + PresenceStatus lastStatus + = getProtocolProviderLastStatus(protocolProvider); if(lastStatus == null) { selectorBox.updateStatus(selectorBox.getOnlineStatus()); } else { - PresenceStatus status; - while(i.hasNext()) { - status = (PresenceStatus)i.next(); - if(status.getStatusName().equals(lastStatus)) { - selectorBox.updateStatus(status); - break; - } - } + selectorBox.updateStatus(lastStatus); } } }