diff --git a/src/net/java/sip/communicator/impl/gui/main/presence/GlobalStatusSelectorBox.java b/src/net/java/sip/communicator/impl/gui/main/presence/GlobalStatusSelectorBox.java
index 01c25306a..563221781 100644
--- a/src/net/java/sip/communicator/impl/gui/main/presence/GlobalStatusSelectorBox.java
+++ b/src/net/java/sip/communicator/impl/gui/main/presence/GlobalStatusSelectorBox.java
@@ -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 SimpleStatusSelectorBox.
*
@@ -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 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);
diff --git a/src/net/java/sip/communicator/impl/osdependent/jdic/StatusSubMenu.java b/src/net/java/sip/communicator/impl/osdependent/jdic/StatusSubMenu.java
index da3596dc7..bdbc626b3 100644
--- a/src/net/java/sip/communicator/impl/osdependent/jdic/StatusSubMenu.java
+++ b/src/net/java/sip/communicator/impl/osdependent/jdic/StatusSubMenu.java
@@ -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 StatusSubMenu.
*
@@ -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);
}