From d0c03a0211209cdff8ad2819a4c3c2580a57ee37 Mon Sep 17 00:00:00 2001
From: wb9688
Date: Tue, 14 Jul 2020 21:15:29 +0200
Subject: [PATCH 01/11] Use androidx.annotation.NonNull instead of
io.reactivex.annotations.NonNull
---
app/src/main/java/org/schabi/newpipe/App.java | 2 +-
.../schabi/newpipe/fragments/detail/VideoDetailFragment.java | 4 ++--
.../schabi/newpipe/fragments/list/BaseListInfoFragment.java | 5 ++---
.../newpipe/player/playqueue/AbstractInfoPlayQueue.java | 3 ++-
.../schabi/newpipe/player/playqueue/PlayQueueAdapter.java | 2 +-
5 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/app/src/main/java/org/schabi/newpipe/App.java b/app/src/main/java/org/schabi/newpipe/App.java
index 531cb5a38..33d77ea47 100644
--- a/app/src/main/java/org/schabi/newpipe/App.java
+++ b/app/src/main/java/org/schabi/newpipe/App.java
@@ -9,6 +9,7 @@ import android.content.SharedPreferences;
import android.os.Build;
import android.util.Log;
+import androidx.annotation.NonNull;
import androidx.preference.PreferenceManager;
import com.nostra13.universalimageloader.cache.memory.impl.LRULimitedMemoryCache;
@@ -37,7 +38,6 @@ import java.net.SocketException;
import java.util.Collections;
import java.util.List;
-import io.reactivex.annotations.NonNull;
import io.reactivex.exceptions.CompositeException;
import io.reactivex.exceptions.MissingBackpressureException;
import io.reactivex.exceptions.OnErrorNotImplementedException;
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 fff689930..5718a4600 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
@@ -1025,7 +1025,7 @@ public class VideoDetailFragment extends BaseStateFragment
if (description.getType() == Description.HTML) {
disposables.add(Single.just(description.getContent())
- .map((@io.reactivex.annotations.NonNull String descriptionText) -> {
+ .map((@NonNull String descriptionText) -> {
Spanned parsedDescription;
if (Build.VERSION.SDK_INT >= 24) {
parsedDescription = Html.fromHtml(descriptionText, 0);
@@ -1037,7 +1037,7 @@ public class VideoDetailFragment extends BaseStateFragment
})
.subscribeOn(Schedulers.computation())
.observeOn(AndroidSchedulers.mainThread())
- .subscribe((@io.reactivex.annotations.NonNull Spanned spanned) -> {
+ .subscribe((@NonNull Spanned spanned) -> {
videoDescriptionView.setText(spanned);
videoDescriptionView.setVisibility(View.VISIBLE);
}));
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 82b1d18ed..86b093e45 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
@@ -158,11 +158,10 @@ public abstract class BaseListInfoFragment
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doFinally(this::allowDownwardFocusScroll)
- .subscribe((@io.reactivex.annotations.NonNull
- ListExtractor.InfoItemsPage InfoItemsPage) -> {
+ .subscribe((@NonNull ListExtractor.InfoItemsPage InfoItemsPage) -> {
isLoading.set(false);
handleNextItems(InfoItemsPage);
- }, (@io.reactivex.annotations.NonNull Throwable throwable) -> {
+ }, (@NonNull Throwable throwable) -> {
isLoading.set(false);
onError(throwable);
});
diff --git a/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java b/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java
index cde376f4f..3c15cd342 100644
--- a/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java
+++ b/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java
@@ -2,6 +2,8 @@ package org.schabi.newpipe.player.playqueue;
import android.util.Log;
+import androidx.annotation.NonNull;
+
import org.schabi.newpipe.extractor.InfoItem;
import org.schabi.newpipe.extractor.ListExtractor;
import org.schabi.newpipe.extractor.ListInfo;
@@ -13,7 +15,6 @@ import java.util.Collections;
import java.util.List;
import io.reactivex.SingleObserver;
-import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
abstract class AbstractInfoPlayQueue extends PlayQueue {
diff --git a/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueueAdapter.java b/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueueAdapter.java
index f8777597a..3b42f2745 100644
--- a/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueueAdapter.java
+++ b/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueueAdapter.java
@@ -6,6 +6,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import org.schabi.newpipe.R;
@@ -20,7 +21,6 @@ import org.schabi.newpipe.util.FallbackViewHolder;
import java.util.List;
import io.reactivex.Observer;
-import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
/**
From 7a30f4a7d2598549e9fcd5a8d75a04461c420609 Mon Sep 17 00:00:00 2001
From: wb9688
Date: Sat, 30 May 2020 17:51:23 +0200
Subject: [PATCH 02/11] Remove calls to getNextStream()
---
app/build.gradle | 2 +-
.../fragments/detail/VideoDetailFragment.java | 4 --
.../list/videos/RelatedVideosFragment.java | 37 ++++++-------------
.../newpipe/player/helper/PlayerHelper.java | 31 ++++++++--------
.../newpipe/util/RelatedStreamInfo.java | 16 --------
5 files changed, 29 insertions(+), 61 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index b77e6c986..94c7a2ce5 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -163,7 +163,7 @@ dependencies {
exclude module: 'support-annotations'
}
- implementation 'com.github.TeamNewPipe:NewPipeExtractor:a70cb0283ffc3bba2709815673a5a7940aab0a3a'
+ implementation 'com.github.wb9688:NewPipeExtractor:70136e6a099d610d1fe6340549aa0542f7f26f1e'
implementation "com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751"
implementation "org.jsoup:jsoup:1.13.1"
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 fff689930..b2f1709c2 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
@@ -365,10 +365,6 @@ public class VideoDetailFragment extends BaseStateFragment
public void onSaveInstanceState(final Bundle outState) {
super.onSaveInstanceState(outState);
- // Check if the next video label and video is visible,
- // if it is, include the two elements in the next check
- int nextCount = currentInfo != null && currentInfo.getNextVideo() != null ? 2 : 0;
-
if (!isLoading.get() && currentInfo != null && isVisible()) {
outState.putSerializable(INFO_KEY, currentInfo);
}
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/videos/RelatedVideosFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/videos/RelatedVideosFragment.java
index 5d48afd15..d66433fa8 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/list/videos/RelatedVideosFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/list/videos/RelatedVideosFragment.java
@@ -9,7 +9,6 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.CompoundButton;
import android.widget.Switch;
import androidx.annotation.NonNull;
@@ -40,9 +39,7 @@ public class RelatedVideosFragment extends BaseListInfoFragment
PreferenceManager.getDefaultSharedPreferences(getContext()).edit()
- .putBoolean(getString(R.string.auto_queue_key), b).apply();
- }
- });
+ .putBoolean(getString(R.string.auto_queue_key), b).apply());
return headerRootLayout;
} else {
return null;
@@ -105,7 +92,7 @@ public class RelatedVideosFragment extends BaseListInfoFragment loadMoreItemsLogic() {
- return Single.fromCallable(() -> ListExtractor.InfoItemsPage.emptyPage());
+ return Single.fromCallable(ListExtractor.InfoItemsPage::emptyPage);
}
/*//////////////////////////////////////////////////////////////////////////
@@ -216,8 +203,8 @@ public class RelatedVideosFragment extends BaseListInfoFragment
- * This method detects and prevents cycle by naively checking if a
- * candidate next video's url already exists in the existing items.
+ * This method detects and prevents cycles by naively checking
+ * if a candidate next video's url already exists in the existing items.
*
*
- * To select the next video, {@link StreamInfo#getNextVideo()} is first
- * checked. If it is nonnull and is not part of the existing items, then
- * it will be used as the next video. Otherwise, an random item with
- * non-repeating url will be selected from the {@link StreamInfo#getRelatedStreams()}.
+ * The first item in {@link StreamInfo#getRelatedStreams()} is checked first.
+ * If it is non-null and is not part of the existing items, it will be used as the next stream.
+ * Otherwise, a random item with non-repeating url will be selected
+ * from the {@link StreamInfo#getRelatedStreams()}.
*
*
* @param info currently playing stream
@@ -152,27 +152,28 @@ public final class PlayerHelper {
@Nullable
public static PlayQueue autoQueueOf(@NonNull final StreamInfo info,
@NonNull final List existingItems) {
- Set urls = new HashSet<>(existingItems.size());
+ final Set urls = new HashSet<>(existingItems.size());
for (final PlayQueueItem item : existingItems) {
urls.add(item.getUrl());
}
- final StreamInfoItem nextVideo = info.getNextVideo();
- if (nextVideo != null && !urls.contains(nextVideo.getUrl())) {
- return getAutoQueuedSinglePlayQueue(nextVideo);
- }
-
final List relatedItems = info.getRelatedStreams();
if (relatedItems == null) {
return null;
}
- List autoQueueItems = new ArrayList<>();
+ if (relatedItems.get(0) != null && relatedItems.get(0) instanceof StreamInfoItem
+ && !urls.contains(relatedItems.get(0).getUrl())) {
+ return getAutoQueuedSinglePlayQueue((StreamInfoItem) relatedItems.get(0));
+ }
+
+ final List autoQueueItems = new ArrayList<>();
for (final InfoItem item : info.getRelatedStreams()) {
if (item instanceof StreamInfoItem && !urls.contains(item.getUrl())) {
autoQueueItems.add((StreamInfoItem) item);
}
}
+
Collections.shuffle(autoQueueItems);
return autoQueueItems.isEmpty()
? null : getAutoQueuedSinglePlayQueue(autoQueueItems.get(0));
diff --git a/app/src/main/java/org/schabi/newpipe/util/RelatedStreamInfo.java b/app/src/main/java/org/schabi/newpipe/util/RelatedStreamInfo.java
index ce642da5e..fcd392d67 100644
--- a/app/src/main/java/org/schabi/newpipe/util/RelatedStreamInfo.java
+++ b/app/src/main/java/org/schabi/newpipe/util/RelatedStreamInfo.java
@@ -4,16 +4,12 @@ import org.schabi.newpipe.extractor.InfoItem;
import org.schabi.newpipe.extractor.ListInfo;
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler;
import org.schabi.newpipe.extractor.stream.StreamInfo;
-import org.schabi.newpipe.extractor.stream.StreamInfoItem;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class RelatedStreamInfo extends ListInfo {
-
- private StreamInfoItem nextStream;
-
public RelatedStreamInfo(final int serviceId, final ListLinkHandler listUrlIdHandler,
final String name) {
super(serviceId, listUrlIdHandler, name);
@@ -25,20 +21,8 @@ public class RelatedStreamInfo extends ListInfo {
RelatedStreamInfo relatedStreamInfo = new RelatedStreamInfo(
info.getServiceId(), handler, info.getName());
List streams = new ArrayList<>();
- if (info.getNextVideo() != null) {
- streams.add(info.getNextVideo());
- }
streams.addAll(info.getRelatedStreams());
relatedStreamInfo.setRelatedItems(streams);
- relatedStreamInfo.setNextStream(info.getNextVideo());
return relatedStreamInfo;
}
-
- public StreamInfoItem getNextStream() {
- return nextStream;
- }
-
- public void setNextStream(final StreamInfoItem nextStream) {
- this.nextStream = nextStream;
- }
}
From 4274827dbe4a814f2aa4cb2ffc8c4168f5a322a3 Mon Sep 17 00:00:00 2001
From: wb9688
Date: Wed, 15 Jul 2020 18:52:36 +0200
Subject: [PATCH 03/11] Use relatedItems instead of info.getRelatedStreams()
---
app/build.gradle | 2 +-
.../newpipe/fragments/list/videos/RelatedVideosFragment.java | 2 +-
.../java/org/schabi/newpipe/player/helper/PlayerHelper.java | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 94c7a2ce5..229871f59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -163,7 +163,7 @@ dependencies {
exclude module: 'support-annotations'
}
- implementation 'com.github.wb9688:NewPipeExtractor:70136e6a099d610d1fe6340549aa0542f7f26f1e'
+ implementation 'com.github.wb9688:NewPipeExtractor:fc3a63fec56c110d7f434ef4377b3eeb2b8bbefe'
implementation "com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751"
implementation "org.jsoup:jsoup:1.13.1"
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/videos/RelatedVideosFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/videos/RelatedVideosFragment.java
index d66433fa8..cf2101111 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/list/videos/RelatedVideosFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/list/videos/RelatedVideosFragment.java
@@ -83,7 +83,7 @@ public class RelatedVideosFragment extends BaseListInfoFragment
PreferenceManager.getDefaultSharedPreferences(getContext()).edit()
- .putBoolean(getString(R.string.auto_queue_key), b).apply());
+ .putBoolean(getString(R.string.auto_queue_key), b).apply());
return headerRootLayout;
} else {
return null;
diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java
index da0e7403a..e63e56bf9 100644
--- a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java
+++ b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java
@@ -168,7 +168,7 @@ public final class PlayerHelper {
}
final List autoQueueItems = new ArrayList<>();
- for (final InfoItem item : info.getRelatedStreams()) {
+ for (final InfoItem item : relatedItems) {
if (item instanceof StreamInfoItem && !urls.contains(item.getUrl())) {
autoQueueItems.add((StreamInfoItem) item);
}
From e028a63f304951efdee5843b58828d958d2e3e94 Mon Sep 17 00:00:00 2001
From: wb9688
Date: Sat, 18 Jul 2020 10:01:44 +0200
Subject: [PATCH 04/11] Check for description == null
---
.../schabi/newpipe/fragments/detail/VideoDetailFragment.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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 fff689930..4413a7d1e 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
@@ -1018,7 +1018,7 @@ public class VideoDetailFragment extends BaseStateFragment
}
private void prepareDescription(final Description description) {
- if (TextUtils.isEmpty(description.getContent())
+ if (description == null || TextUtils.isEmpty(description.getContent())
|| description == Description.emptyDescription) {
return;
}
From 88c86e88b04839bd670cf2ef77ef1cb5e0ac6faf Mon Sep 17 00:00:00 2001
From: TobiGr
Date: Mon, 20 Jul 2020 20:34:02 +0200
Subject: [PATCH 05/11] Update extractor version
---
app/build.gradle | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/build.gradle b/app/build.gradle
index 229871f59..558fcc083 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -163,7 +163,7 @@ dependencies {
exclude module: 'support-annotations'
}
- implementation 'com.github.wb9688:NewPipeExtractor:fc3a63fec56c110d7f434ef4377b3eeb2b8bbefe'
+ implementation 'com.github.TeamNewPipe:NewPipeExtractor:df28a087de3d9ccb9eb180e001b1d8ca7f7cf544'
implementation "com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751"
implementation "org.jsoup:jsoup:1.13.1"
From 6e73e0b395e71f9c30afb1e0d4390ac80b389170 Mon Sep 17 00:00:00 2001
From: Alexander--
Date: Wed, 22 Jul 2020 06:07:30 +0659
Subject: [PATCH 06/11] Use View.isShown() to avoid focus overlay glitches
A View can become focused while being invisible, if it's
parent is invisible. Use global draw listener and
View.isShown() to catch such cases.
---
.../newpipe/views/FocusOverlayView.java | 31 ++++++-------------
1 file changed, 9 insertions(+), 22 deletions(-)
diff --git a/app/src/main/java/org/schabi/newpipe/views/FocusOverlayView.java b/app/src/main/java/org/schabi/newpipe/views/FocusOverlayView.java
index 1c868f66a..3d9dbc16a 100644
--- a/app/src/main/java/org/schabi/newpipe/views/FocusOverlayView.java
+++ b/app/src/main/java/org/schabi/newpipe/views/FocusOverlayView.java
@@ -74,44 +74,26 @@ public final class FocusOverlayView extends Drawable implements
@Override
public void onGlobalFocusChanged(final View oldFocus, final View newFocus) {
- int l = focusRect.left;
- int r = focusRect.right;
- int t = focusRect.top;
- int b = focusRect.bottom;
-
- if (newFocus != null && newFocus.getWidth() > 0 && newFocus.getHeight() > 0) {
- newFocus.getGlobalVisibleRect(focusRect);
-
+ if (newFocus != null) {
focused = new WeakReference<>(newFocus);
} else {
- focusRect.setEmpty();
-
focused = null;
}
- if (l != focusRect.left || r != focusRect.right
- || t != focusRect.top || b != focusRect.bottom) {
- invalidateSelf();
- }
-
- focused = new WeakReference<>(newFocus);
+ updateRect();
animator.sendEmptyMessageDelayed(0, 1000);
}
private void updateRect() {
- if (focused == null) {
- return;
- }
-
- View focusedView = this.focused.get();
+ View focusedView = focused == null ? null : this.focused.get();
int l = focusRect.left;
int r = focusRect.right;
int t = focusRect.top;
int b = focusRect.bottom;
- if (focusedView != null) {
+ if (focusedView != null && isShown(focusedView)) {
focusedView.getGlobalVisibleRect(focusRect);
} else {
focusRect.setEmpty();
@@ -123,6 +105,10 @@ public final class FocusOverlayView extends Drawable implements
}
}
+ private boolean isShown(final View view) {
+ return view.getWidth() != 0 && view.getHeight() != 0 && view.isShown();
+ }
+
@Override
public void onDraw() {
updateRect();
@@ -223,6 +209,7 @@ public final class FocusOverlayView extends Drawable implements
observer.addOnGlobalFocusChangeListener(overlay);
observer.addOnGlobalLayoutListener(overlay);
observer.addOnTouchModeChangeListener(overlay);
+ observer.addOnDrawListener(overlay);
overlay.setCurrentFocus(decor.getFocusedChild());
From 801267df189455ad43c8aeaf546fe3d3cdcafcd7 Mon Sep 17 00:00:00 2001
From: Alexander--
Date: Wed, 22 Jul 2020 07:57:04 -0400
Subject: [PATCH 07/11] Add @NonNull annotation to method argument
Co-authored-by: Tobias Groza
---
.../main/java/org/schabi/newpipe/views/FocusOverlayView.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/src/main/java/org/schabi/newpipe/views/FocusOverlayView.java b/app/src/main/java/org/schabi/newpipe/views/FocusOverlayView.java
index 3d9dbc16a..bd5ae10e8 100644
--- a/app/src/main/java/org/schabi/newpipe/views/FocusOverlayView.java
+++ b/app/src/main/java/org/schabi/newpipe/views/FocusOverlayView.java
@@ -105,7 +105,7 @@ public final class FocusOverlayView extends Drawable implements
}
}
- private boolean isShown(final View view) {
+ private boolean isShown(@NonNull final View view) {
return view.getWidth() != 0 && view.getHeight() != 0 && view.isShown();
}
From 185a5fad88786d6f6736e369e262c668dd36fad9 Mon Sep 17 00:00:00 2001
From: wb9688
Date: Thu, 23 Jul 2020 13:24:48 +0200
Subject: [PATCH 08/11] Disable shrinkResources
---
app/build.gradle | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/build.gradle b/app/build.gradle
index b77e6c986..c2083440b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -50,7 +50,7 @@ android {
// TODO: update Gradle version
release {
minifyEnabled true
- shrinkResources true
+ shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
archivesBaseName = 'app'
}
From b0685c153a0341da0f94c98d0fd12363d009e7b9 Mon Sep 17 00:00:00 2001
From: TobiGr
Date: Sun, 26 Jul 2020 14:26:01 +0200
Subject: [PATCH 09/11] Update extractor version
---
app/build.gradle | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/build.gradle b/app/build.gradle
index b97958edc..b5e4c9b83 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -163,7 +163,7 @@ dependencies {
exclude module: 'support-annotations'
}
- implementation 'com.github.TeamNewPipe:NewPipeExtractor:df28a087de3d9ccb9eb180e001b1d8ca7f7cf544'
+ implementation 'com.github.TeamNewPipe:NewPipeExtractor:b4481dfec21cf39aabbb791290d30130235aeabd'
implementation "com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751"
implementation "org.jsoup:jsoup:1.13.1"
From 17edd1c3d4cc80d4c5f9077ba6cb910f8b1a0315 Mon Sep 17 00:00:00 2001
From: TobiGr
Date: Sun, 26 Jul 2020 14:38:41 +0200
Subject: [PATCH 10/11] Add changelog
---
fastlane/metadata/android/en-US/changelogs/952.txt | 7 +++++++
1 file changed, 7 insertions(+)
create mode 100644 fastlane/metadata/android/en-US/changelogs/952.txt
diff --git a/fastlane/metadata/android/en-US/changelogs/952.txt b/fastlane/metadata/android/en-US/changelogs/952.txt
new file mode 100644
index 000000000..c72818bc5
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/952.txt
@@ -0,0 +1,7 @@
+Improved
+• Auto-play is available for all services (instead of only for YouTube)
+
+Fixed
+• Fixed related streams by supporting YouTube's new continuations
+• Fixed age restricted YouTube videos
+• [Android TV] Fixed lingering focus highlight overlay
\ No newline at end of file
From f53a0f0d07b9d2ff6cd8a712eda806ecdd5bb587 Mon Sep 17 00:00:00 2001
From: TobiGr
Date: Sun, 26 Jul 2020 14:39:18 +0200
Subject: [PATCH 11/11] Update version to 0.19.7 (952)
---
app/build.gradle | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index b5e4c9b83..cfd1a5a00 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -13,8 +13,8 @@ android {
resValue "string", "app_name", "NewPipe"
minSdkVersion 19
targetSdkVersion 29
- versionCode 951
- versionName "0.19.6"
+ versionCode 952
+ versionName "0.19.7"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true