private void OnLastKnownLocation(PushMessage msg)
        {
            GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);
            switch (watcher.Status)
            {
                case GeoPositionStatus.Disabled:
                    RLog.N(this, "Location", "Geolocation status:" + watcher.Status.ToString());
                    break;
                default:
                    {
                        watcher.MovementThreshold = 20;
                        watcher.PositionChanged += (o, args) =>
                        {
                            RLog.N(this, "Location", GetLocationSring(args.Position.Location));
                            watcher.Stop();
                        };
                        watcher.Start();
                    }
                    break;

            }
        }
 private void OnKillApp(PushMessage msg)
 {
     Deployment.Current.Dispatcher.BeginInvoke(new Action(() =>
         {
             throw new KillAppException();
         }));
 }
 public virtual void OnTakeScreenshot(PushMessage msg)
 {
     RLog.TakeScreenshot(this, "PushNotification");
 }
 private void OnEcho(PushMessage msg)
 {
     //ignore it, handled by logging in OnNotificiationReceived method
 }
 private void OnReloadSettings(PushMessage msg)
 {
     RemoteLog rl = RemoteLog.Instance();
     if (rl != null)
     {
         rl.OnLoadSettings(rl.LoadSetttingsBlocking());
     }
 }