diff --git a/README.md b/README.md
index 9860735..1745710 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ cordova plugin rm de.appplant.cordova.plugin.background-mode
## Using the plugin
Simply add the plugin to your project and the app will run while in background.
-The plugin creates the object ```window.plugin.notification.backgroundMode``` with two methods:
+The plugin creates the object ```window.plugin.backgroundMode``` with two methods:
### enable()
The method enables the background mode. The mode is activated once the app has entered the background and will be deactivated after the app has entered the foreground.
diff --git a/plugin.xml b/plugin.xml
index 503a7b2..53e9a07 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -2,7 +2,7 @@
+ version="0.4.0dev">
BackgroundMode
diff --git a/src/wp8/BackgroundMode.cs b/src/wp8/BackgroundMode.cs
index 20b83bc..7f1cf67 100644
--- a/src/wp8/BackgroundMode.cs
+++ b/src/wp8/BackgroundMode.cs
@@ -7,21 +7,107 @@
* GPL v2 licensed
*/
-using System;
-using System.Linq;
-
-using Microsoft.Phone.Shell;
-
-using WPCordovaClassLib.Cordova;
using WPCordovaClassLib.Cordova.Commands;
+using Windows.Devices.Geolocation;
-namespace APPPlant.Cordova.Plugin
+namespace Cordova.Extension.Commands
{
+ ///
+ /// Ermöglicht, dass eine Anwendung im Hintergrund läuft ohne pausiert zu werden
+ ///
public class BackgroundMode : BaseCommand
{
+ ///
+ /// Flag gibt an, ob die App im Hintergrund wach gehalten werden soll
+ ///
+ private static bool isEnabled = true;
+
+ ///
+ /// Lokalisiert das Smartphone
+ ///
+ private static Geolocator Geolocator { get; set; }
+
+ ///
+ /// Registriert die Listener für die (sleep/resume) Events und startet
+ /// bzw. stoppt die Geo-Lokalisierung
+ ///
public BackgroundMode ()
{
-
+ Activate();
}
+
+ ///
+ /// @js-interface
+ /// Setzt den Flag, dass die App im Hintergrund wach gehalten werden soll
+ ///
+ public void enable (string args)
+ {
+ Enable();
+ }
+
+ ///
+ /// @js-interface
+ /// Entfernt den Flag, sodass die App im Hintergrund pausiert wird
+ ///
+ public void disable (string args)
+ {
+ Disable();
+ }
+
+ ///
+ /// Setzt den Flag, dass die App im Hintergrund wach gehalten werden soll
+ ///
+ public static void Enable ()
+ {
+ isEnabled = true;
+ }
+
+ ///
+ /// Entfernt den Flag, sodass die App im Hintergrund pausiert wird
+ ///
+ public static void Disable ()
+ {
+ isEnabled = false;
+
+ Deactivate();
+ }
+
+ ///
+ /// @js-interface
+ /// Registriert die Listener für die (sleep/resume) Events
+ ///
+ public void observeLifeCycle (string args)
+ {
+ // Konstruktor wird aufgerufen, falls Instanz erstellt wurde
+ }
+
+ ///
+ /// Startet das Aktualisieren des Standpunktes
+ ///
+ public static void Activate ()
+ {
+ if (Geolocator == null && isEnabled)
+ {
+ Geolocator = new Geolocator();
+
+ Geolocator.DesiredAccuracy = PositionAccuracy.Default;
+ Geolocator.MovementThreshold = 100000;
+ Geolocator.PositionChanged += geolocator_PositionChanged;
+ }
+ }
+
+ ///
+ /// Beendet das Aktualisieren des Standpunktes
+ ///
+ public static void Deactivate ()
+ {
+ if (Geolocator != null)
+ {
+ Geolocator.PositionChanged -= geolocator_PositionChanged;
+ Geolocator = null;
+ }
+ }
+
+ private static void geolocator_PositionChanged (Geolocator sender, PositionChangedEventArgs args) {}
}
}