Я показываю маркеры из своей базы данных на своей карте, но у меня есть фильтр для пользователя, с помощью которого он может настроить время, и маркеры будут отображаться в это время. Я хочу наблюдать за списком, который обновляется каждый раз, когда пользователь меняет временной фильтр. Он выбирает время начала и время окончания, и я запрашиваю из базы данных список с этим условием. Я хочу просмотреть этот список? Как я могу это сделать?
моя ViewModel:
public MediatorLiveData<List<LocationTracking>> fetchData(LiveData<List<LocationTracking>> source){
if (oldSource == null){
oldSource = source;
} else {
list.removeSource(oldSource);
}
list.addSource(source, locationTrackings -> {
list.postValue(locationTrackings);
});
return list;
}
И в своей деятельности я делаю так:
Мой обратный вызов не требуется при изменении, когда в мою базу данных вставляется новое значение. Любая помощь будет высоко ценится.
Когда пользователь хочет увидеть весь список без временного фильтра.
mViewModel.fetchData(mViewModel.getFilteredLocationList(
mDataRange.get(0).getTimeStamp(),
mDataRange.get(1).getTimeStamp()
)).observe(this,mFilteredListObserver);
Когда пользователь выбирает фильтр времени.
mViewModel.fetchData(mViewModel.getFilteredLocationList(
data.getLongExtra(LocationsFilterActivity.START_TIME, 0),
data.getLongExtra(LocationsFilterActivity.END_TIME, 0)
)).observe(this,mFilteredListObserver);