Я написал свой пользовательский наблюдаемый, который испускает объекты LatLng
, когда пользователь перемещает карту Google. Также у меня естьКак написать свою собственную операцию над наблюдаемым, чтобы отобразить все на константу?
BehaviorSubject<Boolean> locationTracking = BehaviorSubject.create(false);
, который, я думаю, будет собственностью, указывая, следует ли карта следовать за пользователем («местоположение треков») или нет.
Поведение должно состоять в том, чтобы как только пользователь коснулся карты, отслеживание должно быть отключено. И пользователь должен будет включить его, если захочет.
Так что я написал
// once map touched, this means turn off location tracking
cameraMove(googleMap)
.map(new Func1<LatLng, Boolean>() {
@Override
public Boolean call(LatLng latLng) {
return false;
}
}).subscribe(locationTracking);
здесь я сделал отображение из любого места, испускаемого картой, к ложному значению. Синтаксис выглядит довольно длинным, лямбда-синтаксис запрещен настройками совместимости.
Таким образом, я смог создать свою собственную работу, что-то вроде mapAnyToFalse
и написать
// once map touched, this means turn off location tracking
cameraMove(googleMap)
.mapAnyToFalse()
.subscribe(locationTracking);
Он должен быть членом Observable
, который я не могу коснуться. Есть ли какие-либо другие средства или готовые решения?
Вы также можете создать класс, который реализует 'Func1