summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
diff options
context:
space:
mode:
authorTom Hennen <tom.hennen@gmail.com>2015-09-20 14:54:54 -0400
committerTom Hennen <tom.hennen@gmail.com>2015-09-20 14:54:54 -0400
commited679b8a17b4c140a8cc0fc1c312c7996f12d5d7 (patch)
tree0daac809e2635c321728af80d116775a715bf8ad /app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
parent1993f779e8b25507a4096effd72618937c2f4ad0 (diff)
downloadAntennaPod-ed679b8a17b4c140a8cc0fc1c312c7996f12d5d7.zip
refactored after merging in changes from #1212
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java29
1 files changed, 20 insertions, 9 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
index b2932ddb7..82ee43d38 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
@@ -339,7 +339,6 @@ public class AllEpisodesFragment extends Fragment {
super.onCreateContextMenu(menu, v, menuInfo);
AdapterView.AdapterContextMenuInfo adapterInfo = (AdapterView.AdapterContextMenuInfo) menuInfo;
FeedItem item = itemAccess.getItem(adapterInfo.position);
-
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.allepisodes_context, menu);
@@ -354,11 +353,27 @@ public class AllEpisodesFragment extends Fragment {
@Override
public boolean onContextItemSelected(MenuItem item) {
+ if (!getUserVisibleHint()) {
+ // we're not visible, don't do anything.
+ return false;
+ }
AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
- if(menuInfo == null) {
+ if (menuInfo == null) {
menuInfo = lastMenuInfo;
}
- FeedItem selectedItem = itemAccess.getItem(menuInfo.position);
+ if (menuInfo == null) {
+ Log.e(TAG, "menuInfo is null, not doing anything");
+ return false;
+ }
+
+ FeedItem selectedItem = null;
+
+ // make sure the item still makes sense
+ if (menuInfo.position >= 0 && menuInfo.position < itemAccess.getCount()) {
+ selectedItem = itemAccess.getItem(menuInfo.position);
+ } else {
+ Log.d(TAG, "Selected item at position " + menuInfo.position + " does not exist, only " + itemAccess.getCount() + " items available");
+ }
if (selectedItem == null) {
Log.i(TAG, "Selected item at position " + menuInfo.position + " was null, ignoring selection");
@@ -484,13 +499,9 @@ public class AllEpisodesFragment extends Fragment {
});
}
- private Pair<List<FeedItem>,LongList> loadData() {
+ protected Pair<List<FeedItem>,LongList> loadData() {
List<FeedItem> items;
- if(showOnlyNewEpisodes) {
- items = DBReader.getNewItemsList();
- } else {
- items = DBReader.getRecentlyPublishedEpisodes(RECENT_EPISODES_LIMIT);
- }
+ items = DBReader.getRecentlyPublishedEpisodes(RECENT_EPISODES_LIMIT);
LongList queuedIds = DBReader.getQueueIDList();
return Pair.create(items, queuedIds);
}