diff options
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/menuhandler/MenuItemUtils.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/menuhandler/MenuItemUtils.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/MenuItemUtils.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/MenuItemUtils.java index c4a96ac3f..a1e666df0 100644 --- a/app/src/main/java/de/danoeh/antennapod/menuhandler/MenuItemUtils.java +++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/MenuItemUtils.java @@ -28,4 +28,29 @@ public class MenuItemUtils { public static boolean isActivityDrawerOpen(NavDrawerActivity activity) { return activity != null && activity.isDrawerOpen(); } + + /** + * Changes the appearance of a MenuItem depending on whether the given UpdateRefreshMenuItemChecker + * is refreshing or not. If it returns true, the menu item will be replaced by an indeterminate progress + * bar, otherwise nothing will happen. + * + * @param menu The menu that the MenuItem belongs to + * @param resId The id of the MenuItem + * @param checker Is used for checking whether to show the progress indicator or not. + * @return The returned value of the UpdateRefreshMenuItemChecker's isRefreshing() method. + */ + public static boolean updateRefreshMenuItem(Menu menu, int resId, UpdateRefreshMenuItemChecker checker) { + // expand actionview if feeds are being downloaded, collapse otherwise + if (checker.isRefreshing()) { + MenuItem refreshItem = menu.findItem(resId); + MenuItemCompat.setActionView(refreshItem, de.danoeh.antennapod.R.layout.refresh_action_view); + return true; + } else { + return false; + } + } + + public static interface UpdateRefreshMenuItemChecker { + public boolean isRefreshing(); + } } |