Adapt D-Bus NetworkManager signal listener to NM_STATE 0.9

cusax-fix
Ingo Bauersachs 14 years ago
parent 5bef452c85
commit 2d1896a464

@ -76,7 +76,11 @@
<classpathentry kind="lib" path="lib/installer-exclude/gdata-contacts-meta-3.0.jar"/>
<classpathentry kind="lib" path="lib/installer-exclude/gdata-core-1.0.jar"/>
<classpathentry kind="lib" path="lib/installer-exclude/hexdump-0.2.jar"/>
<classpathentry kind="lib" path="lib/installer-exclude/libdbus-java-2.7.jar"/>
<classpathentry kind="lib" path="lib/installer-exclude/libdbus-java-2.7.jar">
<attributes>
<attribute name="javadoc_location" value="http://dbus.freedesktop.org/doc/dbus-java/api/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="lib/installer-exclude/unix-0.5.jar"/>
<classpathentry kind="lib" path="lib/installer-exclude/sdes4j.jar"/>
<classpathentry kind="lib" path="lib/installer-exclude/dnsjava.jar">

@ -0,0 +1,136 @@
/*
* Jitsi, the OpenSource Java VoIP and Instant Messaging client.
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package net.java.sip.communicator.impl.sysactivity;
import org.freedesktop.dbus.*;
import org.freedesktop.dbus.exceptions.*;
/**
* NetworkManager D-Bus Interface
*
* @author Damian Minkov
* @author Ingo Bauersachs
*/
@DBusInterfaceName("org.freedesktop.NetworkManager")
public interface DBusNetworkManager
extends DBusInterface
{
/*
* Types of NetworkManager states for versions < 0.9
*/
public static final int NM_STATE_UNKNOWN = 0;
public static final int NM_STATE_ASLEEP = 1;
public static final int NM_STATE_CONNECTING = 2;
public static final int NM_STATE_CONNECTED = 3;
public static final int NM_STATE_DISCONNECTED = 4;
/*
* Types of NetworkManager states for versions >= 0.9
*/
public static final int NM9_STATE_UNKNOWN = 0;
public static final int NM9_STATE_ASLEEP = 10;
public static final int NM9_STATE_DISCONNECTED = 20;
public static final int NM9_STATE_DISCONNECTING = 30;
public static final int NM9_STATE_CONNECTING = 40;
public static final int NM9_STATE_CONNECTED_LOCAL = 50;
public static final int NM9_STATE_CONNECTED_SITE = 60;
public static final int NM9_STATE_CONNECTED_GLOBAL = 70;
/**
* State change signal.
*/
public class StateChange extends DBusSignal
{
/**
* The name of the signal.
*/
public final String name;
/**
* The current status it holds.
*/
public final UInt32 status;
/**
* Creates status change.
* @param path the path
* @param status the status
* @throws DBusException
*/
public StateChange(String path, UInt32 status)
throws DBusException
{
super(path, status);
name = path;
this.status = status;
}
/**
* The current status.
* @return
*/
public int getStatus()
{
return status.intValue();
}
/**
* Returns status description
* @return
*/
public String getStatusName()
{
switch(status.intValue())
{
case NM_STATE_ASLEEP : return "Asleep";
case NM_STATE_CONNECTING : return "Connecting";
case NM_STATE_CONNECTED : return "Connected";
case NM_STATE_DISCONNECTED : return "Disconnected";
default : return "Unknown";
}
}
}
/**
* State changed signal.
*/
public static class StateChanged extends StateChange
{
/**
* Creates status changed.
* @param path the path
* @param status the status
* @throws DBusException
*/
public StateChanged(String path, UInt32 status)
throws DBusException
{
super(path, status);
}
/**
* Returns status description
* @return
*/
@Override
public String getStatusName()
{
switch(status.intValue())
{
case NM9_STATE_UNKNOWN: return "Unknown";
case NM9_STATE_ASLEEP: return "Asleep";
case NM9_STATE_DISCONNECTED: return "Disconnected";
case NM9_STATE_DISCONNECTING: return "Disconnecting";
case NM9_STATE_CONNECTING: return "Connecting";
case NM9_STATE_CONNECTED_LOCAL: return "LocalConnectivity";
case NM9_STATE_CONNECTED_SITE: return "SiteConnectivity";
case NM9_STATE_CONNECTED_GLOBAL: return "GlobalConnectivity";
default : return "Unknown";
}
}
}
}

@ -18,6 +18,7 @@
*
* @author Damian Minkov
*/
@SuppressWarnings("rawtypes")
public class NetworkManagerListenerImpl
implements DBusSigHandler
{
@ -77,7 +78,8 @@ public void start()
try
{
dbusConn.addSigHandler(DBus.NameOwnerChanged.class, this);
dbusConn.addSigHandler(NetworkManager.StateChange.class, this);
dbusConn.addSigHandler(DBusNetworkManager.StateChange.class, this);
dbusConn.addSigHandler(DBusNetworkManager.StateChanged.class, this);
}
catch(DBusException e)
{
@ -98,7 +100,10 @@ public void stop()
try
{
dbusConn.removeSigHandler(DBus.NameOwnerChanged.class, this);
dbusConn.removeSigHandler(NetworkManager.StateChange.class, this);
dbusConn.removeSigHandler(
DBusNetworkManager.StateChange.class, this);
dbusConn.removeSigHandler(
DBusNetworkManager.StateChanged.class, this);
}
catch(DBusException e)
{
@ -117,7 +122,7 @@ public void handle(DBusSignal dBusSignal)
DBus.NameOwnerChanged nameOwnerChanged =
(DBus.NameOwnerChanged)dBusSignal;
if(nameOwnerChanged.name.equals(NetworkManager.class.getName()))
if(nameOwnerChanged.name.equals("org.freedesktop.NetworkManager"))
{
boolean b1 = nameOwnerChanged.old_owner != null
&& nameOwnerChanged.old_owner.length() > 0;
@ -134,21 +139,26 @@ public void handle(DBusSignal dBusSignal)
}
}
}
else if(dBusSignal instanceof NetworkManager.StateChange)
else if(dBusSignal instanceof DBusNetworkManager.StateChange)
{
NetworkManager.StateChange stateChange =
(NetworkManager.StateChange)dBusSignal;
DBusNetworkManager.StateChange stateChange =
(DBusNetworkManager.StateChange)dBusSignal;
SystemActivityEvent evt = null;
switch(stateChange.getStatus())
{
case NetworkManager.NM_STATE_CONNECTED:
case NetworkManager.NM_STATE_DISCONNECTED:
case DBusNetworkManager.NM_STATE_CONNECTED:
case DBusNetworkManager.NM_STATE_DISCONNECTED:
case DBusNetworkManager.NM9_STATE_DISCONNECTED:
case DBusNetworkManager.NM9_STATE_CONNECTED_LOCAL:
case DBusNetworkManager.NM9_STATE_CONNECTED_SITE:
case DBusNetworkManager.NM9_STATE_CONNECTED_GLOBAL:
evt = new SystemActivityEvent(
SysActivityActivator.getSystemActivityService(),
SystemActivityEvent.EVENT_NETWORK_CHANGE);
break;
case NetworkManager.NM_STATE_ASLEEP:
case DBusNetworkManager.NM_STATE_ASLEEP:
case DBusNetworkManager.NM9_STATE_ASLEEP:
evt = new SystemActivityEvent(
SysActivityActivator.getSystemActivityService(),
SystemActivityEvent.EVENT_SLEEP);

Loading…
Cancel
Save