From 48b7cbaa0b469794088d41038192366fea802190 Mon Sep 17 00:00:00 2001
From: Samuel Tardieu
Date: Thu, 6 Mar 2014 08:46:44 +0100
Subject: refactoring: create cgeo.geocaching.sensors package
---
main/src/cgeo/geocaching/utils/GeoDirHandler.java | 129 ----------------------
1 file changed, 129 deletions(-)
delete mode 100644 main/src/cgeo/geocaching/utils/GeoDirHandler.java
(limited to 'main/src/cgeo/geocaching/utils/GeoDirHandler.java')
diff --git a/main/src/cgeo/geocaching/utils/GeoDirHandler.java b/main/src/cgeo/geocaching/utils/GeoDirHandler.java
deleted file mode 100644
index 7050e61..0000000
--- a/main/src/cgeo/geocaching/utils/GeoDirHandler.java
+++ /dev/null
@@ -1,129 +0,0 @@
-package cgeo.geocaching.utils;
-
-import cgeo.geocaching.CgeoApplication;
-import cgeo.geocaching.IGeoData;
-import cgeo.geocaching.settings.Settings;
-
-import rx.Scheduler;
-import rx.Subscription;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.schedulers.Schedulers;
-import rx.functions.Action1;
-
-import java.util.concurrent.TimeUnit;
-
-/**
- * GeoData and Direction handler.
- *
- * To use this class, override at least one of {@link #updateDirection(float)} or {@link #updateGeoData(IGeoData)}. You
- * need to start the handler using one of
- *
- * - {@link #startDir()}
- * - {@link #startGeo()}
- * - {@link #startGeoAndDir()}
- *
- * A good place might be the {@code onResume} method of the Activity. Stop the Handler accordingly in {@code onPause}.
- *
- */
-public abstract class GeoDirHandler {
- private static final CgeoApplication app = CgeoApplication.getInstance();
-
- private Subscription dirSubscription = null;
- private Subscription geoSubscription = null;
-
- /**
- * Update method called when new IGeoData is available.
- *
- * @param data
- * the new data
- */
- public void updateGeoData(final IGeoData data) {
- // Override this in children
- }
-
- /**
- * Update method called when new direction data is available.
- *
- * @param direction
- * the new direction
- */
- public void updateDirection(final float direction) {
- // Override this in children
- }
-
- /**
- * Register the current GeoDirHandler for GeoData information.
- */
- public synchronized void startGeo() {
- geoSubscription = app.currentGeoObject()
- .subscribeOn(AndroidSchedulers.mainThread())
- .subscribe(new Action1() {
- @Override
- public void call(final IGeoData geoData) {
- updateGeoData(geoData);
- }
- });
- }
-
- /**
- * Register the current GeoDirHandler for direction information if the preferences
- * allow it.
- */
- public synchronized void startDir() {
- if (Settings.isUseCompass()) {
- dirSubscription = app.currentDirObject()
- .subscribeOn(AndroidSchedulers.mainThread())
- .subscribe(new Action1() {
- @Override
- public void call(final Float direction) {
- updateDirection(direction);
- }
- });
- }
- }
-
- /**
- * Register the current GeoDirHandler for GeoData and direction information (if the
- * preferences allow it).
- */
- public void startGeoAndDir() {
- startGeo();
- startDir();
- }
-
- /**
- * Unregister the current GeoDirHandler for GeoData information.
- */
- public synchronized void stopGeo() {
- // Delay the unsubscription by 2.5 seconds, so that another activity has
- // the time to subscribe and the GPS receiver will not be turned down.
- if (geoSubscription != null) {
- final Subscription subscription = geoSubscription;
- geoSubscription = null;
- Schedulers.newThread().schedule(new Action1() {
- @Override
- public void call(final Scheduler.Inner inner) {
- subscription.unsubscribe();
- }
- }, 2500, TimeUnit.MILLISECONDS);
- }
- }
-
- /**
- * Unregister the current GeoDirHandler for direction information.
- */
- public synchronized void stopDir() {
- if (dirSubscription != null) {
- dirSubscription.unsubscribe();
- dirSubscription = null;
- }
- }
-
- /**
- * Unregister the current GeoDirHandler for GeoData and direction information.
- */
- public void stopGeoAndDir() {
- stopGeo();
- stopDir();
- }
-}
--
cgit v1.1