diff options
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java | 89 |
1 files changed, 42 insertions, 47 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java index d7ffa3e23..b47a197c3 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java @@ -3,7 +3,6 @@ package de.danoeh.antennapod.fragment; import android.app.Activity; import android.content.res.TypedArray; import android.os.Bundle; -import android.os.Handler; import android.support.v4.app.ListFragment; import android.support.v4.util.Pair; import android.support.v4.view.MenuItemCompat; @@ -21,7 +20,8 @@ import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.adapter.DefaultActionButtonCallback; import de.danoeh.antennapod.adapter.FeedItemlistAdapter; -import de.danoeh.antennapod.core.asynctask.DownloadObserver; +import de.danoeh.antennapod.core.event.DownloadEvent; +import de.danoeh.antennapod.core.event.DownloaderUpdate; import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; @@ -52,12 +52,20 @@ public class PlaybackHistoryFragment extends ListFragment { private AtomicReference<Activity> activity = new AtomicReference<Activity>(); - private DownloadObserver downloadObserver; private List<Downloader> downloaderList; private Subscription subscription; @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + this.activity.set(activity); + if (viewsCreated && itemsLoaded) { + onFragmentLoaded(); + } + } + + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRetainInstance(true); @@ -65,8 +73,26 @@ public class PlaybackHistoryFragment extends ListFragment { } @Override + public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + // add padding + final ListView lv = getListView(); + lv.setClipToPadding(false); + final int vertPadding = getResources().getDimensionPixelSize(R.dimen.list_vertical_padding); + lv.setPadding(0, vertPadding, 0, vertPadding); + + viewsCreated = true; + if (itemsLoaded) { + onFragmentLoaded(); + } + } + + + @Override public void onResume() { super.onResume(); + EventBus.getDefault().registerSticky(this); loadItems(); } @@ -74,14 +100,18 @@ public class PlaybackHistoryFragment extends ListFragment { public void onStart() { super.onStart(); EventDistributor.getInstance().register(contentUpdate); - EventBus.getDefault().register(this); + } + + @Override + public void onPause() { + super.onPause(); + EventBus.getDefault().unregister(this); } @Override public void onStop() { super.onStop(); EventDistributor.getInstance().unregister(contentUpdate); - EventBus.getDefault().unregister(this); if(subscription != null) { subscription.unsubscribe(); } @@ -97,41 +127,18 @@ public class PlaybackHistoryFragment extends ListFragment { } @Override - public void onAttach(Activity activity) { - super.onAttach(activity); - this.activity.set(activity); - if (downloadObserver != null) { - downloadObserver.setActivity(activity); - downloadObserver.onResume(); - } - if (viewsCreated && itemsLoaded) { - onFragmentLoaded(); - } - } - - @Override public void onDestroyView() { super.onDestroyView(); adapter = null; viewsCreated = false; - if (downloadObserver != null) { - downloadObserver.onPause(); - } } - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - - // add padding - final ListView lv = getListView(); - lv.setClipToPadding(false); - final int vertPadding = getResources().getDimensionPixelSize(R.dimen.list_vertical_padding); - lv.setPadding(0, vertPadding, 0, vertPadding); - - viewsCreated = true; - if (itemsLoaded) { - onFragmentLoaded(); + public void onEvent(DownloadEvent event) { + Log.d(TAG, "onEvent() called with: " + "event = [" + event + "]"); + DownloaderUpdate update = event.update; + downloaderList = update.downloaders; + if (adapter != null) { + adapter.notifyDataSetChanged(); } } @@ -205,24 +212,12 @@ public class PlaybackHistoryFragment extends ListFragment { // it harder to read. adapter = new FeedItemlistAdapter(getActivity(), itemAccess, new DefaultActionButtonCallback(activity.get()), true, false); setListAdapter(adapter); - downloadObserver = new DownloadObserver(activity.get(), new Handler(), downloadObserverCallback); - downloadObserver.onResume(); } setListShown(true); adapter.notifyDataSetChanged(); getActivity().supportInvalidateOptionsMenu(); } - private DownloadObserver.Callback downloadObserverCallback = new DownloadObserver.Callback() { - @Override - public void onContentChanged(List<Downloader> downloaderList) { - PlaybackHistoryFragment.this.downloaderList = downloaderList; - if (adapter != null) { - adapter.notifyDataSetChanged(); - } - } - }; - private FeedItemlistAdapter.ItemAccess itemAccess = new FeedItemlistAdapter.ItemAccess() { @Override public boolean isInQueue(FeedItem item) { @@ -257,7 +252,7 @@ public class PlaybackHistoryFragment extends ListFragment { if(subscription != null) { subscription.unsubscribe(); } - subscription = Observable.defer(() -> Observable.just(loadData())) + subscription = Observable.fromCallable(() -> loadData()) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(result -> { |