summaryrefslogtreecommitdiff
path: root/app/src/main/java/de
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2020-02-05 11:48:49 +0100
committerByteHamster <info@bytehamster.com>2020-02-05 11:48:49 +0100
commit5a26207fdbc8631e53d19b11d32e685866a9dd22 (patch)
treed76412cf98708e3f8e5ea0a87710627f3c4561c3 /app/src/main/java/de
parent3ca6be8b04cf3c96517cb5ca9c16d2b0b67eead5 (diff)
downloadAntennaPod-5a26207fdbc8631e53d19b11d32e685866a9dd22.zip
Removed unnecessary ItemAccess
Diffstat (limited to 'app/src/main/java/de')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java32
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java39
2 files changed, 19 insertions, 52 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java
index 8e232a17f..c9b8e5ab2 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java
@@ -11,13 +11,15 @@ import androidx.recyclerview.widget.RecyclerView;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.MainActivity;
import de.danoeh.antennapod.core.feed.FeedItem;
-import de.danoeh.antennapod.core.util.LongList;
+import de.danoeh.antennapod.core.util.FeedItemUtil;
import de.danoeh.antennapod.fragment.ItemPagerFragment;
import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler;
import de.danoeh.antennapod.view.EpisodeItemViewHolder;
import org.apache.commons.lang3.ArrayUtils;
import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
/**
* List adapter for the list of new episodes.
@@ -26,14 +28,18 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<EpisodeItemV
implements View.OnCreateContextMenuListener {
private final WeakReference<MainActivity> mainActivityRef;
- private final ItemAccess itemAccess;
+ private List<FeedItem> episodes = new ArrayList<>();
private FeedItem selectedItem;
- public AllEpisodesRecycleAdapter(MainActivity mainActivity, ItemAccess itemAccess) {
+ public AllEpisodesRecycleAdapter(MainActivity mainActivity) {
super();
this.mainActivityRef = new WeakReference<>(mainActivity);
- this.itemAccess = itemAccess;
+ }
+
+ public void updateItems(List<FeedItem> items) {
+ episodes = items;
+ notifyDataSetChanged();
}
@NonNull
@@ -46,7 +52,7 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<EpisodeItemV
@Override
public void onBindViewHolder(EpisodeItemViewHolder holder, int pos) {
- FeedItem item = itemAccess.getItem(pos);
+ FeedItem item = episodes.get(pos);
holder.bind(item);
holder.itemView.setOnLongClickListener(v -> {
selectedItem = item;
@@ -55,7 +61,7 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<EpisodeItemV
holder.itemView.setOnClickListener(v -> {
MainActivity activity = mainActivityRef.get();
if (activity != null) {
- long[] ids = itemAccess.getQueueIds().toArray();
+ long[] ids = FeedItemUtil.getIds(episodes);
int position = ArrayUtils.indexOf(ids, item.getId());
activity.loadChildFragment(ItemPagerFragment.newInstance(ids, position));
}
@@ -71,13 +77,13 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<EpisodeItemV
@Override
public long getItemId(int position) {
- FeedItem item = itemAccess.getItem(position);
+ FeedItem item = episodes.get(position);
return item != null ? item.getId() : RecyclerView.NO_POSITION;
}
@Override
public int getItemCount() {
- return itemAccess.getCount();
+ return episodes.size();
}
@Override
@@ -88,16 +94,6 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<EpisodeItemV
FeedItemMenuHandler.onPrepareMenu(menu, selectedItem, R.id.skip_episode_item);
}
- public interface ItemAccess {
-
- int getCount();
-
- FeedItem getItem(int position);
-
- LongList getQueueIds();
-
- }
-
/**
* Notifies a View Holder of relevant callbacks from
* {@link ItemTouchHelper.Callback}.
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
index 03ba2af58..e7d22652e 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
@@ -83,8 +83,6 @@ public abstract class EpisodesListFragment extends Fragment {
@NonNull
List<FeedItem> episodes = new ArrayList<>();
- @NonNull
- private List<Downloader> downloaderList = new ArrayList<>();
private boolean isUpdatingFeeds;
boolean isMenuInvalidationAllowed = false;
@@ -344,10 +342,10 @@ public abstract class EpisodesListFragment extends Fragment {
}
protected void onFragmentLoaded(List<FeedItem> episodes) {
- listAdapter.notifyDataSetChanged();
-
if (episodes.size() == 0) {
createRecycleAdapter(recyclerView, emptyView);
+ } else {
+ listAdapter.updateItems(episodes);
}
restoreScrollPosition();
@@ -360,40 +358,13 @@ public abstract class EpisodesListFragment extends Fragment {
*/
private void createRecycleAdapter(RecyclerView recyclerView, EmptyViewHandler emptyViewHandler) {
MainActivity mainActivity = (MainActivity) getActivity();
- listAdapter = new AllEpisodesRecycleAdapter(mainActivity, itemAccess);
+ listAdapter = new AllEpisodesRecycleAdapter(mainActivity);
listAdapter.setHasStableIds(true);
+ listAdapter.updateItems(episodes);
recyclerView.setAdapter(listAdapter);
emptyViewHandler.updateAdapter(listAdapter);
}
- private final AllEpisodesRecycleAdapter.ItemAccess itemAccess = new AllEpisodesRecycleAdapter.ItemAccess() {
-
- @Override
- public int getCount() {
- return episodes.size();
- }
-
- @Override
- public FeedItem getItem(int position) {
- if (0 <= position && position < episodes.size()) {
- return episodes.get(position);
- }
- return null;
- }
-
- @Override
- public LongList getQueueIds() {
- LongList queueIds = new LongList();
- for (FeedItem item : episodes) {
- if (item.isTagged(FeedItem.TAG_QUEUE)) {
- queueIds.add(item.getId());
- }
- }
- return queueIds;
- }
-
- };
-
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(FeedItemEvent event) {
Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]");
@@ -432,7 +403,7 @@ public abstract class EpisodesListFragment extends Fragment {
public void onEventMainThread(DownloadEvent event) {
Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]");
DownloaderUpdate update = event.update;
- downloaderList = update.downloaders;
+ List<Downloader> downloaderList = update.downloaders;
if (isMenuInvalidationAllowed && event.hasChangedFeedUpdateStatus(isUpdatingFeeds)) {
requireActivity().invalidateOptionsMenu();
}