Fix marking as played when there is no media (#7192)
This commit is contained in:
parent
baeb0d8ced
commit
155d769fca
|
@ -36,6 +36,7 @@ import java.util.concurrent.TimeoutException;
|
|||
|
||||
import static androidx.test.espresso.Espresso.onView;
|
||||
import static androidx.test.espresso.action.ViewActions.click;
|
||||
import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist;
|
||||
import static androidx.test.espresso.assertion.ViewAssertions.matches;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
|
||||
|
@ -44,6 +45,7 @@ import static androidx.test.espresso.matcher.ViewMatchers.withContentDescription
|
|||
import static androidx.test.espresso.matcher.ViewMatchers.withId;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.withText;
|
||||
import static org.hamcrest.Matchers.allOf;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
|
||||
public class EspressoTestUtils {
|
||||
/**
|
||||
|
@ -143,6 +145,21 @@ public class EspressoTestUtils {
|
|||
};
|
||||
}
|
||||
|
||||
public static void waitForViewToDisappear(Matcher<? super View> matcher, long maxWaitingTimeMs) {
|
||||
long endTime = System.currentTimeMillis() + maxWaitingTimeMs;
|
||||
while (System.currentTimeMillis() <= endTime) {
|
||||
try {
|
||||
onView(allOf(matcher, isDisplayed())).check(matches(not(doesNotExist())));
|
||||
Thread.sleep(100);
|
||||
} catch (NoMatchingViewException ex) {
|
||||
return; // view has disappeared
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
throw new RuntimeException("timeout exceeded"); // or whatever exception you want
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear all app databases.
|
||||
*/
|
||||
|
|
|
@ -27,7 +27,6 @@ import static de.test.antennapod.EspressoTestUtils.onDrawerItem;
|
|||
import static de.test.antennapod.EspressoTestUtils.openNavDrawer;
|
||||
import static de.test.antennapod.EspressoTestUtils.waitForView;
|
||||
import static org.hamcrest.CoreMatchers.allOf;
|
||||
import static org.hamcrest.CoreMatchers.not;
|
||||
|
||||
/**
|
||||
* Test UI for feeds that do not have media files
|
||||
|
@ -67,7 +66,7 @@ public class TextOnlyFeedsTest {
|
|||
onView(withText(feed.getItemAtIndex(0).getTitle())).perform(click());
|
||||
onView(isRoot()).perform(waitForView(withText(R.string.mark_read_no_media_label), 3000));
|
||||
onView(allOf(withText(R.string.mark_read_no_media_label), isDisplayed())).perform(click());
|
||||
onView(isRoot()).perform(waitForView(allOf(withText(R.string.mark_read_no_media_label), not(isDisplayed())), 3000));
|
||||
EspressoTestUtils.waitForViewToDisappear(withText(R.string.mark_read_no_media_label), 3000);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -693,7 +693,7 @@ public class PodDBAdapter {
|
|||
db.update(TABLE_NAME_FEED_ITEMS, values, KEY_ID + "=?", new String[]{String.valueOf(item.getId())});
|
||||
item.setPlayed(played == FeedItem.PLAYED);
|
||||
|
||||
if (resetMediaPosition) {
|
||||
if (resetMediaPosition && item.hasMedia()) {
|
||||
values.clear();
|
||||
values.put(KEY_POSITION, 0);
|
||||
db.update(TABLE_NAME_FEED_MEDIA, values, KEY_ID + "=?",
|
||||
|
|
Loading…
Reference in New Issue