diff options
12 files changed, 115 insertions, 23 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 613216610..66f85d84d 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java @@ -73,7 +73,6 @@ public class CompletedDownloadsFragment extends Fragment { recyclerView = root.findViewById(R.id.recyclerView); recyclerView.setRecycledViewPool(((MainActivity) getActivity()).getRecycledViewPool()); - recyclerView.setVisibility(View.GONE); adapter = new CompletedDownloadsListAdapter((MainActivity) getActivity()); recyclerView.setAdapter(adapter); progressBar = root.findViewById(R.id.progLoading); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java index b43ae97a4..e88ef432c 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java @@ -194,7 +194,6 @@ public abstract class EpisodesListFragment extends Fragment { txtvInformation = root.findViewById(R.id.txtvInformation); recyclerView = root.findViewById(android.R.id.list); - recyclerView.setVisibility(View.GONE); recyclerView.setRecycledViewPool(((MainActivity) getActivity()).getRecycledViewPool()); setupLoadMoreScrollListener(); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java index 7aa4d5094..de27ff0af 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java @@ -156,7 +156,6 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem recyclerView = root.findViewById(R.id.recyclerView); recyclerView.setRecycledViewPool(((MainActivity) getActivity()).getRecycledViewPool()); - recyclerView.setVisibility(View.GONE); progressBar = root.findViewById(R.id.progLoading); txtvTitle = root.findViewById(R.id.txtvTitle); @@ -436,7 +435,6 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem adapter = new FeedItemListAdapter((MainActivity) getActivity()); recyclerView.setAdapter(adapter); } - recyclerView.setVisibility(View.VISIBLE); progressBar.setVisibility(View.GONE); if (feed != null) { adapter.updateItems(feed.getItems()); 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 c067af4e4..84b0e97c1 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java @@ -75,7 +75,6 @@ public class PlaybackHistoryFragment extends Fragment implements Toolbar.OnMenuI recyclerView = root.findViewById(R.id.recyclerView); recyclerView.setRecycledViewPool(((MainActivity) getActivity()).getRecycledViewPool()); - recyclerView.setVisibility(View.GONE); adapter = new PlaybackHistoryListAdapter((MainActivity) getActivity()); recyclerView.setAdapter(adapter); progressBar = root.findViewById(R.id.progLoading); 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 1fda42d41..80f666fa2 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -556,11 +556,9 @@ public class QueueFragment extends Fragment implements Toolbar.OnMenuItemClickLi emptyView.updateAdapter(recyclerAdapter); } recyclerAdapter.updateItems(queue); - recyclerView.setVisibility(View.VISIBLE); } else { recyclerAdapter = null; - recyclerView.setVisibility(View.GONE); - emptyView.updateAdapter(recyclerAdapter); + emptyView.updateAdapter(null); } if (restoreScrollPosition) { @@ -602,7 +600,6 @@ public class QueueFragment extends Fragment implements Toolbar.OnMenuItemClickLi disposable.dispose(); } if (queue == null) { - recyclerView.setVisibility(View.GONE); emptyView.hide(); progLoading.setVisibility(View.VISIBLE); } 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 c4fa0a3b1..0394b5987 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/SearchFragment.java @@ -120,7 +120,6 @@ public class SearchFragment extends Fragment { recyclerView = layout.findViewById(R.id.recyclerView); recyclerView.setRecycledViewPool(((MainActivity) getActivity()).getRecycledViewPool()); - recyclerView.setVisibility(View.GONE); adapter = new EpisodeItemListAdapter((MainActivity) getActivity()); recyclerView.setAdapter(adapter); diff --git a/app/src/main/java/de/danoeh/antennapod/view/EmptyViewHandler.java b/app/src/main/java/de/danoeh/antennapod/view/EmptyViewHandler.java index ce8f08511..567918bec 100644 --- a/app/src/main/java/de/danoeh/antennapod/view/EmptyViewHandler.java +++ b/app/src/main/java/de/danoeh/antennapod/view/EmptyViewHandler.java @@ -18,7 +18,6 @@ import de.danoeh.antennapod.R; public class EmptyViewHandler {
private boolean layoutAdded = false;
- private View list;
private ListAdapter listAdapter;
private RecyclerView.Adapter<?> recyclerAdapter;
@@ -61,7 +60,6 @@ public class EmptyViewHandler { }
addToParentView(listView);
layoutAdded = true;
- this.list = listView;
listView.setEmptyView(emptyView);
updateAdapter(listView.getAdapter());
}
@@ -72,7 +70,6 @@ public class EmptyViewHandler { }
addToParentView(recyclerView);
layoutAdded = true;
- this.list = recyclerView;
updateAdapter(recyclerView.getAdapter());
}
@@ -142,7 +139,6 @@ public class EmptyViewHandler { } else {
empty = true;
}
- list.setVisibility(empty ? View.GONE : View.VISIBLE);
emptyView.setVisibility(empty ? View.VISIBLE : View.GONE);
}
}
diff --git a/app/src/main/res/layout/feeditemlist_header.xml b/app/src/main/res/layout/feeditemlist_header.xml index 540baf4a7..9e83051d6 100644 --- a/app/src/main/res/layout/feeditemlist_header.xml +++ b/app/src/main/res/layout/feeditemlist_header.xml @@ -113,8 +113,10 @@ android:layout_height="wrap_content" android:padding="2dp" android:background="?android:attr/windowBackground" + android:foreground="?android:attr/selectableItemBackground" android:visibility="gone" android:gravity="center" + android:textColor="?attr/colorAccent" tools:visibility="visible" tools:text="(i) Information"/> @@ -126,6 +128,7 @@ android:background="?android:attr/windowBackground" android:visibility="gone" android:gravity="center" + android:textColor="?attr/colorAccent" tools:visibility="visible" tools:text="Updates disabled"/> </LinearLayout> diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java index 89a947fdc..4f3962efd 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java @@ -968,7 +968,7 @@ public class PlaybackService extends MediaBrowserServiceCompat { taskManager.cancelWidgetUpdater(); if (playable != null) { if (playable instanceof FeedMedia) { - SyncService.enqueueEpisodePlayed(getApplicationContext(), (FeedMedia) playable, true); + SyncService.enqueueEpisodePlayed(getApplicationContext(), (FeedMedia) playable, false); } playable.onPlaybackPause(getApplicationContext()); } diff --git a/core/src/test/java/de/danoeh/antennapod/core/service/download/DownloadRequestTest.java b/core/src/test/java/de/danoeh/antennapod/core/service/download/DownloadRequestTest.java index ddf802858..c9c941d38 100644 --- a/core/src/test/java/de/danoeh/antennapod/core/service/download/DownloadRequestTest.java +++ b/core/src/test/java/de/danoeh/antennapod/core/service/download/DownloadRequestTest.java @@ -12,6 +12,7 @@ import java.util.ArrayList; import de.danoeh.antennapod.model.feed.FeedFile; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; @RunWith(RobolectricTestRunner.class) public class DownloadRequestTest { @@ -34,6 +35,36 @@ public class DownloadRequestTest { null, null, "usr2", "pass2"); } + @Test + public void downloadRequestTestEquals() { + String destStr = "file://location/media.mp3"; + String username = "testUser"; + String password = "testPassword"; + FeedFile item = createFeedItem(1); + Bundle arg = new Bundle(); + arg.putString("arg1", "value1"); + DownloadRequest request1 = new DownloadRequest.Builder(destStr, item, true) + .deleteOnFailure(true) + .withAuthentication(username, password) + .withArguments(arg) + .build(); + + DownloadRequest request2 = new DownloadRequest.Builder(destStr, item, true) + .deleteOnFailure(true) + .withAuthentication(username, password) + .withArguments(arg) + .build(); + + DownloadRequest request3 = new DownloadRequest.Builder(destStr, item, true) + .deleteOnFailure(true) + .withAuthentication("diffUsername", "diffPassword") + .withArguments(arg) + .build(); + + assertEquals(request1, request2); + assertNotEquals(request1, request3); + } + // Test to ensure parcel using put/getParcelableArrayList() API work // based on: https://stackoverflow.com/a/13507191 private void doTestParcelInArrayList(String message, diff --git a/core/src/test/java/de/danoeh/antennapod/core/storage/DbWriterTest.java b/core/src/test/java/de/danoeh/antennapod/core/storage/DbWriterTest.java index 093c416d1..e38d4adb7 100644 --- a/core/src/test/java/de/danoeh/antennapod/core/storage/DbWriterTest.java +++ b/core/src/test/java/de/danoeh/antennapod/core/storage/DbWriterTest.java @@ -780,6 +780,34 @@ public class DbWriterTest { } @Test + public void testRemoveAllNewFlags() throws Exception { + final int numItems = 10; + Feed feed = new Feed("url", null, "title"); + feed.setItems(new ArrayList<>()); + for (int i = 0; i < numItems; i++) { + FeedItem item = new FeedItem(0, "title " + i, "id " + i, "link " + i, + new Date(), FeedItem.NEW, feed); + feed.getItems().add(item); + } + + PodDBAdapter adapter = PodDBAdapter.getInstance(); + adapter.open(); + adapter.setCompleteFeed(feed); + adapter.close(); + + assertTrue(feed.getId() != 0); + for (FeedItem item : feed.getItems()) { + assertTrue(item.getId() != 0); + } + + DBWriter.removeAllNewFlags(); + List<FeedItem> loadedItems = DBReader.getFeedItemList(feed); + for (FeedItem item : loadedItems) { + assertFalse(item.isNew()); + } + } + + @Test public void testMarkAllItemsReadSameFeed() throws Exception { final int numItems = 10; Feed feed = new Feed("url", null, "title"); diff --git a/core/src/test/java/de/danoeh/antennapod/core/util/FeedItemUtilTest.java b/core/src/test/java/de/danoeh/antennapod/core/util/FeedItemUtilTest.java index ffb788c25..6bc3c09a2 100644 --- a/core/src/test/java/de/danoeh/antennapod/core/util/FeedItemUtilTest.java +++ b/core/src/test/java/de/danoeh/antennapod/core/util/FeedItemUtilTest.java @@ -5,9 +5,11 @@ import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import java.util.List; import de.danoeh.antennapod.model.feed.Feed; import de.danoeh.antennapod.model.feed.FeedItem; @@ -26,14 +28,14 @@ public class FeedItemUtilTest { @Parameters public static Collection<Object[]> data() { - return Arrays.asList(new Object[][] { - { "average", FEED_LINK, ITEM_LINK, ITEM_LINK }, - { "null item link - fallback to feed", FEED_LINK, null, FEED_LINK}, - { "empty item link - same as null", FEED_LINK, "", FEED_LINK}, - { "blank item link - same as null", FEED_LINK, " ", FEED_LINK}, - { "fallback, but feed link is null too", null, null, null }, - { "fallback - but empty feed link - same as null", "", null, null}, - { "fallback - but blank feed link - same as null", " ", null, null} + return Arrays.asList(new Object[][]{ + {"average", FEED_LINK, ITEM_LINK, ITEM_LINK}, + {"null item link - fallback to feed", FEED_LINK, null, FEED_LINK}, + {"empty item link - same as null", FEED_LINK, "", FEED_LINK}, + {"blank item link - same as null", FEED_LINK, " ", FEED_LINK}, + {"fallback, but feed link is null too", null, null, null}, + {"fallback - but empty feed link - same as null", "", null, null}, + {"fallback - but blank feed link - same as null", " ", null, null} }); } @@ -44,6 +46,47 @@ public class FeedItemUtilTest { this.expected = expected; } + + // Test the getIds() method + @Test + public void testGetIds() { + List<FeedItem> feedItemsList = new ArrayList<FeedItem>(5); + List<Integer> idList = new ArrayList<Integer>(); + + idList.add(980); + idList.add(324); + idList.add(226); + idList.add(164); + idList.add(854); + + for (int i = 0; i < 5; i++) { + FeedItem item = createFeedItem(feedLink, itemLink); + item.setId(idList.get(i)); + feedItemsList.add(item); + } + + long[] actual = FeedItemUtil.getIds(feedItemsList); + + // covers edge case for getIds() method + List<FeedItem> emptyList = new ArrayList<FeedItem>(); + long[] testEmptyList = FeedItemUtil.getIds(emptyList); + assertEquals(msg, 0, testEmptyList.length); + assertEquals(msg, 980, actual[0]); + assertEquals(msg, 324, actual[1]); + assertEquals(msg, 226, actual[2]); + assertEquals(msg, 164, actual[3]); + assertEquals(msg, 854, actual[4]); + + } + + // Tests the Null value for getLinkWithFallback() method + @Test + public void testLinkWithFallbackNullValue() { + String actual = FeedItemUtil.getLinkWithFallback(null); + assertEquals(msg, null, actual); + } + + @Test public void testLinkWithFallback() { String actual = FeedItemUtil.getLinkWithFallback(createFeedItem(feedLink, itemLink)); |