diff options
author | Tom Hennen <TomHennen@users.noreply.github.com> | 2015-08-26 17:41:38 -0400 |
---|---|---|
committer | Tom Hennen <TomHennen@users.noreply.github.com> | 2015-08-26 17:41:38 -0400 |
commit | 634d66bab6e2966319daf0d7f8f2b97c768d7fae (patch) | |
tree | 537eed572ff23c17ea05b42fee425509d402444b /app | |
parent | d921ab6f22ab0d4325906027305293a803f9cacb (diff) | |
parent | 34b572545e9a7b3d771ca942a3e797e9b32f1d39 (diff) | |
download | AntennaPod-634d66bab6e2966319daf0d7f8f2b97c768d7fae.zip |
Merge pull request #1129 from TomHennen/fix1128
Protect use of menuInfo:
Diffstat (limited to 'app')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java | 9 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java | 9 |
2 files changed, 18 insertions, 0 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java index 294acd427..b975d482a 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java @@ -75,6 +75,7 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc private DrawerLayout drawerLayout; private NavListAdapter navAdapter; private ListView navList; + private AdapterView.AdapterContextMenuInfo lastMenuInfo = null; private View navDrawer; private ActionBarDrawerToggle drawerToggle; @@ -663,11 +664,19 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc Feed feed = navDrawerData.feeds.get(position - navAdapter.getSubscriptionOffset()); menu.setHeaderTitle(feed.getTitle()); // episodes are not loaded, so we cannot check if the podcast has new or unplayed ones! + + // we may need to reference this elsewhere... + lastMenuInfo = (AdapterView.AdapterContextMenuInfo) menuInfo; } @Override public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); + + if(menuInfo == null) { + menuInfo = lastMenuInfo; + } + if(menuInfo.targetView.getParent() instanceof ListView == false || ((ListView)menuInfo.targetView.getParent()).getId() != R.id.nav_list) { return false; diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java index 7eee1558b..e10e8041e 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java @@ -96,6 +96,7 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity private View navDrawer; private ListView navList; private NavListAdapter navAdapter; + private AdapterView.AdapterContextMenuInfo lastMenuInfo = null; private ActionBarDrawerToggle drawerToggle; @@ -505,11 +506,19 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity Feed feed = navDrawerData.feeds.get(position - navAdapter.getSubscriptionOffset()); menu.setHeaderTitle(feed.getTitle()); // episodes are not loaded, so we cannot check if the podcast has new or unplayed ones! + + // we may need to reference this elsewhere... + lastMenuInfo = (AdapterView.AdapterContextMenuInfo) menuInfo; } @Override public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); + + if(menuInfo == null) { + menuInfo = lastMenuInfo; + } + if(menuInfo.targetView.getParent() instanceof ListView == false || ((ListView)menuInfo.targetView.getParent()).getId() != R.id.nav_list) { return false; |