diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2013-06-01 18:29:04 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2013-06-01 18:29:04 +0200 |
commit | 71a47c0a5bf99a734081d217eb3e14d75f017a7a (patch) | |
tree | 902cbb139b58e4a0f331ed2ab6e3664c6b4d76c0 /src/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java | |
parent | b83656049d0453012d29eb67f74a6352ce246689 (diff) | |
download | AntennaPod-71a47c0a5bf99a734081d217eb3e14d75f017a7a.zip |
Ported several classes from FeedManager to DB*-classes
Diffstat (limited to 'src/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java')
-rw-r--r-- | src/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java | 90 |
1 files changed, 74 insertions, 16 deletions
diff --git a/src/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java b/src/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java index b471d5303..2fe43767d 100644 --- a/src/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java +++ b/src/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java @@ -1,33 +1,53 @@ package de.danoeh.antennapod.fragment; +import android.content.Context; +import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import de.danoeh.antennapod.AppConfig; -import de.danoeh.antennapod.adapter.DefaultFeedItemlistAdapter; +import de.danoeh.antennapod.adapter.InternalFeedItemlistAdapter; import de.danoeh.antennapod.feed.EventDistributor; import de.danoeh.antennapod.feed.FeedItem; -import de.danoeh.antennapod.feed.FeedManager; +import de.danoeh.antennapod.storage.DBReader; + +import java.util.Iterator; +import java.util.List; public class PlaybackHistoryFragment extends ItemlistFragment { private static final String TAG = "PlaybackHistoryFragment"; + private List<FeedItem> playbackHistory; + public PlaybackHistoryFragment() { - super(new DefaultFeedItemlistAdapter.ItemAccess() { + super(true); + } - @Override - public FeedItem getItem(int position) { - return FeedManager.getInstance().getPlaybackHistoryItemIndex( - position); - } + InternalFeedItemlistAdapter.ItemAccess itemAccessRef; + @Override + protected InternalFeedItemlistAdapter.ItemAccess itemAccess() { + if (itemAccessRef == null) { + itemAccessRef = new InternalFeedItemlistAdapter.ItemAccess() { - @Override - public int getCount() { - return FeedManager.getInstance().getPlaybackHistorySize(); - } - }, true); - } + @Override + public FeedItem getItem(int position) { + return (playbackHistory != null) ? playbackHistory.get(position) : null; + } - @Override + @Override + public int getCount() { + return (playbackHistory != null) ? playbackHistory.size() : 0; + } + + @Override + public Iterator<FeedItem> queueIterator() { + return (queue != null) ? queue.iterator() : null; + } + }; + } + return itemAccessRef; + } + + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EventDistributor.getInstance().register(historyUpdate); @@ -46,10 +66,48 @@ public class PlaybackHistoryFragment extends ItemlistFragment { if ((EventDistributor.PLAYBACK_HISTORY_UPDATE & arg) != 0) { if (AppConfig.DEBUG) Log.d(TAG, "Received content update"); - fila.notifyDataSetChanged(); + loadData(); } } }; + @Override + protected void loadData() { + AsyncTask<Void, Void, Void> loadTask = new AsyncTask<Void, Void, Void>() { + private volatile List<FeedItem> phRef; + private volatile List<FeedItem> queueRef; + + @Override + protected Void doInBackground(Void... voids) { + Context context = PlaybackHistoryFragment.this.getActivity(); + if (context != null) { + queueRef = DBReader.getQueue(context); + phRef = DBReader.getPlaybackHistory(context); + } + return null; + } + + @Override + protected void onPostExecute(Void aVoid) { + super.onPostExecute(aVoid); + if (queueRef != null && phRef != null) { + queue = queueRef; + playbackHistory = phRef; + Log.i(TAG, "Number of items in playback history: " + playbackHistory.size()); + if (fila != null) { + fila.notifyDataSetChanged(); + } + } else { + if (queueRef == null) { + Log.e(TAG, "Could not load queue"); + } + if (phRef == null) { + Log.e(TAG, "Could not load playback history"); + } + } + } + }; + loadTask.execute(); + } } |