use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class OpmlImportActivity method onCreate.
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
viewBinding = OpmlSelectionBinding.inflate(getLayoutInflater());
setContentView(viewBinding.getRoot());
viewBinding.feedlist.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
viewBinding.feedlist.setOnItemClickListener((parent, view, position, id) -> {
SparseBooleanArray checked = viewBinding.feedlist.getCheckedItemPositions();
int checkedCount = 0;
for (int i = 0; i < checked.size(); i++) {
if (checked.valueAt(i)) {
checkedCount++;
}
}
if (checkedCount == listAdapter.getCount()) {
selectAll.setVisible(false);
deselectAll.setVisible(true);
} else {
deselectAll.setVisible(false);
selectAll.setVisible(true);
}
});
viewBinding.butCancel.setOnClickListener(v -> {
setResult(RESULT_CANCELED);
finish();
});
viewBinding.butConfirm.setOnClickListener(v -> {
viewBinding.progressBar.setVisibility(View.VISIBLE);
Completable.fromAction(() -> {
SparseBooleanArray checked = viewBinding.feedlist.getCheckedItemPositions();
for (int i = 0; i < checked.size(); i++) {
if (!checked.valueAt(i)) {
continue;
}
OpmlElement element = readElements.get(checked.keyAt(i));
Feed feed = new Feed(element.getXmlUrl(), null, element.getText());
DownloadService.download(this, false, DownloadRequestCreator.create(feed).build());
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(() -> {
viewBinding.progressBar.setVisibility(View.GONE);
Intent intent = new Intent(OpmlImportActivity.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}, e -> {
viewBinding.progressBar.setVisibility(View.GONE);
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
});
});
Uri uri = getIntent().getData();
if (uri != null && uri.toString().startsWith("/")) {
uri = Uri.parse("file://" + uri.toString());
} else {
String extraText = getIntent().getStringExtra(Intent.EXTRA_TEXT);
if (extraText != null) {
uri = Uri.parse(extraText);
}
}
importUri(uri);
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class MainActivityTest method testAddFeed.
@Test
public void testAddFeed() throws Exception {
// connect to podcast feed
uiTestUtils.addHostedFeedData();
final Feed feed = uiTestUtils.hostedFeeds.get(0);
openNavDrawer();
onView(withText(R.string.add_feed_label)).perform(click());
onView(withId(R.id.addViaUrlButton)).perform(scrollTo(), click());
onView(withId(R.id.urlEditText)).perform(replaceText(feed.getDownload_url()));
onView(withText(R.string.confirm_label)).perform(scrollTo(), click());
// subscribe podcast
Espresso.closeSoftKeyboard();
waitForViewGlobally(withText(R.string.subscribe_label), 15000);
onView(withText(R.string.subscribe_label)).perform(click());
// wait for podcast feed item list
waitForViewGlobally(withId(R.id.butShowSettings), 15000);
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class TextOnlyFeedsTest method testMarkAsPlayedList.
@Test
public void testMarkAsPlayedList() throws Exception {
uiTestUtils.addLocalFeedData(false);
final Feed feed = uiTestUtils.hostedFeeds.get(0);
openNavDrawer();
onView(withId(R.id.nav_list)).perform(swipeUp());
onDrawerItem(withText(feed.getTitle())).perform(click());
onView(withText(feed.getItemAtIndex(0).getTitle())).perform(click());
onView(isRoot()).perform(waitForView(withText(R.string.mark_read_no_media_label), 3000));
onView(withText(R.string.mark_read_no_media_label)).perform(click());
onView(isRoot()).perform(waitForView(allOf(withText(R.string.mark_read_no_media_label), not(isDisplayed())), 3000));
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class UITestUtilsTest method addLocalFeedDataCheck.
private void addLocalFeedDataCheck(boolean downloadEpisodes) throws Exception {
uiTestUtils.addLocalFeedData(downloadEpisodes);
assertNotNull(uiTestUtils.hostedFeeds);
assertFalse(uiTestUtils.hostedFeeds.isEmpty());
for (Feed feed : uiTestUtils.hostedFeeds) {
assertTrue(feed.getId() != 0);
for (FeedItem item : feed.getItems()) {
assertTrue(item.getId() != 0);
if (item.hasMedia()) {
assertTrue(item.getMedia().getId() != 0);
if (downloadEpisodes) {
assertTrue(item.getMedia().isDownloaded());
assertNotNull(item.getMedia().getFile_url());
File file = new File(item.getMedia().getFile_url());
assertTrue(file.exists());
}
}
}
}
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class UITestUtilsTest method testAddHostedFeeds.
@Test
public void testAddHostedFeeds() throws Exception {
uiTestUtils.addHostedFeedData();
final List<Feed> feeds = uiTestUtils.hostedFeeds;
assertNotNull(feeds);
assertFalse(feeds.isEmpty());
for (Feed feed : feeds) {
testUrlReachable(feed.getDownload_url());
for (FeedItem item : feed.getItems()) {
if (item.hasMedia()) {
testUrlReachable(item.getMedia().getDownload_url());
}
}
}
}
Aggregations