Change global status behaviour, count provider without presence only for available status, otherwise skip them.

cusax-fix
Damian Minkov 14 years ago
parent 4033f64fdc
commit 99a732d5f4

@ -95,12 +95,6 @@ public class GlobalStatusSelectorBox
*/
private ButtonGroup group = new ButtonGroup();
/**
* Ignore protocols that don't have presence operation sets
* when looking for global status.
*/
private static boolean ignoreNonPresenceOpSetProtocols = false;
/**
* Creates an instance of <tt>SimpleStatusSelectorBox</tt>.
*
@ -120,13 +114,6 @@ public GlobalStatusSelectorBox(MainFrame mainFrame)
this.add(titleLabel);
this.addSeparator();
String ignoreStrValue
= GuiActivator.getResources().getSettingsString(
"net.java.sip.communicator.service.protocol.globalstatus" +
".IGNORE_NONPRESENCEOPSET_PROTOCOLS");
if(ignoreStrValue != null)
ignoreNonPresenceOpSetProtocols = Boolean.valueOf(ignoreStrValue);
PresenceStatus offlineStatus = null;
// creates menu item entry for every global status
for(GlobalStatusEnum status : GlobalStatusEnum.globalStatusSet)
@ -419,6 +406,7 @@ private void updateGlobalStatus()
Iterator<ProtocolProviderService> pProviders
= mainFrame.getProtocolProviders();
boolean hasAvailableProvider = false;
while (pProviders.hasNext())
{
@ -439,8 +427,11 @@ private void updateGlobalStatus()
OperationSetPresence presence
= protocolProvider.getOperationSet(OperationSetPresence.class);
if(presence == null && ignoreNonPresenceOpSetProtocols)
if(presence == null)
{
hasAvailableProvider = true;
continue;
}
int presenceStatus
= (presence == null)
@ -451,6 +442,10 @@ private void updateGlobalStatus()
status = presenceStatus;
}
// if we have at least one online provider
if(status == 0 && hasAvailableProvider)
status = PresenceStatus.AVAILABLE_THRESHOLD;
JCheckBoxMenuItem item = getItemFromStatus(status);
item.setSelected(true);

@ -59,12 +59,6 @@ public class StatusSubMenu
*/
private static boolean hideAccountStatusSelectors = false;
/**
* Ignore protocols that don't have presence operation sets
* when looking for global status.
*/
private static boolean ignoreNonPresenceOpSetProtocols = false;
/**
* Creates an instance of <tt>StatusSubMenu</tt>.
*
@ -113,13 +107,6 @@ public StatusSubMenu(SystrayServiceJdicImpl tray, boolean swing)
hideAccountStatusSelectors);
}
String ignoreStrValue
= OsDependentActivator.getResources().getSettingsString(
"net.java.sip.communicator.service.protocol.globalstatus" +
".IGNORE_NONPRESENCEOPSET_PROTOCOLS");
if(ignoreStrValue != null)
ignoreNonPresenceOpSetProtocols = Boolean.valueOf(ignoreStrValue);
PresenceStatus offlineStatus = null;
// creates menu item entry for every global status
for(GlobalStatusEnum status : GlobalStatusEnum.globalStatusSet)
@ -389,6 +376,7 @@ public void registrationStateChanged(RegistrationStateChangeEvent evt)
private void updateGlobalStatus()
{
int status = 0;
boolean hasAvailableProvider = false;
for(ProtocolProviderService protocolProvider : getProtocolProviders())
{
@ -407,8 +395,11 @@ private void updateGlobalStatus()
OperationSetPresence presence
= protocolProvider.getOperationSet(OperationSetPresence.class);
if(presence == null && ignoreNonPresenceOpSetProtocols)
if(presence == null)
{
hasAvailableProvider = true;
continue;
}
int presenceStatus
= (presence == null)
@ -419,6 +410,10 @@ private void updateGlobalStatus()
status = presenceStatus;
}
// if we have at least one online provider
if(status == 0 && hasAvailableProvider)
status = PresenceStatus.AVAILABLE_THRESHOLD;
selectItemFromStatus(status);
}

Loading…
Cancel
Save