From 892c38e94c8db37d31ae7b7feeb6403f24280ef4 Mon Sep 17 00:00:00 2001 From: Samuel Tardieu Date: Thu, 1 Jan 2015 15:06:01 +0100 Subject: Use an initial value in rotation sensors --- main/src/cgeo/geocaching/sensors/Sensors.java | 6 +++--- main/src/cgeo/geocaching/utils/RxUtils.java | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'main/src') 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 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 Observable rememberLast(final Observable observable) { - final AtomicReference lastValue = new AtomicReference<>(null); + public static Observable rememberLast(final Observable observable, final T initialValue) { + final AtomicReference lastValue = new AtomicReference<>(initialValue); return observable.doOnNext(new Action1() { @Override public void call(final T value) { -- cgit v1.1