diff options
author | Samuel Tardieu <sam@rfc1149.net> | 2015-01-01 15:06:01 +0100 |
---|---|---|
committer | Samuel Tardieu <sam@rfc1149.net> | 2015-01-01 15:06:01 +0100 |
commit | 892c38e94c8db37d31ae7b7feeb6403f24280ef4 (patch) | |
tree | 9ec6f3d736e5451b39e214871f664733f908a3fb /main/src | |
parent | 4ae3875aa915de1094fda43489985046f665fcf2 (diff) | |
download | cgeo-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.java | 6 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/utils/RxUtils.java | 4 |
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) { |