Removes unnecessary call to GlobalStatusService publishStatus on providerStatusChanged, as the status has just changed. Quick change of away/online status can lead to cycling through away and online status.

.
fix-message-formatting
Damian Minkov 12 years ago
parent 797781994e
commit cf84684ada

@ -261,12 +261,11 @@ public String getLastStatusString(ProtocolProviderService protocolProvider)
*
* @param protocolProvider the protocol provider to which we
* change the status.
* @param status the status tu publish.
* @param status the status to publish.
*/
public void publishStatus(
ProtocolProviderService protocolProvider,
PresenceStatus status,
boolean rememberStatus)
PresenceStatus status)
{
OperationSetPresence presence
= protocolProvider.getOperationSet(OperationSetPresence.class);
@ -309,10 +308,9 @@ else if (!status.isOnline()
LoginManager.logoff(protocolProvider);
}
if(rememberStatus)
saveStatusInformation(
protocolProvider,
status.getStatusName());
saveStatusInformation(
protocolProvider,
status.getStatusName());
}
/**

@ -165,7 +165,7 @@ public void actionPerformed(ActionEvent e)
if (status.getStatusName().equals(menuItemText))
{
GuiActivator.getGlobalStatusService()
.publishStatus(protocolProvider, status, true);
.publishStatus(protocolProvider, status);
setSelectedStatus(status);
@ -184,9 +184,6 @@ public void actionPerformed(ActionEvent e)
*/
public void updateStatus(PresenceStatus presenceStatus)
{
OperationSetPresence presence
= AccountStatusUtils.getProtocolPresenceOpSet(protocolProvider);
if (logger.isTraceEnabled())
logger.trace("Update status for provider: "
+ protocolProvider.getAccountID().getAccountAddress()
@ -194,13 +191,6 @@ public void updateStatus(PresenceStatus presenceStatus)
this.setSelectedStatus(presenceStatus);
if (protocolProvider.isRegistered()
&& !presence.getPresenceStatus().equals(presenceStatus))
{
GuiActivator.getGlobalStatusService()
.publishStatus(protocolProvider, presenceStatus, false);
}
for(int i =0; i < getItemCount(); i++)
{
JMenuItem item = getItem(i);

@ -280,21 +280,11 @@ private void setConnecting(boolean isConnecting)
*/
public void updateStatus(PresenceStatus presenceStatus)
{
OperationSetPresence presence
= AccountStatusUtils.getProtocolPresenceOpSet(protocolProvider);
if (logger.isTraceEnabled())
logger.trace("Update status for provider: "
+ protocolProvider.getAccountID().getAccountAddress()
+ ". The new status will be: " + presenceStatus.getStatusName());
this.setSelectedStatus(presenceStatus);
if (protocolProvider.isRegistered()
&& !presence.getPresenceStatus().equals(presenceStatus))
{
GuiActivator.getGlobalStatusService()
.publishStatus(protocolProvider, presenceStatus, false);
}
}
}

@ -133,12 +133,12 @@ public void actionPerformed(ActionEvent e)
if (itemName.equals(GlobalStatusEnum.ONLINE_STATUS))
{
GuiActivator.getGlobalStatusService()
.publishStatus(protocolProvider, GlobalStatusEnum.ONLINE, true);
.publishStatus(protocolProvider, GlobalStatusEnum.ONLINE);
}
else
{
GuiActivator.getGlobalStatusService()
.publishStatus(protocolProvider, GlobalStatusEnum.OFFLINE, true);
.publishStatus(protocolProvider, GlobalStatusEnum.OFFLINE);
}
}

@ -168,7 +168,7 @@ private void changeStatus(String statusName)
if (status.getStatusName().equals(statusName))
{
OsDependentActivator.getGlobalStatusService()
.publishStatus(provider, status, true);
.publishStatus(provider, status);
break;
}

@ -107,12 +107,12 @@ private void changeStatus(Object source)
if(itemName.equals("online"))
{
OsDependentActivator.getGlobalStatusService()
.publishStatus(provider, GlobalStatusEnum.ONLINE, true);
.publishStatus(provider, GlobalStatusEnum.ONLINE);
}
else
{
OsDependentActivator.getGlobalStatusService()
.publishStatus(provider, GlobalStatusEnum.OFFLINE, true);
.publishStatus(provider, GlobalStatusEnum.OFFLINE);
}
}

@ -237,15 +237,15 @@ private void changeProtocolsToAway()
continue;
}
addProviderToLastStates(protocolProvider, status);
PresenceStatus newStatus
= StatusUpdateThread.findAwayStatus(presence);
try
{
if (newStatus != null)
if (newStatus != null && !status.equals(newStatus))
{
addProviderToLastStates(protocolProvider, status);
presence.publishPresenceStatus(
newStatus,
newStatus.getStatusName());

@ -57,10 +57,8 @@ public PresenceStatus getLastPresenceStatus(
* @param protocolProvider the protocol provider to which we
* change the status.
* @param status the status to publish.
* @param rememberStatus whether to remember the status for future restore.
*/
public void publishStatus(
ProtocolProviderService protocolProvider,
PresenceStatus status,
boolean rememberStatus);
PresenceStatus status);
}

Loading…
Cancel
Save