summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment
diff options
context:
space:
mode:
authorTom Hennen <TomHennen@users.noreply.github.com>2016-04-19 16:27:54 -0400
committerTom Hennen <TomHennen@users.noreply.github.com>2016-04-19 16:27:54 -0400
commita15133e45e6b94f23ea15b18ee1fe1aaa8034eda (patch)
treed9db23feabf665b6832313ea31d9ced4f93b85c9 /app/src/main/java/de/danoeh/antennapod/fragment
parent6f15660b11ca35b0f4cae9d93ae24760ef8b095a (diff)
parentc81a9b102fbdd4687ecd1b189353d8fc5d3908d0 (diff)
downloadAntennaPod-a15133e45e6b94f23ea15b18ee1fe1aaa8034eda.zip
Merge pull request #1875 from mfietz/issue/1831-apply-actions-tags
Fix item tags
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java31
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java39
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java34
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java23
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java32
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java14
6 files changed, 45 insertions, 128 deletions
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 51fb8f86f..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<FeedItem> episodes;
+ protected List<FeedItem> episodes;
private List<Downloader> downloaderList;
private boolean itemsLoaded = false;
@@ -378,33 +378,6 @@ public class AllEpisodesFragment extends Fragment {
return item != null && item.isTagged(FeedItem.TAG_QUEUE);
}
- @Override
- public LongList getQueueIds() {
- LongList queueIds = new LongList();
- if(episodes == null) {
- return queueIds;
- }
- for(FeedItem item : episodes) {
- if(item.isTagged(FeedItem.TAG_QUEUE)) {
- queueIds.add(item.getId());
- }
- }
- return queueIds;
- }
-
- @Override
- public LongList getFavoritesIds() {
- LongList favoritesIds = new LongList();
- if(episodes == null) {
- return favoritesIds;
- }
- for(FeedItem item : episodes) {
- if(item.isTagged(FeedItem.TAG_FAVORITE)) {
- favoritesIds.add(item.getId());
- }
- }
- return favoritesIds;
- }
};
public void onEventMainThread(FeedItemEvent event) {
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 57d450118..4093d8b7a 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java
@@ -60,7 +60,6 @@ import de.danoeh.antennapod.core.storage.DownloadRequester;
import de.danoeh.antennapod.core.util.Converter;
import de.danoeh.antennapod.core.util.DateUtils;
import de.danoeh.antennapod.core.util.IntentUtils;
-import de.danoeh.antennapod.core.util.LongList;
import de.danoeh.antennapod.core.util.ShareUtils;
import de.danoeh.antennapod.core.util.playback.Timeline;
import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler;
@@ -117,8 +116,6 @@ public class ItemFragment extends Fragment implements OnSwipeGesture {
private long[] feedItems;
private int feedItemPos;
private FeedItem item;
- private LongList queue;
- private LongList favorites;
private String webviewData;
private List<Downloader> downloaderList;
@@ -317,10 +314,10 @@ public class ItemFragment extends Fragment implements OnSwipeGesture {
inflater.inflate(R.menu.feeditem_options, menu);
popupMenu = menu;
if (item.hasMedia()) {
- FeedItemMenuHandler.onPrepareMenu(popupMenuInterface, item, true, queue, favorites);
+ FeedItemMenuHandler.onPrepareMenu(popupMenuInterface, item, true, null);
} else {
// these are already available via button1 and button2
- FeedItemMenuHandler.onPrepareMenu(popupMenuInterface, item, true, queue, favorites,
+ FeedItemMenuHandler.onPrepareMenu(popupMenuInterface, item, true, null,
R.id.mark_read_item, R.id.visit_website_item);
}
}
@@ -530,18 +527,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) {
@@ -586,10 +571,8 @@ public class ItemFragment extends Fragment implements OnSwipeGesture {
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(result -> {
- item = (FeedItem) result[0];
- queue = (LongList) result[1];
- favorites = (LongList) result[2];
progbarLoading.setVisibility(View.GONE);
+ item = result;
if (!itemsLoaded) {
itemsLoaded = true;
onFragmentLoaded();
@@ -601,25 +584,13 @@ public class ItemFragment extends Fragment implements OnSwipeGesture {
});
}
- private Object[] loadInBackground() {
+ private FeedItem loadInBackground() {
FeedItem feedItem = DBReader.getFeedItem(feedItems[feedItemPos]);
if (feedItem != null) {
Timeline t = new Timeline(getActivity(), feedItem);
webviewData = t.processShownotes(false);
}
- LongList queue;
- if(feedItem.isTagged(FeedItem.TAG_QUEUE)) {
- queue = LongList.of(feedItem.getId());
- } else {
- queue = new LongList(0);
- }
- LongList favorites;
- if(feedItem.isTagged(FeedItem.TAG_FAVORITE)) {
- favorites = LongList.of(feedItem.getId());
- } else {
- favorites = new LongList(0);
- }
- return new Object[] { feedItem, queue, favorites };
+ return feedItem;
}
}
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 d304f3872..3194d7cab 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java
@@ -47,9 +47,7 @@ import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
import de.danoeh.antennapod.core.dialog.DownloadRequestErrorDialogCreator;
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;
@@ -66,7 +64,6 @@ import de.danoeh.antennapod.core.storage.DBTasks;
import de.danoeh.antennapod.core.storage.DownloadRequestException;
import de.danoeh.antennapod.core.storage.DownloadRequester;
import de.danoeh.antennapod.core.util.FeedItemUtil;
-import de.danoeh.antennapod.core.util.LongList;
import de.danoeh.antennapod.core.util.gui.MoreContentListFooterUtil;
import de.danoeh.antennapod.dialog.EpisodesApplyActionFragment;
import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler;
@@ -98,8 +95,6 @@ public class ItemlistFragment extends ListFragment {
private long feedID;
private Feed feed;
- private LongList queuedItemsIds;
- private LongList favoritedItemsId;
private boolean itemsLoaded = false;
private boolean viewsCreated = false;
@@ -321,8 +316,7 @@ public class ItemlistFragment extends ListFragment {
contextMenu = menu;
lastMenuInfo = (AdapterView.AdapterContextMenuInfo) menuInfo;
- FeedItemMenuHandler.onPrepareMenu(contextMenuInterface, item, true, queuedItemsIds,
- favoritedItemsId);
+ FeedItemMenuHandler.onPrepareMenu(contextMenuInterface, item, true, null);
}
@Override
@@ -381,16 +375,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) {
@@ -599,11 +583,6 @@ public class ItemlistFragment extends ListFragment {
}
@Override
- public boolean isInQueue(FeedItem item) {
- return (queuedItemsIds != null) && queuedItemsIds.contains(item.getId());
- }
-
- @Override
public int getItemDownloadProgressPercent(FeedItem item) {
if (downloaderList != null) {
for (Downloader downloader : downloaderList) {
@@ -627,9 +606,7 @@ public class ItemlistFragment extends ListFragment {
.observeOn(AndroidSchedulers.mainThread())
.subscribe(result -> {
if (result != null) {
- feed = (Feed) result[0];
- queuedItemsIds = (LongList) result[1];
- favoritedItemsId = (LongList) result[2];
+ feed = result;
itemsLoaded = true;
if (viewsCreated) {
onFragmentLoaded();
@@ -640,15 +617,14 @@ public class ItemlistFragment extends ListFragment {
});
}
- private Object[] loadData() {
+ private Feed loadData() {
Feed feed = DBReader.getFeed(feedID);
+ DBReader.loadAdditionalFeedItemListData(feed.getItems());
if(feed != null && feed.getItemFilter() != null) {
FeedItemFilter filter = feed.getItemFilter();
feed.setItems(filter.filter(feed.getItems()));
}
- LongList queuedItemsIds = DBReader.getQueueIDList();
- LongList favoritedItemsId = DBReader.getFavoriteIDList();
- return new Object[] { feed, queuedItemsIds, favoritedItemsId };
+ return feed;
}
}
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,17 +40,27 @@ 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,
R.layout.all_episodes_fragment);
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 1d882aee1..49c68c732 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java
@@ -4,7 +4,6 @@ import android.content.Context;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
-import android.support.v4.util.Pair;
import android.support.v4.view.MenuItemCompat;
import android.util.Log;
import android.view.Menu;
@@ -21,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;
@@ -29,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.danoeh.antennapod.core.util.LongList;
import de.greenrobot.event.EventBus;
import rx.Observable;
import rx.Subscription;
@@ -44,7 +42,6 @@ public class PlaybackHistoryFragment extends ListFragment {
EventDistributor.PLAYER_STATUS_UPDATE;
private List<FeedItem> playbackHistory;
- private LongList queue;
private FeedItemlistAdapter adapter;
private boolean itemsLoaded = false;
@@ -187,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() {
@@ -218,10 +224,6 @@ public class PlaybackHistoryFragment extends ListFragment {
}
private FeedItemlistAdapter.ItemAccess itemAccess = new FeedItemlistAdapter.ItemAccess() {
- @Override
- public boolean isInQueue(FeedItem item) {
- return (queue != null) && queue.contains(item.getId());
- }
@Override
public int getItemDownloadProgressPercent(FeedItem item) {
@@ -260,8 +262,7 @@ public class PlaybackHistoryFragment extends ListFragment {
.observeOn(AndroidSchedulers.mainThread())
.subscribe(result -> {
if (result != null) {
- playbackHistory = result.first;
- queue = result.second;
+ playbackHistory = result;
itemsLoaded = true;
if (viewsCreated) {
onFragmentLoaded();
@@ -272,11 +273,10 @@ public class PlaybackHistoryFragment extends ListFragment {
});
}
- private Pair<List<FeedItem>, LongList> loadData() {
+ private List<FeedItem> loadData() {
List<FeedItem> history = DBReader.getPlaybackHistory();
- LongList queue = DBReader.getQueueIDList();
DBReader.loadAdditionalFeedItemListData(history);
- return Pair.create(history, queue);
+ return history;
}
}
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 fcec00ca6..08e681c99 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
@@ -568,20 +568,6 @@ public class QueueFragment extends Fragment {
public LongList getQueueIds() {
return queue != null ? LongList.of(FeedItemUtil.getIds(queue)) : new LongList(0);
}
-
- @Override
- public LongList getFavoritesIds() {
- LongList favoritesIds = new LongList();
- if(queue == null) {
- return favoritesIds;
- }
- for(FeedItem item : queue) {
- if(item.isTagged(FeedItem.TAG_FAVORITE)) {
- favoritesIds.add(item.getId());
- }
- }
- return favoritesIds;
- }
};
private EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() {