aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2015-01-01 15:06:01 +0100
committerSamuel Tardieu <sam@rfc1149.net>2015-01-01 15:06:01 +0100
commit892c38e94c8db37d31ae7b7feeb6403f24280ef4 (patch)
tree9ec6f3d736e5451b39e214871f664733f908a3fb /main/src
parent4ae3875aa915de1094fda43489985046f665fcf2 (diff)
downloadcgeo-892c38e94c8db37d31ae7b7feeb6403f24280ef4.zip
cgeo-892c38e94c8db37d31ae7b7feeb6403f24280ef4.tar.gz
cgeo-892c38e94c8db37d31ae7b7feeb6403f24280ef4.tar.bz2
Use an initial value in rotation sensors
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/sensors/Sensors.java6
-rw-r--r--main/src/cgeo/geocaching/utils/RxUtils.java4
2 files changed, 5 insertions, 5 deletions
diff --git a/main/src/cgeo/geocaching/sensors/Sensors.java b/main/src/cgeo/geocaching/sensors/Sensors.java
index f548048..2f952e4 100644
--- a/main/src/cgeo/geocaching/sensors/Sensors.java
+++ b/main/src/cgeo/geocaching/sensors/Sensors.java
@@ -70,7 +70,7 @@ public class Sensors {
geoDataObservableLowPower = geoDataObservable;
}
} else {
- geoDataObservable = RxUtils.rememberLast(GeoDataProvider.create(app).doOnNext(rememberGeodataAction));
+ geoDataObservable = RxUtils.rememberLast(GeoDataProvider.create(app).doOnNext(rememberGeodataAction), null);
geoDataObservableLowPower = geoDataObservable;
}
}
@@ -86,7 +86,7 @@ public class Sensors {
// If we have no magnetic sensor, there is no point in trying to setup any, we will always get the direction from the GPS.
if (!hasMagneticFieldSensor) {
Log.i("No magnetic field sensor, using only the GPS for the orientation");
- directionObservable = RxUtils.rememberLast(geoDataObservableLowPower.map(GPS_TO_DIRECTION).doOnNext(onNextrememberDirectionAction));
+ directionObservable = RxUtils.rememberLast(geoDataObservableLowPower.map(GPS_TO_DIRECTION).doOnNext(onNextrememberDirectionAction), 0f);
return;
}
@@ -130,7 +130,7 @@ public class Sensors {
}
}).map(GPS_TO_DIRECTION);
- directionObservable = Observable.merge(magneticDirectionObservable, directionFromGpsObservable);
+ directionObservable = RxUtils.rememberLast(Observable.merge(magneticDirectionObservable, directionFromGpsObservable).doOnNext(onNextrememberDirectionAction), 0f);
}
public Observable<GeoData> geoDataObservable(final boolean lowPower) {
diff --git a/main/src/cgeo/geocaching/utils/RxUtils.java b/main/src/cgeo/geocaching/utils/RxUtils.java
index beb5e18..b8e9c6e 100644
--- a/main/src/cgeo/geocaching/utils/RxUtils.java
+++ b/main/src/cgeo/geocaching/utils/RxUtils.java
@@ -158,8 +158,8 @@ public class RxUtils {
};
}
- public static<T> Observable<T> rememberLast(final Observable<T> observable) {
- final AtomicReference<T> lastValue = new AtomicReference<>(null);
+ public static<T> Observable<T> rememberLast(final Observable<T> observable, final T initialValue) {
+ final AtomicReference<T> lastValue = new AtomicReference<>(initialValue);
return observable.doOnNext(new Action1<T>() {
@Override
public void call(final T value) {