From 62d36126ea30f7465651c5e9b7d1064e9dd251a9 Mon Sep 17 00:00:00 2001 From: Douile <25043847+Douile@users.noreply.github.com> Date: Wed, 1 Sep 2021 00:55:56 +0100 Subject: [PATCH 01/30] Load full stream info when enqueuing a stream This commit calls getStreamInfo causing a full network fetch of stream info (I believe only if required) when adding a stream item to the queue. This should prevent UI issues of missing metadata when queueing videos that have been fast-loaded and are missing metadata. Fixes #7035 --- .../newpipe/util/StreamDialogEntry.java | 37 ++++++++++++++++++- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java index ec51cc370..dc5852416 100644 --- a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java +++ b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java @@ -2,6 +2,7 @@ package org.schabi.newpipe.util; import android.content.Context; import android.net.Uri; +import android.util.Log; import android.widget.Toast; import androidx.fragment.app.Fragment; @@ -20,6 +21,7 @@ import java.util.Collections; import java.util.List; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.disposables.Disposable; import io.reactivex.rxjava3.schedulers.Schedulers; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; @@ -60,11 +62,15 @@ public enum StreamDialogEntry { * Info: Add this entry within showStreamDialog. */ enqueue(R.string.enqueue_stream, (fragment, item) -> { - NavigationHelper.enqueueOnPlayer(fragment.getContext(), new SinglePlayQueue(item)); + fetchItemInfoIfSparse(item, + fullItem -> NavigationHelper.enqueueOnPlayer(fragment.getContext(), fullItem) + ); }), enqueue_next(R.string.enqueue_next_stream, (fragment, item) -> { - NavigationHelper.enqueueNextOnPlayer(fragment.getContext(), new SinglePlayQueue(item)); + fetchItemInfoIfSparse(item, + fullItem -> NavigationHelper.enqueueNextOnPlayer(fragment.getContext(), fullItem) + ); }), start_here_on_background(R.string.start_here_on_background, (fragment, item) -> @@ -203,4 +209,31 @@ public enum StreamDialogEntry { fragment.requireActivity().getSupportFragmentManager(), item.getServiceId(), uploaderUrl, item.getUploaderName()); } + + ///////////////////////////////////////////// + // helper functions // + ///////////////////////////////////////////// + + private interface InfoCallback { + void onInfo(SinglePlayQueue item); + } + + private static void fetchItemInfoIfSparse(final StreamInfoItem item, + final InfoCallback callback) { + if (item.getDuration() < 0) { + // Sparse item: fetched by fast fetch + final Disposable currentWorker = ExtractorHelper.getStreamInfo( + item.getServiceId(), + item.getUrl(), + false + ) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(result -> { + callback.onInfo(new SinglePlayQueue(result)); + }, throwable -> Log.e("StreamDialogEntry", throwable.toString())); + } else { + callback.onInfo(new SinglePlayQueue(item)); + } + } } From bc2f0f9f3ee9c2adcbf75cf576bdf47e833de41f Mon Sep 17 00:00:00 2001 From: Douile <25043847+Douile@users.noreply.github.com> Date: Thu, 28 Oct 2021 01:11:53 +0100 Subject: [PATCH 02/30] Update stream state in database after loading --- .../schabi/newpipe/local/feed/FeedFragment.kt | 5 +++++ .../newpipe/util/StreamDialogEntry.java | 19 +++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt index b3619276d..1b00d20ea 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt @@ -159,6 +159,11 @@ class FeedFragment : BaseStateFragment() { } } + // TODO: Move + fun redrawContent() { + groupAdapter.notifyItemRangeChanged(0, Int.MAX_VALUE) + } + fun setupListViewMode() { // does everything needed to setup the layouts for grid or list modes groupAdapter.spanCount = if (shouldUseGridLayout(context)) getGridSpanCountStreams(context) else 1 diff --git a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java index dc5852416..321c744b7 100644 --- a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java +++ b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java @@ -62,13 +62,13 @@ public enum StreamDialogEntry { * Info: Add this entry within showStreamDialog. */ enqueue(R.string.enqueue_stream, (fragment, item) -> { - fetchItemInfoIfSparse(item, + fetchItemInfoIfSparse(fragment, item, fullItem -> NavigationHelper.enqueueOnPlayer(fragment.getContext(), fullItem) ); }), enqueue_next(R.string.enqueue_next_stream, (fragment, item) -> { - fetchItemInfoIfSparse(item, + fetchItemInfoIfSparse(fragment, item, fullItem -> NavigationHelper.enqueueNextOnPlayer(fragment.getContext(), fullItem) ); }), @@ -218,8 +218,9 @@ public enum StreamDialogEntry { void onInfo(SinglePlayQueue item); } - private static void fetchItemInfoIfSparse(final StreamInfoItem item, - final InfoCallback callback) { + private static void fetchItemInfoIfSparse(final Fragment fragment, + final StreamInfoItem item, + final InfoCallback callback) { if (item.getDuration() < 0) { // Sparse item: fetched by fast fetch final Disposable currentWorker = ExtractorHelper.getStreamInfo( @@ -227,9 +228,19 @@ public enum StreamDialogEntry { item.getUrl(), false ) + .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(result -> { + final HistoryRecordManager recordManager = + new HistoryRecordManager(fragment.getContext()); + recordManager.saveStreamState(result, 0) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .doOnError(throwable -> Log.e("StreamDialogEntry", + throwable.toString())) + .subscribe(); + callback.onInfo(new SinglePlayQueue(result)); }, throwable -> Log.e("StreamDialogEntry", throwable.toString())); } else { From 91611fcae43d8cbec91344f7231ef48ddb84be55 Mon Sep 17 00:00:00 2001 From: Tom <25043847+Douile@users.noreply.github.com> Date: Tue, 23 Nov 2021 15:22:11 +0000 Subject: [PATCH 03/30] Don't fetch uneeded stream info for live streams Co-authored-by: Stypox --- .../main/java/org/schabi/newpipe/util/StreamDialogEntry.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java index 321c744b7..1667ed649 100644 --- a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java +++ b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java @@ -221,7 +221,7 @@ public enum StreamDialogEntry { private static void fetchItemInfoIfSparse(final Fragment fragment, final StreamInfoItem item, final InfoCallback callback) { - if (item.getDuration() < 0) { + if ((item.getStreamType() == StreamType.LIVE_STREAM || item.getStreamType() == StreamType.AUDIO_LIVE_STREAM) && item.getDuration() < 0) { // Sparse item: fetched by fast fetch final Disposable currentWorker = ExtractorHelper.getStreamInfo( item.getServiceId(), From 6472e9b6b67f3bb431bf11b547bdb9b70355d0d4 Mon Sep 17 00:00:00 2001 From: Douile <25043847+Douile@users.noreply.github.com> Date: Fri, 3 Dec 2021 21:29:34 +0000 Subject: [PATCH 04/30] Remove unused code --- .../main/java/org/schabi/newpipe/local/feed/FeedFragment.kt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt index 1b00d20ea..b3619276d 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt @@ -159,11 +159,6 @@ class FeedFragment : BaseStateFragment() { } } - // TODO: Move - fun redrawContent() { - groupAdapter.notifyItemRangeChanged(0, Int.MAX_VALUE) - } - fun setupListViewMode() { // does everything needed to setup the layouts for grid or list modes groupAdapter.spanCount = if (shouldUseGridLayout(context)) getGridSpanCountStreams(context) else 1 From 3d1a3606c977d5351e5cffd1d23d8110d02a455f Mon Sep 17 00:00:00 2001 From: Tom <25043847+Douile@users.noreply.github.com> Date: Fri, 3 Dec 2021 21:30:26 +0000 Subject: [PATCH 05/30] Remove unused variable Co-authored-by: Stypox --- .../main/java/org/schabi/newpipe/util/StreamDialogEntry.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java index 1667ed649..60201d5a8 100644 --- a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java +++ b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java @@ -223,7 +223,7 @@ public enum StreamDialogEntry { final InfoCallback callback) { if ((item.getStreamType() == StreamType.LIVE_STREAM || item.getStreamType() == StreamType.AUDIO_LIVE_STREAM) && item.getDuration() < 0) { // Sparse item: fetched by fast fetch - final Disposable currentWorker = ExtractorHelper.getStreamInfo( + ExtractorHelper.getStreamInfo( item.getServiceId(), item.getUrl(), false From ec7de2a6dc075e7293dbcf95f2975fdafc1e2015 Mon Sep 17 00:00:00 2001 From: Douile <25043847+Douile@users.noreply.github.com> Date: Fri, 3 Dec 2021 21:53:36 +0000 Subject: [PATCH 06/30] Fix StreamType check, missing import, and styling errors --- .../java/org/schabi/newpipe/util/StreamDialogEntry.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java index 60201d5a8..82701723b 100644 --- a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java +++ b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java @@ -10,6 +10,7 @@ import androidx.fragment.app.Fragment; import org.schabi.newpipe.NewPipeDatabase; import org.schabi.newpipe.R; import org.schabi.newpipe.extractor.stream.StreamInfoItem; +import org.schabi.newpipe.extractor.stream.StreamType; import org.schabi.newpipe.local.dialog.PlaylistAppendDialog; import org.schabi.newpipe.local.dialog.PlaylistCreationDialog; import org.schabi.newpipe.local.history.HistoryRecordManager; @@ -21,7 +22,6 @@ import java.util.Collections; import java.util.List; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; -import io.reactivex.rxjava3.disposables.Disposable; import io.reactivex.rxjava3.schedulers.Schedulers; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; @@ -221,7 +221,9 @@ public enum StreamDialogEntry { private static void fetchItemInfoIfSparse(final Fragment fragment, final StreamInfoItem item, final InfoCallback callback) { - if ((item.getStreamType() == StreamType.LIVE_STREAM || item.getStreamType() == StreamType.AUDIO_LIVE_STREAM) && item.getDuration() < 0) { + if (!(item.getStreamType() == StreamType.LIVE_STREAM + || item.getStreamType() == StreamType.AUDIO_LIVE_STREAM) + && item.getDuration() < 0) { // Sparse item: fetched by fast fetch ExtractorHelper.getStreamInfo( item.getServiceId(), From 7cd3603bbb285db7730a2153c66b3a5ac1c49af1 Mon Sep 17 00:00:00 2001 From: Douile <25043847+Douile@users.noreply.github.com> Date: Fri, 3 Dec 2021 22:38:03 +0000 Subject: [PATCH 07/30] Fetch sparse items when playing in background or popup --- .../newpipe/util/StreamDialogEntry.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java index 82701723b..ac05e3460 100644 --- a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java +++ b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java @@ -73,13 +73,20 @@ public enum StreamDialogEntry { ); }), - start_here_on_background(R.string.start_here_on_background, (fragment, item) -> - NavigationHelper.playOnBackgroundPlayer(fragment.getContext(), - new SinglePlayQueue(item), true)), + start_here_on_background(R.string.start_here_on_background, (fragment, item) -> { + fetchItemInfoIfSparse(fragment, item, + fullItem -> { + NavigationHelper.playOnBackgroundPlayer(fragment.getContext(), + fullItem, true); + }); + }), - start_here_on_popup(R.string.start_here_on_popup, (fragment, item) -> - NavigationHelper.playOnPopupPlayer(fragment.getContext(), - new SinglePlayQueue(item), true)), + start_here_on_popup(R.string.start_here_on_popup, (fragment, item) -> { + fetchItemInfoIfSparse(fragment, item, fullItem -> { + NavigationHelper.playOnPopupPlayer(fragment.getContext(), + fullItem, true); + }); + }), set_as_playlist_thumbnail(R.string.set_as_playlist_thumbnail, (fragment, item) -> { }), // has to be set manually From baee915db5beb1fa53170339416b3b344f5a0777 Mon Sep 17 00:00:00 2001 From: Tom <25043847+Douile@users.noreply.github.com> Date: Sun, 12 Dec 2021 12:51:01 +0000 Subject: [PATCH 08/30] Remove unecessary line Co-authored-by: Stypox --- app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java index ac05e3460..8096ff21b 100644 --- a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java +++ b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java @@ -237,7 +237,6 @@ public enum StreamDialogEntry { item.getUrl(), false ) - .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(result -> { From 3ff00ff50e6590a8a3b774cb5589eebf4549fee3 Mon Sep 17 00:00:00 2001 From: Douile <25043847+Douile@users.noreply.github.com> Date: Sun, 12 Dec 2021 13:01:40 +0000 Subject: [PATCH 09/30] Fix lambda code formatting Co-authored-by: Stypox --- .../newpipe/util/StreamDialogEntry.java | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java index 8096ff21b..a0539e9a8 100644 --- a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java +++ b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java @@ -62,30 +62,23 @@ public enum StreamDialogEntry { * Info: Add this entry within showStreamDialog. */ enqueue(R.string.enqueue_stream, (fragment, item) -> { - fetchItemInfoIfSparse(fragment, item, - fullItem -> NavigationHelper.enqueueOnPlayer(fragment.getContext(), fullItem) - ); + fetchItemInfoIfSparse(fragment, item, fullItem -> + NavigationHelper.enqueueOnPlayer(fragment.getContext(), fullItem)); }), enqueue_next(R.string.enqueue_next_stream, (fragment, item) -> { - fetchItemInfoIfSparse(fragment, item, - fullItem -> NavigationHelper.enqueueNextOnPlayer(fragment.getContext(), fullItem) - ); + fetchItemInfoIfSparse(fragment, item, fullItem -> + NavigationHelper.enqueueNextOnPlayer(fragment.getContext(), fullItem)); }), start_here_on_background(R.string.start_here_on_background, (fragment, item) -> { - fetchItemInfoIfSparse(fragment, item, - fullItem -> { - NavigationHelper.playOnBackgroundPlayer(fragment.getContext(), - fullItem, true); - }); + fetchItemInfoIfSparse(fragment, item, fullItem -> + NavigationHelper.playOnBackgroundPlayer(fragment.getContext(), fullItem, true)); }), start_here_on_popup(R.string.start_here_on_popup, (fragment, item) -> { - fetchItemInfoIfSparse(fragment, item, fullItem -> { - NavigationHelper.playOnPopupPlayer(fragment.getContext(), - fullItem, true); - }); + fetchItemInfoIfSparse(fragment, item, fullItem -> + NavigationHelper.playOnPopupPlayer(fragment.getContext(), fullItem, true)); }), set_as_playlist_thumbnail(R.string.set_as_playlist_thumbnail, (fragment, item) -> { From ddcbe27fd3da5bda84127234912e73257e1faf99 Mon Sep 17 00:00:00 2001 From: litetex <40789489+litetex@users.noreply.github.com> Date: Mon, 3 Jan 2022 11:52:08 +0100 Subject: [PATCH 10/30] Fixed search not accepting key input after closing player overlay (#7607) * Fixed search not accepting key input after closing player overlay * Made comments easier to understand * More comments --- .../fragments/detail/VideoDetailFragment.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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 5a74dc948..25b87ed6f 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 @@ -2208,12 +2208,20 @@ public final class VideoDetailFragment mainFragment.setDescendantFocusability(afterDescendants); toolbar.setDescendantFocusability(afterDescendants); ((ViewGroup) requireView()).setDescendantFocusability(blockDescendants); - mainFragment.requestFocus(); + // Only focus the mainFragment if the mainFragment (e.g. search-results) + // or the toolbar (e.g. Textfield for search) don't have focus. + // This was done to fix problems with the keyboard input, see also #7490 + if (!mainFragment.hasFocus() && !toolbar.hasFocus()) { + mainFragment.requestFocus(); + } } else { mainFragment.setDescendantFocusability(blockDescendants); toolbar.setDescendantFocusability(blockDescendants); ((ViewGroup) requireView()).setDescendantFocusability(afterDescendants); - binding.detailThumbnailRootLayout.requestFocus(); + // Only focus the player if it not already has focus + if (!binding.getRoot().hasFocus()) { + binding.detailThumbnailRootLayout.requestFocus(); + } } } From 064242d9626121e9c498ec19a7e4755efcc4c76b Mon Sep 17 00:00:00 2001 From: Douile <25043847+Douile@users.noreply.github.com> Date: Mon, 3 Jan 2022 17:51:31 +0000 Subject: [PATCH 11/30] Remove unecessary interface InfoCallback Co-authored-by: Stypox Replace the unecessary callback interface InfoCallback in favour of the standard type Consumer --- .../org/schabi/newpipe/util/StreamDialogEntry.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java index a0539e9a8..d87a011b4 100644 --- a/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java +++ b/app/src/main/java/org/schabi/newpipe/util/StreamDialogEntry.java @@ -20,6 +20,7 @@ import org.schabi.newpipe.util.external_communication.ShareUtils; import java.util.Collections; import java.util.List; +import java.util.function.Consumer; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; import io.reactivex.rxjava3.schedulers.Schedulers; @@ -214,13 +215,9 @@ public enum StreamDialogEntry { // helper functions // ///////////////////////////////////////////// - private interface InfoCallback { - void onInfo(SinglePlayQueue item); - } - private static void fetchItemInfoIfSparse(final Fragment fragment, final StreamInfoItem item, - final InfoCallback callback) { + final Consumer callback) { if (!(item.getStreamType() == StreamType.LIVE_STREAM || item.getStreamType() == StreamType.AUDIO_LIVE_STREAM) && item.getDuration() < 0) { @@ -242,10 +239,10 @@ public enum StreamDialogEntry { throwable.toString())) .subscribe(); - callback.onInfo(new SinglePlayQueue(result)); + callback.accept(new SinglePlayQueue(result)); }, throwable -> Log.e("StreamDialogEntry", throwable.toString())); } else { - callback.onInfo(new SinglePlayQueue(item)); + callback.accept(new SinglePlayQueue(item)); } } } From 0f457127df0c8aed2ce8f620662735e05901c888 Mon Sep 17 00:00:00 2001 From: litetex <40789489+litetex@users.noreply.github.com> Date: Tue, 4 Jan 2022 16:00:01 +0100 Subject: [PATCH 12/30] Removed "list_thumbnail_view_description" due to accessibility problems --- app/src/main/res/layout-large-land/fragment_video_detail.xml | 1 - app/src/main/res/layout/fragment_video_detail.xml | 1 - app/src/main/res/layout/list_channel_item.xml | 1 - app/src/main/res/layout/list_channel_mini_item.xml | 1 - app/src/main/res/layout/list_comments_item.xml | 1 - app/src/main/res/layout/list_comments_mini_item.xml | 1 - app/src/main/res/layout/list_playlist_grid_item.xml | 1 - app/src/main/res/layout/list_playlist_item.xml | 1 - app/src/main/res/layout/list_playlist_mini_item.xml | 1 - app/src/main/res/layout/list_stream_grid_item.xml | 1 - app/src/main/res/layout/list_stream_item.xml | 1 - app/src/main/res/layout/list_stream_mini_item.xml | 1 - app/src/main/res/layout/list_stream_playlist_grid_item.xml | 1 - app/src/main/res/layout/list_stream_playlist_item.xml | 1 - app/src/main/res/layout/picker_subscription_item.xml | 1 - app/src/main/res/layout/play_queue_item.xml | 1 - app/src/main/res/layout/select_channel_item.xml | 1 - app/src/main/res/values-ar/strings.xml | 1 - app/src/main/res/values-b+ast/strings.xml | 1 - app/src/main/res/values-b+uz+Latn/strings.xml | 1 - app/src/main/res/values-b+zh+HANS+CN/strings.xml | 1 - app/src/main/res/values-be/strings.xml | 1 - app/src/main/res/values-bg/strings.xml | 1 - app/src/main/res/values-bn-rBD/strings.xml | 1 - app/src/main/res/values-bn-rIN/strings.xml | 1 - app/src/main/res/values-bn/strings.xml | 1 - app/src/main/res/values-ca/strings.xml | 1 - app/src/main/res/values-ckb/strings.xml | 1 - app/src/main/res/values-cs/strings.xml | 1 - app/src/main/res/values-da/strings.xml | 1 - app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values-el/strings.xml | 1 - app/src/main/res/values-eo/strings.xml | 1 - app/src/main/res/values-es/strings.xml | 1 - app/src/main/res/values-et/strings.xml | 1 - app/src/main/res/values-eu/strings.xml | 1 - app/src/main/res/values-fa/strings.xml | 1 - app/src/main/res/values-fi/strings.xml | 1 - app/src/main/res/values-fr/strings.xml | 1 - app/src/main/res/values-gl/strings.xml | 1 - app/src/main/res/values-he/strings.xml | 1 - app/src/main/res/values-hi/strings.xml | 1 - app/src/main/res/values-hr/strings.xml | 1 - app/src/main/res/values-hu/strings.xml | 1 - app/src/main/res/values-in/strings.xml | 1 - app/src/main/res/values-it/strings.xml | 1 - app/src/main/res/values-ja/strings.xml | 1 - app/src/main/res/values-kmr/strings.xml | 1 - app/src/main/res/values-ko/strings.xml | 1 - app/src/main/res/values-ku/strings.xml | 1 - app/src/main/res/values-lt/strings.xml | 1 - app/src/main/res/values-lv/strings.xml | 1 - app/src/main/res/values-mk/strings.xml | 1 - app/src/main/res/values-ml/strings.xml | 1 - app/src/main/res/values-ms/strings.xml | 1 - app/src/main/res/values-nb-rNO/strings.xml | 1 - app/src/main/res/values-ne/strings.xml | 1 - app/src/main/res/values-nl-rBE/strings.xml | 1 - app/src/main/res/values-nl/strings.xml | 1 - app/src/main/res/values-pa/strings.xml | 1 - app/src/main/res/values-pl/strings.xml | 1 - app/src/main/res/values-pt-rBR/strings.xml | 1 - app/src/main/res/values-pt-rPT/strings.xml | 1 - app/src/main/res/values-pt/strings.xml | 1 - app/src/main/res/values-ro/strings.xml | 1 - app/src/main/res/values-ru/strings.xml | 1 - app/src/main/res/values-sc/strings.xml | 1 - app/src/main/res/values-sk/strings.xml | 1 - app/src/main/res/values-sl/strings.xml | 1 - app/src/main/res/values-so/strings.xml | 1 - app/src/main/res/values-sq/strings.xml | 1 - app/src/main/res/values-sr/strings.xml | 1 - app/src/main/res/values-sv/strings.xml | 1 - app/src/main/res/values-ta/strings.xml | 1 - app/src/main/res/values-te/strings.xml | 1 - app/src/main/res/values-th/strings.xml | 1 - app/src/main/res/values-tr/strings.xml | 1 - app/src/main/res/values-uk/strings.xml | 1 - app/src/main/res/values-ur/strings.xml | 1 - app/src/main/res/values-vi/strings.xml | 1 - app/src/main/res/values-zh-rCN/strings.xml | 1 - app/src/main/res/values-zh-rHK/strings.xml | 1 - app/src/main/res/values-zh-rTW/strings.xml | 1 - app/src/main/res/values/strings.xml | 1 - 84 files changed, 84 deletions(-) diff --git a/app/src/main/res/layout-large-land/fragment_video_detail.xml b/app/src/main/res/layout-large-land/fragment_video_detail.xml index 98b24f511..1ee11c49b 100644 --- a/app/src/main/res/layout-large-land/fragment_video_detail.xml +++ b/app/src/main/res/layout-large-land/fragment_video_detail.xml @@ -651,7 +651,6 @@ android:layout_height="60dp" android:layout_alignParentStart="true" android:background="@color/transparent_background_color" - android:contentDescription="@string/list_thumbnail_view_description" android:gravity="center_vertical" android:paddingLeft="@dimen/video_item_search_padding" android:paddingRight="@dimen/video_item_search_padding" diff --git a/app/src/main/res/layout/fragment_video_detail.xml b/app/src/main/res/layout/fragment_video_detail.xml index b7d97cac5..23c9a166a 100644 --- a/app/src/main/res/layout/fragment_video_detail.xml +++ b/app/src/main/res/layout/fragment_video_detail.xml @@ -626,7 +626,6 @@ android:layout_height="60dp" android:layout_alignParentStart="true" android:background="@color/transparent_background_color" - android:contentDescription="@string/list_thumbnail_view_description" android:gravity="center_vertical" android:paddingLeft="@dimen/video_item_search_padding" android:paddingRight="@dimen/video_item_search_padding" diff --git a/app/src/main/res/layout/list_channel_item.xml b/app/src/main/res/layout/list_channel_item.xml index 6af6add2b..e302af0c5 100644 --- a/app/src/main/res/layout/list_channel_item.xml +++ b/app/src/main/res/layout/list_channel_item.xml @@ -63,7 +63,6 @@ android:layout_width="@dimen/video_item_search_thumbnail_image_width" android:layout_height="@dimen/video_item_search_thumbnail_image_height" android:layout_marginRight="@dimen/video_item_search_image_right_margin" - android:contentDescription="@string/list_thumbnail_view_description" android:src="@drawable/buddy" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/itemTitleView" diff --git a/app/src/main/res/layout/list_channel_mini_item.xml b/app/src/main/res/layout/list_channel_mini_item.xml index cc91b858f..650685d50 100644 --- a/app/src/main/res/layout/list_channel_mini_item.xml +++ b/app/src/main/res/layout/list_channel_mini_item.xml @@ -15,7 +15,6 @@ android:layout_height="42dp" android:layout_centerVertical="true" android:layout_marginRight="12dp" - android:contentDescription="@string/list_thumbnail_view_description" android:src="@drawable/buddy_channel_item" tools:ignore="RtlHardcoded" /> diff --git a/app/src/main/res/layout/list_comments_item.xml b/app/src/main/res/layout/list_comments_item.xml index c76444212..81f27aaca 100644 --- a/app/src/main/res/layout/list_comments_item.xml +++ b/app/src/main/res/layout/list_comments_item.xml @@ -18,7 +18,6 @@ android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginRight="@dimen/video_item_search_image_right_margin" - android:contentDescription="@string/list_thumbnail_view_description" android:focusable="false" android:src="@drawable/buddy" tools:ignore="RtlHardcoded" /> diff --git a/app/src/main/res/layout/list_comments_mini_item.xml b/app/src/main/res/layout/list_comments_mini_item.xml index 02bba4063..604854a39 100644 --- a/app/src/main/res/layout/list_comments_mini_item.xml +++ b/app/src/main/res/layout/list_comments_mini_item.xml @@ -16,7 +16,6 @@ android:layout_height="42dp" android:layout_centerVertical="true" android:layout_marginRight="12dp" - android:contentDescription="@string/list_thumbnail_view_description" android:src="@drawable/buddy_channel_item" tools:ignore="RtlHardcoded" /> diff --git a/app/src/main/res/layout/list_playlist_grid_item.xml b/app/src/main/res/layout/list_playlist_grid_item.xml index 0c9390455..270abbde8 100644 --- a/app/src/main/res/layout/list_playlist_grid_item.xml +++ b/app/src/main/res/layout/list_playlist_grid_item.xml @@ -17,7 +17,6 @@ android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginRight="@dimen/video_item_search_image_right_margin" - android:contentDescription="@string/list_thumbnail_view_description" android:scaleType="centerCrop" android:src="@drawable/dummy_thumbnail_playlist" tools:ignore="RtlHardcoded" /> diff --git a/app/src/main/res/layout/list_playlist_item.xml b/app/src/main/res/layout/list_playlist_item.xml index 390528de1..84cce8395 100644 --- a/app/src/main/res/layout/list_playlist_item.xml +++ b/app/src/main/res/layout/list_playlist_item.xml @@ -18,7 +18,6 @@ android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginRight="@dimen/video_item_search_image_right_margin" - android:contentDescription="@string/list_thumbnail_view_description" android:scaleType="centerCrop" android:src="@drawable/dummy_thumbnail_playlist" tools:ignore="RtlHardcoded" /> diff --git a/app/src/main/res/layout/list_playlist_mini_item.xml b/app/src/main/res/layout/list_playlist_mini_item.xml index 835b18a6e..fe40449c6 100644 --- a/app/src/main/res/layout/list_playlist_mini_item.xml +++ b/app/src/main/res/layout/list_playlist_mini_item.xml @@ -18,7 +18,6 @@ android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginRight="@dimen/video_item_search_image_right_margin" - android:contentDescription="@string/list_thumbnail_view_description" android:scaleType="centerCrop" android:src="@drawable/dummy_thumbnail_playlist" tools:ignore="RtlHardcoded" /> diff --git a/app/src/main/res/layout/list_stream_grid_item.xml b/app/src/main/res/layout/list_stream_grid_item.xml index fc6e03648..e770e6614 100644 --- a/app/src/main/res/layout/list_stream_grid_item.xml +++ b/app/src/main/res/layout/list_stream_grid_item.xml @@ -14,7 +14,6 @@ android:id="@+id/itemThumbnailView" android:layout_width="@dimen/video_item_grid_thumbnail_image_width" android:layout_height="@dimen/video_item_grid_thumbnail_image_height" - android:contentDescription="@string/list_thumbnail_view_description" android:scaleType="centerCrop" android:src="@drawable/dummy_thumbnail" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/list_stream_item.xml b/app/src/main/res/layout/list_stream_item.xml index 7f2f74c64..5806ed96e 100644 --- a/app/src/main/res/layout/list_stream_item.xml +++ b/app/src/main/res/layout/list_stream_item.xml @@ -14,7 +14,6 @@ android:id="@+id/itemThumbnailView" android:layout_width="@dimen/video_item_search_thumbnail_image_width" android:layout_height="@dimen/video_item_search_thumbnail_image_height" - android:contentDescription="@string/list_thumbnail_view_description" android:scaleType="centerCrop" android:src="@drawable/dummy_thumbnail" app:layout_constraintBottom_toTopOf="@+id/itemProgressView" diff --git a/app/src/main/res/layout/list_stream_mini_item.xml b/app/src/main/res/layout/list_stream_mini_item.xml index 4c68d9001..5de3eac46 100644 --- a/app/src/main/res/layout/list_stream_mini_item.xml +++ b/app/src/main/res/layout/list_stream_mini_item.xml @@ -17,7 +17,6 @@ android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginRight="@dimen/video_item_search_image_right_margin" - android:contentDescription="@string/list_thumbnail_view_description" android:scaleType="centerCrop" android:src="@drawable/dummy_thumbnail" tools:ignore="RtlHardcoded" /> diff --git a/app/src/main/res/layout/list_stream_playlist_grid_item.xml b/app/src/main/res/layout/list_stream_playlist_grid_item.xml index c8b360062..ac57ae378 100644 --- a/app/src/main/res/layout/list_stream_playlist_grid_item.xml +++ b/app/src/main/res/layout/list_stream_playlist_grid_item.xml @@ -17,7 +17,6 @@ android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginRight="@dimen/video_item_search_image_right_margin" - android:contentDescription="@string/list_thumbnail_view_description" android:scaleType="centerCrop" android:src="@drawable/dummy_thumbnail" tools:ignore="RtlHardcoded" /> diff --git a/app/src/main/res/layout/list_stream_playlist_item.xml b/app/src/main/res/layout/list_stream_playlist_item.xml index 58a4b917f..9ac1045e2 100644 --- a/app/src/main/res/layout/list_stream_playlist_item.xml +++ b/app/src/main/res/layout/list_stream_playlist_item.xml @@ -18,7 +18,6 @@ android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginRight="@dimen/video_item_search_image_right_margin" - android:contentDescription="@string/list_thumbnail_view_description" android:scaleType="centerCrop" android:src="@drawable/dummy_thumbnail" tools:ignore="RtlHardcoded" /> diff --git a/app/src/main/res/layout/picker_subscription_item.xml b/app/src/main/res/layout/picker_subscription_item.xml index be26d064c..5f0344057 100644 --- a/app/src/main/res/layout/picker_subscription_item.xml +++ b/app/src/main/res/layout/picker_subscription_item.xml @@ -21,7 +21,6 @@ android:id="@+id/thumbnail_view" android:layout_width="48dp" android:layout_height="48dp" - android:contentDescription="@string/list_thumbnail_view_description" tools:src="@drawable/buddy_channel_item" /> diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 0034cf2dc..d8604e804 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -21,7 +21,6 @@ تثبيت تطبيق Kore غير موجود. هل تريد تثبيته؟ فاتح - صور معاينة الفيديو خطأ في الشبكة لم يتم العثور على مشغل بث. تثبيت VLC؟ افتح في المتصفح diff --git a/app/src/main/res/values-b+ast/strings.xml b/app/src/main/res/values-b+ast/strings.xml index 19ed896f0..aab0a83bb 100644 --- a/app/src/main/res/values-b+ast/strings.xml +++ b/app/src/main/res/values-b+ast/strings.xml @@ -458,7 +458,6 @@ Arrastra pa reordenar Avatar del xubidor Reproducción d\'un videu, duración: - Miniatura del videu Un comentariu (n\'inglés): Qué pasó: Informar diff --git a/app/src/main/res/values-b+uz+Latn/strings.xml b/app/src/main/res/values-b+uz+Latn/strings.xml index 4d4602daa..f984fbea9 100644 --- a/app/src/main/res/values-b+uz+Latn/strings.xml +++ b/app/src/main/res/values-b+uz+Latn/strings.xml @@ -289,7 +289,6 @@ Layklar Yuklovchining avatar eskizi Videoni ijro etish muddati, davomiyligi: - Videoni oldindan ko\'rish uchun eskiz Detallar: Sizning sharhingiz (ingliz tilida): Nima: \\n So\'rov: \\nTarkib tili: \\nTarkib mamlakati: \\nIlova tili: \\ nXizmat: \\ nGMT vaqti: \\ nPaket: \\ nVersion: \\ nOS versiyasi: diff --git a/app/src/main/res/values-b+zh+HANS+CN/strings.xml b/app/src/main/res/values-b+zh+HANS+CN/strings.xml index 4e9511d8c..52bdc2b2e 100644 --- a/app/src/main/res/values-b+zh+HANS+CN/strings.xml +++ b/app/src/main/res/values-b+zh+HANS+CN/strings.xml @@ -155,7 +155,6 @@ 详情:\\n请求:\\n内容语言:\\n内容国家:\\n客户端语言:\\n服务:\\nGMT时间:\\n包名:\\n版本:\\n操作系统版本: 您的附加说明(请用英文): 详细信息: - 视频预览缩略图 播放视频,时长: 视频上传者的头像缩略图 十亿 diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 4b185b301..249b8ca38 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -153,7 +153,6 @@ Што:\\nЗапыт:\\nМова кантэнту:\\nСэрвіс:\\nЧас па Грынвічы:\\nПакет:\\nВерсія:\\nВерсія АС: Ваш каментар (English): Падрабязнасці: - Мініяцюра відэа-прэв\'ю Мініяцюра відэа-прэв\'ю Мініяцюра аватара карыстальніка Спадабалася diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 065a8fbce..5aac01afb 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -213,7 +213,6 @@ Не са намерени видео стриймове Не са намерени аудио стриймове Какво:\\nЗаявка:\\nЕзик на съдържанието:\\nУслуга:\\nВреме по GMT:\\nПакет:\\nВерсия:\\nОС версия: - Миниатюра на видео Пренареди чрез плъзгане Начало Преименувай diff --git a/app/src/main/res/values-bn-rBD/strings.xml b/app/src/main/res/values-bn-rBD/strings.xml index d561d52e8..8a014cdf8 100644 --- a/app/src/main/res/values-bn-rBD/strings.xml +++ b/app/src/main/res/values-bn-rBD/strings.xml @@ -77,7 +77,6 @@ তোমার মন্তব্য (ইংরেজিতে): বর্ণনা: - ভিডিও প্রাকদর্শন থাম্বনেইল ভিডিও প্রাকদর্শন, সময়ঃ আপলোডারের ইউজারপিক থাম্বনেইল পছন্দ হয়েছে diff --git a/app/src/main/res/values-bn-rIN/strings.xml b/app/src/main/res/values-bn-rIN/strings.xml index 831364013..d087905a4 100644 --- a/app/src/main/res/values-bn-rIN/strings.xml +++ b/app/src/main/res/values-bn-rIN/strings.xml @@ -31,7 +31,6 @@ পছন্দ হয়েছে আপলোডারের ইউজারপিক থাম্বনেইল ভিডিও প্রাকদর্শন, সময়ঃ - ভিডিও প্রাকদর্শন থাম্বনেইল বর্ণনা: আপনার মন্তব্য (ইংরেজিতে): কি:\\nঅনুরোধ:\\nকন্টেন্ট ভাষা:\\nসার্ভিস:\\nসময়(GMT এ):\\nপ্যাকেজ:\\nসংস্করণ:\\nওএস সংস্করণ:\\nআইপি পরিসর: diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index 83ffd9c64..89a95c6fb 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -116,7 +116,6 @@ পছন্দ আপলোডারের অবয়বের প্রতিচ্ছবি ভিডিও চালাও, সময়ঃ - ভিডিও প্রাকদর্শন প্রতিচ্ছবি বর্ণনা: তোমার মন্তব্য (ইংরেজিতে): কি:\\nঅনুরোধ:\\nকন্টেন্ট ভাষা:\\nসার্ভিস:\\nসময়(GMT এ):\\nপ্যাকেজ:\\nসংস্করণ:\\nওএস সংস্করণ:\\nআইপি পরিসর: diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 353ef532c..297cf8043 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -161,7 +161,6 @@ Què ha passat: Comentari (en anglès): Detalls: - Miniatura de previsualització del vídeo Reprodueix el vídeo, duració: Miniatura de l\'avatar del propietari M\'agrada diff --git a/app/src/main/res/values-ckb/strings.xml b/app/src/main/res/values-ckb/strings.xml index e524f9f7d..d602ea8d9 100644 --- a/app/src/main/res/values-ckb/strings.xml +++ b/app/src/main/res/values-ckb/strings.xml @@ -177,7 +177,6 @@ خستنه‌ نۆبه‌تی-خۆكاری په‌خشی دواتر لێده‌ره‌ دەرەکییەکان پشتگیری ئەم جۆرە بەستەرانە ناکەن کردار ڕەتکرایەوە لەلایەن سیستەمەوە - زووبینینی وێنۆچکەی ڤیدیۆ په‌نجه‌ره‌ ڕه‌ش قه‌باره‌ی بنەڕەتی په‌نجه‌ره‌ diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index e62de53bb..781b60704 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -42,7 +42,6 @@ Nebylo možné dekódovat URL videa Nebylo možné analyzovat stránku Obsah není k dispozici - Náhled videa Přehrát video, délka: Náhled avataru uploadera To se mi líbí diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index d59c35edb..7e75ca57b 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -171,7 +171,6 @@ Hvad skete der: Din kommentar (på engelsk): Detaljer: - Videominiaturebillede Videominiaturebillede Uploaders profilbillede Synes godt om diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index feb7e85c3..551df1263 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -26,7 +26,6 @@ Nicht unterstützte URL Video und Audio Bevorzugte Sprache des Inhalts - Video-Vorschaubild Video abspielen, Dauer: Avatarbild des Benutzers Gefällt mir nicht diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index bff4dea91..12c3161e1 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -37,7 +37,6 @@ Εμφάνιση Αναπαραγωγή στο παρασκήνιο Σφάλμα δικτύου - Μικρογραφία προεπισκόπησης βίντεο Αναπαραγωγή βίντεο, διάρκεια: Μικρογραφία εικόνας προφίλ του χρήστη Like diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index bdf1aa6c2..43798f344 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -38,7 +38,6 @@ Ĉiuj bildetoj ne ŝargeblas La subskribo de la ligilo de la filmeto ne malĉifreblas La retejo ne analizeblas - Bildeto de la antaŭrigardo de la filmeto Ludi filmeton, daŭro: Bildeto de la alŝutinto Elŝutujo por filmetoj diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index ffdf60d7e..a7e8db4ba 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -42,7 +42,6 @@ No se pudo analizar el sitio web Mostrar vídeos \'Siguientes\' y \'Similares\' Idioma predefinido del contenido - Miniatura de previsualización del vídeo Reproducir vídeo; duración: Me gusta No me gusta diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index ecf5faa6e..e75443607 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -148,7 +148,6 @@ Mis:\\nPäring:\\nSisu keel:\\nSisu maa:\\nRakenduse keel:\\nTeenus:\\nGMT aeg:\\nPakett:\\nVersioon:\\nOS versioon: Oma kommentaar (inglise keeles): Üksikasjad: - Video eelvaate pisipilt Esita video, kestus: Üleslaadiaja avatari pisipilt Meeldib diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 5b8161bf2..759499025 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -24,7 +24,6 @@ URLak ez du euskarririk Edukiaren hizkuntz lehenetsia Bideoa eta audioa - Bideoaren aurreikuspen argazkitxoa Erreproduzitu bideoa, iraupena: Igotzailearen abatarraren iruditxoa Ez dute gustoko diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 027f593d2..826f76a88 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -58,7 +58,6 @@ چه روی داد: توضیح شما (به انگلیسی): جزییات: - بندانگشتی پیش‌نمایش ویدیو پخش ویدیو، مدت زمان: بندانگشتی کاربر بارگذاری کننده پسندها diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 713cdb38d..581ba1eb9 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -95,7 +95,6 @@ Mitä tapahtui: Sinun viesti (englanniksi): Yksityiskohdat: - Videon esikatselukuva Toista video, kesto: Lataajan hahmokuvake Tykkäykset diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 44d43ce83..8b32afdca 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -25,7 +25,6 @@ Afficher les vidéos « Suivantes » et « Similaires » URL non pris en charge Vidéo et audio - Miniature d’aperçu vidéo Lecture vidéo, durée : Je n’aime pas J’aime diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index a8c9f0419..39d49f7e2 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -152,7 +152,6 @@ Que: \\n Solicitar: \\n Idioma de contido: \\n País de contido: \\n Idioma do aplicativo: \\nServicio: \\n Tempo GMT: \\n Paquete: \\n Versión: \\n versión de nOS: O teu comentario (en inglés): Detalles: - Miniatura do vídeo Reproducir o vídeo, duración: Miniatura do avatar do autor Gosto diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index fe2911168..b7c4bb0fe 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -105,7 +105,6 @@ מתבצעת החלמה משגיאת נגן ההערה שלך (באנגלית): פרטים: - תמונה ממוזערת לתצוגה המקדימה של הסרטון נגינת סרטון, משך: תמונה ייצוגית של המפרסם אהבו diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 0e30cf4dd..d9e9c83d2 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -119,7 +119,6 @@ क्या:\\nमांग:\\nविषयवस्तु की भाषा:\\nसेवा:\\nजीएमटी समय:\\nपैकेज:\\nसंस्करण:\\nOS संस्करण: आपकी टिप्पणी: विवरण: - विडियो के thumbnail के पूर्व दर्शन वीडियो चलाये, समय : अपलोडर के thumbnail वाले फोटो पसंद diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 3f72baa92..37e9e9d02 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -92,7 +92,6 @@ Što:\\nZahtjev:\\nJezik sadržaja:\\nZemlja sadržaja:\\nJezik programa:\\nUsluga:\\nGMT vrijeme:\\nPaket:\\nVerzija:\\nVerzija OS-a: Vaš komentar (na engleskom): Detalji: - Sličica pregleda videozapisa Pokreni video, trajanje: Profilna slika prenositelja Goreglasovi diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index e5c9c1bb3..58939138d 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -39,7 +39,6 @@ A letöltött hangfájlok itt találhatóak Tetszik Nem tetszik - Előnézeti kép Videó lejátszása, hossz: Fetöltő profilképe Tartalom diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index b420c56d1..fd67cbfb1 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -55,7 +55,6 @@ Yang terjadi: Komentar Anda (dalam bahasa Inggris): Detail: - Thumbnail pratinjau video Putar video, durasi: Suka Thumbnail avatar pengunggah diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index fc55ba69d..46306f4c6 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -26,7 +26,6 @@ URL non supportato Lingua predefinita per i contenuti Video e audio - Copertina di anteprima video Riproduci video, durata: Immagine dell\'utente Non mi piace diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 6cedc2566..147876ac7 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -26,7 +26,6 @@ 対応していないURLです デフォルトの言語 動画と音声 - 動画 プレビュー サムネイル ビデオ再生、時間: 投稿者アイコンのサムネイル 低評価 diff --git a/app/src/main/res/values-kmr/strings.xml b/app/src/main/res/values-kmr/strings.xml index d7ac85dd1..f4af24f36 100644 --- a/app/src/main/res/values-kmr/strings.xml +++ b/app/src/main/res/values-kmr/strings.xml @@ -65,7 +65,6 @@ Evîn Nîgariya avatar ya barkêşker Vîdeo, demdirêj bilîze: - Pêşniyara vîdyoyê wêneyê piçûk Hûrî: Şîroveya we (bi Îngilîzî): Çi:\\nRequest:\\nContent Language:\\nContent Welat:\\nApp Language:\\nService:\\nGMT Dem:\\nPackage:\\nVersion:\\nOS version: diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 880c45aee..3c9158753 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -26,7 +26,6 @@ 지원하지 않는 URL입니다 기본 컨텐츠 언어 비디오 & 오디오 - 비디오 미리보기 썸네일 비디오 재생, 구간: 업로더 썸네일 싫어요 diff --git a/app/src/main/res/values-ku/strings.xml b/app/src/main/res/values-ku/strings.xml index be2a8086f..59c2df022 100644 --- a/app/src/main/res/values-ku/strings.xml +++ b/app/src/main/res/values-ku/strings.xml @@ -127,7 +127,6 @@ چی ڕوویدا: لێدوانەکەت (بە ئینگلیزی): وردەکارییەکان: - پێشبینین ی وێنۆچکەی ڤیدیۆ کارپێکردنی ڤیدیۆ، ماوەی: وێنۆچکەی کەسی بەرزکەرەوە بەدڵبوون diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 2b84f6a01..e5bfd4506 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -79,7 +79,6 @@ Kas:\\nUžklausa:\\nTurinio Kalba:\\nTurinio Šalis:\\nProgramėlės Kalba:\\nPaslauga:\\nGMT Laikas:\\nPaketas:\\nVersija:\\nOS versija: Jūsų komentaras (anglų kalba): Išsami informacija: - Vaizdo įrašo peržiūros miniatiūra Paleisti vaizdo įrašą, trukmė: Įkėlėjo naudotojo paveikslėlio miniatiūra Pamėgimai diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml index 5e337648c..6a311be05 100644 --- a/app/src/main/res/values-lv/strings.xml +++ b/app/src/main/res/values-lv/strings.xml @@ -153,7 +153,6 @@ Patīk Autora avatāra attēls Atskaņot video, ilgums: - Video priekšskatījuma attēls Detaļas: Jūsu komentārs (Angliski): Kas:\\nRequest:\\nContent Valoda:\\nContent Valsts:\\nApp Valoda:\\nService:\\nGMT Laiks:\\nPackage:\\nVersion:\\nOS versija: diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index d925e2970..392bc39d2 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -140,7 +140,6 @@ Што:\\nБарање:\\nЈазик на Содрж.:\\nУслуга:\\nGMT Час:\\nПакет:\\nВерзија:\\nВерз. на ОС: Ваш коментар (на Англиски): Детали: - Сликичка за преглед на видеото Сликичка за преглед на видеото Икона од аватарот на објавителот Допаѓања diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index a536ccd4d..26b4158c4 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -198,7 +198,6 @@ ലൈക്കുകൾ അപ്‌ലോഡറുടെ ലഘുചിത്രം പ്ലേ വീഡിയോ, ദൈർഘ്യം: - വീഡിയോ ലഘുചിത്രം വിശദാംശങ്ങൾ: നിങ്ങളുടെ അഭിപ്രായം (ഇംഗ്ലീഷിൽ): എന്ത് സംഭവിച്ചു: diff --git a/app/src/main/res/values-ms/strings.xml b/app/src/main/res/values-ms/strings.xml index 76aef646f..8a4691219 100644 --- a/app/src/main/res/values-ms/strings.xml +++ b/app/src/main/res/values-ms/strings.xml @@ -169,7 +169,6 @@ Apa:\\nPermintaan:\\nBahasa Kandungan:\\nNegara Kandungan:\\nBahasa Aplikasi:\\nPerkhidmatan:\\nWaktu GMT:\\nPakej:\\nVersi:\\nVersi OS: Ulasan anda (dalam bahasa Inggeris): Butiran: - Thumbnail pratonton video Main video, tempoh masa: Thumbnail avatar pemuatnaik Suka diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index b0ed47b71..737017128 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -37,7 +37,6 @@ Utseende Spiller i bakgrunnen Nettverksfeil - Video-forhåndsvisning i miniatyrbilde Spill av video, varighet: Opplasterens avatar Nikk diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index 71c9e107f..d9abdfefd 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -174,7 +174,6 @@ के:\\nअनुरोध:\\nसामग्री भाषा: \\nसेवा:\\nGMT समय:\\nप्याकेज:\\nसंस्करण: \\nOS संस्करण: तपाईंको टिप्पणी (अंग्रेजी मा): विवरण: - सामग्री वर्णन (राम्रो पहुँच लागि) प्ले भिडियो, अवधि: अपलोडरको अवतार थम्बनेल मनपर्दो diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index 56b53d814..336c654de 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -141,7 +141,6 @@ Wat:\\nVerzoek:\\nTaal van inhoud:\\nLand:\\nTaal van applicatie:\\nDienst:\\nGMT tijd:\\nPakket:\\nVersie:\\nVersie van besturingssysteem: Uw opmerking (in het Engels): Details: - Videovoorbeeldminiatuur Speel video, tijd: Avatarminiatuur van uploader Duimen diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 9fef6b795..5940a803e 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -28,7 +28,6 @@ Externe videospeler gebruiken Externe audiospeler gebruiken Video en audio - Videovoorbeeldminiatuur Speel video, tijd: Gebruikersafbeelding van uploader Vind-ik-niet-leuks diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml index 219440faa..005b30a89 100644 --- a/app/src/main/res/values-pa/strings.xml +++ b/app/src/main/res/values-pa/strings.xml @@ -147,7 +147,6 @@ ਕੀ:\\nRequest:\\nContent ਭਾਸ਼ਾ/ਬੋਲੀ:\\nContent Country:\\nApp ਭਾਸ਼ਾ/ਬੋਲੀ:\\nService:\\nGMT ਸਮਾਂ:\\nPackage:\\nVersion:\\nOS version: ਤੁਹਾਡੀ ਟਿੱਪਣੀ (ਅੰਗਰੇਜ਼ੀ ਵਿਚ): ਵੇਰਵੇ: - ਵੀਡੀਓ preview thumbnail ਵਿਡੀਉ ਚਲਾਓ, ਮਿਆਦ: ਅਪਲੋਡਰ ਦਾ ਅਵਤਾਰ thumbnail ਪਸੰਦ diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 7a776d862..3fce4c91b 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -59,7 +59,6 @@ Co:\\nŻądanie:\\nJęzyk treści:\\nKraj treści:\\nJęzyk aplikacji:\\nUsługa:\\nCzas GMT:\\nPakiet:\\nWersja:\\nWersja systemu: Twój komentarz (po angielsku): Szczegóły: - Miniatura podglądu wideo Odtwarzane wideo, czas trwania: Miniatura awatara przesyłającego Polubienia diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 434993d2b..23682f301 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -70,7 +70,6 @@ Vídeos baixados são salvos aqui Pasta para vídeos baixados Instalar o aplicativo Kore\? - Miniatura de visualização do vídeo Toque na lupa para começar. Threads Por favor, defina uma pasta de download depois nas configurações diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 446c79486..c4a695c3b 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -444,7 +444,6 @@ Tempo após a última atualização antes de a subscrição ser considerada desatualizada - %s Pesquisar Atualizações - Miniatura do vídeo Atualizações Iniciar transferências Guardar termos de pesquisa localmente diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 9e36e1928..907fc080b 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -28,7 +28,6 @@ URL não suportado Idioma padrão para conteúdo Vídeo e áudio - Miniatura do vídeo Reproduzir vídeo, duração: Miniatura do avatar do canal Não gosto diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 83f2a2a78..7def09d68 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -45,7 +45,6 @@ Nu s-a putut analiza site-ul web Conținut indisponibil Nu s-a putut configura meniul de descărcare - Miniatura de previzualizare video Redare video, durata: Miniatura avatarului autorului Au apreciat diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 4710777f9..9db2179ac 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -27,7 +27,6 @@ Язык контента по умолчанию Видео и аудио Внешний вид - Миниатюра видео-превью Воспроизвести видео, длительность: Миниатюра аватара пользователя Не понравилось diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml index daecc4f6c..550ab343a 100644 --- a/app/src/main/res/values-sc/strings.xml +++ b/app/src/main/res/values-sc/strings.xml @@ -180,7 +180,6 @@ Agradessimentos Miniadura de s\'avatar de su carrigadore Riprodui su vìdeu, longària: - Miniadura de anteprima de su vìdeu Detàllios: Su cummentu tuo (in inglesu): Ite est acontèssidu: diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 4d0f904ba..09f6e484a 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -42,7 +42,6 @@ Nepodarilo sa dekódovať URL videa Nemožno analyzovať webovú stránku Obsah nie je dostupný - Náhľad videa Prehrať video, dĺžka: Náhľad avataru uploadera Lajky diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index dbfef543d..8d13d5f62 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -27,7 +27,6 @@ Nepodprt URL Privzeti jezik vsebine Video in zvok - Sličica predogleda videa Predvajaj video, dolžina: Sličica objavitelja Pokaži možnost predvajanja videa preko predstavnega središča Kodi diff --git a/app/src/main/res/values-so/strings.xml b/app/src/main/res/values-so/strings.xml index bf9e7a768..3de28220a 100644 --- a/app/src/main/res/values-so/strings.xml +++ b/app/src/main/res/values-so/strings.xml @@ -259,7 +259,6 @@ Sawirka u saaran soosaareha Daar muuqaalka, intuu socdo: Shayga:\\nCodsiga:\\nLuuqada Shayga:\\nWadanka Shayga:\\nLuuqada Appka:\\nAdeega:\\nWakhtiga oo GMT ah:\\nXidhmada:\\nTirsiga Appka:\\nTirsiga Nooca Barnaamijka: - Galka muuqaal tusaha Faahfaahin: Faalladaada (oo Ingiriis ah): Waxa dhacay: diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml index 10ab40e69..26ab1997f 100644 --- a/app/src/main/res/values-sq/strings.xml +++ b/app/src/main/res/values-sq/strings.xml @@ -313,7 +313,6 @@ Pëlqimet Pamja statike e fotos së ngarkuesit Luaje videon, kohëzgjatja: - Pamjet statike të parapamjes së videove Detajet: Komenti juaj (në Anglisht): Çfarë:\\nKërkesa:\\nGjuha e përmbajtjes:\\nShteti i pëmbajtjes:\\nGjuha e aplikacionit:\\nShërbimi:\\nKoha në GMT:\\nPaketa:\\nVersioni:\\nVersioni i sistemit operativ: diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 66258db25..3fb178acb 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -26,7 +26,6 @@ Прикажи „следећи“ и „слични“ видео Подразумевани језик садржаја Видео и аудио - Сличица видео прегледа Пусти видео, трајање: Аватар пошиљаоца Несвиђања diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index d36248f55..e16ef6e5e 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -107,7 +107,6 @@ Återhämtar sig från spelarfel Rapportera detta fel via e-post Vad:\\nBegäran:\\nInnehållsspråk:\\nInnehållsland:\\nApp-språk:\\nTjänst:\\nGMT-tid:\\nPaket:\\nVersion:\\nOS-version: - Videons miniatyrbild Spela video, längd: Uppladdarens avatar-miniatyrbild Inga resultat diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index d1ae9ee8a..5c1e38214 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -135,7 +135,6 @@ மின்னஞ்சல் மூலம் பிழையை தெரிவிக்கவும் என்ன நடந்தது: உங்கள் கருத்து: - காணொளி முன்தோற்றம் வெறுப்புகள் பின் தொடர்பவர்கள் இல்லை diff --git a/app/src/main/res/values-te/strings.xml b/app/src/main/res/values-te/strings.xml index 5c93dec4b..b009423a0 100644 --- a/app/src/main/res/values-te/strings.xml +++ b/app/src/main/res/values-te/strings.xml @@ -71,7 +71,6 @@ ఏం జరిగింది: మీ వ్యాఖ్య(ఆంగ్లం లో): వివరములు: - వీడియో ప్రివ్యూ సూక్ష్మచిత్రం వీడియోని ప్లే చేయండి, వ్యవధి: ఇష్టాలు మంది ఇష్టపడలేదు diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 01946c321..bf8e56d75 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -163,7 +163,6 @@ เกิดอะไรขึ้น: ความคิดเห็นของคุณ (เป็นภาษาอังกฤษ): รายละเอียด: - ภาพขนาดย่อของตัวอย่างวิดีโอ ภาพของตัวอย่างวิดีโอขนาดย่อ รูปขนาดย่อของผู้อัปโหลด ชอบ diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 3712b2355..fdc96c589 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -90,7 +90,6 @@ Devre dışı Yorumunuz (İngilizce): Ayrıntılar: - Video ön izleme küçük resmi b M B diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index ebb0bccb1..6c5da09b3 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -63,7 +63,6 @@ Збій застосунку/інтерфейсу Ваш коментар (англійською): Деталі: - Зображення відео перед його переглядом Відтворити відео, тривалість: Відео Аудіо diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index 1f427504b..f2c5afc33 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -140,7 +140,6 @@ کیا ہوا:\\nدرخواست:\\nمواد کی زبان:\\nملک:\\nایپ کی زبان:\\nسروس:\\nجی ایم ٹٰ:\\nوقت:\\nپیکیج:\\nورژن:\\nآپریٹنگ سسٹم ورزن: آپ کا تبصرہ (انگریزی میں): تفصیلات: - ویڈیو پیش منظر انگشتی ویڈیو چلائیں، دورانیہ: اپ لوڈر کا اوتار نظرِ انگشتی پسندیدگی diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 341562a62..520040820 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -77,7 +77,6 @@ Cái gì:\\nYêu cầu:\\nNgôn ngữ của nội dung:\\nVùng miền (quốc gia) của nội dung:\\nNgôn ngữ của ứng dụng:\\nDịch vụ:\\nThời gian GMT:\\nTên gói:\\nPhiên bản:\\nPhiên bản hệ điều hành: Nhận xét của bạn (bằng tiếng Anh): Chi tiết: - Hình thu nhỏ xem trước video Xem video, thời lượng: Hình thu nhỏ của avatar người tải lên Lượt thích diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index f6318df0b..9fec7c065 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -155,7 +155,6 @@ 详情:\\n请求:\\n内容语言:\\n服务:\\nGMT时间:\\n包:\\n版本:\\n操作系统版本: 您的注释(请用英文): 详细信息: - 视频预览缩略图 播放视频,时长: 视频上传者的头像缩略图 字节 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index f69a42dbd..05c867993 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -31,7 +31,6 @@ 外觀 背景播放 網絡問題 - 影片預覽縮圖 影片預覽縮圖 上載者的個人頭像縮圖 讚好 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 4ef11b8c7..b6bd8a096 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -34,7 +34,6 @@ 外觀 背景播放中 網路錯誤 - 影片預覽縮圖 播放影片,持續時間: 發佈者的個人頭像縮圖 喜歡 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 61abeccce..9f254b069 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -261,7 +261,6 @@ Your comment (in English): Details: - Video preview thumbnail Play video, duration: Uploader\'s avatar thumbnail Likes From 0f834972842879de7ef78c88ebda30ffec05ee6f Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Fri, 7 Jan 2022 21:24:01 -0500 Subject: [PATCH 13/30] Move untranslatable strings to a donottranslate file --- app/src/main/res/values/donottranslate.xml | 28 ++++++++++++++++++++++ app/src/main/res/values/settings_keys.xml | 2 +- app/src/main/res/values/strings.xml | 27 --------------------- 3 files changed, 29 insertions(+), 28 deletions(-) create mode 100644 app/src/main/res/values/donottranslate.xml diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml new file mode 100644 index 000000000..43647ceba --- /dev/null +++ b/app/src/main/res/values/donottranslate.xml @@ -0,0 +1,28 @@ + + + https://f-droid.org/repository/browse/?fdfilter=vlc&fdid=org.videolan.vlc + RSS + org.xbmc.kore + https://joinpeertube.org/instances#instances-list + newpipe + newpipeAppUpdate + newpipeHash + newpipeErrorReport + Guru Meditation. + @string/no_videos + @string/no_comments + 100+ + + MD5 + SHA-1 + reCAPTCHA + https://github.com/TeamNewPipe/NewPipe + https://newpipe.net/donate + https://newpipe.net/ + https://newpipe.net/legal/privacy/ + %1$s/%2$s + YouTube + SoundCloud + @string/app_name + LeakCanary + diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index b6f76fce2..20998a90d 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -1219,7 +1219,7 @@ limit_mobile_data_usage limit_data_usage_none - + @string/limit_data_usage_none_key @string/limit_data_usage_none_key 1080p60 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9f254b069..ba7f18ce8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -7,7 +7,6 @@ Install Cancel OK - https://f-droid.org/repository/browse/?fdfilter=vlc&fdid=org.videolan.vlc Open in browser Mark as watched Open in popup mode @@ -23,7 +22,6 @@ Use external video player Removes audio at some resolutions Use external audio player - RSS Subscribe Subscribed Unsubscribe @@ -49,7 +47,6 @@ Only some devices can play 2K/4K videos Play with Kodi Install missing Kore app? - org.xbmc.kore Show \"Play with Kodi\" option Display an option to play a video via Kodi media center Crash the player @@ -132,7 +129,6 @@ PeerTube instances Select your favorite PeerTube instances Find the instances you like on %s - https://joinpeertube.org/instances#instances-list Add instance Enter instance URL Could not validate instance @@ -180,16 +176,12 @@ Always Just Once File - newpipe NewPipe notification Notifications for NewPipe\'s player - newpipeAppUpdate App update notification Notifications for new NewPipe versions - newpipeHash Video hash notification Notifications for video hashing progress - newpipeErrorReport Error report notification Notifications to report errors [Unknown] @@ -248,7 +240,6 @@ NewPipe encountered an error, tap to report An error occurred, see the notification Sorry, that should not have happened. - Guru Meditation. Report this error via e-mail Copy formatted report Report on GitHub @@ -269,8 +260,6 @@ Related items Description No results - @string/no_videos - @string/no_comments Nothing here but crickets Drag to reorder Video @@ -305,8 +294,6 @@ No videos 100+ videos ∞ videos - 100+ - %s video %s videos @@ -334,11 +321,7 @@ No download folder set yet, choose the default download folder now This permission is needed to\nopen in popup mode 1 item deleted. - - MD5 - SHA-1 - reCAPTCHA reCAPTCHA challenge Press \"Done\" when solved reCAPTCHA challenge requested @@ -361,18 +344,14 @@ Libre lightweight streaming on Android. Contribute Whether you have ideas of; translation, design changes, code cleaning, or real heavy code changes—help is always welcome. The more is done the better it gets! - https://github.com/TeamNewPipe/NewPipe View on GitHub Donate NewPipe is developed by volunteers spending their free time bringing you the best user experience. Give back to help developers make NewPipe even better while they enjoy a cup of coffee. - https://newpipe.net/donate Give back Website Visit the NewPipe Website for more info and news. - https://newpipe.net/ NewPipe\'s Privacy Policy The NewPipe project takes your privacy very seriously. Therefore, the app does not collect any data without your consent.\nNewPipe\'s privacy policy explains in detail what data is sent and stored when you send a crash report. - https://newpipe.net/legal/privacy/ Read privacy policy NewPipe\'s License NewPipe is copyleft libre software: You can use, study share and improve it at will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. @@ -412,7 +391,6 @@ Recently added Most liked Conferences - %1$s/%2$s Play queue Remove @@ -429,10 +407,7 @@ Open Drawer Close Drawer - YouTube - SoundCloud - @string/app_name Preferred \'open\' action Default action when opening content — %s Video player @@ -467,7 +442,6 @@ Captions Modify player caption text scale and background styles. Requires app restart to take effect - LeakCanary Memory leak monitoring may cause the app to become unresponsive when heap dumping Show memory leaks Report out-of-lifecycle errors @@ -512,7 +486,6 @@ No limit Limit resolution when using mobile data - @string/limit_data_usage_none_key @string/limit_data_usage_none_description 1080p60 From 45d8fef00c6e65a0ee83c0ff9c4cfc871eeaeb99 Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Fri, 7 Jan 2022 21:24:25 -0500 Subject: [PATCH 14/30] Update F-Droid VLC link --- app/src/main/res/values/donottranslate.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml index 43647ceba..92fd5f397 100644 --- a/app/src/main/res/values/donottranslate.xml +++ b/app/src/main/res/values/donottranslate.xml @@ -1,6 +1,6 @@ - https://f-droid.org/repository/browse/?fdfilter=vlc&fdid=org.videolan.vlc + https://f-droid.org/packages/org.videolan.vlc/ RSS org.xbmc.kore https://joinpeertube.org/instances#instances-list @@ -17,7 +17,7 @@ SHA-1 reCAPTCHA https://github.com/TeamNewPipe/NewPipe - https://newpipe.net/donate + https://newpipe.net/donate/ https://newpipe.net/ https://newpipe.net/legal/privacy/ %1$s/%2$s From 7268e04361c60efdded9d54a8f0ece1e2ed20c55 Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Fri, 7 Jan 2022 21:26:51 -0500 Subject: [PATCH 15/30] Remove redundant XML attributes in settings_keys --- app/src/main/res/values/settings_keys.xml | 414 +++++++++++----------- 1 file changed, 207 insertions(+), 207 deletions(-) diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index 20998a90d..07d98c069 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -1,42 +1,42 @@ - last_used_preferences_version + last_used_preferences_version - + @string/youtube @string/soundcloud - service - @string/youtube + service + @string/youtube - saved_tabs_key + saved_tabs_key - download_path - download_path_audio + download_path + download_path_audio - use_external_video_player - use_external_audio_player + use_external_video_player + use_external_audio_player - volume_gesture_control - brightness_gesture_control - resume_on_audio_focus_gain - popup_remember_size_pos_key - use_inexact_seek_key - auto_queue_key - screen_brightness_key - screen_brightness_timestamp_key - clear_queue_confirmation_key + volume_gesture_control + brightness_gesture_control + resume_on_audio_focus_gain + popup_remember_size_pos_key + use_inexact_seek_key + auto_queue_key + screen_brightness_key + screen_brightness_timestamp_key + clear_queue_confirmation_key - popup_saved_width - popup_saved_x - popup_saved_y + popup_saved_width + popup_saved_x + popup_saved_y - seek_duration - 10000 - + seek_duration + 10000 + 5 seconds @@ -46,7 +46,7 @@ 25 seconds 30 seconds - + 5000 10000 15000 @@ -55,63 +55,63 @@ 30000 - minimize_on_exit_key - @string/minimize_on_exit_background_key - minimize_on_exit_none_key - minimize_on_exit_background_key - minimize_on_exit_popup_key - + minimize_on_exit_key + @string/minimize_on_exit_background_key + minimize_on_exit_none_key + minimize_on_exit_background_key + minimize_on_exit_popup_key + @string/minimize_on_exit_none_key @string/minimize_on_exit_background_key @string/minimize_on_exit_popup_key - + @string/minimize_on_exit_none_description @string/minimize_on_exit_background_description @string/minimize_on_exit_popup_description - start_main_player_fullscreen_key + start_main_player_fullscreen_key - autoplay_key - @string/autoplay_wifi_key - autoplay_always_key - autoplay_wifi_key - autoplay_never_key - + autoplay_key + @string/autoplay_wifi_key + autoplay_always_key + autoplay_wifi_key + autoplay_never_key + @string/autoplay_always_key @string/autoplay_wifi_key @string/autoplay_never_key - + @string/always @string/wifi_only @string/never - seekbar_preview_thumbnail_key - seekbar_preview_thumbnail_high_quality - seekbar_preview_thumbnail_low_quality - seekbar_preview_thumbnail_none - + seekbar_preview_thumbnail_key + seekbar_preview_thumbnail_high_quality + seekbar_preview_thumbnail_low_quality + seekbar_preview_thumbnail_none + @string/seekbar_preview_thumbnail_high_quality @string/seekbar_preview_thumbnail_low_quality @string/seekbar_preview_thumbnail_none - + @string/high_quality_larger @string/low_quality_smaller @string/dont_show - default_resolution - 720p60 - show_higher_resolutions - default_popup_resolution - 480p - best_resolution + default_resolution + 720p60 + show_higher_resolutions + default_popup_resolution + 480p + best_resolution - + @string/best_resolution_key 1080p60 1080p @@ -122,7 +122,7 @@ 240p 144p - + @string/best_resolution 1080p60 1080p @@ -134,144 +134,144 @@ 144p - scale_to_square_image_in_notifications + scale_to_square_image_in_notifications - notification_slot_0_key - notification_slot_1_key - notification_slot_2_key - notification_slot_3_key - notification_slot_4_key + notification_slot_0_key + notification_slot_1_key + notification_slot_2_key + notification_slot_3_key + notification_slot_4_key - notification_slot_compact_0_key - notification_slot_compact_1_key - notification_slot_compact_2_key + notification_slot_compact_0_key + notification_slot_compact_1_key + notification_slot_compact_2_key - notification_colorize_key + notification_colorize_key - video_mp4 - video_webm - video_3gp - default_video_format - @string/video_mp4_key - + video_mp4 + video_webm + video_3gp + default_video_format + @string/video_mp4_key + MPEG-4 WebM 3GP - + @string/video_mp4_key @string/video_webm_key @string/video_3gp_key - default_audio_format - @string/audio_m4a_key - audio_m4a - audio_webm - + default_audio_format + @string/audio_m4a_key + audio_m4a + audio_webm + M4A WebM - + @string/audio_m4a_key @string/audio_webm_key - last_resize_mode + last_resize_mode - debug_pref_screen_key - allow_heap_dumping_key - show_memory_leaks_key - allow_disposed_exceptions_key - show_original_time_ago_key - disable_media_tunneling_key - show_image_indicators_key - show_crash_the_player_key - crash_the_app_key - show_error_snackbar_key - create_error_notification_key + debug_pref_screen_key + allow_heap_dumping_key + show_memory_leaks_key + allow_disposed_exceptions_key + show_original_time_ago_key + disable_media_tunneling_key + show_image_indicators_key + show_crash_the_player_key + crash_the_app_key + show_error_snackbar_key + create_error_notification_key - theme - night_theme - light_theme - dark_theme - black_theme - auto_device_theme - @string/auto_device_theme_key - @string/dark_theme_key - + theme + night_theme + light_theme + dark_theme + black_theme + auto_device_theme + @string/auto_device_theme_key + @string/dark_theme_key + @string/light_theme_key @string/dark_theme_key @string/black_theme_key @string/auto_device_theme_key - + @string/light_theme_title @string/dark_theme_title @string/black_theme_title @string/auto_device_theme_title - + @string/dark_theme_key @string/black_theme_key - + @string/dark_theme_title @string/black_theme_title - caption_settings_key - caption_user_set_key + caption_settings_key + caption_user_set_key - show_search_suggestions - show_local_search_suggestions - show_remote_search_suggestions - + show_search_suggestions + show_local_search_suggestions + show_remote_search_suggestions + @string/show_local_search_suggestions_key @string/show_remote_search_suggestions_key - + @string/local_search_suggestions @string/remote_search_suggestions - show_play_with_kodi - show_comments - show_next_video - show_description - show_meta_info - stream_info_selected_tab - show_hold_to_append - content_language - peertube_instance_setup - peertube_selected_instance - peertube_instance_list - content_country - show_age_restricted_content - youtube_restricted_mode_enabled - enable_search_history - enable_watch_history - main_page_content - enable_playback_resume - enable_playback_state_lists - playback_unhook_key - playback_speed_key - playback_pitch_key - playback_skip_silence_key + show_play_with_kodi + show_comments + show_next_video + show_description + show_meta_info + stream_info_selected_tab + show_hold_to_append + content_language + peertube_instance_setup + peertube_selected_instance + peertube_instance_list + content_country + show_age_restricted_content + youtube_restricted_mode_enabled + enable_search_history + enable_watch_history + main_page_content + enable_playback_resume + enable_playback_state_lists + playback_unhook_key + playback_speed_key + playback_pitch_key + playback_skip_silence_key - app_language_key + app_language_key - feed_update_threshold_key - 300 - feed_show_played_items + feed_update_threshold_key + 300 + feed_show_played_items - show_thumbnail_key + show_thumbnail_key - + @string/feed_update_threshold_option_always_update 5 minutes 15 minutes @@ -281,7 +281,7 @@ 1 day - + 0 300 900 @@ -290,53 +290,53 @@ 43200 86400 - feed_use_dedicated_fetch_method + feed_use_dedicated_fetch_method - import_export_data_path - import_data - export_data + import_export_data_path + import_data + export_data - clear_cookie + clear_cookie - download_thumbnail_key + download_thumbnail_key - cache_wipe_key - clear_play_history - clear_playback_states - clear_search_history + cache_wipe_key + clear_play_history + clear_playback_states + clear_search_history - @string/last_download_type_video_key - last_dl_type_video - last_dl_type_audio - last_dl_type_subtitle + @string/last_download_type_video_key + last_dl_type_video + last_dl_type_audio + last_dl_type_subtitle - downloads_storage_ask - storage_use_saf + downloads_storage_ask + storage_use_saf - file_rename_charset - file_replacement_character - _ + file_rename_charset + file_replacement_character + _ - CHARSET_LETTERS_AND_DIGITS - CHARSET_MOST_SPECIAL + CHARSET_LETTERS_AND_DIGITS + CHARSET_MOST_SPECIAL - + @string/charset_letters_and_digits_value @string/charset_most_special_value - + @string/charset_letters_and_digits @string/charset_most_special_characters - @string/charset_most_special_value + @string/charset_most_special_value - downloads_max_retry - 3 - + downloads_max_retry + 3 + @string/minimize_on_exit_none_description 1 2 @@ -348,25 +348,25 @@ 15 - cross_network_downloads - downloads_queue_limit + cross_network_downloads + downloads_queue_limit - default_download_threads + default_download_threads - preferred_open_action_key - @string/always_ask_open_action_key - preferred_open_action_last_selected + preferred_open_action_key + @string/always_ask_open_action_key + preferred_open_action_last_selected - show_info - video_player - background_player - popup_player - download - add_to_playlist - always_ask_player + show_info + video_player + background_player + popup_player + download + add_to_playlist + always_ask_player - + @string/show_info @string/video_player @string/background_player @@ -375,7 +375,7 @@ @string/add_to_playlist @string/always_ask_open_action - + @string/show_info_key @string/video_player_key @string/background_player_key @@ -386,15 +386,15 @@ - update_app_key + update_app_key manual_update_key - update_pref_screen_key - update_expiry_key + update_pref_screen_key + update_expiry_key - system + system - + @string/default_localization_key af az @@ -473,7 +473,7 @@ ja ko - + @string/systems_language Afrikaans Azərbaycan @@ -554,7 +554,7 @@ - + @string/systems_language Afghanistan Aland Islands @@ -805,7 +805,7 @@ Zimbabwe - + @string/default_localization_key AF AX @@ -1057,7 +1057,7 @@ - + @string/default_localization_key ace ar @@ -1136,7 +1136,7 @@ zh-hk zh-tw - + @string/systems_language Basa Acèh العربية @@ -1217,9 +1217,9 @@ - limit_mobile_data_usage - limit_data_usage_none - @string/limit_data_usage_none_key + limit_mobile_data_usage + limit_data_usage_none + @string/limit_data_usage_none_key @string/limit_data_usage_none_key 1080p60 @@ -1232,40 +1232,40 @@ 144p - list_view_mode - @string/list_view_mode_auto_key + list_view_mode + @string/list_view_mode_auto_key - auto - list - grid + auto + list + grid - + @string/list_view_mode_auto_key @string/list_view_mode_list_key @string/list_view_mode_grid_key - + @string/auto @string/list @string/grid - tablet_mode + tablet_mode - auto - on - off - + auto + on + off + @string/tablet_mode_auto_key @string/tablet_mode_on_key @string/tablet_mode_off_key - + @string/auto @string/on @string/off - recaptcha_cookies_key + recaptcha_cookies_key From 552734faa5db9235727dffa341f4d0aabafad690 Mon Sep 17 00:00:00 2001 From: litetex <40789489+litetex@users.noreply.github.com> Date: Sun, 9 Jan 2022 18:09:47 +0100 Subject: [PATCH 16/30] CI: Upload test-report when an error occurs --- .github/workflows/ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4a707ff0a..6bf49a98a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -73,6 +73,13 @@ jobs: # workaround to emulator bug: https://github.com/ReactiveCircus/android-emulator-runner/issues/160 emulator-build: 7425822 script: ./gradlew connectedCheck --stacktrace + + - name: Upload test report when tests fail # because the printed out stacktrace (console) is too short, see also #7553 + uses: actions/upload-artifact@v2 + if: failure() + with: + name: android-test-report-api${{ matrix.api-level }} + path: app/build/reports/androidTests/connected/** sonar: runs-on: ubuntu-latest From 6672169707f4c775e49ceefc9c5a4eb9ced3f067 Mon Sep 17 00:00:00 2001 From: TiA4f8R <74829229+TiA4f8R@users.noreply.github.com> Date: Sat, 15 Jan 2022 21:19:04 +0100 Subject: [PATCH 17/30] Fix NullPointerException when sharing a playlist which is loading Prevent a NullPointerException by adding a null check for currentInfo when sharing a playlist. --- .../newpipe/fragments/list/playlist/PlaylistFragment.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java index a61cec11d..85c47ec74 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java @@ -268,7 +268,10 @@ public class PlaylistFragment extends BaseListInfoFragment { ShareUtils.openUrlInBrowser(requireContext(), url); break; case R.id.menu_item_share: - ShareUtils.shareText(requireContext(), name, url, currentInfo.getThumbnailUrl()); + if (currentInfo != null) { + ShareUtils.shareText(requireContext(), name, url, + currentInfo.getThumbnailUrl()); + } break; case R.id.menu_item_bookmark: onBookmarkClicked(); From 5b9c28b93bf65d66b53fe645d8fd3e63d4729b8e Mon Sep 17 00:00:00 2001 From: XiangRongLin <41164160+XiangRongLin@users.noreply.github.com> Date: Sun, 16 Jan 2022 09:10:45 +0100 Subject: [PATCH 18/30] Replace JUnit asserts with AssertJ in HistoryRecordManagerTest (#7654) * Replace JUnit asserts with AssertJ in HistoryRecordManagerTest They provide a wider range of assertions, which allow for more detailed error messages. Also convert SearchHistoryEntry to kotlin data class for better error messages, since toString() is implemented. Co-authored-by: Mohammed Anas --- app/build.gradle | 2 + .../local/history/HistoryRecordManagerTest.kt | 52 ++++++------ .../history/model/SearchHistoryEntry.java | 79 ------------------- .../history/model/SearchHistoryEntry.kt | 40 ++++++++++ 4 files changed, 69 insertions(+), 104 deletions(-) delete mode 100644 app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.java create mode 100644 app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.kt diff --git a/app/build.gradle b/app/build.gradle index 0386e7aa2..7bac807a3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -112,6 +112,7 @@ ext { leakCanaryVersion = '2.5' stethoVersion = '1.6.0' mockitoVersion = '4.0.0' + assertJVersion = '3.22.0' } configurations { @@ -290,6 +291,7 @@ dependencies { androidTestImplementation "androidx.test.ext:junit:1.1.3" androidTestImplementation "androidx.test:runner:1.4.0" androidTestImplementation "androidx.room:room-testing:${androidxRoomVersion}" + androidTestImplementation "org.assertj:assertj-core:${assertJVersion}" } static String getGitWorkingBranch() { diff --git a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt index 3f3a038d8..15e88b09e 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt @@ -1,9 +1,9 @@ package org.schabi.newpipe.local.history import androidx.test.core.app.ApplicationProvider +import org.assertj.core.api.Assertions.assertThat import org.junit.After import org.junit.Assert.assertEquals -import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Rule import org.junit.Test @@ -45,10 +45,10 @@ class HistoryRecordManagerTest { // that the number of Lists it returns is exactly 1, we can only check if the first List is // correct. Why on earth has a Flowable been used instead of a Single for getAll()?!? val entities = database.searchHistoryDAO().all.blockingFirst() - assertEquals(1, entities.size) - assertEquals(1, entities[0].id) - assertEquals(0, entities[0].serviceId) - assertEquals("Hello", entities[0].search) + assertThat(entities).hasSize(1) + assertThat(entities[0].id).isEqualTo(1) + assertThat(entities[0].serviceId).isEqualTo(0) + assertThat(entities[0].search).isEqualTo("Hello") } @Test @@ -62,25 +62,25 @@ class HistoryRecordManagerTest { // make sure all 4 were inserted database.searchHistoryDAO().insertAll(entries) - assertEquals(entries.size, database.searchHistoryDAO().all.blockingFirst().size) + assertThat(database.searchHistoryDAO().all.blockingFirst()).hasSameSizeAs(entries) // try to delete only "A" entries, "B" entries should be untouched manager.deleteSearchHistory("A").test().await().assertValue(2) val entities = database.searchHistoryDAO().all.blockingFirst() - assertEquals(2, entities.size) - assertTrue(entries[2].hasEqualValues(entities[0])) - assertTrue(entries[3].hasEqualValues(entities[1])) + assertThat(entities).hasSize(2) + assertThat(entities).usingElementComparator { o1, o2 -> if (o1.hasEqualValues(o2)) 0 else 1 } + .containsExactly(*entries.subList(2, 4).toTypedArray()) // assert that nothing happens if we delete a search query that does exist in the db manager.deleteSearchHistory("A").test().await().assertValue(0) val entities2 = database.searchHistoryDAO().all.blockingFirst() - assertEquals(2, entities2.size) - assertTrue(entries[2].hasEqualValues(entities2[0])) - assertTrue(entries[3].hasEqualValues(entities2[1])) + assertThat(entities2).hasSize(2) + assertThat(entities2).usingElementComparator { o1, o2 -> if (o1.hasEqualValues(o2)) 0 else 1 } + .containsExactly(*entries.subList(2, 4).toTypedArray()) // delete all remaining entries manager.deleteSearchHistory("B").test().await().assertValue(2) - assertEquals(0, database.searchHistoryDAO().all.blockingFirst().size) + assertThat(database.searchHistoryDAO().all.blockingFirst()).isEmpty() } @Test @@ -93,11 +93,11 @@ class HistoryRecordManagerTest { // make sure all 3 were inserted database.searchHistoryDAO().insertAll(entries) - assertEquals(entries.size, database.searchHistoryDAO().all.blockingFirst().size) + assertThat(database.searchHistoryDAO().all.blockingFirst()).hasSameSizeAs(entries) // should remove everything manager.deleteCompleteSearchHistory().test().await().assertValue(entries.size) - assertEquals(0, database.searchHistoryDAO().all.blockingFirst().size) + assertThat(database.searchHistoryDAO().all.blockingFirst()).isEmpty() } @Test @@ -111,11 +111,12 @@ class HistoryRecordManagerTest { // make sure correct number of searches is returned and in correct order val searches = manager.getRelatedSearches("", 6, 4).blockingFirst() - assertEquals(4, searches.size) - assertEquals(RELATED_SEARCHES_ENTRIES[6].search, searches[0]) // A (even if in two places) - assertEquals(RELATED_SEARCHES_ENTRIES[4].search, searches[1]) // B - assertEquals(RELATED_SEARCHES_ENTRIES[5].search, searches[2]) // AA - assertEquals(RELATED_SEARCHES_ENTRIES[2].search, searches[3]) // BA + assertThat(searches).containsExactly( + RELATED_SEARCHES_ENTRIES[6].search, // A (even if in two places) + RELATED_SEARCHES_ENTRIES[4].search, // B + RELATED_SEARCHES_ENTRIES[5].search, // AA + RELATED_SEARCHES_ENTRIES[2].search, // BA + ) } @Test @@ -129,14 +130,15 @@ class HistoryRecordManagerTest { // make sure correct number of searches is returned and in correct order val searches = manager.getRelatedSearches("A", 3, 5).blockingFirst() - assertEquals(3, searches.size) - assertEquals(RELATED_SEARCHES_ENTRIES[6].search, searches[0]) // A (even if in two places) - assertEquals(RELATED_SEARCHES_ENTRIES[5].search, searches[1]) // AA - assertEquals(RELATED_SEARCHES_ENTRIES[1].search, searches[2]) // BA + assertThat(searches).containsExactly( + RELATED_SEARCHES_ENTRIES[6].search, // A (even if in two places) + RELATED_SEARCHES_ENTRIES[5].search, // AA + RELATED_SEARCHES_ENTRIES[1].search, // BA + ) // also make sure that the string comparison is case insensitive val searches2 = manager.getRelatedSearches("a", 3, 5).blockingFirst() - assertEquals(searches, searches2) + assertThat(searches).isEqualTo(searches2) } companion object { diff --git a/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.java b/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.java deleted file mode 100644 index fd4588700..000000000 --- a/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.schabi.newpipe.database.history.model; - -import androidx.room.ColumnInfo; -import androidx.room.Entity; -import androidx.room.Ignore; -import androidx.room.Index; -import androidx.room.PrimaryKey; - -import java.time.OffsetDateTime; - -import static org.schabi.newpipe.database.history.model.SearchHistoryEntry.SEARCH; - -@Entity(tableName = SearchHistoryEntry.TABLE_NAME, - indices = {@Index(value = SEARCH)}) -public class SearchHistoryEntry { - public static final String ID = "id"; - public static final String TABLE_NAME = "search_history"; - public static final String SERVICE_ID = "service_id"; - public static final String CREATION_DATE = "creation_date"; - public static final String SEARCH = "search"; - - @ColumnInfo(name = ID) - @PrimaryKey(autoGenerate = true) - private long id; - - @ColumnInfo(name = CREATION_DATE) - private OffsetDateTime creationDate; - - @ColumnInfo(name = SERVICE_ID) - private int serviceId; - - @ColumnInfo(name = SEARCH) - private String search; - - public SearchHistoryEntry(final OffsetDateTime creationDate, final int serviceId, - final String search) { - this.serviceId = serviceId; - this.creationDate = creationDate; - this.search = search; - } - - public long getId() { - return id; - } - - public void setId(final long id) { - this.id = id; - } - - public OffsetDateTime getCreationDate() { - return creationDate; - } - - public void setCreationDate(final OffsetDateTime creationDate) { - this.creationDate = creationDate; - } - - public int getServiceId() { - return serviceId; - } - - public void setServiceId(final int serviceId) { - this.serviceId = serviceId; - } - - public String getSearch() { - return search; - } - - public void setSearch(final String search) { - this.search = search; - } - - @Ignore - public boolean hasEqualValues(final SearchHistoryEntry otherEntry) { - return getServiceId() == otherEntry.getServiceId() - && getSearch().equals(otherEntry.getSearch()); - } -} diff --git a/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.kt b/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.kt new file mode 100644 index 000000000..13f3cefc2 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.kt @@ -0,0 +1,40 @@ +package org.schabi.newpipe.database.history.model + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.Ignore +import androidx.room.Index +import androidx.room.PrimaryKey +import java.time.OffsetDateTime + +@Entity( + tableName = SearchHistoryEntry.TABLE_NAME, + indices = [Index(value = [SearchHistoryEntry.SEARCH])] +) +data class SearchHistoryEntry( + @field:ColumnInfo(name = CREATION_DATE) var creationDate: OffsetDateTime, + @field:ColumnInfo( + name = SERVICE_ID + ) var serviceId: Int, + @field:ColumnInfo(name = SEARCH) var search: String +) { + @ColumnInfo(name = ID) + @PrimaryKey(autoGenerate = true) + var id: Long = 0 + + @Ignore + fun hasEqualValues(otherEntry: SearchHistoryEntry): Boolean { + return ( + serviceId == otherEntry.serviceId && + search == otherEntry.search + ) + } + + companion object { + const val ID = "id" + const val TABLE_NAME = "search_history" + const val SERVICE_ID = "service_id" + const val CREATION_DATE = "creation_date" + const val SEARCH = "search" + } +} From 41faf70da15dd9b71e8854999b100ffd06e78954 Mon Sep 17 00:00:00 2001 From: litetex <40789489+litetex@users.noreply.github.com> Date: Mon, 17 Jan 2022 20:52:07 +0100 Subject: [PATCH 19/30] Workaround: Set recovery before switching player Quick fix --- .../newpipe/fragments/detail/VideoDetailFragment.java | 8 ++++++++ app/src/main/java/org/schabi/newpipe/player/Player.java | 1 + 2 files changed, 9 insertions(+) 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 25b87ed6f..05630ef79 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 @@ -1098,6 +1098,11 @@ public final class VideoDetailFragment toggleFullscreenIfInFullscreenMode(); + if (isPlayerAvailable()) { + // FIXME Workaround #7427 + player.setRecovery(); + } + if (!useExternalAudioPlayer) { openNormalBackgroundPlayer(append); } else { @@ -1114,6 +1119,9 @@ public final class VideoDetailFragment // See UI changes while remote playQueue changes if (!isPlayerAvailable()) { playerHolder.startService(false, this); + } else { + // FIXME Workaround #7427 + player.setRecovery(); } toggleFullscreenIfInFullscreenMode(); diff --git a/app/src/main/java/org/schabi/newpipe/player/Player.java b/app/src/main/java/org/schabi/newpipe/player/Player.java index c038f5573..81ef25db1 100644 --- a/app/src/main/java/org/schabi/newpipe/player/Player.java +++ b/app/src/main/java/org/schabi/newpipe/player/Player.java @@ -635,6 +635,7 @@ public final class Player implements final boolean isMuted = intent.getBooleanExtra(IS_MUTED, isMuted()); /* + * TODO As seen in #7427 this does not work: * There are 3 situations when playback shouldn't be started from scratch (zero timestamp): * 1. User pressed on a timestamp link and the same video should be rewound to the timestamp * 2. User changed a player from, for example. main to popup, or from audio to main, etc From 402990dd9d4b58fef26bbe9aa5a6f9c587011342 Mon Sep 17 00:00:00 2001 From: mhmdanas Date: Wed, 12 Jan 2022 17:28:51 +0300 Subject: [PATCH 20/30] Fix false warning --- app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt index 5b593bcd7..905290b48 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt @@ -271,7 +271,7 @@ class FeedFragment : BaseStateFragment() { override fun onDestroyView() { // Ensure that all animations are canceled - feedBinding.newItemsLoadedButton?.clearAnimation() + tryGetNewItemsLoadedButton()?.clearAnimation() feedBinding.itemsList.adapter = null _feedBinding = null From 4a7cfd1a6cc63a95140c03a937c9f607303e1a57 Mon Sep 17 00:00:00 2001 From: XiangRongLin <41164160+XiangRongLin@users.noreply.github.com> Date: Tue, 18 Jan 2022 18:36:43 +0100 Subject: [PATCH 21/30] Ensure order of search history entries in tests --- .../newpipe/local/history/HistoryRecordManagerTest.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt index 15e88b09e..1bac3d101 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt @@ -53,11 +53,12 @@ class HistoryRecordManagerTest { @Test fun deleteSearchHistory() { + val now = OffsetDateTime.now() val entries = listOf( - SearchHistoryEntry(OffsetDateTime.now(), 0, "A"), - SearchHistoryEntry(OffsetDateTime.now(), 2, "A"), - SearchHistoryEntry(OffsetDateTime.now(), 1, "B"), - SearchHistoryEntry(OffsetDateTime.now(), 0, "B"), + SearchHistoryEntry(now.minusSeconds(1), 0, "A"), + SearchHistoryEntry(now.minusSeconds(2), 2, "A"), + SearchHistoryEntry(now.minusSeconds(3), 1, "B"), + SearchHistoryEntry(now.minusSeconds(4), 0, "B"), ) // make sure all 4 were inserted From 993c34911a7d8509b2f4e0d978111e29275996c7 Mon Sep 17 00:00:00 2001 From: Stypox Date: Wed, 19 Jan 2022 12:03:42 +0100 Subject: [PATCH 22/30] Add app icon to fastlane metadata For some reason F-Droid decided not to grab it from Android metadata anymore --- fastlane/metadata/android/en-US/images/icon.png | Bin 0 -> 10924 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 fastlane/metadata/android/en-US/images/icon.png diff --git a/fastlane/metadata/android/en-US/images/icon.png b/fastlane/metadata/android/en-US/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..611b8291c86c87d138ecb687281599bd530de5bd GIT binary patch literal 10924 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 Date: Thu, 20 Jan 2022 19:14:47 +0100 Subject: [PATCH 23/30] use constant instead of now --- .../local/history/HistoryRecordManagerTest.kt | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt index 1bac3d101..f27bddea0 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt @@ -12,7 +12,9 @@ import org.schabi.newpipe.database.AppDatabase import org.schabi.newpipe.database.history.model.SearchHistoryEntry import org.schabi.newpipe.testUtil.TestDatabase import org.schabi.newpipe.testUtil.TrampolineSchedulerRule +import java.time.LocalDateTime import java.time.OffsetDateTime +import java.time.ZoneOffset import java.util.concurrent.TimeUnit class HistoryRecordManagerTest { @@ -53,12 +55,11 @@ class HistoryRecordManagerTest { @Test fun deleteSearchHistory() { - val now = OffsetDateTime.now() val entries = listOf( - SearchHistoryEntry(now.minusSeconds(1), 0, "A"), - SearchHistoryEntry(now.minusSeconds(2), 2, "A"), - SearchHistoryEntry(now.minusSeconds(3), 1, "B"), - SearchHistoryEntry(now.minusSeconds(4), 0, "B"), + SearchHistoryEntry(time.minusSeconds(1), 0, "A"), + SearchHistoryEntry(time.minusSeconds(2), 2, "A"), + SearchHistoryEntry(time.minusSeconds(3), 1, "B"), + SearchHistoryEntry(time.minusSeconds(4), 0, "B"), ) // make sure all 4 were inserted @@ -87,9 +88,9 @@ class HistoryRecordManagerTest { @Test fun deleteCompleteSearchHistory() { val entries = listOf( - SearchHistoryEntry(OffsetDateTime.now(), 1, "A"), - SearchHistoryEntry(OffsetDateTime.now(), 2, "B"), - SearchHistoryEntry(OffsetDateTime.now(), 0, "C"), + SearchHistoryEntry(time.minusSeconds(1), 1, "A"), + SearchHistoryEntry(time.minusSeconds(2), 2, "B"), + SearchHistoryEntry(time.minusSeconds(3), 0, "C"), ) // make sure all 3 were inserted @@ -143,14 +144,16 @@ class HistoryRecordManagerTest { } companion object { - val RELATED_SEARCHES_ENTRIES = listOf( - SearchHistoryEntry(OffsetDateTime.now().minusSeconds(7), 2, "AC"), - SearchHistoryEntry(OffsetDateTime.now().minusSeconds(6), 0, "ABC"), - SearchHistoryEntry(OffsetDateTime.now().minusSeconds(5), 1, "BA"), - SearchHistoryEntry(OffsetDateTime.now().minusSeconds(4), 3, "A"), - SearchHistoryEntry(OffsetDateTime.now().minusSeconds(2), 0, "B"), - SearchHistoryEntry(OffsetDateTime.now().minusSeconds(3), 2, "AA"), - SearchHistoryEntry(OffsetDateTime.now().minusSeconds(1), 1, "A"), + private val time = OffsetDateTime.of(LocalDateTime.of(2000, 1, 1, 1, 1), ZoneOffset.UTC) + + private val RELATED_SEARCHES_ENTRIES = listOf( + SearchHistoryEntry(time.minusSeconds(7), 2, "AC"), + SearchHistoryEntry(time.minusSeconds(6), 0, "ABC"), + SearchHistoryEntry(time.minusSeconds(5), 1, "BA"), + SearchHistoryEntry(time.minusSeconds(4), 3, "A"), + SearchHistoryEntry(time.minusSeconds(2), 0, "B"), + SearchHistoryEntry(time.minusSeconds(3), 2, "AA"), + SearchHistoryEntry(time.minusSeconds(1), 1, "A"), ) } } From cd265fc31febeb93319ee4124fa61b3baf9d4ff4 Mon Sep 17 00:00:00 2001 From: XiangRongLin <41164160+XiangRongLin@users.noreply.github.com> Date: Fri, 21 Jan 2022 17:01:11 +0100 Subject: [PATCH 24/30] Make SearchHistoryEntry.kt fields nullable to match java version (#7674) --- .../newpipe/database/history/model/SearchHistoryEntry.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.kt b/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.kt index 13f3cefc2..8cb9a25ca 100644 --- a/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.kt +++ b/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.kt @@ -12,11 +12,11 @@ import java.time.OffsetDateTime indices = [Index(value = [SearchHistoryEntry.SEARCH])] ) data class SearchHistoryEntry( - @field:ColumnInfo(name = CREATION_DATE) var creationDate: OffsetDateTime, + @field:ColumnInfo(name = CREATION_DATE) var creationDate: OffsetDateTime?, @field:ColumnInfo( name = SERVICE_ID ) var serviceId: Int, - @field:ColumnInfo(name = SEARCH) var search: String + @field:ColumnInfo(name = SEARCH) var search: String? ) { @ColumnInfo(name = ID) @PrimaryKey(autoGenerate = true) From f05affa984f4bcbab051825ef525031663c17173 Mon Sep 17 00:00:00 2001 From: akamayu-ouo <71762573+akamayu-ouo@users.noreply.github.com> Date: Sat, 22 Jan 2022 03:56:14 +0800 Subject: [PATCH 25/30] Add traditional Chinese README (#7618) * Add traditional Chinese README --- README.es.md | 2 +- README.ja.md | 2 +- README.ko.md | 2 +- README.md | 2 +- README.pt_BR.md | 2 +- README.ro.md | 2 +- README.so.md | 2 +- README.tr.md | 2 +- README.zh_TW.md | 149 ++++++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 157 insertions(+), 8 deletions(-) create mode 100644 README.zh_TW.md diff --git a/README.es.md b/README.es.md index 72fcc236c..bb579d6cb 100644 --- a/README.es.md +++ b/README.es.md @@ -18,7 +18,7 @@

Sitio WebBlogPreguntas FrecuentesPrensa


-*Lea esto en otros idiomas: [English](README.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).* +*Lea esto en otros idiomas: [English](README.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md), [正體中文](README.zh_TW.md).* AVISO: ESTA ES UNA VERSIÓN BETA, POR LO TANTO, PUEDE ENCONTRAR BUGS. SI ENCUENTRA UNO ABRA UN ISSUE A TRAVÉS DE NUESTRO REPOSITORIO DE GITHUB. diff --git a/README.ja.md b/README.ja.md index 2deab555c..e40ad4332 100644 --- a/README.ja.md +++ b/README.ja.md @@ -17,7 +17,7 @@

ウェブサイトブログFAQニュース


-*他の言語で読む: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md)。* +*他の言語で読む: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md), [正體中文](README.zh_TW.md)。* 注意: これはベータ版のため、バグが発生する可能性があります。もしバグが発生した場合、GitHub のリポジトリで Issue を開いてください。 diff --git a/README.ko.md b/README.ko.md index 47ecd12bd..4daf526a3 100644 --- a/README.ko.md +++ b/README.ko.md @@ -17,7 +17,7 @@

WebsiteBlogFAQPress


-*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).* +*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md), [正體中文](README.zh_TW.md).* 경고: 이 버전은 베타 버전이므로, 버그가 발생할 수도 있습니다. 만약 버그가 발생하였다면, 우리의 GITHUB 저장소에서 ISSUE를 열람하여 주십시오. diff --git a/README.md b/README.md index 492c3247f..ac961eaac 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@

WebsiteBlogFAQPress


-*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).* +*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md), [正體中文](README.zh_TW.md).* WARNING: THIS IS A BETA VERSION, THEREFORE YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE VIA OUR GITHUB REPOSITORY. diff --git a/README.pt_BR.md b/README.pt_BR.md index b1b70bcd6..36e44b103 100644 --- a/README.pt_BR.md +++ b/README.pt_BR.md @@ -18,7 +18,7 @@

SiteBlogFAQPress


-*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).* +*Read this in other languages: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md), [正體中文](README.zh_TW.md).* AVISO: ESTA É UMA VERSÃO BETA, PORTANTO, VOCÊ PODE ENCONTRAR BUGS. ENCONTROU ALGUM, ABRA UM ISSUE ATRAVÉS DO NOSSO REPOSITÓRIO GITHUB. diff --git a/README.ro.md b/README.ro.md index b40015a11..b52339871 100644 --- a/README.ro.md +++ b/README.ro.md @@ -17,7 +17,7 @@

WebsiteBlogFAQPresă


-*Citiţi în alte limbi: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).* +*Citiţi în alte limbi: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md), [正體中文](README.zh_TW.md).* Atenţionare: ACEASTA ESTE O VERSIUNE BETA, AŞA CĂ S-AR PUTE SĂ ÎNTÂLNIŢI ERORI. DACĂ SE ÎNTÂMPLĂ ACEST LUCRU, DESCHIDEŢI UN ISSUE PRIN REPSITORY-UL NOSTRU GITHUB. diff --git a/README.so.md b/README.so.md index 78cd65075..1195b9488 100644 --- a/README.so.md +++ b/README.so.md @@ -17,7 +17,7 @@

Website-kaMaqaaladaSu'aalaha Aalaa La-iswaydiiyoWarbaahinta


-*Ku akhri luuqad kale: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).* +*Ku akhri luuqad kale: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md), [正體中文](README.zh_TW.md).* DIGNIIN: MIDKAN, NOOCA APP-KA EE HADDA WALI TIJAABO AYUU KU JIRAA, SIDAA DARTEED CILLADO AYAAD LA KULMI KARTAA. HADAAD LA KULANTO, KA FUR ARIN SHARAXAYA QAYBTANADA ARRIMAHA EE GITHUB-KA. diff --git a/README.tr.md b/README.tr.md index 1fa39d600..a0d231cf8 100644 --- a/README.tr.md +++ b/README.tr.md @@ -17,7 +17,7 @@

Web sitesiBlogSSSBasın


-*Bu sayfayı diğer dillerde okuyun: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md).* +*Bu sayfayı diğer dillerde okuyun: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md), [正體中文](README.zh_TW.md).* UYARI: BU SÜRÜM BETA SÜRÜMÜDÜR, BU NEDENLE HATALARLA KARŞILAŞABİLİRSİNİZ. HATA BULURSANIZ BU GITHUB DEPOSUNDA BUNU BİLDİRİN. diff --git a/README.zh_TW.md b/README.zh_TW.md new file mode 100644 index 000000000..e4d9d375d --- /dev/null +++ b/README.zh_TW.md @@ -0,0 +1,149 @@ +

+

NewPipe

+

輕巧的 Android 串流前端

+ +

Get it on F-Droid

+ +

+ + + + + + +

+
+

截圖說明功能安裝與更新貢獻捐款授權憑證

+

網站部落格FAQ媒體

+
+ +*其他語言: [English](README.md), [Español](README.es.md), [한국어](README.ko.md), [Soomaali](README.so.md), [Português Brasil](README.pt_BR.md), [日本語](README.ja.md), [Română](README.ro.md), [Türkçe](README.tr.md), [正體中文](README.zh_TW.md)* + +警告:這是測試版本,可能會發生錯誤。如果遇到錯誤,請在我們的 GITHUB REPO 開 ISSUE 回報。 + +將 NEWPIPE 或其任何分支上傳至 GOOGLE PLAY 商店違反了他們的使用者合約。 + + +## 截圖 + +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_01.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_02.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_03.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_04.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_05.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_06.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_07.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_08.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_09.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_10.png) +[](fastlane/metadata/android/en-US/images/tenInchScreenshots/shot_11.png) +[](fastlane/metadata/android/en-US/images/tenInchScreenshots/shot_12.png) + + +## 說明 + +NewPipe 不使用任何 Google 架構的函式庫或 Youtube API。因為只解析網站來取得必要資訊,此軟體可以在沒有安裝 Google 服務的裝置上使用。此外,使用 NewPipe 不需要 YouTube 帳號。NewPipe 是個 copyleft 自由軟體。 + + +### 功能 + +* 搜索影片 +* 無須登入 +* 顯示影片的基本資訊 +* 播放 Youtube 影片 +* 收聽 Youtube 影片 +* 彈出模式(懸浮模式) +* 選擇串流播放器來播放影片 +* 下載影片 +* 只下載音訊 +* 在 Kodi 開啟影片 +* 顯示上/下一部影片 +* 搜尋特定語言的影片 +* 播放/屏蔽有年齡限的制內容 +* 顯示頻道資訊 +* 搜索頻道 +* 觀看頻道影片 +* 支援 Orbot/Tor (目前未直接實裝) +* 支援 1080p/2K/4K +* 觀看歷史 +* 訂閱頻道 +* 搜尋歷史 +* 搜索/播放播放清單 +* 將播放清單加入待播清單 +* 將影片加入待播清單 +* 末端播放清單 +* 字幕 +* 支援直播 +* 顯示評論 + +### 支援的網站 + +NewPipe 支援多種服務。我們的[使用文件](https://teamnewpipe.github.io/documentation/)有如何增加新服務與下載器的說明。想新增服務的話,請聯絡我們。目前支援的服務有: + +* YouTube +* SoundCloud \[測試\] +* media.ccc.de \[測試\] +* PeerTube instances \[測試\] +* Bandcamp \[測試\] + + + + + +## 安裝與更新 +你可以用以下的任何方法安裝 NewPipe: +1. 將我們的 repo 加至 F-Droid 再從那邊安裝。詳細的說明在此:https://newpipe.net/FAQ/tutorials/install-add-fdroid-repo/ +2. 從 [Github 發布](https://github.com/TeamNewPipe/NewPipe/releases) 下載 APK 再安裝。 +3. 自 F-Droid 更新。這是取得更新最慢的方式,因為 F-Droid 要檢測到更新、建置 APK 、簽署後才會將更新推送給使用者。 +4. 自己建置 APK。這是取得更新最快的方法,但因為這也比較複雜,所以我們推薦使用其他方法。 + +對一般的使用者我們推薦方法一。使用方法一或二安裝的 APK 互相相容,但都不相容於方法三。因為前兩者的簽章使用相同的(我們的)金鑰,與後者(使用 F-Droid 的金鑰)的不同。使用方法四建置除錯 APK 完全避免了金鑰的問題。簽章金鑰能幫助使用者避免安裝惡意的更新。 + +若你想更換安裝來源(如果 NewPipe 的核心機能壞掉而 F-Droid 又還沒有最新的更新),我們推薦以下的步驟: +1. 在 設定 > 內容 > 匯出資料庫 備份資料以保留歷史、訂閱與播放清單 +2. 移除 NewPipe +3. 從新的來源下載 APK 並安裝 +4. 在 設定 > 內容 > 匯入資料庫 匯入在步驟 1 備份的資料 + + +## 貢獻 +若你有任何想法、翻譯、設計、整理原始碼或大範圍的原始碼改動,我們歡迎任何幫助。 + +若你想參與,請閱讀[貢獻須知(英文)](.github/CONTRIBUTING.md)。 + + +Translation status + + + +## 捐款 +若你喜歡 NewPipe 我們歡迎捐款。你可以使用 bitcoin ,也能在 Bountysource 或 Liberapay 上捐款。 更多關於捐款資訊,請見我們的[網站](https://newpipe.net/donate)。 + + + + + + + + + + + + + + + + + +
BitcoinBitcoin QR code16A9J59ahMRqkLSZjhYj33n9j3fMztFxnh
LiberapayVisit NewPipe at liberapay.comDonate via Liberapay
BountysourceVisit NewPipe at bountysource.comCheck out how many bounties you can earn.
+ +## 隱私權政策 +NewPipe 專案旨在提供私人與匿名的網路媒體使用體驗。 +因此,此軟體不在沒有你的同意下收集任何資料。NewPipe 的隱私權政策說明了送出錯誤報告與在我們的部落格上留言時何種資料會被傳輸或儲存。你可以在[這裡](https://newpipe.net/legal/privacy/)找到此文件。 + + +## 授權條款 +[![GNU GPLv3 Image](https://www.gnu.org/graphics/gplv3-127x51.png)](https://www.gnu.org/licenses/gpl-3.0.en.html) + +NewPipe 是自由軟體:可以任意使用、研究、分享或更改。在自由軟體基金會發布的[ GPL 通用公眾授權條款](第三或更新的版本)下可以重新散佈與/或修改。 + From a6515d5450d4eac4b85b9644ea3dfa9d7140a49c Mon Sep 17 00:00:00 2001 From: litetex <40789489+litetex@users.noreply.github.com> Date: Fri, 21 Jan 2022 22:15:34 +0100 Subject: [PATCH 26/30] Moved timeout control from the tests to the CI pipeline How fast a tests is executed on a shared CI pipeline is not predictable as the build might be throttled because other builds are running. Therefore adding extremely short timeouts inside the tests - where they can't be changed - is a bad idea. Removed them for now. --- .github/workflows/ci.yml | 1 + .../schabi/newpipe/local/history/HistoryRecordManagerTest.kt | 3 --- .../schabi/newpipe/local/playlist/LocalPlaylistManagerTest.kt | 3 --- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6bf49a98a..49e78e997 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,6 +52,7 @@ jobs: test-android: # macos has hardware acceleration. See android-emulator-runner action runs-on: macos-latest + timeout-minutes: 20 strategy: matrix: # api-level 19 is min sdk, but throws errors related to desugaring diff --git a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt index f27bddea0..cfb2efcb6 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt @@ -25,9 +25,6 @@ class HistoryRecordManagerTest { @get:Rule val trampolineScheduler = TrampolineSchedulerRule() - @get:Rule - val timeout = Timeout(1, TimeUnit.SECONDS) - @Before fun setup() { database = TestDatabase.createReplacingNewPipeDatabase() diff --git a/app/src/androidTest/java/org/schabi/newpipe/local/playlist/LocalPlaylistManagerTest.kt b/app/src/androidTest/java/org/schabi/newpipe/local/playlist/LocalPlaylistManagerTest.kt index 249492d8f..ef7609604 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/local/playlist/LocalPlaylistManagerTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/local/playlist/LocalPlaylistManagerTest.kt @@ -20,9 +20,6 @@ class LocalPlaylistManagerTest { @get:Rule val trampolineScheduler = TrampolineSchedulerRule() - @get:Rule - val timeout = Timeout(1, TimeUnit.SECONDS) - @Before fun setup() { database = TestDatabase.createReplacingNewPipeDatabase() From 3d3d94655be767994f6d9bb5caca8c9f964781fc Mon Sep 17 00:00:00 2001 From: litetex <40789489+litetex@users.noreply.github.com> Date: Fri, 21 Jan 2022 22:19:52 +0100 Subject: [PATCH 27/30] Fixed imports --- .../schabi/newpipe/local/history/HistoryRecordManagerTest.kt | 2 -- .../schabi/newpipe/local/playlist/LocalPlaylistManagerTest.kt | 2 -- 2 files changed, 4 deletions(-) diff --git a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt index cfb2efcb6..c32a43b2a 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt @@ -7,7 +7,6 @@ import org.junit.Assert.assertEquals import org.junit.Before import org.junit.Rule import org.junit.Test -import org.junit.rules.Timeout import org.schabi.newpipe.database.AppDatabase import org.schabi.newpipe.database.history.model.SearchHistoryEntry import org.schabi.newpipe.testUtil.TestDatabase @@ -15,7 +14,6 @@ import org.schabi.newpipe.testUtil.TrampolineSchedulerRule import java.time.LocalDateTime import java.time.OffsetDateTime import java.time.ZoneOffset -import java.util.concurrent.TimeUnit class HistoryRecordManagerTest { diff --git a/app/src/androidTest/java/org/schabi/newpipe/local/playlist/LocalPlaylistManagerTest.kt b/app/src/androidTest/java/org/schabi/newpipe/local/playlist/LocalPlaylistManagerTest.kt index ef7609604..c392d8d3d 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/local/playlist/LocalPlaylistManagerTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/local/playlist/LocalPlaylistManagerTest.kt @@ -4,13 +4,11 @@ import org.junit.After import org.junit.Before import org.junit.Rule import org.junit.Test -import org.junit.rules.Timeout import org.schabi.newpipe.database.AppDatabase import org.schabi.newpipe.database.stream.model.StreamEntity import org.schabi.newpipe.extractor.stream.StreamType import org.schabi.newpipe.testUtil.TestDatabase import org.schabi.newpipe.testUtil.TrampolineSchedulerRule -import java.util.concurrent.TimeUnit class LocalPlaylistManagerTest { From 9f503917c20b739f2f61888992da36d51c21817b Mon Sep 17 00:00:00 2001 From: Filip Czaplicki Date: Sat, 22 Jan 2022 18:29:12 +0100 Subject: [PATCH 28/30] Android TV banner with text (#7566) The banner was made by @AioiLight. --- .../res/mipmap-xhdpi/newpipe_tv_banner.png | Bin 1096 -> 1390 bytes assets/android-tv-banner.svg | 70 ++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 assets/android-tv-banner.svg diff --git a/app/src/main/res/mipmap-xhdpi/newpipe_tv_banner.png b/app/src/main/res/mipmap-xhdpi/newpipe_tv_banner.png index 49800ec19d76cdbad5937b67e6c4fffdf962d2ab..b57cb4b998d515dda11a0cbc0738ef9fa6e64ee8 100644 GIT binary patch delta 1364 zcmV-a1*`hV2<{4yD}M_T000XT0n*)m`~Uy|T~JI^Ma>`|+H!K-fPm$i3*=}v%l$6(DVC1f@+j@HF$jB(o2igDt1h+{-4S!hcX9D_m|BJ|oJr}VwNe{Pq zDxhVP?7jizJpLTh!|nemV2yjK#(8k}fOqP=y^5tt3b1?%AZQczt=>D}tou`Xq)8=Q zAp`a*5ICH>TD}n2uRlzir_kRo0HLQ@kS!u5F2~{8wPFd*BW42x_!ttUi2!J|0H`OJ zhni+HW`7q>o16@iEC9hE+XAqzEWflAF&7}^v0R$SfWBD*_BB7hoJj$w(A$M=bQJ(g z8IT%vN)a;v67E?byxv4WYl&h8sL_uTHxFM&Aka~st_Q?Z<%szJ0p5mGX+pzQR3pp) zo$y55lC`#Y7Tt_m0K}t;1Yix3h#3Ll_DlM;^?xn^f}v3|!0J(oRVAhrX!JlzWNVOe z3D|fNXMpU=hHgPIVopGS`#DjXARt;0STO|Qj{K|DKVot#HEl7ac;+PPS76vz~ zP=6FkTFm7-@Z+Ic03_o$AXq$Gj+hhh_L`am5syUcsNq{sA^#D`?#R>4hBFtAtPb3X8iGT*7qJR$ft?1qkH~P%mDWu;POLL_6wxfW#(7%mDau_K^}e4cIe4^0XahZs|K3@qg4b z-|1EYQm)pxBS!pbz}wZ!*_#BUduve(d!+%ivfkG{&pB`Sj)m2L-gQ*-`YICfhXIFZ z_ND=;E{*>hV>Fxfz2XPC^? zKqxsN^oH#CU8Z=_b||m`5c$Q3*?$1(NBnhwJqMhZBenqGX3gxW2G#=>hA-!G#H@gq z5nv@CiLs7m8aE$|<)d!sR#{z%6z(g!(g+|#%m_GK0ruGlaEI@OH-5Nu0B-#M)B|v1 z_8x#6KOa5-H-7kf0B-!g;Q-u_y$9g7b^snNBj5ozYyvm{H?189;AQ;N&P}}&0RX~4 z6pRCY149-6GVu`FT?toS@uJLtpZzfd=8Y<5@ist!5dZ)H000000000000000004Ly W>F34sMKm-30000Nb zbHdo~Q7F_PmG5BDRdL*(c}A7gd0~lp6bilVm8d&kt#MREdR{Ommc?RC&qqsDLs>DA zvFAadKt)v*a&jOLprHZn?cj3J(E%zI$HzEv0=Bj|I)YLO6BE?dVrU3VCbYB=6@{fG zOitq90EdT&h``hoPM-#g1$A}YzmJLv?C*m{Lr4f1479XhZVs!f*xJIgXD~O%ix=44 zMOqr@bc~N9AOJx@5DKBKjnPpU8$(|oWo1xP!{y5e4aM{4n3#aSKf1awFo3u?^!CER z0XsWrYQo8rFf+sQG6(|w{cv@~$Ov?F;N%3k94;;x9)_VI78kL$1`7+wWROT87K6jV z#s*ea5FCuYJ`4`R+8SP7*xrUn1P>38BrGlA=LZc9JbVaEP3Y>Pxfw5C!pI2D&gkyO z^fU?!@#G24ox}P%W@q8+3o9#xhoh(nK0ZryT0ezC%jdA)i7n!;N#1&#yO53LQc&Td;p{9^uh3cHPz`}hvdt%)N>2Hu2Iia)M! z$U8ZWW#Yh=WPQbSj&~P>smvMuFG_tP<2!TbKb0Nves2+aPWw#q-rvk%)-L=KFx z$uFZ_tEF%Ag}Djj-#mHp&DJELVo~f&7)M+Sb5ymlf zdAXSZ{-REycv#c-=@kR6V@XPWnXcSi%gk;{G*S%hvKMkw$UQCPzdCX4 zv>%R4WIxK|zSl6pUwyy$CAHZRMT&cTz6(*J*!%SNOEF|;mF3)eeW;@vGg;@LAl`t= zIFyOm6e@oxz{i*uP>^jY-L|OArYgO4rY$Z3b%F-4#Ue(+e4O$F^Z%ld9vw}R&n-?_Qjbi+0yIX)Yrd7 a + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 49b16493488d87e79fc7296bcc5af1fee0bbdfb7 Mon Sep 17 00:00:00 2001 From: litetex <40789489+litetex@users.noreply.github.com> Date: Mon, 3 Jan 2022 15:00:30 +0100 Subject: [PATCH 29/30] Revert "Merge pull request #7568 from vhouriet/vhouriet_feature_already-playing-in-backgroud" This reverts commit ee19ea66b3f4f182f78634c2d791dab6cab77257, reversing changes made to 6b490ee547879033ec3e7d9ca3433f35babbfa7b. --- .../org/schabi/newpipe/util/NavigationHelper.java | 12 ++++-------- app/src/main/res/values/strings.xml | 1 - 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java index 2a3f3c2dd..c01e051b0 100644 --- a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java @@ -168,14 +168,10 @@ public final class NavigationHelper { public static void playOnBackgroundPlayer(final Context context, final PlayQueue queue, final boolean resumePlayback) { - Toast.makeText( - context, - PlayerHolder.getInstance().getType() == PlayerType.AUDIO - ? R.string.background_player_already_playing_toast - : R.string.background_player_playing_toast, - Toast.LENGTH_SHORT) - .show(); - + if (PlayerHolder.getInstance().getType() != MainPlayer.PlayerType.AUDIO) { + Toast.makeText(context, R.string.background_player_playing_toast, Toast.LENGTH_SHORT) + .show(); + } final Intent intent = getPlayerIntent(context, MainPlayer.class, queue, resumePlayback); intent.putExtra(Player.PLAYER_TYPE, MainPlayer.PlayerType.AUDIO.ordinal()); ContextCompat.startForegroundService(context, intent); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ba7f18ce8..ffddf94b0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -143,7 +143,6 @@ Updates Notification Playing in background - Already playing in background Playing in popup mode Content Show age restricted content From e127db6fa66d71b69b81458e2663289a9106a11d Mon Sep 17 00:00:00 2001 From: litetex <40789489+litetex@users.noreply.github.com> Date: Sun, 23 Jan 2022 15:33:59 +0100 Subject: [PATCH 30/30] Simplified toast showing behavior after feedback from the review --- .../org/schabi/newpipe/util/NavigationHelper.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java index c01e051b0..22e0a2dd0 100644 --- a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java @@ -157,9 +157,8 @@ public final class NavigationHelper { return; } - if (PlayerHolder.getInstance().getType() != PlayerType.POPUP) { - Toast.makeText(context, R.string.popup_playing_toast, Toast.LENGTH_SHORT).show(); - } + Toast.makeText(context, R.string.popup_playing_toast, Toast.LENGTH_SHORT).show(); + final Intent intent = getPlayerIntent(context, MainPlayer.class, queue, resumePlayback); intent.putExtra(Player.PLAYER_TYPE, MainPlayer.PlayerType.POPUP.ordinal()); ContextCompat.startForegroundService(context, intent); @@ -168,10 +167,9 @@ public final class NavigationHelper { public static void playOnBackgroundPlayer(final Context context, final PlayQueue queue, final boolean resumePlayback) { - if (PlayerHolder.getInstance().getType() != MainPlayer.PlayerType.AUDIO) { - Toast.makeText(context, R.string.background_player_playing_toast, Toast.LENGTH_SHORT) - .show(); - } + Toast.makeText(context, R.string.background_player_playing_toast, Toast.LENGTH_SHORT) + .show(); + final Intent intent = getPlayerIntent(context, MainPlayer.class, queue, resumePlayback); intent.putExtra(Player.PLAYER_TYPE, MainPlayer.PlayerType.AUDIO.ordinal()); ContextCompat.startForegroundService(context, intent);