package de.danoeh.antennapod.fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.event.playback.PlaybackHistoryEvent; import de.danoeh.antennapod.model.feed.FeedItem; import de.danoeh.antennapod.model.feed.FeedItemFilter; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.util.List; public class PlaybackHistoryFragment extends EpisodesListFragment { public static final String TAG = "PlaybackHistoryFragment"; @NonNull @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View root = super.onCreateView(inflater, container, savedInstanceState); toolbar.inflateMenu(R.menu.playback_history); toolbar.setTitle(R.string.playback_history_label); updateToolbar(); emptyView.setIcon(R.drawable.ic_history); emptyView.setTitle(R.string.no_history_head_label); emptyView.setMessage(R.string.no_history_label); swipeActions.detach(); return root; } @Override protected FeedItemFilter getFilter() { return FeedItemFilter.unfiltered(); } @Override protected String getFragmentTag() { return TAG; } @Override protected String getPrefName() { return TAG; } @Override public boolean onMenuItemClick(MenuItem item) { if (super.onOptionsItemSelected(item)) { return true; } if (item.getItemId() == R.id.clear_history_item) { DBWriter.clearPlaybackHistory(); return true; } return false; } @Override protected void updateToolbar() { // Not calling super, as we do not have a refresh button that could be updated toolbar.getMenu().findItem(R.id.clear_history_item).setVisible(!episodes.isEmpty()); } @Subscribe(threadMode = ThreadMode.MAIN) public void onHistoryUpdated(PlaybackHistoryEvent event) { loadItems(); updateToolbar(); } @NonNull @Override protected List loadData() { return DBReader.getPlaybackHistory(0, page * EPISODES_PER_PAGE); } @NonNull @Override protected List loadMoreData(int page) { return DBReader.getPlaybackHistory((page - 1) * EPISODES_PER_PAGE, EPISODES_PER_PAGE); } @Override protected int loadTotalItemCount() { return (int) DBReader.getPlaybackHistoryLength(); } }