diff options
author | ByteHamster <info@bytehamster.com> | 2017-04-17 07:46:05 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2017-04-17 07:58:00 +0200 |
commit | 2826738940e441a6875985efe0fe299ebe89d7c9 (patch) | |
tree | 8e9f1764cc16d915c349d484c76fb8c982396987 /app/src/main/java | |
parent | aad56bea56c320cc84bd7f9472f3caff996e411c (diff) | |
download | AntennaPod-2826738940e441a6875985efe0fe299ebe89d7c9.zip |
Only allow menu invalidations from active fragment
Fixes #2081
Diffstat (limited to 'app/src/main/java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java | 3 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java | 24 |
2 files changed, 17 insertions, 10 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 ab8808093..bbfd1688d 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java @@ -80,6 +80,7 @@ public class AllEpisodesFragment extends Fragment { private boolean viewsCreated = false; private boolean isUpdatingFeeds; + protected boolean isMenuInvalidationAllowed = false; protected Subscription subscription; private LinearLayoutManager layoutManager; @@ -430,7 +431,7 @@ public class AllEpisodesFragment extends Fragment { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); DownloaderUpdate update = event.update; downloaderList = update.downloaders; - if (isUpdatingFeeds != update.feedIds.length > 0) { + if (isMenuInvalidationAllowed && isUpdatingFeeds != update.feedIds.length > 0) { getActivity().supportInvalidateOptionsMenu(); } if(listAdapter != null && update.mediaIds.length > 0) { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java index f23981935..e2fbd91f3 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java @@ -79,6 +79,11 @@ public class EpisodesFragment extends Fragment { public static class EpisodesPagerAdapter extends FragmentPagerAdapter { private final Resources resources; + private AllEpisodesFragment[] fragments = { + new NewEpisodesFragment(), + new AllEpisodesFragment(), + new FavoriteEpisodesFragment() + }; public EpisodesPagerAdapter(FragmentManager fm, Resources resources) { super(fm); @@ -87,15 +92,7 @@ public class EpisodesFragment extends Fragment { @Override public Fragment getItem(int position) { - switch (position) { - case POS_ALL_EPISODES: - return new AllEpisodesFragment(); - case POS_NEW_EPISODES: - return new NewEpisodesFragment(); - case POS_FAV_EPISODES: - return new FavoriteEpisodesFragment(); - } - return null; + return fragments[position]; } @Override @@ -116,5 +113,14 @@ public class EpisodesFragment extends Fragment { return super.getPageTitle(position); } } + + @Override + public void setPrimaryItem(ViewGroup container, int position, Object object) { + super.setPrimaryItem(container, position, object); + for (int i = 0; i < TOTAL_COUNT; i++) { + // Invalidating the OptionsMenu is only allowed for the currently active fragment + fragments[i].isMenuInvalidationAllowed = (i == position); + } + } } } |