Я устанавливаю запрос помещения в onCreate (), который возвращает экземпляр живых данных, который я наблюдаю в следующем.
viewModel.setmQueryMediaList(null, MediaUtils.DATE_TAKEN_KEY, MediaUtils.DATE_TAKEN_KEY);
viewModel.getmQueryMediaList().observe(MainActivity.this, new Observer<List<MediaStoreData>>() {
@Override
public void onChanged(@Nullable List<MediaStoreData> mediaStoreDataList) {
List<MediaStoreData> sectionedMediaStoreDataList = MediaUtils.getSectionedList(getBaseContext(), mediaStoreDataList, MediaUtils.ORDER_BY_MONTH );
mRecyclerViewAdapter.submitList(sectionedMediaStoreDataList);
Log.e("MediaDatabase", "something changed! Size:" + (mediaStoreDataList != null ? mediaStoreDataList.size() : 0));
}
});
onClick()
Я хочу изменить запрос помещения, и я предположил, что наблюдатель запускает это изменение, но это не так.
@Override
public void onAlbumClicked(AlbumData albumData, TextView titleView) {
viewModel.setmQueryMediaList(albumData.getDirectory_path(), null, MediaUtils.DATE_TAKEN_KEY);
mSlidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.EXPANDED);
}
Это в моем классе ViewModel
public void setmQueryMediaList(String directory_path, String sectionOrder, String sortOrder) {
if(directory_path != null){
this.mQueryMediaList = mediaDatabase.mediaDao().getAllByName();
} else {
this.mQueryMediaList = mediaDatabase.mediaDao().getAllByDate();
}
}
public LiveData<List<MediaStoreData>> getmQueryMediaList(){
return mQueryMediaList;
}
Есть идеи, что я делаю не так?