diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2013-02-24 12:30:23 +0100 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2013-02-24 12:30:23 +0100 |
commit | f9e00f72a0dfeea3e5b9db8a522f7251e158dc7d (patch) | |
tree | 86396c75b933e10fe4adad579ade3bafa329b0f2 /src/de/danoeh/antennapod/fragment | |
parent | 56f199dc8c69d7e24d0e05613f9911c323cb46a6 (diff) | |
download | AntennaPod-f9e00f72a0dfeea3e5b9db8a522f7251e158dc7d.zip |
limited access to feed items, feeds, playback history and download log
Diffstat (limited to 'src/de/danoeh/antennapod/fragment')
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 |