LiveData onChanged нулевые результаты - PullRequest
0 голосов
/ 06 марта 2019

EventDao

@Dao
public interface EventDao {    
    @Query("SELECT * FROM events WHERE date_start = :date")
    LiveData<List<EventPatientLocation>> test(Date date);
}

EventRepository

public class EventRepository {
    private EventDao eventDao;

    public EventRepository(Application application) {
        MyDatabase db = MyDatabase.getDatabase(application);
        eventDao = db.eventDao();
    }

    public LiveData<List<EventPatientLocation>> test(Date date) {
        return eventDao.test(date);
    }

EventViewModel

public class EventViewModel extends AndroidViewModel {

    private EventRepository repository;

    public EventViewModel(@NonNull Application application) {
        super(application);
        repository = new EventRepository(application);
    }

    public LiveData<List<EventPatientLocation>> test(Date date) {
        return repository.test(date);
    }
}

Фрагмент (onActivityCreated)

eventViewModel = ViewModelProviders.of(activity).get(EventViewModel.class);

LiveData<List<EventPatientLocation>> testEvent = eventViewModel.test(new Date());

testEvent.observe(activity, events -> {
    // events is always null!
});

Несмотря на то, что обратный вызов onChanged для фрагмента вызывается несколько раз, список событий всегда равен нулю ... Я точно знаю, что в базе данных есть строки-кандидаты для запроса, так где же я делаю неправильно? Помогите пожалуйста ...

...