Я делаю приложение для Android и пытаюсь либо добавить маркер карты на карту, если это первый вызов API, либо просто изменить положение маркера. Я использую RxJava2 для повторных вызовов API. Проблема в том, что я не могу проверить, является ли это первым вызовом API, так как мне не разрешен доступ к не финальному логическому значению.
boolean firstReposition = true;
//Create position call
ISSPositionService service = ServiceGenerator.createService(ISSPositionService.class);
//create observable
Observable<ISSPositionData> issPositionCall = service.getPosition();
Disposable disposable = issPositionCall.subscribeOn(Schedulers.io())
.repeatWhen(completed -> completed.delay(30, java.util.concurrent.TimeUnit.SECONDS))
.observeOn(AndroidSchedulers.mainThread())
.subscribe(positionData -> {
LatLng currentIssPosition = new LatLng(positionData.getIssPosition().getLatitude(), positionData.getIssPosition().getLongitude());
if (firstReposition) {
issMarkerOptions.position(currentIssPosition);
map.addMarker(issMarkerOptions);
firstReposition = false;
}
else {
issMarker.setPosition(currentIssPosition);
}
//animate camera so it shows current position
map.animateCamera(CameraUpdateFactory.newLatLng(currentIssPosition));
});
Как бы я переписал код, чтобы я мог проверить и установить логическое значение?