From 2d1896a464d27aeb1a0ef9e582706d17e79b2d1f Mon Sep 17 00:00:00 2001 From: Ingo Bauersachs Date: Mon, 12 Dec 2011 16:56:17 +0000 Subject: [PATCH] Adapt D-Bus NetworkManager signal listener to NM_STATE 0.9 --- .classpath | 192 +++++++++--------- lib/installer-exclude/libdbus-java-2.7.jar | Bin 128673 -> 126476 bytes .../impl/sysactivity/DBusNetworkManager.java | 136 +++++++++++++ .../NetworkManagerListenerImpl.java | 28 ++- 4 files changed, 253 insertions(+), 103 deletions(-) create mode 100644 src/net/java/sip/communicator/impl/sysactivity/DBusNetworkManager.java diff --git a/.classpath b/.classpath index 8f6a8dafe..785f7a0a5 100644 --- a/.classpath +++ b/.classpath @@ -1,94 +1,98 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/installer-exclude/libdbus-java-2.7.jar b/lib/installer-exclude/libdbus-java-2.7.jar index e58e513edfce7cf09d772c7974f99ab70ca42d48..8dfd64242e99a9349b79a2a24688be966114b570 100644 GIT binary patch delta 38 qcmZ4Zmc8c=d&3q+t0UXnPBZS)6k%m!0D?*&+^5OFU~z;I$O8ZrybB!w delta 2250 zcmbW2c{tSj9>;$p;$&=tj3tRC+sM*lono|D!jQ5=OlHOiGn1X@XUk4Rla#R(#}-1? zrtCSEj3brMaMM__P1jyEHJZc@ZkY~5MBV#0^|U)pQk3l50A&;{k;Ro6isVLN!hpm!se>>L(Q?V{YE~&W!$Ce$)X`=`NidULu&XdJaSZ^o*h@94 zDne{5VR^ji1I>T1f1!%W1bG}gP}^3evmMPmc!S%$v}0O&WO}5lg^5DOD5Z0iqG)z40!PjWZ7hBibOL2u&flc#TxcUQo4?F17paB)y zx5m&TXZS9Uf-V=a0h6PN_Sbt^adXttP}Bp}`rP#8X(mG*Yt-@4{CQtDji@Fru95@q zIxOx1e`>39Cr$tN_va?J3>B5(FXi~CwJVU==(>_mR?0*g@||mwCf&5uBc^Q)+yN&+ zQKbXQ^n6wwB3POleQ~ByJ&{vr_z-ygUSIWb4o5Xu;F$1DD<>yc++cF}2k- zG?RvomO$wLmLnipM24mKBnR#C8Zk~XYCUn@oCA4paIGrBwEeUJ`u9iMO*nER*@dIg zTT!=dvwBWHl=PW|g_7iFUg}grGWJ=8AZyT_yo8=7J^s1fNET5zBl)e+O(;jOuBvgx zD>4gA;)>jyXPrCdl4~8mlD5k1`c$O%RcW+IWwY4uXo9SkjmMD1I}JKnIzoM-LFWtP z@!lxNm}Bel&nSEMm(oU@_j5%0pf!)SX!nCRrY5n)Uj{w|=3L8TR*?Zzz_tLn8=#(EAf+24l&UpN-_o=*&RGGW zstI$>BoN-;b=t z1z)_8YLqnF-WEl_I{cgM9hU*hfFG(Oo+>L%az4;Y@y;B(9-eX;rG8TVnMxs-|36)* zS_e$v{vB=9b->K?1Ax-EE`WbWnB8ZwLD+9lky!`IM*RUQS58=wpBszPISwg)JQ60? z-`dC8Z&6XSf|i+wm6Q>kL&@N$q1WuA2kt7a!cA61 z`Nk)XEh`Wtnhqt$0AdnJcVlt3ypbvijU;8on(VZzux3TE=r0~SL`}2QuiSDS^mx5j zY+j2YJmXw{YN8e!UYxB)rNqCrLxH+)S{q9VCdX`GNj=@RY@`x<=)ml_oP9%|od5setCC~ft* zr!PRgu1irg96@K-{sTD#%Z|pw;%nkMV@8`_m){6+#wjo=op+>&H#IEIhoXNlp`eXWa%Owyff0t~^*+t!H`jDF-GM zW~freTXAbrrJujd0IYncyfH!p%g-!AV5>CO0;&L!|mt)#v(m^)J8%y-rB0DhT0`-}F}j3ttc3?<+ED{r3M6w|w8@ z_778mvHZ6x_$}A}8-72^3P1dr?7v9(Qz_to2OJK#ZTxQ?xjBzK{F5(w~ev V#*%OI#$(~@n_nFOV*56p{U=r!(t`j1 diff --git a/src/net/java/sip/communicator/impl/sysactivity/DBusNetworkManager.java b/src/net/java/sip/communicator/impl/sysactivity/DBusNetworkManager.java new file mode 100644 index 000000000..c7c99e925 --- /dev/null +++ b/src/net/java/sip/communicator/impl/sysactivity/DBusNetworkManager.java @@ -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"; + } + } + } +} diff --git a/src/net/java/sip/communicator/impl/sysactivity/NetworkManagerListenerImpl.java b/src/net/java/sip/communicator/impl/sysactivity/NetworkManagerListenerImpl.java index 96bed151f..6208a8439 100644 --- a/src/net/java/sip/communicator/impl/sysactivity/NetworkManagerListenerImpl.java +++ b/src/net/java/sip/communicator/impl/sysactivity/NetworkManagerListenerImpl.java @@ -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);