From 89b11ff71c8d6f820e221eefb6d46985af294465 Mon Sep 17 00:00:00 2001 From: Coffeemakr Date: Sun, 8 Oct 2017 21:04:37 +0200 Subject: [PATCH] Fail-fast for service id == -1 --- .../subscription/SubscriptionEntity.java | 3 ++- .../fragments/detail/VideoDetailFragment.java | 3 ++- .../fragments/list/BaseListInfoFragment.java | 3 ++- .../fragments/list/search/SearchFragment.java | 3 ++- .../java/org/schabi/newpipe/util/Constants.java | 2 ++ .../org/schabi/newpipe/util/ExtractorHelper.java | 16 ++++++++++++++++ 6 files changed, 26 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/database/subscription/SubscriptionEntity.java b/app/src/main/java/org/schabi/newpipe/database/subscription/SubscriptionEntity.java index 567bec309..12d1764cc 100644 --- a/app/src/main/java/org/schabi/newpipe/database/subscription/SubscriptionEntity.java +++ b/app/src/main/java/org/schabi/newpipe/database/subscription/SubscriptionEntity.java @@ -7,6 +7,7 @@ import android.arch.persistence.room.Index; import android.arch.persistence.room.PrimaryKey; import org.schabi.newpipe.extractor.channel.ChannelInfoItem; +import org.schabi.newpipe.util.Constants; import static org.schabi.newpipe.database.subscription.SubscriptionEntity.SUBSCRIPTION_SERVICE_ID; import static org.schabi.newpipe.database.subscription.SubscriptionEntity.SUBSCRIPTION_TABLE; @@ -28,7 +29,7 @@ public class SubscriptionEntity { private long uid = 0; @ColumnInfo(name = SUBSCRIPTION_SERVICE_ID) - private int serviceId = -1; + private int serviceId = Constants.NO_SERVICE_ID; @ColumnInfo(name = SUBSCRIPTION_URL) private String url; diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java index 5f954cad2..4bb0c2cca 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java @@ -65,6 +65,7 @@ import org.schabi.newpipe.player.PopupVideoPlayer; import org.schabi.newpipe.player.old.PlayVideoActivity; import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.UserAction; +import org.schabi.newpipe.util.Constants; import org.schabi.newpipe.util.ExtractorHelper; import org.schabi.newpipe.util.InfoCache; import org.schabi.newpipe.util.ListHelper; @@ -110,7 +111,7 @@ public class VideoDetailFragment extends BaseStateFragment implement private boolean wasRelatedStreamsExpanded = false; @State - protected int serviceId = -1; + protected int serviceId = Constants.NO_SERVICE_ID; @State protected String name; @State diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListInfoFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListInfoFragment.java index 34fcaf873..4baf323ff 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListInfoFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListInfoFragment.java @@ -8,6 +8,7 @@ import android.view.View; import org.schabi.newpipe.extractor.ListExtractor; import org.schabi.newpipe.extractor.ListInfo; +import org.schabi.newpipe.util.Constants; import java.util.Queue; @@ -21,7 +22,7 @@ import io.reactivex.schedulers.Schedulers; public abstract class BaseListInfoFragment extends BaseListFragment { @State - protected int serviceId = -1; + protected int serviceId = Constants.NO_SERVICE_ID; @State protected String name; @State diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java index 93ac00207..db036859e 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java @@ -41,6 +41,7 @@ import org.schabi.newpipe.extractor.search.SearchResult; import org.schabi.newpipe.fragments.list.BaseListFragment; import org.schabi.newpipe.history.HistoryListener; import org.schabi.newpipe.report.UserAction; +import org.schabi.newpipe.util.Constants; import org.schabi.newpipe.util.ExtractorHelper; import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.StateSaver; @@ -86,7 +87,7 @@ public class SearchFragment extends BaseListFragment searchFor(final int serviceId, final String query, final int pageNumber, final String searchLanguage, final SearchEngine.Filter filter) { + checkServiceId(serviceId); return Single.fromCallable(new Callable() { @Override public SearchResult call() throws Exception { @@ -61,6 +68,7 @@ public final class ExtractorHelper { } public static Single getMoreSearchItems(final int serviceId, final String query, final int nextPageNumber, final String searchLanguage, final SearchEngine.Filter filter) { + checkServiceId(serviceId); return searchFor(serviceId, query, nextPageNumber, searchLanguage, filter) .map(new Function() { @Override @@ -71,6 +79,7 @@ public final class ExtractorHelper { } public static Single> suggestionsFor(final int serviceId, final String query, final String searchLanguage) { + checkServiceId(serviceId); return Single.fromCallable(new Callable>() { @Override public List call() throws Exception { @@ -80,6 +89,7 @@ public final class ExtractorHelper { } public static Single getStreamInfo(final int serviceId, final String url, boolean forceLoad) { + checkServiceId(serviceId); return checkCache(forceLoad, serviceId, url, Single.fromCallable(new Callable() { @Override public StreamInfo call() throws Exception { @@ -89,6 +99,7 @@ public final class ExtractorHelper { } public static Single getChannelInfo(final int serviceId, final String url, boolean forceLoad) { + checkServiceId(serviceId); return checkCache(forceLoad, serviceId, url, Single.fromCallable(new Callable() { @Override public ChannelInfo call() throws Exception { @@ -98,6 +109,7 @@ public final class ExtractorHelper { } public static Single getMoreChannelItems(final int serviceId, final String url, final String nextStreamsUrl) { + checkServiceId(serviceId); return Single.fromCallable(new Callable() { @Override public NextItemsResult call() throws Exception { @@ -107,6 +119,7 @@ public final class ExtractorHelper { } public static Single getPlaylistInfo(final int serviceId, final String url, boolean forceLoad) { + checkServiceId(serviceId); return checkCache(forceLoad, serviceId, url, Single.fromCallable(new Callable() { @Override public PlaylistInfo call() throws Exception { @@ -116,6 +129,7 @@ public final class ExtractorHelper { } public static Single getMorePlaylistItems(final int serviceId, final String url, final String nextStreamsUrl) { + checkServiceId(serviceId); return Single.fromCallable(new Callable() { @Override public NextItemsResult call() throws Exception { @@ -133,6 +147,7 @@ public final class ExtractorHelper { * and put the results in the cache. */ private static Single checkCache(boolean forceLoad, int serviceId, String url, Single loadFromNetwork) { + checkServiceId(serviceId); loadFromNetwork = loadFromNetwork.doOnSuccess(new Consumer() { @Override public void accept(@NonNull I i) throws Exception { @@ -157,6 +172,7 @@ public final class ExtractorHelper { * Default implementation uses the {@link InfoCache} to get cached results */ public static Maybe loadFromCache(final int serviceId, final String url) { + checkServiceId(serviceId); return Maybe.defer(new Callable>() { @Override public MaybeSource call() throws Exception {