diff options
Diffstat (limited to 'app/src/main/java/de/danoeh')
10 files changed, 32 insertions, 44 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java b/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java index 8e347a819..aca2b359a 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java @@ -88,7 +88,7 @@ public class ActionButtonUtils { butSecondary.setContentDescription(context.getString(labels[0])); } } else { - if (item.isRead()) { + if (item.isPlayed()) { butSecondary.setVisibility(View.INVISIBLE); } else { butSecondary.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesListAdapter.java index d96326053..bc3d3abbc 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesListAdapter.java @@ -91,7 +91,7 @@ public class AllEpisodesListAdapter extends BaseAdapter { holder.title.setText(item.getTitle()); holder.pubDate.setText(DateUtils.formatDateTime(context, item.getPubDate().getTime(), DateUtils.FORMAT_ABBREV_ALL)); - if (showOnlyNewEpisodes || item.isRead() || false == itemAccess.isNew(item)) { + if (showOnlyNewEpisodes || false == item.isNew()) { holder.statusUnread.setVisibility(View.INVISIBLE); } else { holder.statusUnread.setVisibility(View.VISIBLE); @@ -179,7 +179,5 @@ public class AllEpisodesListAdapter extends BaseAdapter { boolean isInQueue(FeedItem item); - boolean isNew(FeedItem item); - } } diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java b/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java index 4d6279560..c34d90a30 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java @@ -95,7 +95,7 @@ public class DefaultActionButtonCallback implements ActionButtonCallback { } } } else { - if (!item.isRead()) { + if (!item.isPlayed()) { DBWriter.markItemRead(context, item, true, true); } } diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java index b39e23d42..1ecc45210 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java @@ -112,12 +112,12 @@ public class FeedItemlistAdapter extends BaseAdapter { } holder.title.setText(buffer.toString()); - if(false == item.isRead() && itemAccess.isNew(item)) { + if(item.isNew()) { holder.statusUnread.setVisibility(View.VISIBLE); } else { holder.statusUnread.setVisibility(View.INVISIBLE); } - if(item.isRead()) { + if(item.isPlayed()) { ViewHelper.setAlpha(convertView, 0.5f); } else { ViewHelper.setAlpha(convertView, 1.0f); @@ -221,8 +221,6 @@ public class FeedItemlistAdapter extends BaseAdapter { FeedItem getItem(int position); - boolean isNew(FeedItem item); - } } diff --git a/app/src/main/java/de/danoeh/antennapod/config/StorageCallbacksImpl.java b/app/src/main/java/de/danoeh/antennapod/config/StorageCallbacksImpl.java index d8fab34c8..e27828e35 100644 --- a/app/src/main/java/de/danoeh/antennapod/config/StorageCallbacksImpl.java +++ b/app/src/main/java/de/danoeh/antennapod/config/StorageCallbacksImpl.java @@ -8,13 +8,14 @@ import android.media.MediaMetadataRetriever; import android.util.Log; import de.danoeh.antennapod.core.StorageCallbacks; +import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.storage.PodDBAdapter; public class StorageCallbacksImpl implements StorageCallbacks { @Override public int getDatabaseVersion() { - return 16; + return 17; } @Override @@ -181,5 +182,25 @@ public class StorageCallbacksImpl implements StorageCallbacks { } c.close(); } + if(oldVersion <= 17) { + String selectNew = "SELECT " + PodDBAdapter.TABLE_NAME_FEED_ITEMS + "." + PodDBAdapter.KEY_ID + + " FROM " + PodDBAdapter.TABLE_NAME_FEED_ITEMS + + " INNER JOIN " + PodDBAdapter.TABLE_NAME_FEED_MEDIA + " ON " + + PodDBAdapter.TABLE_NAME_FEED_ITEMS + "." + PodDBAdapter.KEY_ID + "=" + + PodDBAdapter.TABLE_NAME_FEED_MEDIA + "." + PodDBAdapter.KEY_FEEDITEM + + " LEFT OUTER JOIN " + PodDBAdapter.TABLE_NAME_QUEUE + " ON " + + PodDBAdapter.TABLE_NAME_FEED_ITEMS + "." + PodDBAdapter.KEY_ID + "=" + + PodDBAdapter.TABLE_NAME_QUEUE + "." + PodDBAdapter.KEY_FEEDITEM + + " WHERE " + + PodDBAdapter.TABLE_NAME_FEED_ITEMS + "." + PodDBAdapter.KEY_READ + " = 0 AND " // unplayed + + PodDBAdapter.TABLE_NAME_FEED_MEDIA + "." + PodDBAdapter.KEY_DOWNLOADED + " = 0 AND " // undownloaded + + PodDBAdapter.TABLE_NAME_FEED_MEDIA + "." + PodDBAdapter.KEY_POSITION + " = 0 AND " // not partially played + + PodDBAdapter.TABLE_NAME_QUEUE + "." + PodDBAdapter.KEY_ID + " IS NULL"; // not in queue + String sql = "UPDATE " + PodDBAdapter.TABLE_NAME_FEED_ITEMS + + " SET " + PodDBAdapter.KEY_READ + "=" + FeedItem.NEW + + " WHERE " + PodDBAdapter.KEY_ID + " IN (" + selectNew + ")"; + Log.d("Migration", "SQL: " + sql); + db.execSQL(sql); + } } } 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 e48b175e8..b4c4f1822 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java @@ -76,7 +76,6 @@ public class AllEpisodesFragment extends Fragment { private List<FeedItem> episodes; private LongList queuedItemsIds; - private LongList newItemsIds; private List<Downloader> downloaderList; private boolean itemsLoaded = false; @@ -432,18 +431,6 @@ public class AllEpisodesFragment extends Fragment { return false; } } - - @Override - public boolean isNew(FeedItem item) { - if (itemsLoaded) { - // should actually never be called in NewEpisodesFragment, but better safe than sorry - return showOnlyNewEpisodes || newItemsIds.contains(item.getId()); - } else { - return false; - } - } - - }; private EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() { @@ -508,8 +495,7 @@ public class AllEpisodesFragment extends Fragment { } else { return new Object[]{ DBReader.getRecentlyPublishedEpisodes(context, RECENT_EPISODES_LIMIT), - DBReader.getQueueIDList(context), - DBReader.getNewItemIds(context) + DBReader.getQueueIDList(context) }; } } else { @@ -526,7 +512,6 @@ public class AllEpisodesFragment extends Fragment { if (lists != null) { episodes = (List<FeedItem>) lists[0]; queuedItemsIds = (LongList) lists[1]; - newItemsIds = (LongList) lists[2]; itemsLoaded = true; if (viewsCreated && activity.get() != null) { onFragmentLoaded(); 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 65b1c8f80..438208467 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java @@ -355,7 +355,7 @@ public class ItemFragment extends Fragment implements LoaderManager.LoaderCallba TypedArray drawables = getActivity().obtainStyledAttributes(new int[]{R.attr.navigation_accept, R.attr.location_web_site}); - if (!item.isRead()) { + if (!item.isPlayed()) { butAction1.setCompoundDrawablesWithIntrinsicBounds(drawables.getDrawable(0), null, null, null); butAction1.setText(getActivity().getString(R.string.mark_read_label)); butAction1.setVisibility(View.VISIBLE); 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 797e5fb82..5862e248b 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java @@ -92,8 +92,6 @@ public class ItemlistFragment extends ListFragment { private long feedID; private Feed feed; private LongList queuedItemsIds; - private LongList newItemsIds; - private boolean itemsLoaded = false; private boolean viewsCreated = false; @@ -580,11 +578,6 @@ public class ItemlistFragment extends ListFragment { } @Override - public boolean isNew(FeedItem item) { - return (newItemsIds != null) && newItemsIds.contains(item.getId()); - } - - @Override public int getItemDownloadProgressPercent(FeedItem item) { if (downloaderList != null) { for (Downloader downloader : downloaderList) { @@ -626,8 +619,7 @@ public class ItemlistFragment extends ListFragment { feed.setItems(filter.filter(context, feed.getItems())); } LongList queuedItemsIds = DBReader.getQueueIDList(context); - LongList newItemsIds = DBReader.getNewItemIds(context); - return new Object[] { feed, queuedItemsIds, newItemsIds }; + return new Object[] { feed, queuedItemsIds }; } else { return null; } @@ -639,7 +631,6 @@ public class ItemlistFragment extends ListFragment { if (res != null) { feed = (Feed) res[0]; queuedItemsIds = (LongList) res[1]; - newItemsIds = res[2] == null ? null : (LongList) res[2]; itemsLoaded = true; if (viewsCreated) { onFragmentLoaded(); 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 fc8bf2fbb..67f454fa0 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java @@ -219,11 +219,6 @@ public class PlaybackHistoryFragment extends ListFragment { } @Override - public boolean isNew(FeedItem item) { - return false; - } - - @Override public int getItemDownloadProgressPercent(FeedItem item) { if (downloaderList != null) { for (Downloader downloader : downloaderList) { diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java index e3285fd53..3e2fdf24f 100644 --- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java +++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java @@ -154,7 +154,7 @@ public class FeedItemMenuHandler { DBWriter.deleteFeedMediaOfItem(context, selectedItem.getMedia().getId()); break; case R.id.mark_read_item: - selectedItem.setRead(true); + selectedItem.setPlayed(true); DBWriter.markItemRead(context, selectedItem, true, false); if(GpodnetPreferences.loggedIn()) { FeedMedia media = selectedItem.getMedia(); @@ -172,7 +172,7 @@ public class FeedItemMenuHandler { } break; case R.id.mark_unread_item: - selectedItem.setRead(false); + selectedItem.setPlayed(false); DBWriter.markItemRead(context, selectedItem, false, false); if(GpodnetPreferences.loggedIn()) { GpodnetEpisodeAction actionNew = new GpodnetEpisodeAction.Builder(selectedItem, Action.NEW) |