diff --git a/app/src/main/java/fr/chteufleur/mytrackingdog/services/ServiceXmpp.java b/app/src/main/java/fr/chteufleur/mytrackingdog/services/ServiceXmpp.java index 58a39a1..1e8104b 100644 --- a/app/src/main/java/fr/chteufleur/mytrackingdog/services/ServiceXmpp.java +++ b/app/src/main/java/fr/chteufleur/mytrackingdog/services/ServiceXmpp.java @@ -85,37 +85,11 @@ public class ServiceXmpp extends Observable implements PresenceEventListener { boolean isConnected; connection = new XMPPTCPConnection(configuration); - commandManager = AdHocCommandManager.getAddHocCommandsManager(connection); - connection.connect(); connection.login(); - commandManager.registerCommand(XMPP_NODE_TRAIL_GEOLOC, XMPP_NODE_TRAIL_GEOLOC, new LocalCommandFactory() { - @Override - public LocalCommand getInstance() throws InstantiationException, IllegalAccessException { - return new TrailGeolocCommand(thsi); - } - }); - commandManager.registerCommand(XMPP_NODE_OBJECT_GEOLOC, XMPP_NODE_OBJECT_GEOLOC, new LocalCommandFactory() { - @Override - public LocalCommand getInstance() throws InstantiationException, IllegalAccessException { - return new ObjectGeolocCommand(thsi); - } - }); - commandManager.registerCommand(XMPP_NODE_START_TRAIL_GEOLOC, XMPP_NODE_START_TRAIL_GEOLOC, new LocalCommandFactory() { - @Override - public LocalCommand getInstance() throws InstantiationException, IllegalAccessException { - return new StartTrailGeolocCommand(thsi); - } - }); - commandManager.registerCommand(XMPP_NODE_STOP_TRAIL_GEOLOC, XMPP_NODE_STOP_TRAIL_GEOLOC, new LocalCommandFactory() { - @Override - public LocalCommand getInstance() throws InstantiationException, IllegalAccessException { - return new StopTrailGeolocCommand(thsi); - } - }); - + registerCommands(); roster = Roster.getInstanceFor(connection); roster.addPresenceEventListener(this); @@ -213,31 +187,63 @@ public class ServiceXmpp extends Observable implements PresenceEventListener { // private MyLocation currentXmppLocation = null; private MyLocation lastObjectXmppLocation = null; + private void registerCommands() { + commandManager.registerCommand(XMPP_NODE_TRAIL_GEOLOC, XMPP_NODE_TRAIL_GEOLOC, new LocalCommandFactory() { + @Override + public LocalCommand getInstance() throws InstantiationException, IllegalAccessException { + return new TrailGeolocCommand(thsi); + } + }); + commandManager.registerCommand(XMPP_NODE_OBJECT_GEOLOC, XMPP_NODE_OBJECT_GEOLOC, new LocalCommandFactory() { + @Override + public LocalCommand getInstance() throws InstantiationException, IllegalAccessException { + return new ObjectGeolocCommand(thsi); + } + }); + commandManager.registerCommand(XMPP_NODE_START_TRAIL_GEOLOC, XMPP_NODE_START_TRAIL_GEOLOC, new LocalCommandFactory() { + @Override + public LocalCommand getInstance() throws InstantiationException, IllegalAccessException { + return new StartTrailGeolocCommand(thsi); + } + }); + commandManager.registerCommand(XMPP_NODE_STOP_TRAIL_GEOLOC, XMPP_NODE_STOP_TRAIL_GEOLOC, new LocalCommandFactory() { + @Override + public LocalCommand getInstance() throws InstantiationException, IllegalAccessException { + return new StopTrailGeolocCommand(thsi); + } + }); + } + public void startTrailGeoloc() { Log.i(TAG, "Start trail"); setChanged(); notifyObservers(NOTIF_START_TRAIL); } + public void stopTrailGeoloc() { Log.i(TAG, "Stop trail"); setChanged(); notifyObservers(NOTIF_STOP_TRAIL); } + public void addTrailGeoloc(double lat, double lon, long time) { Log.i(TAG, "Add location"); currentXmppLocation = new MyLocation(lat, lon, time); setChanged(); notifyObservers(NOTIF_NEW_LOCATION); } + public void addObjectGeoloc(double lat, double lon, long time) { Log.i(TAG, "Add object"); lastObjectXmppLocation = new MyLocation(lat, lon, time); setChanged(); notifyObservers(NOTIF_NEW_OBJECT); } + public MyLocation getCurrentLocation() { return currentXmppLocation; } + public MyLocation getLastObjectXmppLocation() { return lastObjectXmppLocation; }