summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/fragment
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2013-02-24 12:30:23 +0100
committerdaniel oeh <daniel.oeh@gmail.com>2013-02-24 12:30:23 +0100
commitf9e00f72a0dfeea3e5b9db8a522f7251e158dc7d (patch)
tree86396c75b933e10fe4adad579ade3bafa329b0f2 /src/de/danoeh/antennapod/fragment
parent56f199dc8c69d7e24d0e05613f9911c323cb46a6 (diff)
downloadAntennaPod-f9e00f72a0dfeea3e5b9db8a522f7251e158dc7d.zip
limited access to feed items, feeds, playback history and download log
Diffstat (limited to 'src/de/danoeh/antennapod/fragment')
-rw-r--r--src/de/danoeh/antennapod/fragment/FeedlistFragment.java13
-rw-r--r--src/de/danoeh/antennapod/fragment/ItemlistFragment.java44
-rw-r--r--src/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java16
3 files changed, 46 insertions, 27 deletions
diff --git a/src/de/danoeh/antennapod/fragment/FeedlistFragment.java b/src/de/danoeh/antennapod/fragment/FeedlistFragment.java
index caf6c6a7f..f9b1b7474 100644
--- a/src/de/danoeh/antennapod/fragment/FeedlistFragment.java
+++ b/src/de/danoeh/antennapod/fragment/FeedlistFragment.java
@@ -45,7 +45,6 @@ public class FeedlistFragment extends SherlockFragment implements
private FeedManager manager;
private FeedlistAdapter fla;
- private SherlockFragmentActivity pActivity;
private Feed selectedFeed;
private ActionMode mActionMode;
@@ -57,13 +56,11 @@ public class FeedlistFragment extends SherlockFragment implements
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
- pActivity = (SherlockFragmentActivity) activity;
}
@Override
public void onDetach() {
super.onDetach();
- pActivity = null;
}
@Override
@@ -72,7 +69,7 @@ public class FeedlistFragment extends SherlockFragment implements
if (AppConfig.DEBUG)
Log.d(TAG, "Creating");
manager = FeedManager.getInstance();
- fla = new FeedlistAdapter(pActivity, 0, manager.getFeeds());
+ fla = new FeedlistAdapter(getActivity());
}
@@ -118,14 +115,14 @@ public class FeedlistFragment extends SherlockFragment implements
filter.addAction(FeedManager.ACTION_UNREAD_ITEMS_UPDATE);
filter.addAction(FeedManager.ACTION_FEED_LIST_UPDATE);
filter.addAction(DownloadService.ACTION_DOWNLOAD_HANDLED);
- pActivity.registerReceiver(contentUpdate, filter);
+ getActivity().registerReceiver(contentUpdate, filter);
fla.notifyDataSetChanged();
}
@Override
public void onPause() {
super.onPause();
- pActivity.unregisterReceiver(contentUpdate);
+ getActivity().unregisterReceiver(contentUpdate);
if (mActionMode != null) {
mActionMode.finish();
}
@@ -211,10 +208,10 @@ public class FeedlistFragment extends SherlockFragment implements
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long id) {
Feed selection = fla.getItem(position);
- Intent showFeed = new Intent(pActivity, FeedItemlistActivity.class);
+ Intent showFeed = new Intent(getActivity(), FeedItemlistActivity.class);
showFeed.putExtra(EXTRA_SELECTED_FEED, selection.getId());
- pActivity.startActivity(showFeed);
+ getActivity().startActivity(showFeed);
}
@Override
diff --git a/src/de/danoeh/antennapod/fragment/ItemlistFragment.java b/src/de/danoeh/antennapod/fragment/ItemlistFragment.java
index cdccdc338..6b516f888 100644
--- a/src/de/danoeh/antennapod/fragment/ItemlistFragment.java
+++ b/src/de/danoeh/antennapod/fragment/ItemlistFragment.java
@@ -2,6 +2,7 @@ package de.danoeh.antennapod.fragment;
import java.util.List;
+import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -34,35 +35,30 @@ import de.danoeh.antennapod.storage.DownloadRequester;
import de.danoeh.antennapod.util.menuhandler.FeedItemMenuHandler;
/** Displays a list of FeedItems. */
+@SuppressLint("ValidFragment")
public class ItemlistFragment extends SherlockListFragment {
private static final String TAG = "ItemlistFragment";
public static final String EXTRA_SELECTED_FEEDITEM = "extra.de.danoeh.antennapod.activity.selected_feeditem";
public static final String ARGUMENT_FEED_ID = "argument.de.danoeh.antennapod.feed_id";
protected AbstractFeedItemlistAdapter fila;
- protected FeedManager manager;
- protected DownloadRequester requester;
+ protected FeedManager manager = FeedManager.getInstance();
+ protected DownloadRequester requester = DownloadRequester.getInstance();
- /** The feed which the activity displays */
- protected List<FeedItem> items;
- /**
- * This is only not null if the fragment displays the items of a specific
- * feed
- */
- protected Feed feed;
+ private AbstractFeedItemlistAdapter.ItemAccess itemAccess;
+ private Feed feed;
+
protected FeedItem selectedItem = null;
protected boolean contextMenuClosed = true;
/** Argument for FeeditemlistAdapter */
protected boolean showFeedtitle;
- public ItemlistFragment(List<FeedItem> items, boolean showFeedtitle) {
+ public ItemlistFragment(AbstractFeedItemlistAdapter.ItemAccess itemAccess, boolean showFeedtitle) {
super();
- this.items = items;
+ this.itemAccess = itemAccess;
this.showFeedtitle = showFeedtitle;
- manager = FeedManager.getInstance();
- requester = DownloadRequester.getInstance();
}
public ItemlistFragment() {
@@ -94,15 +90,27 @@ public class ItemlistFragment extends SherlockListFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (items == null) {
+ if (itemAccess == null) {
long feedId = getArguments().getLong(ARGUMENT_FEED_ID);
- feed = FeedManager.getInstance().getFeed(feedId);
- items = feed.getItems();
+ final Feed feed = FeedManager.getInstance().getFeed(feedId);
+ this.feed = feed;
+ itemAccess = new AbstractFeedItemlistAdapter.ItemAccess() {
+
+ @Override
+ public FeedItem getItem(int position) {
+ return feed.getItemAtIndex(true, position);
+ }
+
+ @Override
+ public int getCount() {
+ return feed.getNumOfItems(true);
+ }
+ };
}
}
protected AbstractFeedItemlistAdapter createListAdapter() {
- return new FeedItemlistAdapter(getActivity(), 0, items,
+ return new FeedItemlistAdapter(getActivity(), itemAccess,
adapterCallback, showFeedtitle);
}
@@ -178,7 +186,7 @@ public class ItemlistFragment extends SherlockListFragment {
getSherlockActivity()
.setSupportProgressBarIndeterminateVisibility(false);
}
- getSherlockActivity().invalidateOptionsMenu();
+ getSherlockActivity().supportInvalidateOptionsMenu();
}
}
diff --git a/src/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java b/src/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java
index a2826c977..17ff9c6a1 100644
--- a/src/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java
+++ b/src/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java
@@ -7,13 +7,27 @@ import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import de.danoeh.antennapod.AppConfig;
+import de.danoeh.antennapod.adapter.AbstractFeedItemlistAdapter;
+import de.danoeh.antennapod.feed.FeedItem;
import de.danoeh.antennapod.feed.FeedManager;
public class PlaybackHistoryFragment extends ItemlistFragment {
private static final String TAG = "PlaybackHistoryFragment";
public PlaybackHistoryFragment() {
- super(FeedManager.getInstance().getPlaybackHistory(), true);
+ super(new AbstractFeedItemlistAdapter.ItemAccess() {
+
+ @Override
+ public FeedItem getItem(int position) {
+ return FeedManager.getInstance().getPlaybackHistoryItemIndex(
+ position);
+ }
+
+ @Override
+ public int getCount() {
+ return FeedManager.getInstance().getPlaybackHistorySize();
+ }
+ }, true);
}
@Override