summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2014-11-10 21:01:41 +0100
committerdaniel oeh <daniel.oeh@gmail.com>2014-11-10 21:01:41 +0100
commitad04a80ae7b2091c94b0d007c2a78d97e7af871d (patch)
tree0d43b619ddcc6ea6d1222595d7a56db5a8c6e823 /app/src/main/java/de/danoeh/antennapod/fragment
parent6035e8fee91d895dd3a0fcedbedab2bc9de5b6a1 (diff)
downloadAntennaPod-ad04a80ae7b2091c94b0d007c2a78d97e7af871d.zip
Squashed commit of the following:
commit 7d0e6d5c2dc75f8f1e54f4a1279c6b0cffa7b8cc Author: daniel oeh <daniel.oeh@gmail.com> Date: Mon Nov 10 21:00:58 2014 +0100 Made tests compile commit 05c57df87dd469d8f64835700eefe2e3c87e04e4 Author: daniel oeh <daniel.oeh@gmail.com> Date: Mon Nov 10 20:56:58 2014 +0100 Removed unused code commit 0a1fbc9e6d9648646140e30dec0ec8389fb8d37f Author: daniel oeh <daniel.oeh@gmail.com> Date: Thu Nov 6 15:48:24 2014 +0100 Added UI controls to download more feed pages closes #245 commit 6486fb40f1d03887e264df95946f91f0a9cdac9b Author: daniel oeh <daniel.oeh@gmail.com> Date: Thu Nov 6 14:49:43 2014 +0100 Added support for downloading feed pages commit e1faa06908bfd50f2aa0c28ee5118772c4281557 Author: daniel oeh <daniel.oeh@gmail.com> Date: Wed Nov 5 21:27:03 2014 +0100 Added "paged" and "loadAllPages" attributes
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java43
1 files changed, 42 insertions, 1 deletions
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