From ad04a80ae7b2091c94b0d007c2a78d97e7af871d Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Mon, 10 Nov 2014 21:01:41 +0100 Subject: Squashed commit of the following: commit 7d0e6d5c2dc75f8f1e54f4a1279c6b0cffa7b8cc Author: daniel oeh Date: Mon Nov 10 21:00:58 2014 +0100 Made tests compile commit 05c57df87dd469d8f64835700eefe2e3c87e04e4 Author: daniel oeh Date: Mon Nov 10 20:56:58 2014 +0100 Removed unused code commit 0a1fbc9e6d9648646140e30dec0ec8389fb8d37f Author: daniel oeh Date: Thu Nov 6 15:48:24 2014 +0100 Added UI controls to download more feed pages closes #245 commit 6486fb40f1d03887e264df95946f91f0a9cdac9b Author: daniel oeh Date: Thu Nov 6 14:49:43 2014 +0100 Added support for downloading feed pages commit e1faa06908bfd50f2aa0c28ee5118772c4281557 Author: daniel oeh Date: Wed Nov 5 21:27:03 2014 +0100 Added "paged" and "loadAllPages" attributes --- .../antennapod/fragment/ItemlistFragment.java | 43 +++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'app/src/main/java/de/danoeh/antennapod/fragment') 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 15f6e85e4..abf894c2a 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java @@ -4,7 +4,6 @@ import android.annotation.SuppressLint; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; -import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; @@ -44,9 +43,11 @@ import de.danoeh.antennapod.core.feed.FeedMedia; import de.danoeh.antennapod.core.service.download.DownloadService; import de.danoeh.antennapod.core.service.download.Downloader; import de.danoeh.antennapod.core.storage.DBReader; +import de.danoeh.antennapod.core.storage.DBTasks; import de.danoeh.antennapod.core.storage.DownloadRequestException; import de.danoeh.antennapod.core.storage.DownloadRequester; import de.danoeh.antennapod.core.util.QueueAccess; +import de.danoeh.antennapod.core.util.gui.MoreContentListFooterUtil; import de.danoeh.antennapod.dialog.FeedItemDialog; import de.danoeh.antennapod.menuhandler.FeedMenuHandler; import de.danoeh.antennapod.menuhandler.MenuItemUtils; @@ -82,6 +83,8 @@ public class ItemlistFragment extends ListFragment { private FeedItemDialog feedItemDialog; private FeedItemDialog.FeedItemDialogSavedInstance feedItemDialogSavedInstance; + private MoreContentListFooterUtil listFooter; + private boolean isUpdatingFeed; /** @@ -293,12 +296,17 @@ public class ItemlistFragment extends ListFragment { if (isUpdatingFeed != updateRefreshMenuItemChecker.isRefreshing()) { getActivity().supportInvalidateOptionsMenu(); } + if (listFooter != null) { + listFooter.setLoadingState(DownloadRequester.getInstance().isDownloadingFeeds()); + } + } private void onFragmentLoaded() { if (adapter == null) { getListView().setAdapter(null); setupHeaderView(); + setupFooterView(); adapter = new FeedItemlistAdapter(getActivity(), itemAccess, new DefaultActionButtonCallback(getActivity()), false); setListAdapter(adapter); downloadObserver = new DownloadObserver(getActivity(), new Handler(), downloadObserverCallback); @@ -313,6 +321,11 @@ public class ItemlistFragment extends ListFragment { feedItemDialog = FeedItemDialog.newInstance(getActivity(), feedItemDialogSavedInstance); } getActivity().supportInvalidateOptionsMenu(); + + if (feed != null && feed.getNextPageLink() == null && listFooter != null) { + getListView().removeFooterView(listFooter.getRoot()); + } + } private DownloadObserver.Callback downloadObserverCallback = new DownloadObserver.Callback() { @@ -372,6 +385,34 @@ public class ItemlistFragment extends ListFragment { }); } + private void setupFooterView() { + if (getListView() == null || feed == null) { + Log.e(TAG, "Unable to setup listview: listView = null or feed = null"); + return; + } + if (feed.isPaged() && feed.getNextPageLink() != null) { + ListView lv = getListView(); + LayoutInflater inflater = (LayoutInflater) + getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); + View header = inflater.inflate(R.layout.more_content_list_footer, lv, false); + lv.addFooterView(header); + listFooter = new MoreContentListFooterUtil(header); + listFooter.setClickListener(new MoreContentListFooterUtil.Listener() { + @Override + public void onClick() { + if (feed != null) { + try { + DBTasks.loadNextPageOfFeed(getActivity(), feed, false); + } catch (DownloadRequestException e) { + e.printStackTrace(); + DownloadRequestErrorDialogCreator.newRequestErrorDialog(getActivity(), e.getMessage()); + } + } + } + }); + } + } + private FeedItemlistAdapter.ItemAccess itemAccess = new FeedItemlistAdapter.ItemAccess() { @Override -- cgit v1.2.3