aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/sensors/GeoDataProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/sensors/GeoDataProvider.java')
-rw-r--r--main/src/cgeo/geocaching/sensors/GeoDataProvider.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/main/src/cgeo/geocaching/sensors/GeoDataProvider.java b/main/src/cgeo/geocaching/sensors/GeoDataProvider.java
index 160d98d..a77b477 100644
--- a/main/src/cgeo/geocaching/sensors/GeoDataProvider.java
+++ b/main/src/cgeo/geocaching/sensors/GeoDataProvider.java
@@ -1,7 +1,9 @@
package cgeo.geocaching.sensors;
+import android.os.*;
import cgeo.geocaching.utils.Log;
+import cgeo.geocaching.utils.StartableHandlerThread;
import org.apache.commons.lang3.StringUtils;
import rx.Observable;
import rx.Observable.OnSubscribe;
@@ -22,7 +24,6 @@ import android.location.GpsStatus;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
-import android.os.Bundle;
import java.util.concurrent.TimeUnit;
@@ -33,6 +34,11 @@ public class GeoDataProvider implements OnSubscribe<IGeoData> {
private final LocationData gpsLocation = new LocationData();
private final LocationData netLocation = new LocationData();
private final BehaviorSubject<IGeoData> subject;
+ private static final StartableHandlerThread handlerThread =
+ new StartableHandlerThread("GeoDataProvider thread", android.os.Process.THREAD_PRIORITY_BACKGROUND);
+ static {
+ handlerThread.start();
+ }
public boolean gpsEnabled = false;
public int satellitesVisible = 0;
@@ -92,7 +98,7 @@ public class GeoDataProvider implements OnSubscribe<IGeoData> {
@Override
public Subscription connect() {
final CompositeSubscription subscription = new CompositeSubscription();
- AndroidSchedulers.mainThread().schedule(new Action1<Inner>() {
+ AndroidSchedulers.handlerThread(handlerThread.getHandler()).schedule(new Action1<Inner>() {
@Override
public void call(final Inner inner) {
synchronized(lock) {
@@ -112,7 +118,7 @@ public class GeoDataProvider implements OnSubscribe<IGeoData> {
subscription.add(Subscriptions.create(new Action0() {
@Override
public void call() {
- AndroidSchedulers.mainThread().schedule(new Action1<Inner>() {
+ AndroidSchedulers.handlerThread(handlerThread.getHandler()).schedule(new Action1<Inner>() {
@Override
public void call(final Inner inner) {
synchronized (lock) {