summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java21
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java25
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java10
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java5
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java3
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/event/DownloadLogEvent.java16
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/event/PlaybackHistoryEvent.java16
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/EventDistributor.java11
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java12
9 files changed, 80 insertions, 39 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java
index 1917e4c75..7196198cc 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java
@@ -16,6 +16,7 @@ import java.util.List;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.MainActivity;
import de.danoeh.antennapod.adapter.DownloadedEpisodesListAdapter;
+import de.danoeh.antennapod.core.event.DownloadLogEvent;
import de.danoeh.antennapod.core.feed.EventDistributor;
import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.storage.DBReader;
@@ -27,6 +28,8 @@ import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
import static de.danoeh.antennapod.dialog.EpisodesApplyActionFragment.ACTION_ADD_TO_QUEUE;
import static de.danoeh.antennapod.dialog.EpisodesApplyActionFragment.ACTION_DELETE;
@@ -38,10 +41,6 @@ public class CompletedDownloadsFragment extends ListFragment {
private static final String TAG = CompletedDownloadsFragment.class.getSimpleName();
- private static final int EVENTS = EventDistributor.DOWNLOAD_HANDLED |
- EventDistributor.DOWNLOADLOG_UPDATE |
- EventDistributor.UNREAD_ITEMS_UPDATE;
-
private List<FeedItem> items = new ArrayList<>();
private DownloadedEpisodesListAdapter listAdapter;
private Disposable disposable;
@@ -56,6 +55,13 @@ public class CompletedDownloadsFragment extends ListFragment {
listAdapter = new DownloadedEpisodesListAdapter(getActivity(), itemAccess);
setListAdapter(listAdapter);
setListShown(false);
+ EventBus.getDefault().register(this);
+ }
+
+ @Override
+ public void onDestroyView() {
+ EventBus.getDefault().unregister(this);
+ super.onDestroyView();
}
@Override
@@ -138,12 +144,17 @@ public class CompletedDownloadsFragment extends ListFragment {
private final EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() {
@Override
public void update(EventDistributor eventDistributor, Integer arg) {
- if ((arg & EVENTS) != 0) {
+ if ((arg & EventDistributor.UNREAD_ITEMS_UPDATE) != 0) {
loadItems();
}
}
};
+ @Subscribe
+ public void onDownloadLogChanged(DownloadLogEvent event) {
+ loadItems();
+ }
+
private void loadItems() {
if (disposable != null) {
disposable.dispose();
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
index 528c50747..2c5417b85 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
@@ -19,6 +19,7 @@ import java.util.List;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.adapter.DownloadLogAdapter;
+import de.danoeh.antennapod.core.event.DownloadLogEvent;
import de.danoeh.antennapod.core.feed.EventDistributor;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedMedia;
@@ -30,6 +31,8 @@ import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
/**
* Shows the download log
@@ -45,14 +48,12 @@ public class DownloadLogFragment extends ListFragment {
@Override
public void onStart() {
super.onStart();
- EventDistributor.getInstance().register(contentUpdate);
loadItems();
}
@Override
public void onStop() {
super.onStop();
- EventDistributor.getInstance().unregister(contentUpdate);
if (disposable != null) {
disposable.dispose();
}
@@ -77,6 +78,13 @@ public class DownloadLogFragment extends ListFragment {
adapter = new DownloadLogAdapter(getActivity(), itemAccess);
setListAdapter(adapter);
+ EventBus.getDefault().register(this);
+ }
+
+ @Override
+ public void onDestroyView() {
+ EventBus.getDefault().unregister(this);
+ super.onDestroyView();
}
private void onFragmentLoaded() {
@@ -133,15 +141,10 @@ public class DownloadLogFragment extends ListFragment {
}
};
- private final EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() {
-
- @Override
- public void update(EventDistributor eventDistributor, Integer arg) {
- if ((arg & EventDistributor.DOWNLOADLOG_UPDATE) != 0) {
- loadItems();
- }
- }
- };
+ @Subscribe
+ public void onDownloadLogChanged(DownloadLogEvent event) {
+ loadItems();
+ }
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
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 f9fca87fc..ab15c3602 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java
@@ -12,6 +12,7 @@ import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
+import de.danoeh.antennapod.core.event.PlaybackHistoryEvent;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -42,8 +43,7 @@ public class PlaybackHistoryFragment extends ListFragment {
public static final String TAG = "PlaybackHistoryFragment";
- private static final int EVENTS = EventDistributor.PLAYBACK_HISTORY_UPDATE |
- EventDistributor.PLAYER_STATUS_UPDATE;
+ private static final int EVENTS = EventDistributor.PLAYER_STATUS_UPDATE;
private List<FeedItem> playbackHistory;
private FeedItemlistAdapter adapter;
@@ -166,6 +166,12 @@ public class PlaybackHistoryFragment extends ListFragment {
}
}
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onHistoryUpdated(PlaybackHistoryEvent event) {
+ loadItems();
+ getActivity().supportInvalidateOptionsMenu();
+ }
+
private final EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() {
@Override
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
index b8ae7bb5b..37277a7c4 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
@@ -76,9 +76,8 @@ public class QueueFragment extends Fragment {
public static final String TAG = "QueueFragment";
- private static final int EVENTS = EventDistributor.DOWNLOAD_HANDLED |
- EventDistributor.UNREAD_ITEMS_UPDATE | // sent when playback position is reset
- EventDistributor.PLAYER_STATUS_UPDATE;
+ private static final int EVENTS = EventDistributor.UNREAD_ITEMS_UPDATE // sent when playback position is reset
+ | EventDistributor.PLAYER_STATUS_UPDATE;
private TextView infoBar;
private RecyclerView recyclerView;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java
index 7f3c60e5d..b05b7025c 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java
@@ -148,8 +148,7 @@ public class SearchFragment extends ListFragment {
private final EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() {
@Override
public void update(EventDistributor eventDistributor, Integer arg) {
- if ((arg & (EventDistributor.UNREAD_ITEMS_UPDATE
- | EventDistributor.DOWNLOAD_HANDLED)) != 0) {
+ if ((arg & EventDistributor.UNREAD_ITEMS_UPDATE) != 0) {
search();
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/event/DownloadLogEvent.java b/core/src/main/java/de/danoeh/antennapod/core/event/DownloadLogEvent.java
new file mode 100644
index 000000000..7428c5b00
--- /dev/null
+++ b/core/src/main/java/de/danoeh/antennapod/core/event/DownloadLogEvent.java
@@ -0,0 +1,16 @@
+package de.danoeh.antennapod.core.event;
+
+public class DownloadLogEvent {
+
+ private DownloadLogEvent() {
+ }
+
+ public static DownloadLogEvent listUpdated() {
+ return new DownloadLogEvent();
+ }
+
+ @Override
+ public String toString() {
+ return "DownloadLogEvent";
+ }
+}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/event/PlaybackHistoryEvent.java b/core/src/main/java/de/danoeh/antennapod/core/event/PlaybackHistoryEvent.java
new file mode 100644
index 000000000..cd3f27bf5
--- /dev/null
+++ b/core/src/main/java/de/danoeh/antennapod/core/event/PlaybackHistoryEvent.java
@@ -0,0 +1,16 @@
+package de.danoeh.antennapod.core.event;
+
+public class PlaybackHistoryEvent {
+
+ private PlaybackHistoryEvent() {
+ }
+
+ public static PlaybackHistoryEvent listUpdated() {
+ return new PlaybackHistoryEvent();
+ }
+
+ @Override
+ public String toString() {
+ return "PlaybackHistoryEvent";
+ }
+}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/EventDistributor.java b/core/src/main/java/de/danoeh/antennapod/core/feed/EventDistributor.java
index b769eaf55..de57a776b 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/EventDistributor.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/EventDistributor.java
@@ -22,9 +22,6 @@ public class EventDistributor extends Observable {
public static final int FEED_LIST_UPDATE = 1;
public static final int UNREAD_ITEMS_UPDATE = 2;
- public static final int DOWNLOADLOG_UPDATE = 8;
- public static final int PLAYBACK_HISTORY_UPDATE = 16;
- public static final int DOWNLOAD_HANDLED = 64;
public static final int PLAYER_STATUS_UPDATE = 128;
private final Handler handler;
@@ -86,14 +83,6 @@ public class EventDistributor extends Observable {
addEvent(FEED_LIST_UPDATE);
}
- public void sendPlaybackHistoryUpdateBroadcast() {
- addEvent(PLAYBACK_HISTORY_UPDATE);
- }
-
- public void sendDownloadLogUpdateBroadcast() {
- addEvent(DOWNLOADLOG_UPDATE);
- }
-
public void sendPlayerStatusUpdateBroadcast() { addEvent(PLAYER_STATUS_UPDATE); }
public abstract static class EventListener implements Observer {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
index e0e15c1ff..9225155cf 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
@@ -6,6 +6,8 @@ import android.util.Log;
import androidx.annotation.NonNull;
+import de.danoeh.antennapod.core.event.DownloadLogEvent;
+import de.danoeh.antennapod.core.event.PlaybackHistoryEvent;
import org.greenrobot.eventbus.EventBus;
import java.io.File;
@@ -176,7 +178,7 @@ public class DBWriter {
// we assume we also removed download log entries for the feed or its media files.
// especially important if download or refresh failed, as the user should not be able
// to retry these
- EventDistributor.getInstance().sendDownloadLogUpdateBroadcast();
+ EventBus.getDefault().post(DownloadLogEvent.listUpdated());
BackupManager backupManager = new BackupManager(context);
backupManager.dataChanged();
@@ -193,7 +195,7 @@ public class DBWriter {
adapter.open();
adapter.clearPlaybackHistory();
adapter.close();
- EventDistributor.getInstance().sendPlaybackHistoryUpdateBroadcast();
+ EventBus.getDefault().post(PlaybackHistoryEvent.listUpdated());
});
}
@@ -206,7 +208,7 @@ public class DBWriter {
adapter.open();
adapter.clearDownloadLog();
adapter.close();
- EventDistributor.getInstance().sendDownloadLogUpdateBroadcast();
+ EventBus.getDefault().post(DownloadLogEvent.listUpdated());
});
}
@@ -227,7 +229,7 @@ public class DBWriter {
adapter.open();
adapter.setFeedMediaPlaybackCompletionDate(media);
adapter.close();
- EventDistributor.getInstance().sendPlaybackHistoryUpdateBroadcast();
+ EventBus.getDefault().post(PlaybackHistoryEvent.listUpdated());
});
}
@@ -243,7 +245,7 @@ public class DBWriter {
adapter.open();
adapter.setDownloadStatus(status);
adapter.close();
- EventDistributor.getInstance().sendDownloadLogUpdateBroadcast();
+ EventBus.getDefault().post(DownloadLogEvent.listUpdated());
});
}