From 5e5c570c83bdf00679c4a442e316811211168ca1 Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Mon, 28 Mar 2016 18:42:54 +0200 Subject: Send FeedItemEvent when a tag has been added or removed --- .../danoeh/antennapod/activity/MainActivity.java | 10 +++++++++- .../antennapod/fragment/AllEpisodesFragment.java | 4 ++-- .../danoeh/antennapod/fragment/ItemFragment.java | 12 ----------- .../antennapod/fragment/ItemlistFragment.java | 11 ----------- .../antennapod/fragment/NewEpisodesFragment.java | 23 ++++++++++++++++------ .../fragment/PlaybackHistoryFragment.java | 18 ++++++++++++----- 6 files changed, 41 insertions(+), 37 deletions(-) (limited to 'app') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java index d713ef80c..1e1f908c5 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java @@ -688,7 +688,15 @@ public class MainActivity extends AppCompatActivity implements NavDrawerActivity public void onEvent(QueueEvent event) { Log.d(TAG, "onEvent(" + event + ")"); - loadData(); + switch(event.action) { + case ADDED: + case ADDED_ITEMS: + case SET_QUEUE: + case REMOVED: + case IRREVERSIBLE_REMOVED: + case CLEARED: + loadData(); + } } public void onEventMainThread(ProgressEvent event) { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java index fabe14174..8ae7f1cf9 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java @@ -70,10 +70,10 @@ public class AllEpisodesFragment extends Fragment { private static final String PREF_SCROLL_OFFSET = "scroll_offset"; protected RecyclerView recyclerView; - private AllEpisodesRecycleAdapter listAdapter; + protected AllEpisodesRecycleAdapter listAdapter; private ProgressBar progLoading; - private List episodes; + protected List episodes; private List downloaderList; private boolean itemsLoaded = false; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java index 7fa799a3d..df1e2a555 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java @@ -523,18 +523,6 @@ public class ItemFragment extends Fragment implements OnSwipeGesture { ((MainActivity)getActivity()).loadChildFragment(fragment); } - public void onEventMainThread(QueueEvent event) { - if(event.contains(feedItems[feedItemPos])) { - load(); - } - } - - public void onEventMainThread(FavoritesEvent event) { - if(event.item.getId() == feedItems[feedItemPos]) { - load(); - } - } - public void onEventMainThread(FeedItemEvent event) { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); for(FeedItem item : event.items) { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java index a6ab77e6f..461488562 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java @@ -49,7 +49,6 @@ import de.danoeh.antennapod.core.event.DownloadEvent; import de.danoeh.antennapod.core.event.DownloaderUpdate; import de.danoeh.antennapod.core.event.FavoritesEvent; import de.danoeh.antennapod.core.event.FeedItemEvent; -import de.danoeh.antennapod.core.event.QueueEvent; import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.feed.FeedEvent; @@ -377,16 +376,6 @@ public class ItemlistFragment extends ListFragment { activity.getSupportActionBar().setTitle(feed.getTitle()); } - public void onEvent(QueueEvent event) { - Log.d(TAG, "onEvent() called with: " + "event = [" + event + "]"); - loadItems(); - } - - public void onEvent(FavoritesEvent event) { - Log.d(TAG, "onEvent() called with: " + "event = [" + event + "]"); - loadItems(); - } - public void onEvent(FeedEvent event) { Log.d(TAG, "onEvent() called with: " + "event = [" + event + "]"); if(event.feedId == feedID) { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java index b996e1cb3..7ef070f21 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java @@ -14,12 +14,13 @@ import java.util.List; import de.danoeh.antennapod.R; import de.danoeh.antennapod.adapter.AllEpisodesRecycleAdapter; -import de.danoeh.antennapod.core.event.QueueEvent; +import de.danoeh.antennapod.core.event.FeedItemEvent; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; +import de.danoeh.antennapod.core.util.FeedItemUtil; /** @@ -39,16 +40,26 @@ public class NewEpisodesFragment extends AllEpisodesFragment { @Override protected String getPrefName() { return PREF_NAME; } - public void onEvent(QueueEvent event) { - Log.d(TAG, "onEvent() called with: " + "event = [" + event + "]"); - loadItems(); - } - @Override protected void resetViewState() { super.resetViewState(); } + @Override + public void onEventMainThread(FeedItemEvent event) { + Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); + if(episodes == null) { + return; + } + for(FeedItem item : event.items) { + int pos = FeedItemUtil.indexOfItemWithId(episodes, item.getId()); + if(pos >= 0 && item.isTagged(FeedItem.TAG_QUEUE)) { + episodes.remove(pos); + listAdapter.notifyItemRemoved(pos); + } + } + } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = super.onCreateViewHelper(inflater, container, savedInstanceState, 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 491646c74..49c68c732 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java @@ -20,7 +20,7 @@ import de.danoeh.antennapod.adapter.DefaultActionButtonCallback; import de.danoeh.antennapod.adapter.FeedItemlistAdapter; import de.danoeh.antennapod.core.event.DownloadEvent; import de.danoeh.antennapod.core.event.DownloaderUpdate; -import de.danoeh.antennapod.core.event.QueueEvent; +import de.danoeh.antennapod.core.event.FeedItemEvent; import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; @@ -28,7 +28,6 @@ import de.danoeh.antennapod.core.service.download.Downloader; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.util.FeedItemUtil; - import de.greenrobot.event.EventBus; import rx.Observable; import rx.Subscription; @@ -185,9 +184,18 @@ public class PlaybackHistoryFragment extends ListFragment { } } - public void onEvent(QueueEvent event) { - Log.d(TAG, "onEvent(" + event + ")"); - loadItems(); + public void onEventMainThread(FeedItemEvent event) { + Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); + if(playbackHistory == null) { + return; + } + for(FeedItem item : event.items) { + int pos = FeedItemUtil.indexOfItemWithId(playbackHistory, item.getId()); + if(pos >= 0) { + loadItems(); + return; + } + } } private EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() { -- cgit v1.2.3