From 19cce4cd2a04b7ba47a0e6922fab07dc0b7d2121 Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Sat, 19 Dec 2015 20:08:11 +0100 Subject: Prevent ArrayIndexOutOfBoundsException --- .../java/de/danoeh/antennapod/activity/AudioplayerActivity.java | 2 +- app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java | 2 +- .../java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java | 2 +- .../de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java | 6 +++++- .../java/de/danoeh/antennapod/fragment/DownloadLogFragment.java | 6 +++++- .../main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java | 6 +++++- .../de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java | 8 ++++++-- .../main/java/de/danoeh/antennapod/fragment/QueueFragment.java | 2 +- .../de/danoeh/antennapod/fragment/RunningDownloadsFragment.java | 6 +++++- .../main/java/de/danoeh/antennapod/fragment/SearchFragment.java | 6 +++++- 10 files changed, 35 insertions(+), 11 deletions(-) (limited to 'app') 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 39e86f94a..442515010 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java @@ -819,7 +819,7 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc @Override public Feed getItem(int position) { - if (navDrawerData != null && position < navDrawerData.feeds.size()) { + if (navDrawerData != null && 0 <= position && position < navDrawerData.feeds.size()) { return navDrawerData.feeds.get(position); } else { return null; 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 2e626776b..017c28dbf 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java @@ -615,7 +615,7 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity @Override public Feed getItem(int position) { - if (navDrawerData != null && position < navDrawerData.feeds.size()) { + if (navDrawerData != null && 0 <= position && position < navDrawerData.feeds.size()) { return navDrawerData.feeds.get(position); } else { return null; 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 0a0f686ff..091f4c843 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java @@ -349,7 +349,7 @@ public class AllEpisodesFragment extends Fragment { @Override public FeedItem getItem(int position) { - if (episodes != null && position < episodes.size()) { + if (episodes != null && 0 <= position && position < episodes.size()) { return episodes.get(position); } return null; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java index a5568b16e..954c4c9e2 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java @@ -131,7 +131,11 @@ public class CompletedDownloadsFragment extends ListFragment { @Override public FeedItem getItem(int position) { - return (items != null) ? items.get(position) : null; + if (items != null && 0 <= position && position < items.size()) { + return items.get(position); + } else { + return null; + } } @Override diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java index 90cacd2e4..47ed9676a 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java @@ -91,7 +91,11 @@ public class DownloadLogFragment extends ListFragment { @Override public DownloadStatus getItem(int position) { - return (downloadLog != null) ? downloadLog.get(position) : null; + if (downloadLog != null && 0 <= position && position < downloadLog.size()) { + return downloadLog.get(position); + } else { + return null; + } } }; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java index bcfa254f7..109e64f9b 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java @@ -592,7 +592,11 @@ public class ItemlistFragment extends ListFragment { @Override public FeedItem getItem(int position) { - return (feed != null) ? feed.getItemAtIndex(position) : null; + if (feed != null && 0 <= position && position < feed.getNumOfItems()) { + return feed.getItemAtIndex(position); + } else { + return null; + } } @Override diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java index b47a197c3..85586962f 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java @@ -22,10 +22,10 @@ import de.danoeh.antennapod.adapter.DefaultActionButtonCallback; import de.danoeh.antennapod.adapter.FeedItemlistAdapter; import de.danoeh.antennapod.core.event.DownloadEvent; import de.danoeh.antennapod.core.event.DownloaderUpdate; +import de.danoeh.antennapod.core.event.QueueEvent; import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; -import de.danoeh.antennapod.core.event.QueueEvent; import de.danoeh.antennapod.core.service.download.Downloader; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; @@ -244,7 +244,11 @@ public class PlaybackHistoryFragment extends ListFragment { @Override public FeedItem getItem(int position) { - return (playbackHistory != null) ? playbackHistory.get(position) : null; + if (playbackHistory != null && 0 <= position && position < playbackHistory.size()) { + return playbackHistory.get(position); + } else { + return null; + } } }; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java index 8a2249d98..1271887b1 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -503,7 +503,7 @@ public class QueueFragment extends Fragment { @Override public FeedItem getItem(int position) { - if(queue != null && position < queue.size()) { + if (queue != null && 0 <= position && position < queue.size()) { return queue.get(position); } return null; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java index d81d18640..ba526edb3 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java @@ -83,7 +83,11 @@ public class RunningDownloadsFragment extends ListFragment { @Override public Downloader getItem(int position) { - return (downloaderList != null) ? downloaderList.get(position) : null; + if (downloaderList != null && 0 <= position && position < downloaderList.size()) { + return downloaderList.get(position); + } else { + return null; + } } @Override diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java index 43354ad28..513cf2760 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java @@ -192,7 +192,11 @@ public class SearchFragment extends ListFragment { @Override public SearchResult getItem(int position) { - return (searchResults != null) ? searchResults.get(position) : null; + if (searchResults != null && 0 <= position && position < searchResults.size()) { + return searchResults.get(position); + } else { + return null; + } } }; -- cgit v1.2.3