From a68823491c4195cd26ed73da61882ba0379ef7f0 Mon Sep 17 00:00:00 2001 From: Somethingweirdhere Date: Thu, 28 Jun 2018 20:37:05 +0200 Subject: [PATCH 001/181] Delete on long press --- .../holder/ChannelMiniInfoItemHolder.java | 7 ++ .../subscription/SubscriptionFragment.java | 88 ++++++++++++++++++- app/src/main/res/values/strings.xml | 1 + 3 files changed, 95 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelMiniInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelMiniInfoItemHolder.java index 643886da8..ca783833a 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelMiniInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelMiniInfoItemHolder.java @@ -47,6 +47,13 @@ public class ChannelMiniInfoItemHolder extends InfoItemHolder { itemBuilder.getOnChannelSelectedListener().selected(item); } }); + + itemView.setOnLongClickListener(view -> { + if (itemBuilder.getOnChannelSelectedListener() != null) { + itemBuilder.getOnChannelSelectedListener().held(item); + } + return true; + }); } protected String getDetailLine(final ChannelInfoItem item) { diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java index 5f6ea42ee..f31e0a7c3 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java @@ -1,8 +1,11 @@ package org.schabi.newpipe.local.subscription; +import android.annotation.SuppressLint; import android.app.Activity; +import android.app.AlertDialog; import android.content.BroadcastReceiver; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Color; @@ -17,6 +20,7 @@ import android.support.v4.content.LocalBroadcastManager; import android.support.v7.app.ActionBar; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -30,18 +34,24 @@ import com.nononsenseapps.filepicker.Utils; import org.schabi.newpipe.R; import org.schabi.newpipe.database.subscription.SubscriptionEntity; +import org.schabi.newpipe.download.DownloadDialog; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.StreamingService; +import org.schabi.newpipe.extractor.channel.ChannelInfo; import org.schabi.newpipe.extractor.channel.ChannelInfoItem; import org.schabi.newpipe.extractor.exceptions.ExtractionException; +import org.schabi.newpipe.extractor.stream.StreamInfo; +import org.schabi.newpipe.extractor.stream.VideoStream; import org.schabi.newpipe.extractor.subscription.SubscriptionExtractor; import org.schabi.newpipe.fragments.BaseStateFragment; import org.schabi.newpipe.info_list.InfoListAdapter; import org.schabi.newpipe.report.UserAction; import org.schabi.newpipe.local.subscription.services.SubscriptionsExportService; import org.schabi.newpipe.local.subscription.services.SubscriptionsImportService; +import org.schabi.newpipe.util.ExtractorHelper; import org.schabi.newpipe.util.FilePickerActivityHelper; +import org.schabi.newpipe.util.ListHelper; import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.OnClickGesture; import org.schabi.newpipe.util.ServiceHelper; @@ -55,12 +65,17 @@ import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Locale; +import java.util.concurrent.TimeUnit; import icepick.State; +import io.reactivex.Observable; import io.reactivex.Observer; +import io.reactivex.Single; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.Disposable; +import io.reactivex.functions.Consumer; +import io.reactivex.functions.Function; import io.reactivex.schedulers.Schedulers; import static org.schabi.newpipe.local.subscription.services.SubscriptionsImportService.KEY_MODE; @@ -316,12 +331,17 @@ public class SubscriptionFragment extends BaseStateFragment() { - @Override + public void selected(ChannelInfoItem selectedItem) { // Requires the parent fragment to find holder for fragment replacement NavigationHelper.openChannelFragment(getParentFragment().getFragmentManager(), selectedItem.getServiceId(), selectedItem.getUrl(), selectedItem.getName()); } + + public void held(ChannelInfoItem selectedItem) { + showLongTapDialog(selectedItem); + } + }); //noinspection ConstantConditions @@ -330,6 +350,72 @@ public class SubscriptionFragment extends BaseStateFragment importExportOptions.switchState()); } + private void showLongTapDialog(ChannelInfoItem selectedItem) { + final Context context = getContext(); + final Activity activity = getActivity(); + if (context == null || context.getResources() == null || getActivity() == null) return; + + final String[] commands = new String[]{ + context.getResources().getString(R.string.share), + context.getResources().getString(R.string.unsubscribe) + }; + + final DialogInterface.OnClickListener actions = (dialogInterface, i) -> { + switch (i) { + case 0: + shareChannel(selectedItem); + break; + case 1: + deleteChannel(selectedItem); + break; + default: + break; + } + }; + + final View bannerView = View.inflate(activity, R.layout.dialog_title, null); + bannerView.setSelected(true); + + TextView titleView = bannerView.findViewById(R.id.itemTitleView); + titleView.setText(selectedItem.getName()); + + TextView detailsView = bannerView.findViewById(R.id.itemAdditionalDetails); + detailsView.setVisibility(View.GONE); + + new AlertDialog.Builder(activity) + .setCustomTitle(bannerView) + .setItems(commands, actions) + .create() + .show(); + + } + + private void shareChannel (ChannelInfoItem selectedItem) { + shareUrl(selectedItem.getName(), selectedItem.getUrl()); + } + + @SuppressLint("CheckResult") + private void deleteChannel (ChannelInfoItem selectedItem) { + ExtractorHelper.getChannelInfo(selectedItem.getServiceId(), selectedItem.getUrl(), true) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe((@NonNull ChannelInfo result) -> { + mapOnUnsubscribe(SubscriptionEntity.from(result)); + }, (@NonNull Throwable throwable) -> { + + }); + } + + private Function mapOnUnsubscribe(final SubscriptionEntity subscription) { + return new Function() { + @Override + public Object apply(@NonNull Object o) throws Exception { + subscriptionService.subscriptionTable().delete(subscription); + return o; + } + }; + } + private void resetFragment() { if (disposables != null) disposables.clear(); if (infoListAdapter != null) infoListAdapter.clearStreamItemList(); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5ca88bd6f..2faae0175 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -27,6 +27,7 @@ RSS Subscribe Subscribed + Unsubscribe Channel unsubscribed Unable to change subscription Unable to update subscription From 0b7593ad28a1d04d67ef85e6157eca4c83579cc0 Mon Sep 17 00:00:00 2001 From: Somethingweirdhere Date: Thu, 28 Jun 2018 20:43:46 +0200 Subject: [PATCH 002/181] Delete on long press --- .../subscription/SubscriptionFragment.java | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java index f31e0a7c3..4b311a852 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java @@ -8,8 +8,12 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; +import android.content.pm.ResolveInfo; +import android.content.res.Resources; import android.graphics.Color; import android.graphics.PorterDuff; +import android.graphics.drawable.Drawable; +import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.os.Parcelable; @@ -21,6 +25,7 @@ import android.support.v7.app.ActionBar; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; +import android.util.TypedValue; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -78,6 +83,7 @@ import io.reactivex.functions.Consumer; import io.reactivex.functions.Function; import io.reactivex.schedulers.Schedulers; +import static android.content.ContentValues.TAG; import static org.schabi.newpipe.local.subscription.services.SubscriptionsImportService.KEY_MODE; import static org.schabi.newpipe.local.subscription.services.SubscriptionsImportService.KEY_VALUE; import static org.schabi.newpipe.local.subscription.services.SubscriptionsImportService.PREVIOUS_EXPORT_MODE; @@ -400,20 +406,20 @@ public class SubscriptionFragment extends BaseStateFragment { - mapOnUnsubscribe(SubscriptionEntity.from(result)); + new LongOperation().execute(SubscriptionEntity.from(result)); }, (@NonNull Throwable throwable) -> { }); } - private Function mapOnUnsubscribe(final SubscriptionEntity subscription) { - return new Function() { - @Override - public Object apply(@NonNull Object o) throws Exception { - subscriptionService.subscriptionTable().delete(subscription); - return o; - } - }; + + private class LongOperation extends AsyncTask { + + @Override + protected Void doInBackground(SubscriptionEntity... params) { + subscriptionService.subscriptionTable().delete(params[0]); + return null; + } } private void resetFragment() { From 5150c2ee62dba57e954a8ef436118218e0ff50cb Mon Sep 17 00:00:00 2001 From: Somethingweirdhere Date: Thu, 28 Jun 2018 23:56:39 +0200 Subject: [PATCH 003/181] This thing actually works lol --- .../local/subscription/SubscriptionFragment.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java index 4b311a852..8f02158bc 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java @@ -73,6 +73,7 @@ import java.util.Locale; import java.util.concurrent.TimeUnit; import icepick.State; +import io.reactivex.Flowable; import io.reactivex.Observable; import io.reactivex.Observer; import io.reactivex.Single; @@ -406,18 +407,20 @@ public class SubscriptionFragment extends BaseStateFragment { - new LongOperation().execute(SubscriptionEntity.from(result)); + new LongOperation().execute(result); }, (@NonNull Throwable throwable) -> { }); } - private class LongOperation extends AsyncTask { + private class LongOperation extends AsyncTask { @Override - protected Void doInBackground(SubscriptionEntity... params) { - subscriptionService.subscriptionTable().delete(params[0]); + protected Void doInBackground(ChannelInfo... params) { + ChannelInfo info = params[0]; + Flowable> subscription = subscriptionService.subscriptionTable().getSubscription(info.getServiceId(), info.getUrl()); + subscriptionService.subscriptionTable().delete(subscription.blockingFirst()); return null; } } From f2f275512d4ef276e473ffb08b24202fef340c18 Mon Sep 17 00:00:00 2001 From: Somethingweirdhere Date: Fri, 29 Jun 2018 00:39:16 +0200 Subject: [PATCH 004/181] It looks good now --- .../subscription/SubscriptionFragment.java | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java index 8f02158bc..16f203923 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java @@ -6,6 +6,7 @@ import android.app.AlertDialog; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; +import android.content.Entity; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ResolveInfo; @@ -76,6 +77,7 @@ import icepick.State; import io.reactivex.Flowable; import io.reactivex.Observable; import io.reactivex.Observer; +import io.reactivex.Scheduler; import io.reactivex.Single; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; @@ -405,26 +407,13 @@ public class SubscriptionFragment extends BaseStateFragment { - new LongOperation().execute(result); - }, (@NonNull Throwable throwable) -> { - + List toDelete = subscriptionService.subscriptionTable().getSubscription(result.getServiceId(), result.getUrl()).blockingFirst(); + subscriptionService.subscriptionTable().delete(toDelete); }); } - - private class LongOperation extends AsyncTask { - - @Override - protected Void doInBackground(ChannelInfo... params) { - ChannelInfo info = params[0]; - Flowable> subscription = subscriptionService.subscriptionTable().getSubscription(info.getServiceId(), info.getUrl()); - subscriptionService.subscriptionTable().delete(subscription.blockingFirst()); - return null; - } - } - private void resetFragment() { if (disposables != null) disposables.clear(); if (infoListAdapter != null) infoListAdapter.clearStreamItemList(); From b9ea7ce066189b21b94268ed9ae33b9c222f4385 Mon Sep 17 00:00:00 2001 From: Somethingweirdhere Date: Fri, 29 Jun 2018 00:39:44 +0200 Subject: [PATCH 005/181] Code looking nicer --- .../newpipe/local/subscription/SubscriptionFragment.java | 4 +++- .../main/java/org/schabi/newpipe/util/ExtractorHelper.java | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java index 16f203923..4c4242055 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java @@ -409,7 +409,9 @@ public class SubscriptionFragment extends BaseStateFragment { - List toDelete = subscriptionService.subscriptionTable().getSubscription(result.getServiceId(), result.getUrl()).blockingFirst(); + List toDelete = subscriptionService.subscriptionTable() + .getSubscription(result.getServiceId(), result.getUrl()) + .blockingFirst(); subscriptionService.subscriptionTable().delete(toDelete); }); } diff --git a/app/src/main/java/org/schabi/newpipe/util/ExtractorHelper.java b/app/src/main/java/org/schabi/newpipe/util/ExtractorHelper.java index 1897589c6..e248ed993 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ExtractorHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/ExtractorHelper.java @@ -32,6 +32,7 @@ import org.schabi.newpipe.extractor.Info; import org.schabi.newpipe.extractor.ListExtractor.InfoItemsPage; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.channel.ChannelInfo; +import org.schabi.newpipe.extractor.channel.ChannelInfoItem; import org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.exceptions.ReCaptchaException; From 181a14ce5958149af308872dfc66a826caea2da1 Mon Sep 17 00:00:00 2001 From: Somethingweirdhere Date: Sat, 30 Jun 2018 02:20:01 +0200 Subject: [PATCH 006/181] Disposable now is cleaned properly --- .../newpipe/local/subscription/SubscriptionFragment.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java index 4c4242055..c0e24b53f 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java @@ -405,6 +405,7 @@ public class SubscriptionFragment extends BaseStateFragment Date: Sat, 30 Jun 2018 02:42:47 +0200 Subject: [PATCH 007/181] Added unsubscription toast Added error handling Corrected threads --- .../subscription/SubscriptionFragment.java | 63 +++++++++++-------- 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java index c0e24b53f..5a9f34cd9 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java @@ -6,15 +6,10 @@ import android.app.AlertDialog; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; -import android.content.Entity; import android.content.Intent; import android.content.IntentFilter; -import android.content.pm.ResolveInfo; -import android.content.res.Resources; import android.graphics.Color; import android.graphics.PorterDuff; -import android.graphics.drawable.Drawable; -import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.os.Parcelable; @@ -26,7 +21,6 @@ import android.support.v7.app.ActionBar; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; -import android.util.TypedValue; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -40,24 +34,20 @@ import com.nononsenseapps.filepicker.Utils; import org.schabi.newpipe.R; import org.schabi.newpipe.database.subscription.SubscriptionEntity; -import org.schabi.newpipe.download.DownloadDialog; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.ChannelInfo; import org.schabi.newpipe.extractor.channel.ChannelInfoItem; import org.schabi.newpipe.extractor.exceptions.ExtractionException; -import org.schabi.newpipe.extractor.stream.StreamInfo; -import org.schabi.newpipe.extractor.stream.VideoStream; import org.schabi.newpipe.extractor.subscription.SubscriptionExtractor; import org.schabi.newpipe.fragments.BaseStateFragment; import org.schabi.newpipe.info_list.InfoListAdapter; -import org.schabi.newpipe.report.UserAction; import org.schabi.newpipe.local.subscription.services.SubscriptionsExportService; import org.schabi.newpipe.local.subscription.services.SubscriptionsImportService; +import org.schabi.newpipe.report.UserAction; import org.schabi.newpipe.util.ExtractorHelper; import org.schabi.newpipe.util.FilePickerActivityHelper; -import org.schabi.newpipe.util.ListHelper; import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.OnClickGesture; import org.schabi.newpipe.util.ServiceHelper; @@ -71,22 +61,15 @@ import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Locale; -import java.util.concurrent.TimeUnit; import icepick.State; -import io.reactivex.Flowable; -import io.reactivex.Observable; import io.reactivex.Observer; import io.reactivex.Scheduler; -import io.reactivex.Single; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.Disposable; -import io.reactivex.functions.Consumer; -import io.reactivex.functions.Function; import io.reactivex.schedulers.Schedulers; -import static android.content.ContentValues.TAG; import static org.schabi.newpipe.local.subscription.services.SubscriptionsImportService.KEY_MODE; import static org.schabi.newpipe.local.subscription.services.SubscriptionsImportService.KEY_VALUE; import static org.schabi.newpipe.local.subscription.services.SubscriptionsImportService.PREVIOUS_EXPORT_MODE; @@ -405,16 +388,42 @@ public class SubscriptionFragment extends BaseStateFragment { - List toDelete = subscriptionService.subscriptionTable() - .getSubscription(result.getServiceId(), result.getUrl()) - .blockingFirst(); - subscriptionService.subscriptionTable().delete(toDelete); - })); + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(getUnsubscribeObserver()); + } + + + + private Observer getUnsubscribeObserver() { + return new Observer() { + @Override + public void onSubscribe(Disposable d) { + disposables.add(d); + } + + @Override + public void onNext(ChannelInfo info) { + List toDelete = subscriptionService.subscriptionTable() + .getSubscription(info.getServiceId(), info.getUrl()) + .blockingFirst(); + Log.d(TAG, "onNext: test"); + + Scheduler io = Schedulers.io(); + io.scheduleDirect(() -> subscriptionService.subscriptionTable().delete(toDelete)); + } + + @Override + public void onError(Throwable exception) { + SubscriptionFragment.this.onError(exception); + } + + @Override + public void onComplete() { + Toast.makeText(activity, getString(R.string.channel_unsubscribed), Toast.LENGTH_SHORT).show(); + } + }; } private void resetFragment() { From 342b2ae5dc0107eae77a25ccd798c625df71ad8e Mon Sep 17 00:00:00 2001 From: MadderRagax Date: Tue, 31 Jul 2018 22:53:44 +0000 Subject: [PATCH 008/181] Translated using Weblate (Swedish) Currently translated at 100.0% (383 of 383 strings) --- app/src/main/res/values-sv/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 7b75ea7e7..0a73d2fd8 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -25,9 +25,9 @@ Genväg för att lagra nerladdade videor i Fyll i genvägen som videor ska laddas ner till - Plats för att ladda ner ljud till - Plats för att lagra nerladdat ljud i - Ange nerladdningsplats för ljudfiler + Genväg för nerladdning av ljud + Genväg för att lagra nerladdade ljudfiler i + Fyll i genvägen som ljudfiler ska laddas ner till Automatiskt spelar en video upp när NewPipe öppnas av en annan app Standardupplösning @@ -120,7 +120,7 @@ Vad är nytt - Autospela + Spela upp automatiskt Sök historik Spara sökfrågor lokalt Historik & Cacheminne @@ -327,7 +327,7 @@ Ta bort hela visningshistoriken. Visningshistorik borttagen. Rensa sökhistorik - Tar bort historiken för söka nyckelord. + Tar bort historiken för sökta nyckelord. Ta bort hela sökhistoriken. Sökhistorik borttagen. Externa spelare stöder inte dessa typer av länkar From 4779a993d3771aec847756eda7a0cb96374386b0 Mon Sep 17 00:00:00 2001 From: YeeVonAngg Date: Wed, 1 Aug 2018 11:31:36 +0000 Subject: [PATCH 009/181] Translated using Weblate (Chinese (Mandarin)) Currently translated at 27.4% (105 of 383 strings) --- app/src/main/res/values-cmn/strings.xml | 53 ++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-cmn/strings.xml b/app/src/main/res/values-cmn/strings.xml index 4016a40c8..852ac7f1e 100644 --- a/app/src/main/res/values-cmn/strings.xml +++ b/app/src/main/res/values-cmn/strings.xml @@ -69,4 +69,55 @@ 清理照片内存 最小化弹出播放器 - +清楚观看历史 + 已删除搜索历史 + 错误 + 网络错误 + 举报错误 + 没有结果 + 开始 + 暂停 + 播放 + 创建 + 删除 + 删除所有 + 新任务 + 好 +\n + + 错误 +\n + 服务器无法支持 + 文件已存在 + NewPipe 下载中 + 请稍等… + 字母与数字 + 最特别的字符 + + 这个文件里没有已下载应用程式 + + 关于NewPipe + 设置 + 关于 + 第三方执照 + 打开网页 + 删除书签 + + 请问你要删除这个列表吗? + 已创建播放列表 + 已加入播放列表 + 步骤 + 重置 + + 为了遵守欧洲通用数据保护法规(GDPR,我们请你注意NewPipe的隐私政策.请仔细阅读. +\n你必须接受它才能将错误报告发送给我们. + 接受 + 拒绝 + + 没有限制 + 使用移动数据时的解析度限制 + 最小化应用程序切换 + 从主视频播放器切换到其他应用程序时的操作 - %s + 没有 + 最小化背景播放器 + From 1313f685dae00c4adb4e7b1fc463b1ece2c5be8d Mon Sep 17 00:00:00 2001 From: YeeVonAngg Date: Wed, 1 Aug 2018 11:24:18 +0000 Subject: [PATCH 010/181] Translated using Weblate (Chinese (Simplified)) Currently translated at 97.1% (372 of 383 strings) --- app/src/main/res/values-zh-rCN/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 8d4c99aaa..5118b42d6 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -461,4 +461,7 @@ 不限制 使用移动数据时限制分辨率 + 更多频道 + 更多频道 + 用户们 From 6d8fdf46d54cd8bbc8eefd6a3fb92cb973085c82 Mon Sep 17 00:00:00 2001 From: ssantos Date: Thu, 2 Aug 2018 20:53:30 +0000 Subject: [PATCH 011/181] Translated using Weblate (German) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-de/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 1ffdb4992..871a2535c 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -493,4 +493,8 @@ Schritt Zurücksetzen + Kanäle + Wiedergabelisten + Titel + Nutzer From a9cf42499872b7643f43db251afed0847adbd00a Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 11:03:30 +0000 Subject: [PATCH 012/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 8f0b81026..8f1727581 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -20,7 +20,7 @@ Разрешение по умолчанию Воспроизвести в Kodi Приложение Kore не найдено. Установить его? - Показать \"Воспроизвести в Kodi\" + \"Воспроизвести в Kodi\" Показать опцию воспроизведения видео через медиацентр Kodi Аудио Формат аудио по умолчанию @@ -128,7 +128,7 @@ Только некоторые устройства могут воспроизводить видео в 2K/4K Формат видео по умолчанию Чёрная - Запоминать размер и положение всплывающего окна + Восстановить всплывающее окно Изменять яркость и громкость жестами Всплывающее окно Воспроизведение во всплывающем окне @@ -162,7 +162,7 @@  тыс. Разрешение всплывающего окна Запоминать размер и положение всплывающего окна - Подсказки поиска + Варианты поиска Лучшее разрешение Старый встроенный плеер на Mediaframework @@ -200,7 +200,7 @@ Хранить поисковые запросы локально История и кэш Запоминать просмотренные видео - Возобновлять при возврате фокуса + Возобновлять при фокусе Возобновлять воспроизведение после перерывов (например, телефонных звонков) @@ -279,7 +279,7 @@ Удалить Вы подписаны Подписка отменена - Подсказка \"Зажмите, чтобы добавить\" + \"Зажмите, чтобы добавить\" Показать подсказку при нажатии \"В окне\" или \"В фоне\" на странице сведений о видео [Неизвестно] @@ -334,7 +334,7 @@ Быстрый неточный поиск Неточный поиск позволяет плееру искать позицию быстрее, но менее точно - Автоматическая очередь следующего стрима + Автовоспроизведение Автоматически добавлять связанные видео, при воспроизведении с последнего видео в неповторяющейся очереди. Отладка Файл @@ -471,7 +471,7 @@ 1 элемент удалён. NewPipe — свободное программное обеспечение: вы можете использовать, изучать и улучшать его по своему усмотрению. В частности, вы можете распространять и/или изменять его в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation, либо версии 3, либо (по вашему выбору) любой более поздней версии. - Предпочтительное действие \"Открыть\" + При открытии контента Хотите импортировать настройки? Политика конфиденциальности NewPipe @@ -484,7 +484,7 @@ Отклонить Без ограничений - Предельное разрешение в мобильной сети + Предел разрешения в мобильной сети Каналы Плейлисты Дорожки @@ -493,7 +493,7 @@ Шаг Сброс - Сворачивать при переключении приложений + При сворачивании приложения При переключении воспроизведения видео со стандартного плеера на другое приложение — %s Ничего не делать Свернуть в режим фонового воспроизведения From d93e22719082bda31d031d3f577404dbab6e9daf Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 11:24:05 +0000 Subject: [PATCH 013/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 8f1727581..f397cff1c 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -334,8 +334,8 @@ Быстрый неточный поиск Неточный поиск позволяет плееру искать позицию быстрее, но менее точно - Автовоспроизведение - Автоматически добавлять связанные видео, при воспроизведении с последнего видео в неповторяющейся очереди. + Автодополнение очереди + Автоматически добавлять связанные видео, при воспроизведении с последнего видео в неповторяющейся очереди Отладка Файл @@ -461,12 +461,12 @@ Изменить размер и фон титров. Требуется перезапуск приложения для вступления изменений в силу. Очистить историю просмотров - Удалить всю историю просмотров. + История просмотров будет удалена. История просмотров удалена. Очистить историю поиска Удалить историю поисковых запросов. Удалить историю воспроизведённых потоков. - Удалить всю историю поиска. + История поиска будет удалена. История поиска удалена. 1 элемент удалён. From 4cbe842cfac378d99664add32b2b927c5f56e6ea Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 12:01:13 +0000 Subject: [PATCH 014/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f397cff1c..2f6711073 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -342,7 +342,7 @@ Импорт данных Экспорт данных Ваша текущая история и подписки будут перезаписаны - Экспорт истории, подписок и плейлистов. + Экспорт истории, подписок и плейлистов Неверная папка Неверный файл или источник контента Файл не существует или нет разрешения на его чтение или запись From acad468b4a0a894ac42289af0ee72f34427d2bcb Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 12:02:07 +0000 Subject: [PATCH 015/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 2f6711073..5627d898a 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -440,7 +440,7 @@ \n \nПродолжить? Загружать миниатюры - Отключите, чтобы не загружать миниатюры и сэкономить трафик и память. Изменение настройки очистит кэш изображений в памяти и на диске. + Отключите, чтобы не загружать миниатюры и сэкономить трафик и память. Изменение настройки очистит кэш изображений в памяти и на диске Кэш изображений очищен Очистить кэш метаданных Кэш метаданных очищен From d43cee29f22027d1ffbad850a10e1c9f9aae1d98 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 12:03:05 +0000 Subject: [PATCH 016/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 5627d898a..f16ebfe97 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -458,7 +458,7 @@ Титры Приложение для воспроизведения этого файла не установлено - Изменить размер и фон титров. Требуется перезапуск приложения для вступления изменений в силу. + Изменить размер и фон титров. Требуется перезапуск приложения для вступления изменений в силу Очистить историю просмотров История просмотров будет удалена. From b86aa28d6aa29184705ed3d0c418641118b9d339 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 12:03:46 +0000 Subject: [PATCH 017/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f16ebfe97..6fe2f9ce5 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -464,7 +464,7 @@ История просмотров будет удалена. История просмотров удалена. Очистить историю поиска - Удалить историю поисковых запросов. + Удалить историю поисковых запросов Удалить историю воспроизведённых потоков. История поиска будет удалена. История поиска удалена. From 407330653835a5979a31a99b164e7ac606de125e Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 12:04:42 +0000 Subject: [PATCH 018/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 6fe2f9ce5..a50336e13 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -465,7 +465,7 @@ История просмотров удалена. Очистить историю поиска Удалить историю поисковых запросов - Удалить историю воспроизведённых потоков. + Удалить историю воспроизведённых потоков История поиска будет удалена. История поиска удалена. 1 элемент удалён. From 3d8683597949d2efc51af4036332dd9acd5d2757 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 12:05:33 +0000 Subject: [PATCH 019/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index a50336e13..bf81740c3 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -461,12 +461,12 @@ Изменить размер и фон титров. Требуется перезапуск приложения для вступления изменений в силу Очистить историю просмотров - История просмотров будет удалена. + Вся история просмотров будет удалена. История просмотров удалена. Очистить историю поиска Удалить историю поисковых запросов Удалить историю воспроизведённых потоков - История поиска будет удалена. + Вся история поиска будет удалена. История поиска удалена. 1 элемент удалён. From 7a011d9e751285ea41526e9c1d0ca9ef623ec815 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:18:18 +0000 Subject: [PATCH 020/181] Translated using Weblate (Arabic) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ar/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 79cafbaed..c070dd189 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -309,7 +309,7 @@ استيراد قاعدة البيانات تصدير قاعدة البيانات "سيقوم بالكتابة على سجل التاريخ والاشتراكات الحالية " - تصدير سجل, الاشتراكات وقوائم التشغيل. + تصدير سجل, الاشتراكات وقوائم التشغيل عرض المعلومات إضافة إلى @@ -389,12 +389,12 @@ "معرفك , soundcloud.com/ الخاص بك " إفتراضي -تعطيل إيقاف جميع الصور المصغرة من تحميل البيانات واستخدام الذاكرة وحفظها. سيؤدي التغيير هذا إلى محو-ذاكرة التخزين المؤقت في الذاكرة-وذاكرة على القرص. +تعطيل إيقاف جميع الصور المصغرة من تحميل البيانات واستخدام الذاكرة وحفظها. سيؤدي التغيير هذا إلى محو-ذاكرة التخزين المؤقت في الذاكرة-وذاكرة على القرص امسح البيانات الوصفية المخزنة مؤقتًا إزالة جميع بيانات صفحات الويب المخزنة مؤقتًا تم محو ذاكرة التخزين المؤقت للبيانات الوصفية وضع البث القادم تلقائيا في قائمة الإنتظار - رفض البث المشابه في حال كون البث السابق يعمل في حالة عدم التكرار. + رفض البث المشابه في حال كون البث السابق يعمل في حالة عدم التكرار إضافة صورة مصغرة إلى قائمة التشغيل قائمة التشغيل المخزنة @@ -402,7 +402,7 @@ بدون تسميات توضيحية تسميات توضيحية - تعديل مشغل نص التسمية التوضيحية وأنماط الخلفية. يتطلب إعادة تشغيل التطبيق لتصبح التغييرات سارية المفعول. + تعديل مشغل نص التسمية التوضيحية وأنماط الخلفية. يتطلب إعادة تشغيل التطبيق لتصبح التغييرات سارية المفعول تمكين LeakCanary قد تتسبب مراقبة تسرب الذاكرة في عدم استجابة التطبيق عند تفريغ السجلات @@ -411,11 +411,11 @@ فرض الإبلاغ عن استثناءات Rx غير القابلة للتسليم خارج دورة حياة الجزء أو النشاط بعد التخلص منها محو سجل المشاهدة - احذف محفوظات الفديوهات التي تم تشغيلها. + احذف محفوظات الفديوهات التي تم تشغيلها حذف سجل المشاهدة بالكامل. سجل المشاهدة محذوف. محو سجل البحث - يحذف تاريخ البحث عن الكلمات الرئيسية. + يحذف تاريخ البحث عن الكلمات الرئيسية حذف محفوظات البحث بالكامل. سجل البحث المحذوف. المشغل الخارجي لا يدعم هذه الأنواع من الروابط From 35229f8ae57091f389d9b3418a5319b22c36f4bf Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:19:25 +0000 Subject: [PATCH 021/181] Translated using Weblate (Basque) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-eu/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 8be6aad2d..1dfc8f059 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -328,20 +328,20 @@ Kendu cache-ko wegbuneen datu guztiak Metadatuen cache-a ezabatuta Gehitu ilarara hurrengo jarioa - Gehitu erlazionatutako jario bat azken jarioa jo bitartean errepikapenik gabeko ilara batean. + Gehitu erlazionatutako jario bat azken jarioa jo bitartean errepikapenik gabeko ilara batean Arazketa Fitxategia Inportatu datu-basea Esportatu datu-basea Zure uneko historiala eta harpidetzak gainidatziko ditu - Esportatu historiala, harpidetzak eta erreprodukzio-zerrendak. + Esportatu historiala, harpidetzak eta erreprodukzio-zerrendak Garbitu ikusitakoaren historiala - Jotako jarioen historiala ezabatzen du. + Jotako jarioen historiala ezabatzen du Ezabatu ikusitakoaren historial osoa. Ikusitakoaren historiala ezabatuta. Garbitu bilaketa historiala - Ezabatu bilaketa gakoen historiala. + Ezabatu bilaketa gakoen historiala Ezabatu bilaketen historial osoa. Bilaketen historiala ezabatuta. Direktorio baliogabea @@ -407,7 +407,7 @@ Automatikoki sortuak Azpitituluak - Aldatu azpitituluen testuaren eskala eta atzealdeko estiloa. Aplikazioa berrabiarazi behar da aldaketak aplikatzeko. + Aldatu azpitituluen testuaren eskala eta atzealdeko estiloa. Aplikazioa berrabiarazi behar da aldaketak aplikatzeko Gaitu LeakCanary Memoria galeren monitorizazioa. Aplikazioak agian ez du erantzungo memoriaren aitortza egin bitartean @@ -453,7 +453,7 @@ Ezarpenak ere inportatu nahi dituzu? Bilaketa ez zehatzak posizioak azkarrago baina prezisio gutxiagoz bilatzea ahalbidetzen du - "Desgaitu iruditxoak kargatzea gelditzeko eta datuak eta memoria aurrezteko. Hau aldatzean memoria eta diskoko irudien cache-ak garbituko dira." + "Desgaitu iruditxoak kargatzea gelditzeko eta datuak eta memoria aurrezteko. Hau aldatzean memoria eta diskoko irudien cache-ak garbituko dira" NewPipe Software Librea eta Copyleft da: Nahi eran erabili, ikertu, partekatu eta hobetu dezakezu. Zehazki, elkarbanatzea eta aldatzea Free Software Foundation-ek argitaratutako GNU General Public License-ren 3. bertsioa edo berriagoren baten terminoen arabera egiteko baimena duzu. Behartu aktibitatearen bizitza ziklotik kanpo baztertu eta gero entregatu ezin diren Rx salbuespenen inguruko txostena From ad4799ee60f8bcc3a810f41d37373c960304f691 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:21:57 +0000 Subject: [PATCH 022/181] Translated using Weblate (Dutch) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-nl/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 007b3e232..0a117443d 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -331,7 +331,7 @@ te openen in pop-upmodus Database importeren Database exporteren Dit zal je huidige geschiedenis en abonnementen overschrijven - Exporteer geschiedenis, abonnementen en speellijsten. + Exporteer geschiedenis, abonnementen en speellijsten Export voltooid Import voltooid Geen geldig ZIP-bestand @@ -399,7 +399,7 @@ te openen in pop-upmodus Snelle, minder exact spoelen gebruiken Minder exact spoelen laat de speler sneller posities zoeken met verminderde precisie Volgende stream automatisch in wachtrij plaatsen - Automatisch een gerelateerde stream toekennen bij het afspelen van de laatste stream in een niet-herhalende afspeelwachtlijst. + Automatisch een gerelateerde stream toekennen bij het afspelen van de laatste stream in een niet-herhalende afspeelwachtlijst SYNCHRONISEREN Bestand @@ -441,7 +441,7 @@ te openen in pop-upmodus \n \nWil je doorgaan? Miniatuurvoorbeelden laden - Schakel dit uit om alle miniatuurvoorbeelden niet meer te laden; dit bespaart gegevens en geheugen. Het wijzigen van deze instelling wist het geheugen en de afbeeldingscache. + Schakel dit uit om alle miniatuurvoorbeelden niet meer te laden; dit bespaart gegevens en geheugen. Het wijzigen van deze instelling wist het geheugen en de afbeeldingscache Afbeeldingscache gewist Gecachete metagegevens wissen Alle gecachete webpagina-gegevens wissen @@ -458,16 +458,16 @@ te openen in pop-upmodus Geen streams beschikbaar voor downloaden Bijschriften - Bijschriftgrootte en achtergrondstijlen wijzigen. Vereist een herstart van de app. + Bijschriftgrootte en achtergrondstijlen wijzigen. Vereist een herstart van de app Er is geen app geïnstalleerd die dit bestand kan afspelen Kijkgeschiedenis wissen - Verwijdert de geschiedenis van afgespeelde streams. + Verwijdert de geschiedenis van afgespeelde streams Verwijdert de gehele kijkgeschiedenis. Kijkgeschiedenis verwijderd. Zoekgeschiedenis wissen - Verwijdert de gebruikte zoektermen. + Verwijdert de gebruikte zoektermen Verwijdert de gehele geschiedenis. Zoekgeschiedenis verwijderd. 1 item verwijderd. From 4988b37d6f81bbd63f0af1e407424e1968d1defd Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:22:44 +0000 Subject: [PATCH 023/181] Translated using Weblate (Spanish) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-es/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 57765c659..2c974e935 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -330,7 +330,7 @@ abrir en modo popup Importar base de datos Exportar base de datos Reemplazará su historial actual y sus suscripciones - Exportar historial, suscripciones y listas de reproducción. + Exportar historial, suscripciones y listas de reproducción Exportación completa Importación completa Archivo ZIP no válido @@ -403,7 +403,7 @@ abrir en modo popup Usar búsqueda rápida inexacta La búsqueda inexacta permite al reproductor buscar posiciones más rápido con menor precisión Auto-encolar la siguiente transmisión - Auto-añadir un vídeo relacionado al reproducir el último vídeo en una cola no repetitiva. + Auto-añadir un vídeo relacionado al reproducir el último vídeo en una cola no repetitiva DIRECTO SINCRONIZAR Archivo @@ -445,7 +445,7 @@ abrir en modo popup \n \n¿Desea continuar? Cargar Miniaturas - Descativar todas las miniaturas para evitar que se carguen, guarden datos y usen memoria. Al cambiar esto se borrarán tanto la caché de imágenes en la memoria como en el disco. + Descativar todas las miniaturas para evitar que se carguen, guarden datos y usen memoria. Al cambiar esto se borrarán tanto la caché de imágenes en la memoria como en el disco Caché de imagen limpiado Metadatos eliminados del caché Eliminar todos los datos de la página web en caché @@ -464,14 +464,14 @@ abrir en modo popup No hay ninguna app instalada para reproducir este archivo Subtítulos - Modificar la escala de texto de los subtítulos y los estilos de fondo del reproductor. Requiere el reinicio de la app para que surta efecto. + Modificar la escala de texto de los subtítulos y los estilos de fondo del reproductor. Requiere el reinicio de la app para que surta efecto Borrar historial de reproducciones - Elimina el historial de las transmisiones reproducidas. + Elimina el historial de las transmisiones reproducidas Elimina todo el historial de reproducciones. Historial de reproducciones eliminado. Borrar historial de búsqueda - Elimina el historial de palabras clave de búsqueda. + Elimina el historial de palabras clave de búsqueda Elimina todo el historial de búsqueda. Historial de búsquedas eliminado. 1 elemento eliminado. From 90ba8440a06c0cfe4b7e7f942303e6a4cfe019b9 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:24:25 +0000 Subject: [PATCH 024/181] Translated using Weblate (Catalan) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ca/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 700506bce..5f1dfafa7 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -61,7 +61,7 @@ Importa una base de dades Exporta una base de dades - Exporta l\'historial, les subscripcions i les llistes de reproducció. + Exporta l\'historial, les subscripcions i les llistes de reproducció Error Error de xarxa Vídeo @@ -310,7 +310,7 @@ Toqueu el botó de cerca per començar En algunes resolucions NO hi haurà àudio quan aquesta opció estigui activada Reproductor d\'àudio extern - Desactiveu-ho per evitar que es carreguin les miniatures i estalviar dades i memòria. Si canvieu aquesta opció, s\'esborrarà la memòria cau d\'imatges tant de la memòria com de l\'emmagatzematge. + Desactiveu-ho per evitar que es carreguin les miniatures i estalviar dades i memòria. Si canvieu aquesta opció, s\'esborrarà la memòria cau d\'imatges tant de la memòria com de l\'emmagatzematge Emmagatzema les cerques localment Registra els vídeos visualitzats Reprèn automàticament @@ -390,7 +390,7 @@ Desvincula (pot provocar distorsió) Nightcore Elimina totes les dades de llocs web de la memòria cau - Afegeix a la cua un vídeo relacionat quan es reprodueix l\'últim vídeo en una cua sense repetició. + Afegeix a la cua un vídeo relacionat quan es reprodueix l\'últim vídeo en una cua sense repetició Mostra els missatges d\'ajuda Mostra un missatge d\'ajuda quan el botó de mode en segon pla o emergent estigui premut a la pàgina de detalls d\'un vídeo Què ha passat:\\nPetició:\\nIdioma del contingut:\\nServei:\\nHora GMT:\\nPaquet:\\nVersió:\\nVersió del SO: @@ -425,16 +425,16 @@ No hi ha vídeos que es puguin baixar Subtítols - Modifica la mida del text i el fons dels subtítols. Cal reiniciar l\'aplicació per aplicar els canvis. + Modifica la mida del text i el fons dels subtítols. Cal reiniciar l\'aplicació per aplicar els canvis No s\'ha trobat cap aplicació que pugui reproduir aquest fitxer Esborra l\'historial de reproduccions - Esborra l\'historial dels vídeos que s\'han reproduït. + Esborra l\'historial dels vídeos que s\'han reproduït Esborra tot l\'historial de reproduccions. S\'ha esborrat l\'historial de reproduccions. Esborra l\'historial de cerca - Esborra l\'historial de paraules cercades. + Esborra l\'historial de paraules cercades Esborra tot l\'historial de cerca. S\'ha esborrat l\'historial de cerca. S\'ha esborrat 1 element. From 9034b9a9aef396826dfde705706f1cb049f3c1e1 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:25:38 +0000 Subject: [PATCH 025/181] Translated using Weblate (Chinese (Traditional)) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-zh-rTW/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 1d02fcbae..ba7c66cf5 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -271,7 +271,7 @@ 匯入資料庫 匯出資料庫 將覆蓋您目前的歷史記錄和訂閱 - 匯出歷史記錄、訂閱和播放清單。 + 匯出歷史記錄、訂閱和播放清單 返回 欲了解更多關於 NewPipe 的資訊和新聞,請造訪我們的網站。 首頁內容 @@ -382,7 +382,7 @@ 使用粗略但快速的尋找 粗略尋找讓播放器更快找到影片的進度位置 自動播放隊列中下一部影片 - 在非重複播放佇列中的最後一個串流上開始播放時,自動附上相關串流。 + 在非重複播放佇列中的最後一個串流上開始播放時,自動附上相關串流 同步 檔案 @@ -424,7 +424,7 @@ \n3. 詢問時登入到您的帳號 \n4. 複製您被重新導向到的網址。 載入縮圖 - 停用後,NewPipe將不再載入縮圖,減少數據使用與騰空儲存空間,亦會清除記憶體和磁碟上的縮圖快取。 + 停用後,NewPipe將不再載入縮圖,減少數據使用與騰空儲存空間,亦會清除記憶體和磁碟上的縮圖快取 已清除圖片快取 抹除快取中介資料 移除所有網頁的快取資料 @@ -441,16 +441,16 @@ 沒有可供下載的串流 字幕 - 調整播放器字幕大小與背景樣式。必須重新啟動應用程式才會生效。 + 調整播放器字幕大小與背景樣式。必須重新啟動應用程式才會生效 未安裝可播放此檔案的應用程式 清除觀看歷史 - 刪除播放過的串流歷史。 + 刪除播放過的串流歷史 刪除全部的觀看歷史。 觀看歷史已刪除。 清除觀看歷史 - 刪除搜尋關鍵字的歷史。 + 刪除搜尋關鍵字的歷史 刪除全部的搜尋歷史。 搜尋歷史已刪除。 已刪除 1 個項目。 From 3519d4b219bd5ae80c3821729b98513fb2a92863 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:27:21 +0000 Subject: [PATCH 026/181] Translated using Weblate (German) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-de/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 871a2535c..51b91eb5f 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -329,7 +329,7 @@ Datenbank importieren Datenbank exportieren Wird deinen Verlauf und deine Abos überschreiben - Verlauf, Abos und Wiedergabelisten exportieren. + Verlauf, Abos und Wiedergabelisten exportieren Keine gültige ZIP-Datei Warnung: Nicht alle Dateien konnten importiert werden. Dies wird deine aktuellen Einstellungen überschreiben. @@ -421,9 +421,9 @@ Verknüpfung aufheben (kann zu Verzerrungen führen) Nightcore Standard -Deaktiviere diese Option, um das Laden aller Miniaturansichten zu stoppen und Daten und Speicherverbrauch zu sparen. Wenn du dies änderst, wird sowohl der In-Memory- als auch der On-Disk-Image-Cache gelöscht. +Deaktiviere diese Option, um das Laden aller Miniaturansichten zu stoppen und Daten und Speicherverbrauch zu sparen. Wenn du dies änderst, wird sowohl der In-Memory- als auch der On-Disk-Image-Cache gelöscht Nächsten Stream automatisch einreihen - Automatisches Anhängen eines verwandten Streams beim Abspielen des letzten Streams in einer nicht wiederholten Warteschlange. + Automatisches Anhängen eines verwandten Streams beim Abspielen des letzten Streams in einer nicht wiederholten Warteschlange Hier wird bald etwas stehen ;D @@ -456,16 +456,16 @@ Standardaktion beim Öffnen von Inhalten - %s Untertitel - Ändere Textgröße und Hintergrundstil des Untertitels im Player. Wird erst nach Neustart des App wirksam. + Ändere Textgröße und Hintergrundstil des Untertitels im Player. Wird erst nach Neustart des App wirksam Keine App zum Abspielen dieser Datei installiert Verlauf leeren - Löscht den Verlauf der abgespielten Streams. + Löscht den Verlauf der abgespielten Streams Löscht den ganzen Verlauf. Verlauf gelöscht. Suchverlauf löschen - Lösche Verlauf der Suchschlüsselwörter. + Lösche Verlauf der Suchschlüsselwörter Lösche gesamten Suchverlauf. Suchverlauf gelöscht. 1 Element gelöscht. From 086e9beb59ec35d25921f2382c8a4c879b037555 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:29:20 +0000 Subject: [PATCH 027/181] Translated using Weblate (Turkish) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-tr/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 251eab263..df5f25999 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -326,7 +326,7 @@ Veri tabanını içe aktar Veri tabanını dışa aktar Şu anki geçmişinizi ve aboneliklerinizi geçersiz kılar - Geçmişi, abonelikleri ve oynatma listelerini dışa aktar. + Geçmişi, abonelikleri ve oynatma listelerini dışa aktar Dışa aktarım bitti İçe aktarım bitti Geçerli ZIP dosyası yok @@ -395,7 +395,7 @@ Hızlı isabetsiz konumlama kullan İsabetsiz konumlama, oynatıcının azaltılmış kesinlikle daha hızlı konumlama yapmasını sağlar Sonraki akışı kendiliğinden kuyruğa ekle - Yinelemeyen bir kuyruktaki son akış oynatılırken ilgili bir akışı kendiliğinden sonuna ekle. + Yinelemeyen bir kuyruktaki son akış oynatılırken ilgili bir akışı kendiliğinden sonuna ekle EŞZAMANLA Dosya @@ -437,7 +437,7 @@ \n \nDevam etmek istiyor musunuz? Küçük resimleri yükle - Küçük resimlerin hepsinin yüklenmesini engellemek ve bellek ve veri kullanımını azaltmak için devre dışı bırakın. Bunu değiştirmek, hem bellekteki hem de diskteki resim önbelleğini temizler. + Küçük resimlerin hepsinin yüklenmesini engellemek ve bellek ve veri kullanımını azaltmak için devre dışı bırakın. Bunu değiştirmek, hem bellekteki hem de diskteki resim önbelleğini temizler Resim önbelleği temizlendi Önbelleklenmiş üst veriyi temizle Önbelleklenmiş tüm web sayfası verisini kaldır @@ -454,16 +454,16 @@ İçerik açılırken öntanımlı eylem — %s Ek Açıklamalar - Oynatıcı ek açıklamalar metin boyutunu ve arka plan biçimlerini düzenle. Etki için uygulamayı yeniden başlatmak gerekir. + Oynatıcı ek açıklamalar metin boyutunu ve arka plan biçimlerini düzenle. Etki için uygulamayı yeniden başlatmak gerekir Bu dosyayı oynatmak için kurulan uygulama yok İzleme geçmişini temizle - Oynatılan akışların geçmişini siler. + Oynatılan akışların geçmişini siler Tüm izleme geçmişini sil. İzleme geçmişi silindi. Arama geçmişini temizle - Aranan anahtar sözcüklerin geçmişini siler. + Aranan anahtar sözcüklerin geçmişini siler Tüm arama geçmişini sil. Arama geçmişi silindi. 1 öge silindi. From 321342cf6d914f62a9df3d4f7b25dc8c4e9adbf6 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:30:12 +0000 Subject: [PATCH 028/181] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-pt-rBR/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 7805a8fba..19209941b 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -310,7 +310,7 @@ abrir em modo popup Importar base de dados Exportar base de dados Isso irá sobrescrever seu histórico e inscrições - Exportar histórico, inscrições e listas de reprodução. + Exportar histórico, inscrições e listas de reprodução Exportação completa Importação completa Não há nenhum arquivo ZIP válido @@ -379,7 +379,7 @@ abrir em modo popup Usar índice de indexação rápido porém não preciso Usar índice de indexação inexato Adicionar a próxima stream à fila automaticamente - Auto anexar uma stream relacionada quando a reprodução iniciar na última stream em uma fila não repetitiva. + Auto anexar uma stream relacionada quando a reprodução iniciar na última stream em uma fila não repetitiva Sincronizar Arquivo @@ -427,7 +427,7 @@ abrir em modo popup Cache de metadados foi limpo Controles de Velocidade de Reprodução "Tempo " - Desabilite para para de carregar todas as miniaturas e economizar dados e uso de memória. Alterar esta configuração irá limpar o cache de imagens na memória e em disco. + Desabilite para para de carregar todas as miniaturas e economizar dados e uso de memória. Alterar esta configuração irá limpar o cache de imagens na memória e em disco Passo Desvincular (pode causar distorção) Padrão @@ -439,17 +439,17 @@ abrir em modo popup Abrir gaveta Fechar gaveta Legendas - Modifique o tamanho da legenda e o estilo da tela de fundo. Necessário reiniciar o aplicativo para ter efeito. + Modifique o tamanho da legenda e o estilo da tela de fundo. Necessário reiniciar o aplicativo para ter efeito Night-core Nenhum player instalado para reproduzir este arquivo "Limpar histórico de já assistidos " - Deleta o histórico de videos já reproduzidos. + Deleta o histórico de videos já reproduzidos Deleta todo o histórico de já reproduzidos. Histórico de já assistidos deletado. Limpar histórico de pesquisa - Deleta histórico de palavras chave pesquisadas. + Deleta histórico de palavras chave pesquisadas Deletar todo o histórico de pesquisa. Histórico de pesquisa deletado. 1 item deletado. From 47a1fca32f79c33ee2482a6aca98292ad850a4a5 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:31:02 +0000 Subject: [PATCH 029/181] Translated using Weblate (Ukrainian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-uk/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 582dd35ba..80f8a1d10 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -192,7 +192,7 @@ Імпортувати базу Експортувати базу Це перепише чинну історію та підписання - Експортувати історію, підписання та плейлисти. + Експортувати історію, підписання та плейлисти Неможливо відтворити цей стрим Відновлююсь після помилки програвача Помилкова URL @@ -387,7 +387,7 @@ Використовувати неточне шукання Неточне шукання дозволяє програвачеві рухатися позиціями швидше, проте з меншою точністю Автоматично додати до черги наступний стрим - Автоматично додавати пов\'язаний стрим під час відтворення останнього у неповторювальній черзі. + Автоматично додавати пов\'язаний стрим під час відтворення останнього у неповторювальній черзі СИНХРОНІЗАЦІЯ Теки @@ -429,7 +429,7 @@ \n \nПродовжуватимете? Завантажити ескізи - Відключити аби зупинити завантаження ескізів та заощадити використання ресурсів та пам\'яті. Увімкнення функції призведе до повного вичищення кешу зображень. + Відключити аби зупинити завантаження ескізів та заощадити використання ресурсів та пам\'яті. Увімкнення функції призведе до повного вичищення кешу зображень Кеш зображень стерто Стерти кеш метаданих "Усунути всі кешовані дані веб-сторінки " @@ -446,16 +446,16 @@ Типова дія під час відкриття вмісту — %s Субтитри - Змінення маштабу тексту субтитрів та фонових стилів. Увімкнення функції потребує перезавантаження застосунку. + Змінення маштабу тексту субтитрів та фонових стилів. Увімкнення функції потребує перезавантаження застосунку Не знайдено відповідного застосунку для відтворення цього файла Очистити історію переглядів - Видаляє історію відтворень. + Видаляє історію відтворень Видалити всю історію переглядів. Історію переглядів було видалено. Очистити історію пошуків - Видаляє історію шуканих ключових слів. + Видаляє історію шуканих ключових слів Видалити всю пошукову історію. Пошукову історію було видалено. Видалено один фраґмент. From 01938af65bded7c11f979dc75ff5827db41a2df1 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:31:54 +0000 Subject: [PATCH 030/181] Translated using Weblate (Swedish) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-sv/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 0a73d2fd8..ebd9e934c 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -292,7 +292,7 @@ Använda snabb inexact sökning Ladda miniatyrer - Inaktivera för att stoppa alla miniatyrbilder från att ladda och spara på data och minnesanvändning. Ändring av detta kommer att rensa cache-minnet. + Inaktivera för att stoppa alla miniatyrbilder från att ladda och spara på data och minnesanvändning. Ändring av detta kommer att rensa cache-minnet Bild cacheminnet var rensad Tjänst Debug @@ -308,7 +308,7 @@ Ta bort alla cachade webbsidor Metadata cache rensad "Köa nästa ström automatiskt " - Lägg automatiskt till en relaterad ström när du spelar den sista strömmen i en ej upprepad kö. + Lägg automatiskt till en relaterad ström när du spelar den sista strömmen i en ej upprepad kö Standard innehåll land Kanaler Spellistor @@ -321,13 +321,13 @@ Importera databas Exportera databas Kommer att skriva över din nuvarande historik och prenumerationer - Exportera historik, prenumerationer och spellistor. + Exportera historik, prenumerationer och spellistor Rensa visningshistorik - Tar bort historiken för spelade videoklipp. + Tar bort historiken för spelade videoklipp Ta bort hela visningshistoriken. Visningshistorik borttagen. Rensa sökhistorik - Tar bort historiken för sökta nyckelord. + Tar bort historiken för sökta nyckelord Ta bort hela sökhistoriken. Sökhistorik borttagen. Externa spelare stöder inte dessa typer av länkar @@ -410,7 +410,7 @@ Auto-genererade Textning - Ändra spelaren textskala och bakgrundsstil. Kräver att appen startar om för att träder i kraft. + Ändra spelaren textskala och bakgrundsstil. Kräver att appen startar om för att träder i kraft Aktivera LeakCanary Minnesläcka övervakning kan orsaka att appen inte svarar under heap dumpning From cdb409612495a3abcf5e9a505c5ba8656e88d278 Mon Sep 17 00:00:00 2001 From: PiR Date: Fri, 3 Aug 2018 07:22:16 +0000 Subject: [PATCH 031/181] Translated using Weblate (French) Currently translated at 97,1% (372 of 383 strings) --- app/src/main/res/values-fr/strings.xml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index ede0f0d77..acc85dae9 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -403,7 +403,7 @@ Télécharger le fichier de flux Vidéo suivante en file d\'attente - Ajout automatique d\'un flux connexe lors de la lecture du dernier flux dans une file d\'attente non répétitive. + Ajout automatique d\'un morceau suggéré lors de la lecture du dernier morceau dans une file d\'attente non bouclée. Débogage Remplir Générés automatiquement @@ -448,7 +448,7 @@ Vitesse de lecture Cadence - Unhook (déformations possibles) + Détacher (déformations possibles) Défaut Ouvrir de préférence avec Action par défaut lors de l\'ouverture de contenu - %s @@ -493,8 +493,10 @@ Étape Réinitialiser - Minimiser - Action lors du changement d\'applications depuis le lecteur vidéo + Minimiser lors du changement d\'application + Action lors du changement d\'applications depuis le lecteur vidéo —%s Aucune - Réduire - + Lecture en arrière plan + Mettre en lecteur popup + + From f220f397ae88655014252fba928e5443e9d6b2f8 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:32:46 +0000 Subject: [PATCH 032/181] Translated using Weblate (French) Currently translated at 97,1% (372 of 383 strings) --- app/src/main/res/values-fr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index acc85dae9..e74c948fd 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -384,7 +384,7 @@ Recherche rapide approximative Permettre au lecteur d\'accéder plus rapidement à une position au détriment de la précision Charger miniatures - Désactiver pour arrêter le chargement de toutes les miniatures et sauvegarder les données et l\'utilisation de la mémoire. Modifier cela effacera à la fois le cache d\'image en mémoire et sur disque. + Désactiver pour arrêter le chargement de toutes les miniatures et sauvegarder les données et l\'utilisation de la mémoire. Modifier cela effacera à la fois le cache d\'image en mémoire et sur disque Images en cache effacées Effacer les données en cache Effacer toutes les pages web mises en cache From 50f92269c2f6db7ebcb9ed990942d7aa2e2e9964 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 18:51:07 +0000 Subject: [PATCH 033/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index bf81740c3..c456d5f9f 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -75,7 +75,7 @@ Выберите доступную папку для загрузки - Контент с ограничением по возрасту + Контент 18+ Ошибка Ваш комментарий (English): Не удалось создать папку для загрузки \"%1$s\" @@ -208,7 +208,7 @@ Уведомления для NewPipe в фоне и во всплывающем окне Загрузки - Допустимые символы в именах файлов + Допустимые символы имён файлов Недопустимые символы заменяются на этот Символ для замены @@ -461,12 +461,12 @@ Изменить размер и фон титров. Требуется перезапуск приложения для вступления изменений в силу Очистить историю просмотров - Вся история просмотров будет удалена. + Вся история просмотров будет удалена История просмотров удалена. Очистить историю поиска Удалить историю поисковых запросов Удалить историю воспроизведённых потоков - Вся история поиска будет удалена. + Вся история поиска будет удалена История поиска удалена. 1 элемент удалён. From 2f641ffb137119212bff5e033533decd3290caa1 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 19:38:38 +0000 Subject: [PATCH 034/181] Translated using Weblate (Arabic) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ar/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index c070dd189..1009e8e87 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -412,11 +412,11 @@ محو سجل المشاهدة احذف محفوظات الفديوهات التي تم تشغيلها - حذف سجل المشاهدة بالكامل. + حذف سجل المشاهدة بالكامل سجل المشاهدة محذوف. محو سجل البحث يحذف تاريخ البحث عن الكلمات الرئيسية - حذف محفوظات البحث بالكامل. + حذف محفوظات البحث بالكامل سجل البحث المحذوف. المشغل الخارجي لا يدعم هذه الأنواع من الروابط مصدر ملف / مصدر غير صالح From 67f70ce2cc00692478b6df1f1191ff2a3c07d998 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 19:39:02 +0000 Subject: [PATCH 035/181] Translated using Weblate (Basque) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-eu/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 1dfc8f059..9f9fceb8b 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -338,11 +338,11 @@ Esportatu historiala, harpidetzak eta erreprodukzio-zerrendak Garbitu ikusitakoaren historiala Jotako jarioen historiala ezabatzen du - Ezabatu ikusitakoaren historial osoa. + Ezabatu ikusitakoaren historial osoa Ikusitakoaren historiala ezabatuta. Garbitu bilaketa historiala Ezabatu bilaketa gakoen historiala - Ezabatu bilaketen historial osoa. + Ezabatu bilaketen historial osoa Bilaketen historiala ezabatuta. Direktorio baliogabea Fitxategi edo edukiaren iturri baliogabea From 4575ee805a616f190a9a13730b3f7e30236c3e10 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 19:39:58 +0000 Subject: [PATCH 036/181] Translated using Weblate (Dutch) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-nl/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 0a117443d..358e76fde 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -464,11 +464,11 @@ te openen in pop-upmodus Kijkgeschiedenis wissen Verwijdert de geschiedenis van afgespeelde streams - Verwijdert de gehele kijkgeschiedenis. + Verwijdert de gehele kijkgeschiedenis Kijkgeschiedenis verwijderd. Zoekgeschiedenis wissen Verwijdert de gebruikte zoektermen - Verwijdert de gehele geschiedenis. + Verwijdert de gehele geschiedenis Zoekgeschiedenis verwijderd. 1 item verwijderd. From 0cfac137b7d4aff03049f2b451941bad95015372 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 19:41:12 +0000 Subject: [PATCH 037/181] Translated using Weblate (Spanish) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-es/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 2c974e935..b2aca1df6 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -468,11 +468,11 @@ abrir en modo popup Borrar historial de reproducciones Elimina el historial de las transmisiones reproducidas - Elimina todo el historial de reproducciones. + Elimina todo el historial de reproducciones Historial de reproducciones eliminado. Borrar historial de búsqueda Elimina el historial de palabras clave de búsqueda - Elimina todo el historial de búsqueda. + Elimina todo el historial de búsqueda Historial de búsquedas eliminado. 1 elemento eliminado. From d9dfcc04bfa7e31051305f717ca85c392a1507bd Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 19:42:09 +0000 Subject: [PATCH 038/181] Translated using Weblate (Catalan) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ca/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 5f1dfafa7..eeea5dffe 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -431,11 +431,11 @@ Esborra l\'historial de reproduccions Esborra l\'historial dels vídeos que s\'han reproduït - Esborra tot l\'historial de reproduccions. + Esborra tot l\'historial de reproduccions S\'ha esborrat l\'historial de reproduccions. Esborra l\'historial de cerca Esborra l\'historial de paraules cercades - Esborra tot l\'historial de cerca. + Esborra tot l\'historial de cerca S\'ha esborrat l\'historial de cerca. S\'ha esborrat 1 element. From 439a814133de701d4df8c48693773a83a7094f5c Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 19:42:34 +0000 Subject: [PATCH 039/181] Translated using Weblate (Chinese (Traditional)) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-zh-rTW/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index ba7c66cf5..2e6610381 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -447,11 +447,11 @@ 清除觀看歷史 刪除播放過的串流歷史 - 刪除全部的觀看歷史。 + 刪除全部的觀看歷史 觀看歷史已刪除。 清除觀看歷史 刪除搜尋關鍵字的歷史 - 刪除全部的搜尋歷史。 + 刪除全部的搜尋歷史 搜尋歷史已刪除。 已刪除 1 個項目。 From fb43a5265c9a190482c8cce071889fd95b5e5f50 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 19:44:05 +0000 Subject: [PATCH 040/181] Translated using Weblate (German) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-de/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 51b91eb5f..c58ab68e9 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -462,11 +462,11 @@ Verlauf leeren Löscht den Verlauf der abgespielten Streams - Löscht den ganzen Verlauf. + Löscht den ganzen Verlauf Verlauf gelöscht. Suchverlauf löschen Lösche Verlauf der Suchschlüsselwörter - Lösche gesamten Suchverlauf. + Lösche gesamten Suchverlauf Suchverlauf gelöscht. 1 Element gelöscht. From 7e7cfb79a402963d432b5f74acbb509d1036d79a Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 19:45:41 +0000 Subject: [PATCH 041/181] Translated using Weblate (Ukrainian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-uk/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 80f8a1d10..313448323 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -452,11 +452,11 @@ Очистити історію переглядів Видаляє історію відтворень - Видалити всю історію переглядів. + Видалити всю історію переглядів Історію переглядів було видалено. Очистити історію пошуків Видаляє історію шуканих ключових слів - Видалити всю пошукову історію. + Видалити всю пошукову історію Пошукову історію було видалено. Видалено один фраґмент. From a87f6a0791b2b8a578c8e2c2707fdcf05db42744 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 19:46:10 +0000 Subject: [PATCH 042/181] Translated using Weblate (Swedish) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-sv/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index ebd9e934c..675514f17 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -324,11 +324,11 @@ Exportera historik, prenumerationer och spellistor Rensa visningshistorik Tar bort historiken för spelade videoklipp - Ta bort hela visningshistoriken. + Ta bort hela visningshistoriken Visningshistorik borttagen. Rensa sökhistorik Tar bort historiken för sökta nyckelord - Ta bort hela sökhistoriken. + Ta bort hela sökhistoriken Sökhistorik borttagen. Externa spelare stöder inte dessa typer av länkar Ogiltig URL From d2235da06a809b3a87488e0a29e87ab8b17e2ebc Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 19:49:50 +0000 Subject: [PATCH 043/181] Translated using Weblate (Turkish) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-tr/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index df5f25999..15fbc4130 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -460,11 +460,11 @@ İzleme geçmişini temizle Oynatılan akışların geçmişini siler - Tüm izleme geçmişini sil. + Tüm izleme geçmişini sil İzleme geçmişi silindi. Arama geçmişini temizle Aranan anahtar sözcüklerin geçmişini siler - Tüm arama geçmişini sil. + Tüm arama geçmişini sil Arama geçmişi silindi. 1 öge silindi. From 5b8393ff89ae2620cd9541eec639d16a1c978bbc Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 19:51:48 +0000 Subject: [PATCH 044/181] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-pt-rBR/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 19209941b..3ec466bba 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -446,11 +446,11 @@ abrir em modo popup "Limpar histórico de já assistidos " Deleta o histórico de videos já reproduzidos - Deleta todo o histórico de já reproduzidos. + Deleta todo o histórico de já reproduzidos Histórico de já assistidos deletado. Limpar histórico de pesquisa Deleta histórico de palavras chave pesquisadas - Deletar todo o histórico de pesquisa. + Deletar todo o histórico de pesquisa Histórico de pesquisa deletado. 1 item deletado. From b0126afbcfed297f94574abb86ed16702cb5097b Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:38:34 +0000 Subject: [PATCH 045/181] Translated using Weblate (Estonian) Currently translated at 91.6% (351 of 383 strings) --- app/src/main/res/values-et/strings.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 2ee7fb37d..7f08efd38 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -69,13 +69,13 @@ Kasuta ebatäpset kerimist Ebatäpne kerimine lubab pleieril otsida asukohta kiiremini täpsuse arvel Laadi pisipildid - Keela, peatamaks pisipiltide laadimine ja vähenda andme- ja mälukasutust. Selle muutmine puhastab nii sisemälu kui piltide vahemälu andmekandjal. + Keela, peatamaks pisipiltide laadimine ja vähenda andme- ja mälukasutust. Selle muutmine puhastab nii sisemälu kui piltide vahemälu andmekandjal Pildid kustutati vahemälust Kustuta metaandmed vahemälust Kustuta veebilehtede andmed vahemälust Metaandmed kustutati vahemälust Järgmine voog automaatselt järjekorda - Lisa seotud voog automaatselt, kui esitusel on viimane voog mittekorduvast järjekorrast. + Lisa seotud voog automaatselt, kui esitusel on viimane voog mittekorduvast järjekorrast Pleieri juhtimise viiped Luba viiped helitugevuse ja ereduse juhtimiseks Kuva soovitused @@ -143,14 +143,14 @@ Impordi andmebaas Ekspordi andmebaas Alistab praeguse ajaloo ja tellimused - Ekspordi ajalugu, tellimused ja pleilistid. + Ekspordi ajalugu, tellimused ja pleilistid Puhasta vaatamiste ajalugu - Kustutab vaadatud voogude ajaloo. - Kustuta kogu vaatamiste ajalugu. + Kustutab vaadatud voogude ajaloo + Kustuta kogu vaatamiste ajalugu Vaatamiste ajalugu kustutati. Kustuta otsinguajalugu - Kustutab otsisõnade ajaloo. - Kustuta kogu otsinguajalugu. + Kustutab otsisõnade ajaloo + Kustuta kogu otsinguajalugu Otsinguajalugu kustutati. Viga Võrgu viga @@ -382,7 +382,7 @@ Automaatselt loodud Subtiitrid - Kohanda pleieri subtiitrite teksti suurust ja tausta. Jõustamiseks tuleb rakendus taaskäivitada. + Kohanda pleieri subtiitrite teksti suurust ja tausta. Jõustamiseks tuleb rakendus taaskäivitada Mälulekke seire võib põhjustada rakenduse hangumise From f706452e678801f762f92dff5fbb1399c0f9683e Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 19:38:06 +0000 Subject: [PATCH 046/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index c456d5f9f..051a52ffd 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -332,7 +332,7 @@ Добавить к - Быстрый неточный поиск + Быстрый поиск позиции Неточный поиск позволяет плееру искать позицию быстрее, но менее точно Автодополнение очереди Автоматически добавлять связанные видео, при воспроизведении с последнего видео в неповторяющейся очереди @@ -447,7 +447,7 @@ Управление скоростью воспроизведения Темп Тон - Независимо (возможны искажения) + Независимо (искажения) Nightcore По умолчанию Удалить все загруженные данные веб-страниц From a81f31156d29d0909613b404d33ee988140b8ca1 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 00:51:16 +0000 Subject: [PATCH 047/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 051a52ffd..b951468a5 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -31,7 +31,7 @@ URL не поддерживается \"Следующее\" и \"Предложенные\" видео Язык контента по умолчанию - Видео и Аудио + Видео и аудио Внешний вид Другое @@ -225,7 +225,7 @@ Плеер Поведение - История и Кэш + История и кэш Плейлист Отменить From 75f89059e763281b5acf92912446faaeff4ee2a9 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 08:42:36 +0000 Subject: [PATCH 048/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index b951468a5..e14ac0ffa 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -200,7 +200,7 @@ Хранить поисковые запросы локально История и кэш Запоминать просмотренные видео - Возобновлять при фокусе + Возобновить при фокусе Возобновлять воспроизведение после перерывов (например, телефонных звонков) @@ -451,7 +451,7 @@ Nightcore По умолчанию Удалить все загруженные данные веб-страниц - Действие по умолчанию при открытии контента — %s + По умолчанию, при открытии контента — %s Нет потоков, доступных для загрузки @@ -493,8 +493,8 @@ Шаг Сброс - При сворачивании приложения - При переключении воспроизведения видео со стандартного плеера на другое приложение — %s + Сворачивание при переключении + При переключении со стандартного плеера на другое приложение — %s Ничего не делать Свернуть в режим фонового воспроизведения Свернуть в режим всплывающего окна From 04f759041f3878b3e8f484c32fbc310975a4fdaa Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 08:52:12 +0000 Subject: [PATCH 049/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e14ac0ffa..e943f534a 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -458,7 +458,7 @@ Титры Приложение для воспроизведения этого файла не установлено - Изменить размер и фон титров. Требуется перезапуск приложения для вступления изменений в силу + Изменить размер и фон титров. Изменения вступят в силу после перезапуска Очистить историю просмотров Вся история просмотров будет удалена From 99ee076db9f3f9d53de4a6455bfa0798bd4dfa15 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 09:09:22 +0000 Subject: [PATCH 050/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e943f534a..fc1539564 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -451,7 +451,7 @@ Nightcore По умолчанию Удалить все загруженные данные веб-страниц - По умолчанию, при открытии контента — %s + При открытии контента — %s Нет потоков, доступных для загрузки @@ -493,7 +493,7 @@ Шаг Сброс - Сворачивание при переключении + При сворачивании плеера При переключении со стандартного плеера на другое приложение — %s Ничего не делать Свернуть в режим фонового воспроизведения From 3683deb51c363a0d6e2b8d13d7b9694a8fa3f35c Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 09:31:37 +0000 Subject: [PATCH 051/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index fc1539564..5d12a9e71 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -335,7 +335,7 @@ Быстрый поиск позиции Неточный поиск позволяет плееру искать позицию быстрее, но менее точно Автодополнение очереди - Автоматически добавлять связанные видео, при воспроизведении с последнего видео в неповторяющейся очереди + Добавлять похожие потоки в очередь при воспроизведении последнего, если не включён повтор Отладка Файл @@ -440,7 +440,7 @@ \n \nПродолжить? Загружать миниатюры - Отключите, чтобы не загружать миниатюры и сэкономить трафик и память. Изменение настройки очистит кэш изображений в памяти и на диске + Отключите, чтобы не загружать миниатюры и сэкономить трафик и память. Изменение настройки очистит кэш изображений в памяти и накопителе Кэш изображений очищен Очистить кэш метаданных Кэш метаданных очищен From cebf349f9a1b579a33bd98c7def27ec18f07e964 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 09:57:38 +0000 Subject: [PATCH 052/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 5d12a9e71..c2acfa6d3 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -451,7 +451,7 @@ Nightcore По умолчанию Удалить все загруженные данные веб-страниц - При открытии контента — %s + При открытии ссылки на контент — %s Нет потоков, доступных для загрузки From 4a673eee8171a19f05c45cb1bec468843f9a013d Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 10:05:39 +0000 Subject: [PATCH 053/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index c2acfa6d3..1fc017d41 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -323,10 +323,10 @@ Плеер в окне Всегда спрашивать - Получение информации… + Получение сведений… Загрузка запрошенного контента Загрузка файла прямой трансляции. - Показать информацию + Показать сведения Закладки From bd337f3aacb5ab98b8c71667895f475ea0022bdc Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 10:28:44 +0000 Subject: [PATCH 054/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 1fc017d41..8b50a7a39 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -283,7 +283,7 @@ Показать подсказку при нажатии \"В окне\" или \"В фоне\" на странице сведений о видео [Неизвестно] - Восстановление после ошибки проигрывателя + Восстановление после ошибки плеера В фоне В окне @@ -304,8 +304,8 @@ Перейти в окно Перейти в главное окно - Ошибка проигрывателя без возможности восстановления - Внешние проигрыватели не поддерживают ссылки этих типов + Ошибка плеера без возможности восстановления + Внешние плееры не поддерживают ссылки этих типов Неверная ссылка Потоки видео не найдены Потоки аудио не найдены @@ -318,8 +318,8 @@ Открыть боковую панель Закрыть боковую панель - Проигрыватель видео - Фоновый проигрыватель + Плеер видео + Фоновый плеер Плеер в окне Всегда спрашивать From 21c2fbfd3911a7c85c1a60dd8c545f0ead828307 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 10:52:52 +0000 Subject: [PATCH 055/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 8b50a7a39..da5c66482 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -29,7 +29,7 @@ Скачать Следующее видео URL не поддерживается - \"Следующее\" и \"Предложенные\" видео + \"Следующее\" и \"Предложенные\" Язык контента по умолчанию Видео и аудио Внешний вид @@ -128,7 +128,7 @@ Только некоторые устройства могут воспроизводить видео в 2K/4K Формат видео по умолчанию Чёрная - Восстановить всплывающее окно + Восстановить окно Изменять яркость и громкость жестами Всплывающее окно Воспроизведение во всплывающем окне @@ -318,7 +318,7 @@ Открыть боковую панель Закрыть боковую панель - Плеер видео + Видеоплеер Фоновый плеер Плеер в окне Всегда спрашивать @@ -496,7 +496,7 @@ При сворачивании плеера При переключении со стандартного плеера на другое приложение — %s Ничего не делать - Свернуть в режим фонового воспроизведения - Свернуть в режим всплывающего окна + Воспроизводить в фоне + Воспроизводить в окне From 935d89747f7267d785bb434b46704521a926e2e1 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 11:41:12 +0000 Subject: [PATCH 056/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index da5c66482..63072c17c 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -24,8 +24,8 @@ Показать опцию воспроизведения видео через медиацентр Kodi Аудио Формат аудио по умолчанию - WebM — свободный формат - M4A — лучше качество + WebM — свободный + M4A — выше качество Скачать Следующее видео URL не поддерживается From 398f9aa19a44c7f6289d7bfcd76f4f72b15d4a3a Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 11:53:20 +0000 Subject: [PATCH 057/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 63072c17c..ae451492b 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -477,7 +477,7 @@ Политика конфиденциальности NewPipe Проект NewPipe очень серьёзно относится к вашей конфиденциальности. Поэтому приложение не собирает никаких данных без вашего согласия. \nПолитика конфиденциальности NewPipe подробно объясняет, какие данные отправляются и хранятся при отправке отчёта о сбоях. - Прочитать политику конфиденциальности + Прочитать политику В соответствии с Общим регламентом по защите данных ЕС (GDPR), обращаем ваше внимание на политику конфиденциальности NewPipe. Пожалуйста, внимательно ознакомьтесь с ней. \nВам необходимо принять её условия, чтобы отправить нам отчёт об ошибке. Принять From 6effbf50a8572832884baec13a5dd7313d63dbcc Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 12:10:21 +0000 Subject: [PATCH 058/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index ae451492b..c02f84e25 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -496,7 +496,7 @@ При сворачивании плеера При переключении со стандартного плеера на другое приложение — %s Ничего не делать - Воспроизводить в фоне - Воспроизводить в окне + Фоновый плеер + Плеер в окне From 9b080800e1e6f3755da8a79280e5073ed8532ec4 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 12:22:47 +0000 Subject: [PATCH 059/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index c02f84e25..4e8f6e8f1 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -297,7 +297,7 @@ Страна контента по умолчанию Сервис Всегда - Только один раз + Только сейчас Переключить ориентацию Перейти в фон From cbb9dcf7d0d30c360d3b6b5f65f50d8295f0d793 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 12:42:14 +0000 Subject: [PATCH 060/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 4e8f6e8f1..4d44ae28c 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -288,11 +288,11 @@ В фоне В окне Зажмите, чтобы добавить в очередь - Добавить в очередь \"В фоне\" - Добавить в очередь \"В окне\" - Воспроизвести здесь - Воспроизвести в фоне - Воспроизвести в окне + В очередь \"В фоне\" + В очередь \"В окне\" + Видеоплеер + Фоновый плеер + Плеер в окне Потоковый плеер не найден (вы можете установить VLC) Страна контента по умолчанию Сервис From 042885c155a276117097e366403a5374fa708103 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 14:17:09 +0000 Subject: [PATCH 061/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 4d44ae28c..4fc30e90e 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -378,7 +378,7 @@ Переименовать плейлист Имя Добавить в плейлист - Установить как миниатюру плейлиста + На миниатюру плейлиста Добавить плейлист в закладки Удалить закладку From c5d98752fa5baa824be0d2b533afbb0ef5c2bcdd Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:42:23 +0000 Subject: [PATCH 062/181] Translated using Weblate (Esperanto) Currently translated at 25.0% (96 of 383 strings) --- app/src/main/res/values-eo/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index fdae53d50..48931a76d 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -38,8 +38,8 @@ Ludi Eraro Reteraro - Enhavo ne estas disponebla. - Blokita de GEMA. + Enhavo ne estas disponebla + Blokita de GEMA Ŝatoj Malŝatoj @@ -48,8 +48,8 @@ La aplikaĵo Kore ne estas trovita. Ĉu instali ĝin? Montri la sekvan videon kaj similajn videojn Ĉiuj miniaturoj ne ŝargeblas - La subskribo de la ligilo de la video ne malĉifreblas. - La retejo ne analizeblas. + La subskribo de la ligilo de la video ne malĉifreblas + La retejo ne analizeblas Miniaturo de la antaŭrigardo de la video Miniaturo de la antaŭrigardo de la video Miniaturo de la bildo de la alŝutinto From 640b8edd7898cdc9b359b22743789416f29456a9 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:20:14 +0000 Subject: [PATCH 063/181] Translated using Weblate (Bulgarian) Currently translated at 98.6% (378 of 383 strings) --- app/src/main/res/values-bg/strings.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 019922f73..91d76eb66 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -227,7 +227,7 @@ Премахни всички метаданни за уебстраници от кеш-паметта Кеш-паметта с метаданни бе изтрита Автоматично нареди на опашка следващия - "Автоматично прибавяне на сродно съдържание при неповтарящ се преглед . " + "Автоматично прибавяне на сродно съдържание при неповтарящ се преглед " Държава, за която да бъде показвано съдържание Услуга Отстраняване на грешки @@ -245,11 +245,11 @@ Ще замени текущите история и абонаменти Експортиране на историята, абонаментите и плейлистите Изтрий историята с изгледани - Изтрий цялата история с изгледани. + Изтрий цялата история с изгледани Историята с изгледани е изтрита. Изтрий историята на търсенията - Изтрива историята с въвежданите за търсене ключови думи. - Изтрий цялата история на търсенията. + Изтрива историята с въвежданите за търсене ключови думи + Изтрий цялата история на търсенията Историята на търсенията е изтрита. URL подписът на клипа не можа да бъде дешифрован Външните плейъри не поддържат този вид линкове @@ -285,9 +285,9 @@ Прочетете нашата политика за поверителност Лицензът на NewPipe Липсва стрийм плейър (можете да изтеглите VLC, за да пуснете стрийма) - Изключете, за да спрете зареждането на всички миниатюри, спестявайки трафик и памет. При промяна на тази настройка, текущата кеш-памет на изображенията ще бъде изтрита. + Изключете, за да спрете зареждането на всички миниатюри, спестявайки трафик и памет. При промяна на тази настройка, текущата кеш-памет на изображенията ще бъде изтрита Показвай подсказка, когато е избран фонов режим или режим в прозорец на страницата с детайли на съответния клип - Изтрива историята на възпроизвежданите стриймове. + Изтрива историята на възпроизвежданите стриймове Не са намерени видео стриймове Не са намерени аудио стриймове "Какво:\\nЗаявка:\\nЕзик на съдържанието:\\nУслуга:\\nВреме по GMT:\\nПакет:\\nВерсия:\\nОС версия: " @@ -403,7 +403,7 @@ Авто-генерирани Надписи - Модифицирай мащаба на текста и фона на надписите. Изисква рестарт на приложението, за да се приложат промените. + Модифицирай мащаба на текста и фона на надписите. Изисква рестарт на приложението, за да се приложат промените Включи LeakCanary Следенето за пропускане на памет може да направи приложението нестабилно From 7ac338756af7907ac3d60459637736d6c09bc220 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:26:28 +0000 Subject: [PATCH 064/181] Translated using Weblate (Chinese (Simplified)) Currently translated at 97.1% (372 of 383 strings) --- app/src/main/res/values-zh-rCN/strings.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 5118b42d6..cd5e7bc4f 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -262,13 +262,13 @@ 使用粗略但快速的寻找 粗略寻找让播放器更快找到视频的进度位置 加载缩略图 - 停用后,NewPipe將不再加载缩略图,减少数据使用和腾空存储空间,亦会清除内存和内存卡上的缩略图缓存。 + 停用后,NewPipe將不再加载缩略图,减少数据使用和腾空存储空间,亦会清除内存和内存卡上的缩略图缓存 已清除图像缓存 清除缓存元数据 移除所有网页的缓存数据 已清除元数据缓存 自动播放队列中下一个视频 - 当播放完非循环列表中的最后一个视频时,自动加入一个相关视频到播放列表。 + 当播放完非循环列表中的最后一个视频时,自动加入一个相关视频到播放列表 显示\"长按添加\"提示 当视频详情页中的背景或悬浮按钮被按下的时候显示提示 默认内容国家 @@ -286,7 +286,7 @@ 导入数据库 导出数据库 将覆盖你现有历史记录和订阅 - 导出历史记录,订阅和播放列表。 + 导出历史记录,订阅和播放列表 从播放器错误中恢复 外部播放器不支持这些链接类型 无效的链接 @@ -436,15 +436,15 @@ 未安装能播放此文件的应用 字幕 - 修改播放器的字幕文本大小和背景样式。需要重启应用程序以生效。 + 修改播放器的字幕文本大小和背景样式。需要重启应用程序以生效 清除观看记录 - 删除视频观看记录。 - 删除全部观看记录。 + 删除视频观看记录 + 删除全部观看记录 观看记录已删除。 清除搜索记录 - 删除搜索关键词记录。 - 删除全部搜索记录。 + 删除搜索关键词记录 + 删除全部搜索记录 搜索记录已删除。 已删除1项。 From 46fabe065c8078cbe1f2a6710cb5b939e770be36 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:39:22 +0000 Subject: [PATCH 065/181] Translated using Weblate (Czech) Currently translated at 93.9% (360 of 383 strings) --- app/src/main/res/values-cs/strings.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index a1ee6ab1e..ee848f0e9 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -314,7 +314,7 @@ otevření ve vyskakovacím okně Importovat databázi Exportovat databázi Přepíše vaši dosavadní historii a odběry - Exportuje historii, odběry a playlisty. + Exportuje historii, odběry a playlisty Externí přehrávače nepodporují tyto druhy odkazů Neplatná URL Nenalezeny žádné video streamy @@ -399,13 +399,13 @@ otevření ve vyskakovacím okně Použít rychlé nepřesné hledání Nepřesné hledání umožní přehrávači posouvat se rychleji, ale se sníženou přesností Načítat náhledy - Zakažte, chcete-li zabránit načítání všech náhledů a tím šetřit data a využití paměti. Změnou tohoto nastavení dojde k vyčištění mezipaměti obrázků. + Zakažte, chcete-li zabránit načítání všech náhledů a tím šetřit data a využití paměti. Změnou tohoto nastavení dojde k vyčištění mezipaměti obrázků Mezipaměť obrázků vymazána Vymazat metadata v mezipaměti Odebrat všechna data uložená v mezipaměti Mezipaměť metadat vymazána Automatická fronta dalšího streamu - Automaticky připojí související stream při přehrávání posledního streamu v neopakující se frontě. + Automaticky připojí související stream při přehrávání posledního streamu v neopakující se frontě Soubor Neplatný adresář @@ -460,17 +460,17 @@ otevření ve vyskakovacím okně Výchozí chování při otevírání obsahu — %s Poznámky - Upravuje velikost textu poznámek a styly pozadí. Změny se projeví po restartu aplikace. + Upravuje velikost textu poznámek a styly pozadí. Změny se projeví po restartu aplikace K přehrání tohoto souboru chybí vhodná aplikace Vymazat historii sledování - Vymaže historii přehrávaných streamů. - Vymazat celkovou historii sledování. + Vymaže historii přehrávaných streamů + Vymazat celkovou historii sledování Historie sledování smazána. Vymazat historii vyhledávání - Vymaže historii vyhledávaných klíčových slov. - Vymazat celkovou historii vyhledávání. + Vymaže historii vyhledávaných klíčových slov + Vymazat celkovou historii vyhledávání Historie vyhledávání smazána. Jedna položka smazána. From 81895c20d620e924a8b5e233355e6d61167ac92e Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 11:58:59 +0000 Subject: [PATCH 066/181] Translated using Weblate (English) Currently translated at 99.7% (382 of 383 strings) --- app/src/main/res/values/strings.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 502483667..138a6c4eb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -75,13 +75,13 @@ Use fast inexact seek Inexact seek allows the player to seek to positions faster with reduced precision Load thumbnails - Disable to stop all thumbnails from loading and save on data and memory usage. Changing this will clear both in-memory and on-disk image cache. + Disable to stop all thumbnails from loading and save on data and memory usage. Changing this will clear both in-memory and on-disk image cache Image cache wiped Wipe cached metadata Remove all cached webpage data Metadata cache wiped Auto-queue next stream - Auto-append a related stream when playing the last stream in a non-repeating queue. + Auto-append a related stream when playing the last stream in a non-repeating queue Player gesture controls Use gestures to control the brightness and volume of the player Search suggestions @@ -159,14 +159,14 @@ Import database Export database Will override your current history and subscriptions - Export history, subscriptions and playlists. + Export history, subscriptions and playlists Clear watch history - Deletes the history of played streams. - Delete whole watch history. + Deletes the history of played streams + Delete whole watch history Watch history deleted. Clear search history - Deletes history of search keywords. - Delete whole search history. + Deletes history of search keywords + Delete whole search history Search history deleted. Error @@ -450,7 +450,7 @@ Captions - Modify player caption text scale and background styles. Requires app restart to take effect. + Modify player caption text scale and background styles. Requires app restart to take effect Enable LeakCanary From ededfe10ab0b9aa4cc9907f2c4fb3b6b9e60bdd8 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:34:05 +0000 Subject: [PATCH 067/181] Translated using Weblate (Flemish) Currently translated at 98.6% (378 of 383 strings) --- app/src/main/res/values-nl-rBE/strings.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index 3c15cf226..c8f3dad2c 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -70,13 +70,13 @@ Snel, minder exact spoelen gebruiken Minder exact spoelen laat de speler sneller posities zoeken met verminderde precisie Miniatuurvoorbeelden laden - Schakelt dit uit voor alle miniatuurvoorbeelden niet meer te laden; dit bespaart gegevens en geheugen. Het wijzigen van deze instelling wist het geheugen en de afbeeldingscache. + Schakelt dit uit voor alle miniatuurvoorbeelden niet meer te laden; dit bespaart gegevens en geheugen. Het wijzigen van deze instelling wist het geheugen en de afbeeldingscache Afbeeldingscache gewist Gecachete metagegevens wissen Alle gecachete webpagina-gegevens wissen Metagegevens-cache gewist Volgende stream automatisch in wachtrij plaatsen - Automatisch ne gerelateerde stream toevoegen bij het afspelen van de laatste stream in ne nie-herhalende wachtlijst. + Automatisch ne gerelateerde stream toevoegen bij het afspelen van de laatste stream in ne nie-herhalende wachtlijst Bewegingscontrole Gebruik bewegingen voor helderheid en volume van de speler aan te passen Zoeksuggesties @@ -146,7 +146,7 @@ Databank importeren Databank exporteren Dit zal uw huidige geschiedenis en abonnementen overschrijven - Exporteer geschiedenis, abonnementen en speellijsten. + Exporteer geschiedenis, abonnementen en speellijsten Fout Netwerkfout Kon niet alle miniaturen laden @@ -380,7 +380,7 @@ Automatisch gegenereerd Koppen - Koptekstgrootte en achtergrondstijlen wijzigen. Vereist nen herstart van den app. + Koptekstgrootte en achtergrondstijlen wijzigen. Vereist nen herstart van den app LeakCanary inschakelen Het monitoren van geheugenlekken kan dervoor zorgen da’ den app nie’ goe meer reageerd @@ -426,12 +426,12 @@ Nightcore Standaard Kijkgeschiedenis wissen - Verwijderd de geschiedenis van afgespeelde streams. - Verwijderd de ganse kijkgeschiedenis. + Verwijderd de geschiedenis van afgespeelde streams + Verwijderd de ganse kijkgeschiedenis Kijkgeschiedenis verwijderd. Zoekgeschiedenis wissen - Verwijderd de gebruikte zoektermen. - Verwijderd de ganse geschiedenis. + Verwijderd de gebruikte zoektermen + Verwijderd de ganse geschiedenis Zoekgeschiedenis verwijderd. 1 item verwijderd. From 124a2839b523d59cc009b5f0c242d4d5abe56cd1 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:33:01 +0000 Subject: [PATCH 068/181] Translated using Weblate (French) Currently translated at 98.4% (377 of 383 strings) --- app/src/main/res/values-fr/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index e74c948fd..f246972db 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -403,7 +403,7 @@ Télécharger le fichier de flux Vidéo suivante en file d\'attente - Ajout automatique d\'un morceau suggéré lors de la lecture du dernier morceau dans une file d\'attente non bouclée. + Ajout automatique d\'un morceau suggéré lors de la lecture du dernier morceau dans une file d\'attente non bouclée Débogage Remplir Générés automatiquement @@ -456,19 +456,19 @@ Aucun flux disponible au téléchargement Sous-titres - Modifier la taille du texte et les styles d\'arrière-plan du lecteur. Redémarrage requis pour prendre effet. + Modifier la taille du texte et les styles d\'arrière-plan du lecteur. Redémarrage requis pour prendre effet Ton Nightcore Aucune application installée pour lire ce fichier Effacer l\'historique - Supprimer l\'historique des flux regardés. - Supprimer tout l\'historique regardé. + Supprimer l\'historique des flux regardés + Supprimer tout l\'historique regardé Voir l’historique supprimé. Supprimer l\'historique des recherches - Supprimer l\'historique de recherche par mot clef. - Supprimer tout l\'historique de recherche. + Supprimer l\'historique de recherche par mot clef + Supprimer tout l\'historique de recherche Historique des recherches effacé. 1 élément supprimé. From 60c58c8b9c399849ca06fdffd14e3d941543aabb Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:44:22 +0000 Subject: [PATCH 069/181] Translated using Weblate (Indonesian) Currently translated at 93.7% (359 of 383 strings) --- app/src/main/res/values-id/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 44973426f..56cca9bbd 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -219,12 +219,12 @@ membuka di mode popup Riwayat Riwayat kosong Muat thumbnail - Nonaktifkan untuk berhenti memuat semua thumbnail dan menghemat penggunaan data dan memori. Mengubah ini akan menghapus tembolok gambar pada diska dan memory. + Nonaktifkan untuk berhenti memuat semua thumbnail dan menghemat penggunaan data dan memori. Mengubah ini akan menghapus tembolok gambar pada diska dan memory Tembolok gambar dihapus Hapus tembolok metadata Buang semua data tembolok laman web Tembolok metadata dihapus - Otomatis tambahkan stream yang terkait ketika memutar stream terakhir dalam antrean tanpa perulangan. + Otomatis tambahkan stream yang terkait ketika memutar stream terakhir dalam antrean tanpa perulangan Simpan daftar video yang telah ditonton Tampilkan tip \"tahan untuk menambahkan\" Tampilkan tip ketika tombol latar belakang atau popup ditekan pada halaman detail video @@ -255,7 +255,7 @@ membuka di mode popup Impor database Ekspor database Akan menimpa riwayat dan langganan kamu saat ini - Ekspor riwayat, daftat langganan dan daftar putar. + Ekspor riwayat, daftat langganan dan daftar putar Tidak bisa memutar stream ini Galat yg tidak bisa dipulihkan terjadi di pemutar Memulihkan dari galat pemutar @@ -391,11 +391,11 @@ membuka di mode popup Tambahkan Ke Hapus riwayat menonton - Hapus riwayat stream yang diputar. + Hapus riwayat stream yang diputar Hapus seluruh riwayat menonton. Riwayat menonton dihapus. Hapus riwayat pencarian - Hapus riwayat dari ketikan pencarian. + Hapus riwayat dari ketikan pencarian Hapus seluruh riwayat pencarian. Riwayat pencarian dihapus. Tidak ada stream yang tersedia untuk diunduh @@ -420,7 +420,7 @@ membuka di mode popup Aksi bawaan ketika membuka konten — %s Takarir - Mengubah skala keterangan teks pemutar dan gaya latar belakang. Perlu memulai ulang aplikasi untuk melihat hasilnya. + Mengubah skala keterangan teks pemutar dan gaya latar belakang. Perlu memulai ulang aplikasi untuk melihat hasilnya Pemantauan kebocoran memori dapat menyebabkan aplikasi menjadi tidak responsif saat terjadi dumping From fcb46db718c6ddd20b1d5ef6ae8754e6f49d814c Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:23:30 +0000 Subject: [PATCH 070/181] Translated using Weblate (Italian) Currently translated at 98.6% (378 of 383 strings) --- app/src/main/res/values-it/strings.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 18bbc6d3e..9e2e96789 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -335,7 +335,7 @@ Importa database Esporta database Sovrascriverà la cronologia corrente e le iscrizioni - Esporta la cronologia, le iscrizioni e le playlist. + Esporta la cronologia, le iscrizioni e le playlist Esportazione completa Importazione completa Nessun file ZIP valido @@ -404,7 +404,7 @@ Usa la ricerca rapida ma imprecisa La ricerca imprecisa permette al lettore multimediale di spostarsi nelle posizioni più velocemente con una precisione ridotta Metti in coda automaticamente il prossimo flusso - Aggiungi automaticamente un flusso correlato quando è in corso la riproduzione dell\'ultimo flusso in una coda non ripetitiva. + Aggiungi automaticamente un flusso correlato quando è in corso la riproduzione dell\'ultimo flusso in una coda non ripetitiva SINCRONIZZAZIONE File @@ -446,7 +446,7 @@ \n \nVuoi continuare? Carica miniature - Disabilita per interrompere il caricamento delle miniature, la loro archiviazione e l\'utilizzo della memoria. La modifica di questa opzione cancellerà la cache delle immagini in memoria e sul disco. + Disabilita per interrompere il caricamento delle miniature, la loro archiviazione e l\'utilizzo della memoria. La modifica di questa opzione cancellerà la cache delle immagini in memoria e sul disco Pulizia della cache delle immagini completata Pulisci la cache dei metadati Rimuovi tutti i dati delle pagine web memorizzati nella cache @@ -463,17 +463,17 @@ Azione predefinita all\'apertura del contenuto — %s Sottotitoli - Modifica la dimensione e gli stili di sfondo dei sottotitoli. Richiede il riavvio dell\'app per rendere effettive le modifiche. + Modifica la dimensione e gli stili di sfondo dei sottotitoli. Richiede il riavvio dell\'app per rendere effettive le modifiche Nessuna app installata per riprodurre questo file Pulisci cronologia visualizzazioni - Elimina la cronologia dei flussi riprodotti. - Elimina l\'intera cronologia visualizzazioni. + Elimina la cronologia dei flussi riprodotti + Elimina l\'intera cronologia visualizzazioni Cronologia visualizzazioni eliminata. Pulisci cronologia delle ricerche - Cancella la cronologia dei termini di ricerca. - Elimina l\'intera cronologia delle ricerche. + Cancella la cronologia dei termini di ricerca + Elimina l\'intera cronologia delle ricerche Cronologia delle ricerche eliminata. 1 elemento eliminato. From 092215f47a1e8248c226fb6577531bbeed342389 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:34:50 +0000 Subject: [PATCH 071/181] Translated using Weblate (Macedonian) Currently translated at 96.3% (369 of 383 strings) --- app/src/main/res/values-mk/strings.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 1ae02a0f2..b780b3f10 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -70,13 +70,13 @@ Брзо, непрецизно премотување Со непрецизното премотување може да се пребарува побрзо, но понепрецизно Прочитај сликички - Оневозможи, за да не се читаат сликичките од видеото, за штедење меморија и интернет. Промена на опцијата ќе ја избрише кеш-меморијата. + Оневозможи, за да не се читаат сликичките од видеото, за штедење меморија и интернет. Промена на опцијата ќе ја избрише кеш-меморијата Сликичките се избришани Избриши ги собраните мета-податоци Избриши ги сите собрани податоци од веб-страни Избришани се мета-податоците Автоматски постави го на листа следното видео - Автоматски прикачи поврзано видео кога ќе почне последното пуштено видео во неповторлива листа. + Автоматски прикачи поврзано видео кога ќе почне последното пуштено видео во неповторлива листа Управување на плеерот со гестови Користи гестови за управување на светлоста и тонот Предлози за пребарување @@ -146,7 +146,7 @@ Внеси датабаза Изнеси база на податоци Ќе ги избрише моменталните членства и историја - Изнеси историја, членства и плејлисти. + Изнеси историја, членства и плејлисти Грешка Мрежна грешка Не можеа да се прочитаат сите сликички @@ -422,12 +422,12 @@ „Nightcore“ Стандардно Избриши историја на гледаност - Ја брише историјата на пуштени видеа. - Избриши ја целата историја на гледаност. + Ја брише историјата на пуштени видеа + Избриши ја целата историја на гледаност Избришана е историјата на гледаност. Избриши историја на пребарувања - Ја брише историјата на пребарувања. - Избриши ја целата историја на пребарувања. + Ја брише историјата на пребарувања + Избриши ја целата историја на пребарувања Избришана е историјата на пребарувања. Нема стримови за симнување @@ -442,7 +442,7 @@ Стандардна акција при отворање видеа — %s Преводи - Смени ја големината и стилот на преводот. Потребен е рестарт за промена. + Смени ја големината и стилот на преводот. Потребен е рестарт за промена NewPipe - политика за приватност Проектот NewPipe сериозно ја сфаќа вашата приватност. Затоа апликацијата не собира ваши податоци без ваша дозвола. From 245479c339324ef0a1666dec898429b89f08c352 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:40:27 +0000 Subject: [PATCH 072/181] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 99.7% (382 of 383 strings) --- app/src/main/res/values-nb-rNO/strings.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 0f8d9b55a..b64dd7b4f 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -324,7 +324,7 @@ Importer database Eksporter database Vil overstyre din nåværende historikk og abonnementsliste - Eksporter historikk, abonnementer og spillelister. + Eksporter historikk, abonnementer og spillelister Eksport fullført Import fullført Ingen gyldig ZIP-fil @@ -428,18 +428,18 @@ Forvalg Tøm avspillingshistorikk Slett historikken for avspilte strømmer - Slett hele visningshistorikken. + Slett hele visningshistorikken Visningshistorikk slettet. Tøm søkehistorikk - Sletter historikken for søkte nøkkelord. - Slett hele søkehistorikken. + Sletter historikken for søkte nøkkelord + Slett hele søkehistorikken Søkehistorikk slettet. Ett element slettet. Inget program installert for avspilling av denne filen. Undertekster - Endre undertekststørrelse og bakgrunnsstiler. Krever omstart av programmet for å tre i effekt. + Endre undertekststørrelse og bakgrunnsstiler. Krever omstart av programmet for å tre i effekt NewPipe er copyleft, fri programvare: Du kan bruke, studere og forbedre etter egen vilje. Spesifikt kan du redistribuere og/eller modifisere det i henhold til vilkårene gitt i GNU General Public-lisensen, som publisert av Free Software Foundation, enten versjon 3 av lisensen, eller (etter eget ønske) enhver senere versjon. Ønsker du også å importere innstillinger? @@ -458,8 +458,8 @@ \n2. Logg inn når forespurt \n4. Kopier profil-nettadressen du ble videresendt til. Unøyaktig blafring tillater spilleren å blafre til posisjoner raskere med redusert nøyaktighet - Skru av for å stoppe alle miniatyrbilder fra innlasting og spare data og minnebruke. Endring av dette vil tømme både disk- og minne-hurtiglager. - Legg til en relatert strøm ved avspilling av forrige strøm i ikke-repeterende kø. + Skru av for å stoppe alle miniatyrbilder fra innlasting og spare data og minnebruke. Endring av dette vil tømme både disk- og minne-hurtiglager + Legg til en relatert strøm ved avspilling av forrige strøm i ikke-repeterende kø Minnelekkasjeoppsyn kan forårsake programmet å opptre uresponsivt under haugdumping Rapporter feil som opptrer utenfor sin levetid From 396e2d14f38e8d964dce163d5511c6a5120cb5df Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:28:25 +0000 Subject: [PATCH 073/181] Translated using Weblate (Polish) Currently translated at 96.3% (369 of 383 strings) --- app/src/main/res/values-pl/strings.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 0889fa9e3..a68a50f4b 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -331,7 +331,7 @@ Importuj dane Eksportuj dane Nadpisuje bieżącą historię i subskrypcje - Eksportuje bieżącą historię, subskrypcje i playlisty. + Eksportuje bieżącą historię, subskrypcje i playlisty Przeciągnij, aby zmienić kolejność Utwórz @@ -396,13 +396,13 @@ Użyj szybkiego niedokładnego wyszukiwania Szybkie wyszukiwanie pozwala przeskoczyć do wybranej pozycji szybciej, lecz jest mniej precyzyjne Załaduj miniatury - Wyłącz, by aplikacja nie ściągała miniatur. Oszczędza transfer i pamięć. Zmiana tej opcji spowoduje wyczyszczenie pamięci podręcznej miniatur. + Wyłącz, by aplikacja nie ściągała miniatur. Oszczędza transfer i pamięć. Zmiana tej opcji spowoduje wyczyszczenie pamięci podręcznej miniatur Wyczyszczono pamięć podręczną miniatur Wyczyść pamięć podręczną metadanych Wyczyść pamięć podręczną stron Wyczyszczono pamięć podręczną metadanych Automatycznie dołącz kolejny stream - Automatycznie dodaj kolejny powiązany stream w momencie rozpoczęcia odtwarzania ostatniego elementu w niezapętlonej kolejce. + Automatycznie dodaj kolejny powiązany stream w momencie rozpoczęcia odtwarzania ostatniego elementu w niezapętlonej kolejce Plik Nieprawidłowy katalog @@ -456,15 +456,15 @@ Domyślna akcja podczas otwierania materiału - %s Napisy - Zmień kolor tekstu i tła napisów. Wymaga restartu aplikacji. + Zmień kolor tekstu i tła napisów. Wymaga restartu aplikacji Wyczyść historię oglądania - Usuwa historię odtworzonych strumieni. - Usuń całą historię oglądania. + Usuwa historię odtworzonych strumieni + Usuń całą historię oglądania Usunięto historię oglądania. Wyczyść historię wyszukiwania - Usuwa historię wyszukiwania słów kluczowych. - Usuń całą historię wyszukiwania. + Usuwa historię wyszukiwania słów kluczowych + Usuń całą historię wyszukiwania Usunięto historię wyszukiwania. Usunięto jedną pozycję. From 51a695d0473621de60973cc4b314d4a8e675f89a Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 3 Aug 2018 17:36:47 +0000 Subject: [PATCH 074/181] Translated using Weblate (Slovak) Currently translated at 93.7% (359 of 383 strings) --- app/src/main/res/values-sk/strings.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 6204e5fba..f4a2b16f8 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -293,7 +293,7 @@ Importovať databázu Exportovať databázu Prepíše aktuálnu históriu pozretí a odberov - Exportovať históriu, odbery a zoznamy skladieb. + Exportovať históriu, odbery a zoznamy skladieb Nepodarilo sa prehrať tento stream Pri prehrávaní došlo k chybe a nemožno pokračovať Zotavovanie po chybe v prehrávaní @@ -392,13 +392,13 @@ Používať rýchly posun Rýchly posun umožňuje prejsť na novú pozíciu rýchlejšie, ale s menšou presnosťou Načítanie miniatúr - Vypnutím tejto funkcie sa nebudú vytvárať miniatúry a tým sa ušetrí miesto a pamäť. Zmena nastavení spôsobuje vyčistenie vyrovnávacej pamäte. + Vypnutím tejto funkcie sa nebudú vytvárať miniatúry a tým sa ušetrí miesto a pamäť. Zmena nastavení spôsobuje vyčistenie vyrovnávacej pamäte Vyrovnávacia pamäť obrázkov vymazaná Vymazať metadáta uložené vo vyrovnávacej pamäti Odstrániť všetky údaje webových stránok vo vyrovnávacej pamäti Vyrovnávacia pamäť metadát bola vymazaná Automaticky zaradiť daľší stream - Automaticky zaradí súvisiaci stream, keď prehrávanie začne na poslednom streame v neopakujúcich sa zoznamoch prehrávania. + Automaticky zaradí súvisiaci stream, keď prehrávanie začne na poslednom streame v neopakujúcich sa zoznamoch prehrávania Ladenie Súbor @@ -420,7 +420,7 @@ Automaticky vygenerované Nastavenie titulkov - Upravte mierku textu titulkov a štýly pozadia. Vyžaduje reštart prehrávača. + Upravte mierku textu titulkov a štýly pozadia. Vyžaduje reštart prehrávača Povoliť službu LeakCanary Monitorovanie pretečenia pamäte môže spôsobiť, že aplikácia nebude reagovať @@ -473,12 +473,12 @@ Nightcore režim Predvolené Vymazať históriu pozretí - Odstráni históriu prehrávaných streamov. - Vymazať celú históriu pozretí. + Odstráni históriu prehrávaných streamov + Vymazať celú históriu pozretí História pozretí bola vymazaná. Vymazať históriu vyhľadávania - Vymaže históriu vyhľadávania kľúčových slov. - Vymazať celú históriu vyhľadávania. + Vymaže históriu vyhľadávania kľúčových slov + Vymazať celú históriu vyhľadávania História vyhľadávaní bola vymazaná. 1 položka bola vymazaná. From b1ad0edbe1851080bb02fdd8570700832f7d4d7d Mon Sep 17 00:00:00 2001 From: mesnevi Date: Sat, 4 Aug 2018 18:54:28 +0000 Subject: [PATCH 075/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 4fc30e90e..327748c85 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -249,8 +249,8 @@ Нет видео %s видео - %s видео - %s видео + %s видео ролика + %s видео роликов Элемент удалён From 4669a1ab57da847660173fade9a64f3fbffc998b Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 4 Aug 2018 21:41:05 +0000 Subject: [PATCH 076/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 327748c85..cfd68d3d0 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -29,7 +29,7 @@ Скачать Следующее видео URL не поддерживается - \"Следующее\" и \"Предложенные\" + \"Следующее\" и \"Предложенные\" видео Язык контента по умолчанию Видео и аудио Внешний вид @@ -155,7 +155,7 @@ Отключено Изменение размера - В некоторых разрешениях НЕ будет звука, если эта опция выбрана + В некоторых разрешениях НЕ будет звука, если включено  млн.  млрд. @@ -165,7 +165,7 @@ Варианты поиска Лучшее разрешение - Старый встроенный плеер на Mediaframework + Использовать старый встроенный плеер на Mediaframework Запрос reCAPTCHA Запрошен ввод reCAPTCHA @@ -288,11 +288,11 @@ В фоне В окне Зажмите, чтобы добавить в очередь - В очередь \"В фоне\" - В очередь \"В окне\" - Видеоплеер - Фоновый плеер - Плеер в окне + Добавить в очередь \"В фоне\" + Добавить в очередь \"В окне\" + Воспроизвести в плеере + Воспроизвести в фоне + Воспроизвести в окне Потоковый плеер не найден (вы можете установить VLC) Страна контента по умолчанию Сервис @@ -335,7 +335,7 @@ Быстрый поиск позиции Неточный поиск позволяет плееру искать позицию быстрее, но менее точно Автодополнение очереди - Добавлять похожие потоки в очередь при воспроизведении последнего, если не включён повтор + Добавлять похожие потоки в очередь при воспроизведении последнего потока, если не включён повтор Отладка Файл @@ -440,7 +440,7 @@ \n \nПродолжить? Загружать миниатюры - Отключите, чтобы не загружать миниатюры и сэкономить трафик и память. Изменение настройки очистит кэш изображений в памяти и накопителе + Отключите, чтобы не загружать миниатюры и сэкономить трафик и память. Изменение настройки очистит кэш изображений Кэш изображений очищен Очистить кэш метаданных Кэш метаданных очищен From 76f97e5c2e15aae8c9bad5a9da315af138c21621 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:12:52 +0000 Subject: [PATCH 077/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index cfd68d3d0..ceb39805f 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -461,12 +461,12 @@ Изменить размер и фон титров. Изменения вступят в силу после перезапуска Очистить историю просмотров - Вся история просмотров будет удалена + Вся история просмотров будет удалена. История просмотров удалена. Очистить историю поиска Удалить историю поисковых запросов Удалить историю воспроизведённых потоков - Вся история поиска будет удалена + Вся история поиска будет удалена. История поиска удалена. 1 элемент удалён. From 7b6d6b466a46bf8a0ba23990b818cad8d2163202 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:10:53 +0000 Subject: [PATCH 078/181] Translated using Weblate (English) Currently translated at 99,7% (382 of 383 strings) --- app/src/main/res/values/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 138a6c4eb..a78c83e0c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -162,11 +162,11 @@ Export history, subscriptions and playlists Clear watch history Deletes the history of played streams - Delete whole watch history + Delete whole watch history. Watch history deleted. Clear search history Deletes history of search keywords - Delete whole search history + Delete whole search history. Search history deleted. Error From cb0f700be17b5ea5e3db9731974861028b8bfb22 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:16:07 +0000 Subject: [PATCH 079/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index ceb39805f..444ecc5ed 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -249,8 +249,8 @@ Нет видео %s видео - %s видео ролика - %s видео роликов + %s видео + %s видео Элемент удалён From b13f7a599b21c8725aa7f8ecd0aa5c0dbc11ff6f Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:40:41 +0000 Subject: [PATCH 080/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 444ecc5ed..f50500911 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -409,7 +409,7 @@ Сообщать об ошибках жизненного цикла Принудительно сообщать о недоставляемых Rx-исключениях вне фрагмента или жизненного цикла после удаления - Импорт/Экспорт + Импорт и экспорт Импорт Импорт из Экспорт в From 8209eda27a385ebd914e3f7280a4ef1e60df0e65 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:18:24 +0000 Subject: [PATCH 081/181] Translated using Weblate (Arabic) Currently translated at 99,7% (382 of 383 strings) --- app/src/main/res/values-ar/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 1009e8e87..c070dd189 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -412,11 +412,11 @@ محو سجل المشاهدة احذف محفوظات الفديوهات التي تم تشغيلها - حذف سجل المشاهدة بالكامل + حذف سجل المشاهدة بالكامل. سجل المشاهدة محذوف. محو سجل البحث يحذف تاريخ البحث عن الكلمات الرئيسية - حذف محفوظات البحث بالكامل + حذف محفوظات البحث بالكامل. سجل البحث المحذوف. المشغل الخارجي لا يدعم هذه الأنواع من الروابط مصدر ملف / مصدر غير صالح From bbc1642b90e6a7748df588cae0080690ec836fec Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:19:10 +0000 Subject: [PATCH 082/181] Translated using Weblate (Basque) Currently translated at 99,7% (382 of 383 strings) --- app/src/main/res/values-eu/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 9f9fceb8b..1dfc8f059 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -338,11 +338,11 @@ Esportatu historiala, harpidetzak eta erreprodukzio-zerrendak Garbitu ikusitakoaren historiala Jotako jarioen historiala ezabatzen du - Ezabatu ikusitakoaren historial osoa + Ezabatu ikusitakoaren historial osoa. Ikusitakoaren historiala ezabatuta. Garbitu bilaketa historiala Ezabatu bilaketa gakoen historiala - Ezabatu bilaketen historial osoa + Ezabatu bilaketen historial osoa. Bilaketen historiala ezabatuta. Direktorio baliogabea Fitxategi edo edukiaren iturri baliogabea From 333506e00b17f79c7b2affcd679f2345dd52f522 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:19:41 +0000 Subject: [PATCH 083/181] Translated using Weblate (Bulgarian) Currently translated at 98,4% (377 of 383 strings) --- app/src/main/res/values-bg/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 91d76eb66..b0595a2fa 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -245,11 +245,11 @@ Ще замени текущите история и абонаменти Експортиране на историята, абонаментите и плейлистите Изтрий историята с изгледани - Изтрий цялата история с изгледани + Изтрий цялата история с изгледани. Историята с изгледани е изтрита. Изтрий историята на търсенията Изтрива историята с въвежданите за търсене ключови думи - Изтрий цялата история на търсенията + Изтрий цялата история на търсенията. Историята на търсенията е изтрита. URL подписът на клипа не можа да бъде дешифрован Външните плейъри не поддържат този вид линкове From f55a8deb97500472e7a4950088d97b336652f406 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:22:32 +0000 Subject: [PATCH 084/181] Translated using Weblate (Catalan) Currently translated at 99,7% (382 of 383 strings) --- app/src/main/res/values-ca/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index eeea5dffe..5f1dfafa7 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -431,11 +431,11 @@ Esborra l\'historial de reproduccions Esborra l\'historial dels vídeos que s\'han reproduït - Esborra tot l\'historial de reproduccions + Esborra tot l\'historial de reproduccions. S\'ha esborrat l\'historial de reproduccions. Esborra l\'historial de cerca Esborra l\'historial de paraules cercades - Esborra tot l\'historial de cerca + Esborra tot l\'historial de cerca. S\'ha esborrat l\'historial de cerca. S\'ha esborrat 1 element. From deef6417ad3ed9e1edd2df431494852b4bd4907f Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:28:36 +0000 Subject: [PATCH 085/181] Translated using Weblate (Chinese (Simplified)) Currently translated at 97,1% (372 of 383 strings) --- app/src/main/res/values-zh-rCN/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index cd5e7bc4f..08baee9b2 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -440,11 +440,11 @@ 清除观看记录 删除视频观看记录 - 删除全部观看记录 + 删除全部观看记录。 观看记录已删除。 清除搜索记录 删除搜索关键词记录 - 删除全部搜索记录 + 删除全部搜索记录。 搜索记录已删除。 已删除1项。 From 3d359b7a98b3d0525f1680a9b6dbd6a148400d0a Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:26:21 +0000 Subject: [PATCH 086/181] Translated using Weblate (Chinese (Traditional)) Currently translated at 99,7% (382 of 383 strings) --- app/src/main/res/values-zh-rTW/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 2e6610381..ba7c66cf5 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -447,11 +447,11 @@ 清除觀看歷史 刪除播放過的串流歷史 - 刪除全部的觀看歷史 + 刪除全部的觀看歷史。 觀看歷史已刪除。 清除觀看歷史 刪除搜尋關鍵字的歷史 - 刪除全部的搜尋歷史 + 刪除全部的搜尋歷史。 搜尋歷史已刪除。 已刪除 1 個項目。 From c42df3a0c25755a919b94c4cbd5ed33c825e151b Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:36:15 +0000 Subject: [PATCH 087/181] Translated using Weblate (Czech) Currently translated at 93,9% (360 of 383 strings) --- app/src/main/res/values-cs/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index ee848f0e9..89254764a 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -466,11 +466,11 @@ otevření ve vyskakovacím okně Vymazat historii sledování Vymaže historii přehrávaných streamů - Vymazat celkovou historii sledování + Vymazat celkovou historii sledování. Historie sledování smazána. Vymazat historii vyhledávání Vymaže historii vyhledávaných klíčových slov - Vymazat celkovou historii vyhledávání + Vymazat celkovou historii vyhledávání. Historie vyhledávání smazána. Jedna položka smazána. From 761a249e0532bb957208169e949483230a0c4d6d Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:20:16 +0000 Subject: [PATCH 088/181] Translated using Weblate (Dutch) Currently translated at 99,7% (382 of 383 strings) --- app/src/main/res/values-nl/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 358e76fde..0a117443d 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -464,11 +464,11 @@ te openen in pop-upmodus Kijkgeschiedenis wissen Verwijdert de geschiedenis van afgespeelde streams - Verwijdert de gehele kijkgeschiedenis + Verwijdert de gehele kijkgeschiedenis. Kijkgeschiedenis verwijderd. Zoekgeschiedenis wissen Verwijdert de gebruikte zoektermen - Verwijdert de gehele geschiedenis + Verwijdert de gehele geschiedenis. Zoekgeschiedenis verwijderd. 1 item verwijderd. From e52bfe4335437d56c6b4c99614ebabb565c4601f Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:37:43 +0000 Subject: [PATCH 089/181] Translated using Weblate (Estonian) Currently translated at 91,6% (351 of 383 strings) --- app/src/main/res/values-et/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 7f08efd38..e684a8ca4 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -146,11 +146,11 @@ Ekspordi ajalugu, tellimused ja pleilistid Puhasta vaatamiste ajalugu Kustutab vaadatud voogude ajaloo - Kustuta kogu vaatamiste ajalugu + Kustuta kogu vaatamiste ajalugu. Vaatamiste ajalugu kustutati. Kustuta otsinguajalugu Kustutab otsisõnade ajaloo - Kustuta kogu otsinguajalugu + Kustuta kogu otsinguajalugu. Otsinguajalugu kustutati. Viga Võrgu viga From 2cb991203970e9113e46cd69ad0e6468c2d7d9e7 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:35:14 +0000 Subject: [PATCH 090/181] Translated using Weblate (Flemish) Currently translated at 98,6% (378 of 383 strings) --- app/src/main/res/values-nl-rBE/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index c8f3dad2c..434bc3c7b 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -427,11 +427,11 @@ Standaard Kijkgeschiedenis wissen Verwijderd de geschiedenis van afgespeelde streams - Verwijderd de ganse kijkgeschiedenis + Verwijderd de ganse kijkgeschiedenis. Kijkgeschiedenis verwijderd. Zoekgeschiedenis wissen Verwijderd de gebruikte zoektermen - Verwijderd de ganse geschiedenis + Verwijderd de ganse geschiedenis. Zoekgeschiedenis verwijderd. 1 item verwijderd. From 298a91adbfccb3ddb958d59f8a65d4c319c3d219 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:35:48 +0000 Subject: [PATCH 091/181] Translated using Weblate (French) Currently translated at 98,1% (376 of 383 strings) --- app/src/main/res/values-fr/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index f246972db..78a379cf0 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -464,11 +464,11 @@ Effacer l\'historique Supprimer l\'historique des flux regardés - Supprimer tout l\'historique regardé + Supprimer tout l\'historique regardé. Voir l’historique supprimé. Supprimer l\'historique des recherches Supprimer l\'historique de recherche par mot clef - Supprimer tout l\'historique de recherche + Supprimer tout l\'historique de recherche. Historique des recherches effacé. 1 élément supprimé. From eb4764d2b2ffa611d8aedcd8b6805aaa9ea8d46d Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:30:30 +0000 Subject: [PATCH 092/181] Translated using Weblate (German) Currently translated at 99,7% (382 of 383 strings) --- app/src/main/res/values-de/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index c58ab68e9..51b91eb5f 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -462,11 +462,11 @@ Verlauf leeren Löscht den Verlauf der abgespielten Streams - Löscht den ganzen Verlauf + Löscht den ganzen Verlauf. Verlauf gelöscht. Suchverlauf löschen Lösche Verlauf der Suchschlüsselwörter - Lösche gesamten Suchverlauf + Lösche gesamten Suchverlauf. Suchverlauf gelöscht. 1 Element gelöscht. From 0e53323fb7b7741d188974c4b5579268f5180b1e Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:21:49 +0000 Subject: [PATCH 093/181] Translated using Weblate (Italian) Currently translated at 98,6% (378 of 383 strings) --- app/src/main/res/values-it/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 9e2e96789..7e8eb9337 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -469,11 +469,11 @@ Pulisci cronologia visualizzazioni Elimina la cronologia dei flussi riprodotti - Elimina l\'intera cronologia visualizzazioni + Elimina l\'intera cronologia visualizzazioni. Cronologia visualizzazioni eliminata. Pulisci cronologia delle ricerche Cancella la cronologia dei termini di ricerca - Elimina l\'intera cronologia delle ricerche + Elimina l\'intera cronologia delle ricerche. Cronologia delle ricerche eliminata. 1 elemento eliminato. From e6d97bc7738c87d891495d1ee58e2a9cb0046fe1 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:29:52 +0000 Subject: [PATCH 094/181] Translated using Weblate (Macedonian) Currently translated at 96,3% (369 of 383 strings) --- app/src/main/res/values-mk/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index b780b3f10..f5d552ab4 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -423,11 +423,11 @@ Стандардно Избриши историја на гледаност Ја брише историјата на пуштени видеа - Избриши ја целата историја на гледаност + Избриши ја целата историја на гледаност. Избришана е историјата на гледаност. Избриши историја на пребарувања Ја брише историјата на пребарувања - Избриши ја целата историја на пребарувања + Избриши ја целата историја на пребарувања. Избришана е историјата на пребарувања. Нема стримови за симнување From 1fc494571b46b415bfabd5f965abd930f22ae058 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:31:19 +0000 Subject: [PATCH 095/181] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 98,6% (378 of 383 strings) --- app/src/main/res/values-nb-rNO/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index b64dd7b4f..2a94f2fad 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -428,11 +428,11 @@ Forvalg Tøm avspillingshistorikk Slett historikken for avspilte strømmer - Slett hele visningshistorikken + Slett hele visningshistorikken. Visningshistorikk slettet. Tøm søkehistorikk Sletter historikken for søkte nøkkelord - Slett hele søkehistorikken + Slett hele søkehistorikken. Søkehistorikk slettet. Ett element slettet. From 7d1790abe3c7bdc13d6bba10277b3b91a51f4026 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:31:48 +0000 Subject: [PATCH 096/181] Translated using Weblate (Polish) Currently translated at 96,3% (369 of 383 strings) --- app/src/main/res/values-pl/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index a68a50f4b..a03e69748 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -460,11 +460,11 @@ Wyczyść historię oglądania Usuwa historię odtworzonych strumieni - Usuń całą historię oglądania + Usuń całą historię oglądania. Usunięto historię oglądania. Wyczyść historię wyszukiwania Usuwa historię wyszukiwania słów kluczowych - Usuń całą historię wyszukiwania + Usuń całą historię wyszukiwania. Usunięto historię wyszukiwania. Usunięto jedną pozycję. From b57f4202616f5dd654ad9c4e42b532efe57e5813 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:32:38 +0000 Subject: [PATCH 097/181] Translated using Weblate (Portuguese (Brazil)) Currently translated at 99,7% (382 of 383 strings) --- app/src/main/res/values-pt-rBR/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 3ec466bba..19209941b 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -446,11 +446,11 @@ abrir em modo popup "Limpar histórico de já assistidos " Deleta o histórico de videos já reproduzidos - Deleta todo o histórico de já reproduzidos + Deleta todo o histórico de já reproduzidos. Histórico de já assistidos deletado. Limpar histórico de pesquisa Deleta histórico de palavras chave pesquisadas - Deletar todo o histórico de pesquisa + Deletar todo o histórico de pesquisa. Histórico de pesquisa deletado. 1 item deletado. From 8a0e4b577cdd17074c35c4f14c6177c5873b123f Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:33:18 +0000 Subject: [PATCH 098/181] Translated using Weblate (Slovak) Currently translated at 93,7% (359 of 383 strings) --- app/src/main/res/values-sk/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index f4a2b16f8..e337699f5 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -474,11 +474,11 @@ Predvolené Vymazať históriu pozretí Odstráni históriu prehrávaných streamov - Vymazať celú históriu pozretí + Vymazať celú históriu pozretí. História pozretí bola vymazaná. Vymazať históriu vyhľadávania Vymaže históriu vyhľadávania kľúčových slov - Vymazať celú históriu vyhľadávania + Vymazať celú históriu vyhľadávania. História vyhľadávaní bola vymazaná. 1 položka bola vymazaná. From dcb11f01e120f69bb9e9b9549ce0ce5d6eee78d9 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:21:16 +0000 Subject: [PATCH 099/181] Translated using Weblate (Spanish) Currently translated at 99,7% (382 of 383 strings) --- app/src/main/res/values-es/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index b2aca1df6..2c974e935 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -468,11 +468,11 @@ abrir en modo popup Borrar historial de reproducciones Elimina el historial de las transmisiones reproducidas - Elimina todo el historial de reproducciones + Elimina todo el historial de reproducciones. Historial de reproducciones eliminado. Borrar historial de búsqueda Elimina el historial de palabras clave de búsqueda - Elimina todo el historial de búsqueda + Elimina todo el historial de búsqueda. Historial de búsquedas eliminado. 1 elemento eliminado. From 6e66c013c02a270240bdb6452ed1c5f351810f3e Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:36:47 +0000 Subject: [PATCH 100/181] Translated using Weblate (Swedish) Currently translated at 99,7% (382 of 383 strings) --- app/src/main/res/values-sv/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 675514f17..ebd9e934c 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -324,11 +324,11 @@ Exportera historik, prenumerationer och spellistor Rensa visningshistorik Tar bort historiken för spelade videoklipp - Ta bort hela visningshistoriken + Ta bort hela visningshistoriken. Visningshistorik borttagen. Rensa sökhistorik Tar bort historiken för sökta nyckelord - Ta bort hela sökhistoriken + Ta bort hela sökhistoriken. Sökhistorik borttagen. Externa spelare stöder inte dessa typer av länkar Ogiltig URL From 02ef05160f3c270b8b4b5b33cd2d5f1c186d2bea Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:33:49 +0000 Subject: [PATCH 101/181] Translated using Weblate (Turkish) Currently translated at 99,7% (382 of 383 strings) --- app/src/main/res/values-tr/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 15fbc4130..df5f25999 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -460,11 +460,11 @@ İzleme geçmişini temizle Oynatılan akışların geçmişini siler - Tüm izleme geçmişini sil + Tüm izleme geçmişini sil. İzleme geçmişi silindi. Arama geçmişini temizle Aranan anahtar sözcüklerin geçmişini siler - Tüm arama geçmişini sil + Tüm arama geçmişini sil. Arama geçmişi silindi. 1 öge silindi. From 62e121c12c3267a42efa3e99717f86b571a74a03 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 10:34:47 +0000 Subject: [PATCH 102/181] Translated using Weblate (Ukrainian) Currently translated at 99,7% (382 of 383 strings) --- app/src/main/res/values-uk/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 313448323..80f8a1d10 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -452,11 +452,11 @@ Очистити історію переглядів Видаляє історію відтворень - Видалити всю історію переглядів + Видалити всю історію переглядів. Історію переглядів було видалено. Очистити історію пошуків Видаляє історію шуканих ключових слів - Видалити всю пошукову історію + Видалити всю пошукову історію. Пошукову історію було видалено. Видалено один фраґмент. From a9ea06f75358fb9c5b529545e2b3c3c8cce84c9e Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 11:29:58 +0000 Subject: [PATCH 103/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f50500911..dbd0914cc 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -380,7 +380,7 @@ Добавить в плейлист На миниатюру плейлиста - Добавить плейлист в закладки + Добавить закладку Удалить закладку Удалить этот плейлист? From 5d0528d19567ffc7c16df15aec9af0c962f1cecc Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 13:31:46 +0000 Subject: [PATCH 104/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index dbd0914cc..0e33dd9b2 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -462,12 +462,12 @@ Очистить историю просмотров Вся история просмотров будет удалена. - История просмотров удалена. + История просмотров удалена Очистить историю поиска Удалить историю поисковых запросов Удалить историю воспроизведённых потоков Вся история поиска будет удалена. - История поиска удалена. + История поиска удалена 1 элемент удалён. NewPipe — свободное программное обеспечение: вы можете использовать, изучать и улучшать его по своему усмотрению. В частности, вы можете распространять и/или изменять его в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation, либо версии 3, либо (по вашему выбору) любой более поздней версии. From d1741e40e3dc857383a9a0cdc24af8fe56d1e2be Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 18:19:49 +0000 Subject: [PATCH 105/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 0e33dd9b2..78a1e514a 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -160,7 +160,7 @@  млрд.  тыс. - Разрешение всплывающего окна + Разрешение очереди \"В окне\" Запоминать размер и положение всплывающего окна Варианты поиска Лучшее разрешение From 79097eca47f56d9f3f43b43bae292176ecfbc12b Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 5 Aug 2018 20:51:43 +0000 Subject: [PATCH 106/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 78a1e514a..691fb7f71 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -290,9 +290,9 @@ Зажмите, чтобы добавить в очередь Добавить в очередь \"В фоне\" Добавить в очередь \"В окне\" - Воспроизвести в плеере - Воспроизвести в фоне - Воспроизвести в окне + Начать отсюда в плеере + Начать отсюда в фоне + Начать отсюда в окне Потоковый плеер не найден (вы можете установить VLC) Страна контента по умолчанию Сервис From cfa926542ed5d56b0a34d43c24ae6fc8a42684ec Mon Sep 17 00:00:00 2001 From: mesnevi Date: Mon, 6 Aug 2018 07:19:45 +0000 Subject: [PATCH 107/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 691fb7f71..2b8d170a0 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -248,9 +248,9 @@ Нет видео - %s видео - %s видео - %s видео + %s видео ролик + %s видео ролика + %s видео роликов Элемент удалён From e53bd505fb37ffae8d78ea3730ccba6380a1c128 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Mon, 6 Aug 2018 09:58:47 +0000 Subject: [PATCH 108/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 2b8d170a0..4f1615574 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -458,7 +458,7 @@ Титры Приложение для воспроизведения этого файла не установлено - Изменить размер и фон титров. Изменения вступят в силу после перезапуска + Изменить размер текста и стиль титров. Изменения вступят в силу после перезапуска Очистить историю просмотров Вся история просмотров будет удалена. From e1ac1547fd487ec72a35d3c585d3ed467afd24f4 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 6 Aug 2018 05:27:46 +0000 Subject: [PATCH 109/181] Translated using Weblate (Ukrainian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-uk/strings.xml | 60 +++++++++++++------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 80f8a1d10..c58e0b365 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -17,21 +17,21 @@ Зовнішній відео-програвач Зовнішній аудіо-програвач - Шлях для завантаження відео - Вкажіть шлях для завантаження відео + Шлях для завантаження відеозапису + Вкажіть шлях для завантаження відеозаписів Вкажіть шлях для завантаження аудіо файлів - Шлях де будуть зберігатись завантажені відео + Шлях де зберігатимуться завантажені відеозаписи Шлях для завантаження аудіо - Шлях де будуть зберігатись завантажені аудіо файли + Шлях де зберігатимуться завантажені аудіофайли Автоматично відтворювати - Відтворює відео коли NewPipe викликано з іншого застосунку + Відтворює відеозапис коли NewPipe викликано з іншого застосунку Типова роздільна здатність Відтворювати за допомогою Kodi Застосунок Kore не знайдено. Встановити? Відтворювти у Kodi - Показувати опцію відтворення відео за допомогою Kodi media center + Показувати опцію відтворення відеозапису за допомогою Kodi media center Аудіо Типовий аудіо формат WebM — вільний формат @@ -41,8 +41,8 @@ Світла Завантажити - Наступне відео - Показувати \"наступні\" та \"схожі\" відео + Наступний відеозапис + Являти \"наступні\" й \"схожі\" відео URL не підтримується Переважна мова контенту Відео та Аудіо @@ -52,14 +52,14 @@ Відтворити У доступі відмовлено Контент - Показувати контент з віковими обмеженнями - Це відео має вікові обмеження. Спершу активуйте опцію для відображення таких відео у налаштуваннях. + Контент з віковими обмеженнями + Відеозапис має вікові обмеження. Спершу активуйте опцію для програвання таких записів у налаштуваннях. наживо Хиба Хиба мережі Не вдалося завантажити всі ескізи - Не вдалося розшифрувати підпис URL відео + Не вдалося розшифрувати URL підпис відеозапису Не вдалося проаналізувати веб-сайт Не вдалося повністю проаналізувати веб-сайт Контент не доступний @@ -140,13 +140,13 @@ Новинки - Тло + На тлі У вікні Типова роздільна здатність вікна - Не всі пристрої підтримують відтворення 2K/4K відео - Показувати більші роздільні здатності - Типовий відео формат + Не всі пристрої підтримують відтворення 2K/4K відеозаписи + Більші роздільні здатності + Типовий формат відеозапису Пам\'ятати розмір та позицію вікна Пам\'ятати останній розмір вікна Керування жестами @@ -156,10 +156,10 @@ Історія пошуків Зберігати пошукові запити локально Історія та кеш - Вести облік перегляду відео + Вести облік перегляду відеозаписів Відновити відтворення Продовжувати відтворення опісля переривання (наприклад телефонного дзвінка) - Показувати \"утримуй, аби додати\" підказку + \"Утримуй аби додати\" підказка Усталена країна контенту Сервіс Програвач @@ -201,7 +201,7 @@ Звіт користувача Без підписників - Без відео + Відео нема Помилкова URL або інтернет не є доступним Цей дозвіл має бути відкритим \nу вікні @@ -209,7 +209,7 @@ «reCAPTCHA» Завантаження Допустимі символи у назвах файлів - "Неправильні символи будуть скоректовані цим " + "Неправильні символи коригуватимуться цим " Символ заміни Літери та цифри @@ -233,7 +233,7 @@ Деталі Налаштування аудіо - Відео програвач + Відеопрогравач Фоновий програвач Віконний програвач Щоразу питати @@ -265,9 +265,9 @@ - %s відео - %s відео - %s відео + %s відеозапис + %s відеозаписи + %s відеозаписів Створити @@ -284,7 +284,7 @@ Моніторинг витоку памяті вимкнено Усунення вад Нічого нема - Старий убудований медіа-фреймворк програвач + Старий убудований медія-фреймворк програвач Перегляди відсутні @@ -386,7 +386,7 @@ Використовувати неточне шукання Неточне шукання дозволяє програвачеві рухатися позиціями швидше, проте з меншою точністю - Автоматично додати до черги наступний стрим + Чи наступний стрим у черзі Автоматично додавати пов\'язаний стрим під час відтворення останнього у неповторювальній черзі СИНХРОНІЗАЦІЯ @@ -463,22 +463,22 @@ "NewPipe є вільною копілефт програмою: Ви можете використовувати її, поширювати та вдосконавлювати за власним розсудом. Зокрема ви можете перерозподіляти та/або змінювати її за умов використання GNU General Public License, опублікованою Free Software Foundation, під 3-ю версією ліцензії, або (на ваш вибір) будь-якою пізнішою версією." Чи ви також бажаєте імпортувати налаштування? - Політика приватності NewPip\'у - Проєкт NewPipe дуже серйозно ставиться до вашої приватності. Тому цей застосунок не збирає ніяких даних без вашої згоди -\nПолітика приватності NewPipe поясняє у деталях які дані було відіслано та збережено, під час відсилання крахового звіту. + Політика приватності NewPipe\'у + Проєкт NewPipe дуже серйозно ставиться до вашої приватності. Тому цей застосунок не збирає ніяких даних без вашої згоди +\nПолітика приватності NewPipe пояснюється у деталях, які дані було відіслано та збережено, під час відсилання крахового звіту. Читати політику приватності Аби дотриматися Норм загального захисту даних ЄС (General Data Protection Regulation, GDPR), ми просимо звернути вашу увагу на NewPipe\'ову політику приватності. Будь ласка, прочитайте уважно \nВи маєте підтвердити її аби надіслати нам баґового звіту. Ухвалити Відхилити Безмежно - Обмежити роздільну здатність під час користування мобільним інтернетом + Обмеження якості відео (мобільний трафік) Перемотувати підчас тиші Крок Скинути Зменшити при перемкненні застосунку - Дія при перемкненні до інших застосунків з головного відео-програвачу — %s + Дія при перемкненні до інших застосунків з головного відеопрогравача — %s Жодних Зменшити до фонового програвачу Зменшити до віконного програвачу From 4cff7491867cbb48705613fd594c32a1257cf652 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Mon, 6 Aug 2018 12:22:20 +0000 Subject: [PATCH 110/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 4f1615574..d922ab592 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -209,7 +209,7 @@ Загрузки Допустимые символы имён файлов - Недопустимые символы заменяются на этот + Заменяет недопустимые символы Символ для замены Буквы и цифры @@ -341,8 +341,8 @@ Импорт данных Экспорт данных - Ваша текущая история и подписки будут перезаписаны - Экспорт истории, подписок и плейлистов + Текущие подписки, плейлисты и история будут заменены + Экспорт подписок, плейлистов и истории Неверная папка Неверный файл или источник контента Файл не существует или нет разрешения на его чтение или запись @@ -458,7 +458,7 @@ Титры Приложение для воспроизведения этого файла не установлено - Изменить размер текста и стиль титров. Изменения вступят в силу после перезапуска + Изменить размер текста и стиль титров. Нужен перезапуск Очистить историю просмотров Вся история просмотров будет удалена. From 691f93f01c91c243e160f3851546cc313b2920e7 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Mon, 6 Aug 2018 14:50:52 +0000 Subject: [PATCH 111/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index d922ab592..2df1d383b 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -70,7 +70,7 @@ Сервер не поддерживается NewPipe скачивает Неверный URL или нет доступа к интернету - Подробности + Сведения Скопировано в буфер обмена Выберите доступную папку для загрузки @@ -302,7 +302,7 @@ Переключить ориентацию Перейти в фон Перейти в окно - Перейти в главное окно + Перейти в плеер Ошибка плеера без возможности восстановления Внешние плееры не поддерживают ссылки этих типов From a71c693ca31b277dfd69ee72a650e5abf25afc2b Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Mon, 6 Aug 2018 15:05:28 +0000 Subject: [PATCH 112/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 2df1d383b..886773030 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -273,8 +273,8 @@ Воспроизвести всё Не удалось воспроизвести этот поток - Подробности - Настройки аудио + Сведения + Настройки звука Пока нет подписок на каналы Удалить Вы подписаны From 3868c53908e28d3c9cf52f44ff7a981700564d25 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Mon, 6 Aug 2018 19:59:22 +0000 Subject: [PATCH 113/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 886773030..de620c15c 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -248,9 +248,9 @@ Нет видео - %s видео ролик - %s видео ролика - %s видео роликов + %s видео + %s видео + %s видео Элемент удалён From dcf4e43e285bf67384f834babc79c7a8d492453c Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Mon, 6 Aug 2018 20:23:11 +0000 Subject: [PATCH 114/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index de620c15c..78e586575 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -55,7 +55,7 @@ Папка для хранения загруженных аудио Введите путь к папке для загрузки аудио - Нажмите поиск, чтобы начать + Начните с поиска Подождите… Файл уже существует Потоки From bc05cc14451bc6502b231127dd8c604754b28390 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Mon, 6 Aug 2018 22:09:08 +0000 Subject: [PATCH 115/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 78e586575..9fd205b64 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -70,7 +70,7 @@ Сервер не поддерживается NewPipe скачивает Неверный URL или нет доступа к интернету - Сведения + Подробнее Скопировано в буфер обмена Выберите доступную папку для загрузки From 723898f87d070628beed9ed98d5c31203fbba6fb Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Mon, 6 Aug 2018 22:24:09 +0000 Subject: [PATCH 116/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 9fd205b64..f61704660 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -227,7 +227,7 @@ Поведение История и кэш Плейлист - Отменить + Отмена Нет результатов Ничего нет From 27f5bdeef1e0adf5e9f99c1fc34c25ebf7600df3 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Mon, 6 Aug 2018 23:54:16 +0000 Subject: [PATCH 117/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f61704660..e16b8bb69 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -494,7 +494,7 @@ Сброс При сворачивании плеера - При переключении со стандартного плеера на другое приложение — %s + При переключении со встроенного плеера на другое приложение — %s Ничего не делать Фоновый плеер Плеер в окне From 01c9ab36b7bd4d6baad721f6e079892ecf3a70be Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Tue, 7 Aug 2018 00:10:49 +0000 Subject: [PATCH 118/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e16b8bb69..f161bbda7 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -270,7 +270,7 @@ Новое и горячее Добавлено в очередь в фоне Добавлено в очередь в окне - Воспроизвести всё + Играть всё Не удалось воспроизвести этот поток Сведения From c6a5dedf0a6be69843138abe07ed53dbad5d6026 Mon Sep 17 00:00:00 2001 From: Nathan Follens Date: Tue, 7 Aug 2018 08:45:30 +0000 Subject: [PATCH 119/181] Translated using Weblate (Dutch) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-nl/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 0a117443d..bca77d58c 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -256,7 +256,7 @@ te openen in pop-upmodus Geen video\'s %s video - %s video\'s + %s video’s Item verwijderd From 9ed823b5a52c3fe75f6031c43170a5faedbe985c Mon Sep 17 00:00:00 2001 From: Nathan Follens Date: Tue, 7 Aug 2018 08:45:53 +0000 Subject: [PATCH 120/181] Translated using Weblate (Flemish) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-nl-rBE/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index 434bc3c7b..ad1eb5ff6 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -458,4 +458,8 @@ Stap Standaardwaarden herstellen + Kanalen + Afspeellijsten + Nummers + Gebruikers From 7817cfe0c10630ce440ebcc847e50ef2e16d70a2 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Tue, 7 Aug 2018 21:16:46 +0000 Subject: [PATCH 121/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f161bbda7..6ebd69f18 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -489,7 +489,7 @@ Плейлисты Дорожки Пользователи - Пропускать тишину + Проматывать тишину Шаг Сброс From 20c3badfac1b161fd6316c17dfd6adfe58a113cb Mon Sep 17 00:00:00 2001 From: Nathan Follens Date: Tue, 7 Aug 2018 08:47:16 +0000 Subject: [PATCH 122/181] Translated using Weblate (Flemish) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-nl-rBE/strings.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index ad1eb5ff6..96d0cdb91 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -76,9 +76,9 @@ Alle gecachete webpagina-gegevens wissen Metagegevens-cache gewist Volgende stream automatisch in wachtrij plaatsen - Automatisch ne gerelateerde stream toevoegen bij het afspelen van de laatste stream in ne nie-herhalende wachtlijst + Automatisch ne gerelateerde stream toevoegen bij het afspelen van de laatste stream in een niet-herhalende wachtlijst Bewegingscontrole - Gebruik bewegingen voor helderheid en volume van de speler aan te passen + Gebruikt bewegingen voor helderheid en volume van de speler aan te passen Zoeksuggesties Toon suggesties bij zoeken Zoekgeschiedenis @@ -145,8 +145,8 @@ Databank importeren Databank exporteren - Dit zal uw huidige geschiedenis en abonnementen overschrijven - Exporteer geschiedenis, abonnementen en speellijsten + Dit gaat uw huidige geschiedenis en abonnementen overschrijven + Exporteert geschiedenis, abonnementen en speellijsten Fout Netwerkfout Kon niet alle miniaturen laden @@ -426,12 +426,12 @@ Nightcore Standaard Kijkgeschiedenis wissen - Verwijderd de geschiedenis van afgespeelde streams - Verwijderd de ganse kijkgeschiedenis. + Verwijdert de geschiedenis van afgespeelde streams + Verwijdert de ganse kijkgeschiedenis. Kijkgeschiedenis verwijderd. Zoekgeschiedenis wissen - Verwijderd de gebruikte zoektermen - Verwijderd de ganse geschiedenis. + Verwijdert de gebruikte zoektermen + Verwijdert de ganse geschiedenis. Zoekgeschiedenis verwijderd. 1 item verwijderd. From 6a1fbb00d947a6a8a0843cde9dbb0f9a37bb0964 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Tue, 7 Aug 2018 22:02:44 +0000 Subject: [PATCH 123/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 6ebd69f18..24a8b5c3c 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -471,7 +471,7 @@ 1 элемент удалён. NewPipe — свободное программное обеспечение: вы можете использовать, изучать и улучшать его по своему усмотрению. В частности, вы можете распространять и/или изменять его в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation, либо версии 3, либо (по вашему выбору) любой более поздней версии. - При открытии контента + При открытии ссылки Хотите импортировать настройки? Политика конфиденциальности NewPipe From 5e13a1735df609f360bc4937e9ad3a8db2d5f973 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Tue, 7 Aug 2018 23:52:32 +0000 Subject: [PATCH 124/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 24a8b5c3c..4be5a2245 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -257,10 +257,10 @@ Удалить этот элемент из истории поиска? Контент главной страницы Пустая страница - Страница киоска - Страница подписки - Страница ленты - Страница канала + Киоск + Подписки + Что нового + Канал Выберите канал Выберите киоск From 5c32d73409cff3387cf2baefa498f9c064a2eae8 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Wed, 8 Aug 2018 11:37:06 +0000 Subject: [PATCH 125/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 4be5a2245..caf09979f 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -197,9 +197,9 @@ Что нового История поиска - Хранить поисковые запросы локально + Хранить запросы поиска локально История и кэш - Запоминать просмотренные видео + Запоминать воспроизведённые потоки Возобновить при фокусе Возобновлять воспроизведение после перерывов (например, телефонных звонков) @@ -464,7 +464,7 @@ Вся история просмотров будет удалена. История просмотров удалена Очистить историю поиска - Удалить историю поисковых запросов + Удалить историю запросов поиска Удалить историю воспроизведённых потоков Вся история поиска будет удалена. История поиска удалена From 0713f55e9c8bf43ad0b758e04206f91e06625da4 Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 8 Aug 2018 17:53:26 +0000 Subject: [PATCH 126/181] Translated using Weblate (Ukrainian) Currently translated at 100.0% (383 of 383 strings) --- app/src/main/res/values-uk/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index c58e0b365..d946a2cb0 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -321,8 +321,8 @@ Контент на головній сторінці Порожня сторінка Kiosk - Сторінка підписання - Сторінка фіду + Підписання + Нове Сторінка каналу Обрати канал Ви не підписані до жодного з каналів From 86732b6ae4eaf225052b6aa747e73d1317c5acf3 Mon Sep 17 00:00:00 2001 From: Dharmendra Date: Wed, 8 Aug 2018 17:00:08 +0000 Subject: [PATCH 127/181] Translated using Weblate (Hindi) Currently translated at 91.3% (350 of 383 strings) --- app/src/main/res/values-hi/strings.xml | 115 +++++++++++++++++++++---- 1 file changed, 97 insertions(+), 18 deletions(-) diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 909218fe3..8040f93b5 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -25,11 +25,11 @@ ऑडियो हलका काली - इतिहास + इतिहास और कैच डाउनलोड अगला वीडियो वीडियो और ऑडियो - इतिहास + इतिहास और कैच बैकग्राउंड में चल रहा है कोई दर्शक नहीं कोई वीडियो नहीं है @@ -99,11 +99,11 @@ जब कुछ ढूंड रहे हो तो सुझाव दिखाये खोज के इतिहास को देखे खोज के query को फ़ोन की मेमोरी में ही रखे - जो विडियो देखे है उस पर नजर रखे + देखे हुए वीडियो की सूची रखे जब फोकस मिले तो विडियो resume हो रूकावट आने पर भी विडियो को जारी रखे (जैसे - फ़ोन कॉल आये) - आगे ऐसा ही विडियो दिखाए जैसा पहले देखा था - "\"संलग्न करने के लिए पकड़ें\" देखायें " + \'अगला\' और \'पहले समान\' वीडियो दिखाए + \"संलग्न करने के लिए पकड़ें रहे\" दिखाए जब बैकग्राउंड और पॉपअप बटन विडियो के विवरण पन्ने में दबाई जाए तो tip को दिखाए ये वाला URL इसमें नहीं चलेगा डिफ़ॉल्ट विषय की भाषा @@ -155,7 +155,7 @@ कोई भी विडियो नहीं मिल रहा फोटो को load नहीं कर सकते APP/UI टूट गया - इस विडियो को चलाने में असफलता हो रही है + इस विडियो को चलाने में असफल हुए कभी ठीक न होने वाले विडियो प्लेयर की त्रुटी आ रही है विडियो प्लेयर त्रुटी से ठीक हो रहा है @@ -183,7 +183,7 @@ यंहा कुछ नहीं है "डाउनलोड वाली डायरेक्टरी को बना नहीं सकते \'%1$s\'" - डाउनलोड की डायरेक्टरी बन चुकी है \'%1$s\' + डाउनलोड की डायरेक्टरी बना दी गई है \'%1$s\' विडियो ऑडियो @@ -249,7 +249,7 @@ %2$s के द्वारा © %1$s जो %3$s के अधीन आते है लाइसेंस load नहीं हो रहा सहयोगकर्ता - एंड्राइड के लिए कम मेमोरी वाला और मुफ्त फ्रंट एंड Youtube. + एंड्राइड के लिए हल्का और मुफ्त स्ट्रीमिंग। अगर आपके पास कोई सुझाव हो जैसे -अनुवाद , डिजाईन में बदलाव ,code को साफ़ रखना , या फिर code में जायदा बदलाव लाना हो तो - साहयता के लिए आपका स्वागत है . जितना ज्यादा होगा उतना बेहतर होगा ! क्या आप इसको खोज इतिहास के मिटाना चाहते है ? @@ -312,10 +312,10 @@ नाम बदलें दान करें - NewPipe स्वयंसेवकों द्वारा विकसित किया जाता है जो आपको अच्छा अनुभव देने के लिए अपना खाली समय व्यतीत करते हैं। अब यह सुनिश्चित करने का समय है कि हमारे डेवलपर्स जावा के कप का आनंद लेते समय NewPipe को और भी बेहतर बना सके! + NewPipe स्वयंसेवकों द्वारा विकसित किया जाता है जो आपको अच्छा अनुभव देने के लिए अपना खाली समय व्यतीत करते हैं। स्वयंसेवको को मदद भेजे, ताकि वह NewPipe को और अच्छा बना सके। वापस दे वेबसाइट - अधिक जानकारी और NewPipe के बारे में नवीनतम समाचार प्राप्त करने के लिए हमारी वेबसाइट पर जाएं । + अधिक जानकारी और खबरों के लिए NewPipe की वेबसाइट पर जाएं । क्या आप इस आइटम को वॉच इतिहास से हटाना चाहते हैं? क्या आप वाकई इतिहास से सभी आइटंस हटाना चाहते हैं? पिछला चलाया गया @@ -329,7 +329,7 @@ ड्रावर खोलें ड्रावर बंद करें - जल्द ही यहां पर कुछ आएगा ;D + जल्द ही यहां पर कुछ दिखाई देगा ;D वीडियो प्लेयर @@ -338,7 +338,7 @@ हमेशा पूछें जानकारी प्राप्त की जा रही है… - अनुरोधित कंटेंट लोड हो रहा है + अनुरोधित सामग्री लोड कर रहे है नई प्लेलिस्ट बनाएं प्लेलिस्ट हटाएं @@ -351,12 +351,12 @@ बुकमार्क हटायें क्या आप इस प्लेलिस्ट को हटाना चाहते हैं? - प्लेलिस्ट सफलतापूर्वक बनाई गई + सूची बना दी गई प्लेलिस्ट में जोड़ा गया प्लेलिस्ट का थंबनेल बदल दिया गया है - प्लेलिस्ट हटाने में असफल + सूची हटाने में असफल - कोई कैप्शन नहीं + कोई कैप्शन नहीं है फिट भरें @@ -373,13 +373,13 @@ डीबग करें ऑटो-जनरेटेड LeakCanary सक्षम करें - हीप डंप करने के दौरान मेमोरी लीक मॉनिटरिंग app को अनुत्तरदायी बना सकता है + हीप डंप करने के दौरान मेमोरी लीक मॉनिटरिंग ऐप को अनुत्तरदायी बना सकता है Out-of-Lifecycle त्रुटियों की रिपोर्ट करें छायाप्रारुप लोड करें तेजी से अचूक तलाश का प्रयोग करें अचूक खोज प्लेयर को कम परिशुद्धता के साथ तेजी से पदों की तलाश करने की अनुमति देता है - सभी थंबनेल को डेटा और मेमोरी उपयोग पर लोड करने और सहेजने से रोकने के लिए अक्षम करें। इसे बदलने से इन-मेमोरी और ऑन-डिस्क छवि कैश दोनों साफ़ हो जाएंगे। + सभी थंबनेल को लोड होने से रोके और डेटा और मेमोरी का उपयोग घटाए। इसे बदलने से मेमोरी और डिस्क की छवि की कैश साफ़ हो जाएगी छवि कैश मिटा दिया कैश मेटाडेटा वाइप करें सभी कैश किए गए वेबपृष्ठ डेटा हटाएं @@ -388,4 +388,83 @@ गैर-दोहराने वाली कतार में अंतिम स्ट्रीम चलाते समय संबंधित स्ट्रीम को स्वतः संलग्न करें। फाइल - + चेनल्स + सूची + ट्रेक + उपभोगता + देखे हुए वीडियो की सूची साफ करें + चलाये गए स्ट्रीम का इतिहास साफ करता है + देखे गए सभी का इतिहास साफ करें। + देखे हुए का इतिहास साफ कर दिया गया। + ढूंढने के इतिहास को साफ करें + ढूंढे गए शब्दो का इतिहास साफ करता है + ढूंढने के इतिहास को पूरा साफ करें। + ढूंढने के इतिहास को साफ कर दिया। + अमान्य डाइरेक्टरी + अमान्य फाइल/कॉन्टेंट उदभावस्थान + फाइल मौजूद नही है या उसे पढने या लिखने की पर्याप्त अनुमति नही है + फाइल का नाम खाली नही हो सकता + एक भूल हुई: %1$s + डाउनलोड करने के लिए कोई स्ट्रीम उपलब्ध नही है + + एक चीज़ साफ कर दी गई। + + इस फ़ाइल को चलाने के लिए कोई ऐप स्थापित नही है + + NewPipe की गोपनीयता नीति + NewPipe परियोजना आपकी गोपनीयता को बहोत गंभीर रूप से लेता है। इसलिए, ऐप आपकी अनुमति के बिना कोई डेटा जमा नही करता। +\nNewPipe की गोपनीयता नीति विस्तार से समज़ाती है कि कोनसा डेटा भेजा या संग्रह किया जाता है जब आप क्रेश विवरण भेजते है। + गोपनीयता नीति पढ़े + क्या आप सेटिंग्स भी आयात करना चाहते है? + + पसंदीदा \'खोलने पर\' करवाई + सामग्री खोलते समय डिफ़ॉल्ट कारवाही + + केप्सन + प्लेयर केप्शन के शब्दों का परिमाण और पृष्ठभूमि शैलियो को बदले। लागू करने के लिए ऐप को पुनः प्रारम्भ करना जरूरी है। + + आयात/निर्यात + आयात + से आयात करे + पर निर्यात करे + + आयात किया जा रहा है… + निर्यात किया जा रहा है… + + फाइल आयात करे + पहले वाला निर्यात + + सब्सक्रिप्शन आयात नही कर सके + सब्सक्रिप्शन निर्यात नही कर सके + + निर्यात की गई फाइल को डाउनलोड करके यूट्यूब सब्सक्रिप्शन को आयात करे: +\n +\n1. इस URL पर जाए: %1$s +\n2. जब कहा जाए, लॉगिन करे +\n3. एक डाउनलोड शुरू होना चाहिए (यही निर्यात की गई फाइल है) + आपका आई डी, soundcloud.com/yourid + + ध्यान रखे, यह तरीका नेटवर्क साधनो के लिए मंहगा हो सकता है। +\n +\nक्या आप आगे बढ़ना चाहते है? + + चलाने की गति के नियंत्रण + गति + ऊंचाई + अनलिंक (बिगाड़ सकता है) + खामोशी के समय तेज़ी से आगे बढ़े + कदम + रिसेट + + स्वीकारे + अस्वीकार करे + + असीमित + मोबाइल डेटा उपयोग करते समय रेसॉल्युसेन मर्यादित करे + ऐप बदलते समय मिनिमाइज करे + "कार्यवाई, मुख्य वीडियो चालक से दूसरी ऐप पर जाने पर — %s" + कोई नही + पृष्ठभूमि प्लेयर जैसे मिनिमाइज करे + पॉप अप प्लेयर जैसे मिनिमाइज करे + + From ac1fe66cf9f91156e992c43e43e9de0523e7ad5f Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sun, 12 Aug 2018 20:08:24 +0000 Subject: [PATCH 128/181] Translated using Weblate (Russian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index caf09979f..1b01e965f 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -21,7 +21,7 @@ Воспроизвести в Kodi Приложение Kore не найдено. Установить его? \"Воспроизвести в Kodi\" - Показать опцию воспроизведения видео через медиацентр Kodi + Показать опцию воспроизведения через медиацентр Kodi Аудио Формат аудио по умолчанию WebM — свободный From 5e05e9ec9307ea439a47434723559f7092e28c4f Mon Sep 17 00:00:00 2001 From: rimasx Date: Sat, 11 Aug 2018 12:51:26 +0000 Subject: [PATCH 129/181] Translated using Weblate (Estonian) Currently translated at 99,7% (382 of 383 strings) --- app/src/main/res/values-et/strings.xml | 52 +++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index e684a8ca4..db523e62e 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -9,7 +9,7 @@ Ava veebilehitsejas Ava hüpikaknas Jaga - Laadi alla + Allalaadimine Laadi voog alla. Otsi Seaded @@ -95,7 +95,7 @@ Sisu vaikimisi riik Teenus Sisu vaikimisi keel - Mängija + Pleier Käitumine Heli ja pilt Ajalugu ja vahemälu @@ -210,7 +210,7 @@ Audio Proovi uuesti Pääsuõigused salvestile puuduvad - Kasuta vana mängijat + Kasuta vana pleierit Vana sisseehitatud mediaframework pleier K @@ -346,7 +346,7 @@ Siia ilmub varsti midagi ;D - Eelistatud \'ava\' toiming + Lingi avamine Vaikimisi tegevus sisu avamisel — %s Videopleier @@ -418,4 +418,46 @@ Piiranguta Piira lahutust mobiilse andmeside kasutamisel - + Peamenüü + Kanalid + Pleilistid + Lood + Kasutajad + Lülitu peamisele + + reCAPTCHA nõue + Nõutav on reCAPTCHA + + © %1$s %2$s %3$s alla + Vaba kergekaaluline Androidi voogesitus. + Kui sul on ideid kujunduse muutmisest, koodi puhastamisest või suurtest koodi muudatustest - abi on alati teretulnud. Mida rohkem tehtud, seda paremaks läheb! + NewPipe arendajad on vabatahtlikud, kes kulutavad oma vaba aega, toomaks sulle parimat kogemust. On aeg anda tagasi aidates arendajaid ja muuta NewPipe veel paremaks, nautides ise tassi kohvi. + Anneta + NewPipe võtab privaatsust väga tõsiselt. Seetõttu ei kogu rakendus ilma nõusolekuta mingeid andmeid. +\nNewPipe privaatsuspoliitika selgitab üksikasjalikult, milliseid andmeid saadetakse ja kogutakse veateate saatmisel. + NewPipe vaba avatud koodiga tarkvara. Seada võib kasutada, uurida, jagada ja parandada. Täpsemalt - seda võib levitada ja/või muuta vastavalt Vaba Tarkvara Sihtasutuse avaldatud GNU Üldise Avaliku Litsentsi v.3 (või hilisem) tingimustele. + Luba LeakCanary + Teavita elutsüklist väljas vigadest + Impordi SoundCloudi profiil trükkides URL või oma ID: +\n +\n1. Luba \"töölaua režiim\" veebilehitsejas (lmobiilsete seadmete jaoks leht pole kättesaadav) +\n2. Ava URL: %1$s +\n3. Logi sisse +\n4. Kopeeri suunatud profiili URL. + sinu_ID, soundcloud.com/sinu_id + + Toon + Tühista ühendus (võib põhjustada moonutusi) + Keri helitu koht edasi + Samm + Lähtesta + + Selleks, et täita Euroopa Üldist Andmekaitse Määrust (GDPR), juhime tähelepanu NewPipe\'i privaatsuspoliitikale. Palun lugege seda hoolikalt. +\nMeile veateate saatmiseks tuleb sellega nõustuda. + Minimeeri, kui kasutad teisi rakendusi + Tegevus lülitusel peamiselt videopleierilt teisele rakendusele — %s + Pole + Esita taustal + Minimeeri hüpikpleierisse + + From 4384948f6ccb6358e294c8167ab99403ed60ba66 Mon Sep 17 00:00:00 2001 From: Praveen0899 Date: Mon, 13 Aug 2018 01:35:13 +0000 Subject: [PATCH 130/181] Translated using Weblate (Telugu) Currently translated at 33.9% (130 of 383 strings) --- app/src/main/res/values-te/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-te/strings.xml b/app/src/main/res/values-te/strings.xml index d2231ce43..ffd467e27 100644 --- a/app/src/main/res/values-te/strings.xml +++ b/app/src/main/res/values-te/strings.xml @@ -198,4 +198,5 @@ ఎన్క్యూలో పట్టుకోండి "మీదగార వీడియో కి కావాల్సిన ప్లేయర్ లేదు. VLC ప్లేయర్ ఇన్స్టాల్ చేసుకుంటారా?" "మీదగార వీడియో కి కావాల్సిన ప్లేయర్ లేదు (మీరు VLC ఇసన్తాల్ చేసుకోవచ్చు)" + పాపప్ మోడ్ తెరువఛ From 627301f83d91010c4a1a793442bb63628d1224b0 Mon Sep 17 00:00:00 2001 From: Telugu Speaker Date: Mon, 13 Aug 2018 01:35:49 +0000 Subject: [PATCH 131/181] Translated using Weblate (Telugu) Currently translated at 34.2% (131 of 383 strings) --- app/src/main/res/values-te/strings.xml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-te/strings.xml b/app/src/main/res/values-te/strings.xml index ffd467e27..506c2decf 100644 --- a/app/src/main/res/values-te/strings.xml +++ b/app/src/main/res/values-te/strings.xml @@ -15,7 +15,8 @@ బ్రౌజర్ను ఎంచుకోండి భ్రమణ బాహ్యట ఆడియో ప్లేయర్ని ఉపయోగించండి - న్యూపై పాప్అప్ + న్యూపైప్ పాపప్ మోడ్ +\n సభ్యత్వ సబ్ స్క్రైబ్ అన్ సబ్స్క్రైబ్ చేయబడింది @@ -28,7 +29,7 @@ కొత్తది ఏమిటి వెనకవైపు - పాప్అప్ + పాపప్ వీడియో డౌన్లోడ్ మార్గం డౌన్లోడ్ చేసిన వీడియోలను నిల్వ చేయడానికి మార్గం @@ -198,5 +199,6 @@ ఎన్క్యూలో పట్టుకోండి "మీదగార వీడియో కి కావాల్సిన ప్లేయర్ లేదు. VLC ప్లేయర్ ఇన్స్టాల్ చేసుకుంటారా?" "మీదగార వీడియో కి కావాల్సిన ప్లేయర్ లేదు (మీరు VLC ఇసన్తాల్ చేసుకోవచ్చు)" - పాపప్ మోడ్ తెరువఛ + పాపప్ మోడ్ తెరవండి + డిఫాల్ట్ పాపప్ స్పష్టత From 21b7045f93f1679258415e975a2fcc2739e59f11 Mon Sep 17 00:00:00 2001 From: Ale-Ma Date: Tue, 14 Aug 2018 14:36:20 +0000 Subject: [PATCH 132/181] Translated using Weblate (Italian) Currently translated at 100.0% (383 of 383 strings) --- app/src/main/res/values-it/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 7e8eb9337..62cacc830 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -501,4 +501,8 @@ Minimizza al lettore in sottofondo Minimizza al lettore popup - +Canali + Playlist + Tracce + Utenti + From de080d5811ec504e641d5dacef6d2fb2bd3e3d79 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 14 Aug 2018 08:10:29 +0000 Subject: [PATCH 133/181] Translated using Weblate (Ukrainian) Currently translated at 100.0% (383 of 383 strings) --- app/src/main/res/values-uk/strings.xml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index d946a2cb0..7016286b3 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -48,7 +48,7 @@ Відео та Аудіо Зовнішній вигляд Інше - Відтворення у фоновому режимі + Відтворення у тловому режимі Відтворити У доступі відмовлено Контент @@ -167,7 +167,7 @@ Історія та кеш Вікно Відворення у вікні - Додано до фонового відтворення + Додано до тлового відтворення Додано до чергу у вікно Плейлист Фільтрувати @@ -181,11 +181,11 @@ Тільки тепер NewPipe сповіщення - Сповіщення для фонового та віконного програвачів NewPipe + "Сповіщення для NewPipe\'пових тлового і віконного програвачів " [Невідомо] - Перемкнутися до Тла + Перемкнутися до тла Перемкнутися до вікна Перемкнутися на головну @@ -234,7 +234,7 @@ Налаштування аудіо Відеопрогравач - Фоновий програвач + Тловий програвач Віконний програвач Щоразу питати @@ -247,7 +247,7 @@ Додати до - Показувати підказку коли натиснута кнопка фону або вікна на сторінці інформації відео + Показувати підказку коли натиснута кнопка тла або вікна на сторінці інформації відеозапису Перемкнути орієнтацію Фатальна хиба програвача Зовнішні програвачі не підтримують такі види ланок @@ -333,14 +333,14 @@ Кіоски Набуває популярності - Фоновий програвач + Тловий програвач Віконний програвач Усунути Затиснути, аби зняти з черги - Зняти з черги у фоновому програвачеві + Зняти з черги у тловому програвачеві Зняти з черги у віконному програвачеві Розпочати відтворення звідси - Розпочати відтворення звідси у фоновому програвачеві + Розпочати відтворення у тловому програвачеві Розпочати відтворення у вікні звідси Відчинити шухляду @@ -446,7 +446,7 @@ Типова дія під час відкриття вмісту — %s Субтитри - Змінення маштабу тексту субтитрів та фонових стилів. Увімкнення функції потребує перезавантаження застосунку + Змінення маштабу субтитрового тексту та тлових стилів. Увімкнення функції потребує перезавантаження застосунку Не знайдено відповідного застосунку для відтворення цього файла @@ -480,7 +480,7 @@ Зменшити при перемкненні застосунку Дія при перемкненні до інших застосунків з головного відеопрогравача — %s Жодних - Зменшити до фонового програвачу + До тлового програвача Зменшити до віконного програвачу Канали From e86302f5b9c1f7a97e62db5896b387ccec832020 Mon Sep 17 00:00:00 2001 From: Mauricio Colli Date: Wed, 15 Aug 2018 01:30:42 +0000 Subject: [PATCH 134/181] Added translation using Weblate (Belarusian) --- app/src/main/res/values-be/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 app/src/main/res/values-be/strings.xml diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml new file mode 100644 index 000000000..a6b3daec9 --- /dev/null +++ b/app/src/main/res/values-be/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From cb4c8abd940892fa823413c2bcd6bb6ae72211d5 Mon Sep 17 00:00:00 2001 From: Tobias Groza Date: Tue, 14 Aug 2018 16:25:16 +0000 Subject: [PATCH 135/181] Translated using Weblate (Telugu) Currently translated at 34.2% (131 of 383 strings) --- app/src/main/res/values-te/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-te/strings.xml b/app/src/main/res/values-te/strings.xml index 506c2decf..dc14446e7 100644 --- a/app/src/main/res/values-te/strings.xml +++ b/app/src/main/res/values-te/strings.xml @@ -149,7 +149,7 @@ ఫైల్ ఇప్పటికే ఉంది న్యూపిప్ డౌన్లోడ్ అవుతంది వివరాల కోసం నొక్కండి - దయచేసి వేచి ఉండండి + దయచేసి వేచి ఉండండి… క్లిప్బోర్డ్కు కాపీ చేయబడింది దయచేసి అందుబాటులో ఉన్న డౌన్లోడ్ ఫోల్డర్ను ఎంచుకోండి డౌన్లోడ్ From 042809620adaa33e263bb70298eeb92160ac32be Mon Sep 17 00:00:00 2001 From: Ivan Dekovets Date: Wed, 15 Aug 2018 06:47:40 +0000 Subject: [PATCH 136/181] Translated using Weblate (Belarusian) Currently translated at 100,0% (383 of 383 strings) --- app/src/main/res/values-be/strings.xml | 468 ++++++++++++++++++++++++- 1 file changed, 466 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index a6b3daec9..46c50a828 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -1,2 +1,466 @@ - - \ No newline at end of file + +Націсніце пошук, каб пачаць + %1$s праглядаў + Апублікавана %1$s + Патокавы плэер не знойдзены. Усталяваць VLC? + Патокавы плэер не знойдзены (вы можаце ўсталяваць VLC) + Усталяваць + Скасаваць + Адкрыць у браўзэры + Адкрыць у асобным акне + Падзяліцца + Спампаваць + Загрузка файла прамой трансляцыі. + Пошук + Налады + Магчыма, вы мелі на ўвазе: %1$s? + Падзяліцца з дапамогай + Выбраць браўзэр + паварот + Знешні відэаплэер + У некаторых разрозненнях НЕ будзе гуку, калі гэтая опцыя абраная + Знешні аўдыяплэер + NewPipe ў акне + Падпісацца + Вы падпісаныя + Падпіска адменена + Не атрымалася змяніць падпіску + Не атрымалася абнавіць падпіску + Паказаць звесткі + + Галоўная + Падпіскі + Закладкі + + Што новага + + У фоне + У акне + Дадаць да + + Шлях загрузкі відэа + Папка для захоўвання загружаных відэа + Увядзіце шлях да папкі для загрузкі відэа + + Шлях загрузкі аўдыё + Папка для захоўвання загружаных аўдыё + Увядзіце шлях да папкі для загрузкі аўдыё + + Аўтапрайграванне + Прайграваць відэа пры выкліку NewPipe з іншага прыкладання + Разрознянне па змаўчанні + Разрозненне усплываючага акна + Высокія разрозненні + Толькі некаторыя прылады могуць прайграваць відэа ў 2K/4K + Прайграць у Kodi + Дадатак Kore не знойдзены. Усталяваць яго? + \"Прайграць у Kodi\" + Паказаць опцыю прайгравання відэа праз медыяцэнтр Kodi + Аўдыё + Фармат аўдыё па змаўчанні + Фармат відэа па змаўчанні + WebM - свабодны + M4A - вышэй якасць + Тэма + Светлая + Цёмная + Чорная + Аднавіць акно + Запамінаць памер і становішча ўсплываючага акна + Хуткі пошук пазіцыі + Недакладны пошук дазваляе плэеру шукаць пазіцыю хутчэй, але менш дакладна + Загружаць мініяцюры + Адключыце, каб не загружаць мініяцюры і зэканоміць трафік і памяць. Змена налады ачысьціць кэш малюнкаў у памяці і носьбіце + Кэш малюнкаў ачышчаны + Ачысціць кэш метададзеных + Выдаліць усе загружаныя дадзеныя вэб-старонак + Кэш метададзеных ачышчаны + Аўтадапаўненне чаргі + Дадаваць падобныя патокі ў чаргу пры прайграванні апошняга, калі не ўключаны паўтор + Кіраванне жэстамі + Змяняць яркасць і гучнасць жэстамі + Варыянты пошуку + Адлюстроўваць падказкі пры пошуку + Гісторыя пошуку + Захоўваць пошукавыя запыты лакальна + Гісторыя і кэш + Запамінаць прагледжаныя відэа + Аднавіць пры фокусе + Аднаўляць прайграванне пасля перапынкаў (напрыклад, тэлефонных званкоў) + Спампаваць + Наступнае відэа + \"Наступнае\" и \"Прапанаваныя\" + \"Зацісніце, каб дадаць\" + Паказаць падказку пры націсканні \"У акне\" ці \"У фоне\" на старонцы звестак аб відэа + URL не падтрымліваецца + Краіна кантэнту па змаўчанні + Сэрвіс + Мова кантэнту па змаўчанні + Плэер + Павядзенне + Відэа і аўдыё + Гісторыя і кэш + Усплываючае акно + Знешні выгляд + Іншае + Адладка + Прайграванне ў фонавым рэжыме + Прайграванне ва ўсплываючым акне + Дададзена ў чаргу ў фоне + Дададзена ў чаргу ў акне + Прайграць + Кантэнт + Кантэнт 18+ + Відэа з узроставымі абмежаваннямі. Дазволіць падобны кантэнт можна ў наладах. + ужывую + Загрузкі + Загрузкі + Справаздача пра памылку + Усё + Канал + Каналы + Плэйліст + Плэйлісты + Дарожкі + Карыстальнікі + Так + Пазней + Адключана + Фільтр + Абнавіць + Ачысціць + Змена памеру + Лепшае разрозненне + Скасаваць + Прайграць усё + Заўсёды + Толькі цяпер + Файл + + Апавяшчэнне NewPipe + Апавяшчэнні для NewPipe ў фоне і ва ўсплываючым акне + + [Невядома] + + Пераключыць арыентацыю + Перайсці ў фон + Перайсці ў акно + Перайсці ў галоўнае акно + + Імпарт дадзеных + Экспарт дадзеных + Ваша бягучая гісторыя і падпіскі перазапішуцца + Экспарт гісторыі, падпісак і плэйлістоў + Ачысціць гісторыю праглядаў + Выдаліць гісторыю прайграных патокаў + Уся гісторыя праглядаў будзе выдалена + Гісторыя праглядаў выдалена. + Ачысціць гісторыю пошуку + Выдаліць гісторыю пошукавых запытаў + Уся гісторыя пошуку будзе выдалена + Гісторыя пошуку выдалена. + Памылка + Памылка сеткі + Не атрымалася загрузіць усе мініяцюры + Не атрымалася расшыфраваць подпіс URL у відэа + Не атрымалася разабраць вэб-сайт + Не атрымалася цалкам разабраць вэб-сайт + Кантэнт недаступны + Заблакавана GEMA + Не атрымалася стварыць меню загрузкі + Гэта прамая трансляцыя, яны пакуль не падтрымліваюцца. + Не атрымалася знайсці ні аднаго патока + Не атрымалася загрузіць малюнак + Падзенне прыкладання/UI + Не атрымалася прайграць гэты паток + Памылка плэера без магчымасці аднаўлення + Аднаўленне пасля памылкі плэера + Знешнія плэеры не падтрымліваюць спасылкі гэтых тыпаў + Няправільная спасылка + Патокі відэа не знойдзены + Патокі аўдыё не знойдзены + Няправільная папка + Няправільны файл або крыніца кантэнту + Файл не існуе або няма дазволу на яго чытанне або запіс + Імя файла не можа быць пустым + Адбылася памылка: %1$s + Няма патокаў, даступных для загрузкі + + Прабачце, гэта не павінна было адбыцца. + Адправіць справаздачу па e-mail + Прабачце, адбыліся памылкі. + СПРАВАЗДАЧА + Інфармацыя: + Што адбылося: + Што:\\nЗапыт:\\nМова кантэнту:\\nСэрвіс:\\nЧас па Грынвічы:\\nПакет:\\nВерсія:\\nВерсія АС: + Ваш каментар (English): + Падрабязнасці: + + + Мініяцюра відэа-прэв\'ю + Мініяцюра відэа-прэв\'ю + Мініяцюра аватара карыстальніка + Спадабалася + Не спадабалася + Выкарыстоўваць Tor + (Эксперыментальна) Загружаць праз Tor для павышэння прыватнасці (прамыя трансляцыі пакуль не падтрымліваюцца). + Паведаміць пра памылку + Паведаміць аб парушэнні + Няма вынікаў + Нічога няма + Перацягніце, каб змяніць парадак + + Не атрымалася стварыць папку для загрузкі \"%1$s\" + Створана папка для загрузак \"%1$s\" + + Відэа + Аўдыё + Паспрабаваць зноў + Няма доступу да носьбіта + Стары плэер + Стары убудаваны плэер на Mediaframework + + тыс. + млн. + млрд. + + Няма падпісчыкаў + + %s падпісчык + %s падпісчыка + %s падпісчыкаў + + + Няма праглядаў + + %s прагляд + %s прагляда + %s праглядаў + + + Няма відэа + + %s відэа + %s відэа + %s відэа + + + Пачаць + Паўза + Прайграць + Стварыць + Выдаліць + Выдаліць адно + Выдаліць усё + Кантрольная сума + Адхіліць + Перайменаваць + + Новая мэта + ОК + + Імя файла + Патокі + Памылка + Сервер не падтрымліваецца + Файл ужо існуе + Няправільны URL або няма доступу да інтэрнэту + NewPipe спампоўвае + Падрабязнасці + Пачакайце… + Скапіявана ў буфер абмену + Выберыце даступную папку для загрузкі + Гэтае разрозненне трэба для +\nпрайгравання ў акне + 1 элемент выдалены. + + reCAPTCHA + Запыт reCAPTCHA + Запытаны ўвод reCAPTCHA + + Загрузкі + Дапушчальныя сімвалы назвы файлаў + Недапушчальныя сімвалы замяняюцца на гэтыя + Сімвал для замены + + Літары і лічбы + Большасць спецзнакаў + + Прыкладанне для прайгравання гэтага файла не ўстаноўлена + + Аб NewPipe + Налады + Аб дадатку + Іншыя ліцэнзіі + © %1$s %2$s пад ліцэнзіяй %3$s + Не атрымалася загрузіць ліцэнзію + Адкрыць вэб-сайт + Аб дадатку + Удзельнікі + Ліцэнзіі + Свабоднае легкавагавае патокавае прайграванне на Android. + Дапамога праекту + Вітаецца ўсё - ідэі, пераклад, змены дызайну, чыстка кода або велізарныя змены ў кодзе. Чым больш зроблена, тым лепш! + Адкрыць на GitHub + Ахвяраваць + Распрацоўшчыкі NewPipe цаной свайго вольнага часу робяць ваша жыццё крышачку зручней. Адплаціце ім тым жа - атрымліваючы асалоду ад кубачка кавы, яны змогуць зрабіць NewPipe яшчэ лепей. + Аддаць належнае + Вэб-сайт + Дзеля атрымання больш падрабязнай інфармацыі і апошніх навін аб NewPipe наведайце наш вэб-сайт. + Палітыка прыватнасці NewPipe + Праект NewPipe вельмі сур\'ёзна ставіцца да вашай прыватнасці. Таму прыкладанне не збірае ніякіх дадзеных без вашай згоды. +\nПалітыка прыватнасці NewPipe падрабязна тлумачыць, якія дадзеныя адпраўляюцца і захоўваюцца пры адпраўцы справаздачы аб збоях. + Прачытаць палітыку + Ліцэнзія NewPipe + NewPipe - свабоднае праграмнае забеспячэнне: вы можаце выкарыстоўваць, вывучаць і паляпшаць яго па сваім меркаванні. У прыватнасці, вы можаце распаўсюджваць і / або змяняць яго ў адпаведнасці з умовамі GNU General Public License, апублікаванай Free Software Foundation, альбо версіі 3, альбо (па вашаму выбару) любой больш позняй версіі. + Прачытаць ліцэнзію + + + Гісторыя + Гісторыя пошуку + Прагледжана + Гісторыя адключаная + Гісторыя + Гісторыя пустая + Гісторыя ачышчана + Элемент выдалены + Выдаліць гэты элемент з гісторыі пошуку? + Выдаліць гэты элемент з гісторыі пошуку? + Выдаліць усе элементы з гісторыі? + Нядаўна прайграныя + Часта прайграваемыя + + Кантэнт галоўнай старонкі + Пустая старонка + Старонка кіёска + Старонка падпіскі + Старонка стужкі + Старонка канала + Выберыце канал + Пакуль няма падпісак на каналы + Выберыце кіёск + Экспарт завершаны + Імпарт завершаны + Няма правільнага Zip-файла + Увага: не ўсе файлы былі імпартаваныя. + Бягучыя дадзеныя будуць замененыя. + Хочаце імпартаваць налады? + + Кіёск + Трэнды + Топ 50 + Новае і гарачае + У фоне + У акне + Выдаліць + Падрабязнасці + Налады аўдыё + Зацісніце, каб дадаць у чаргу + У чаргу \"У фоне\" + У чаргу \"У фоне\" + Відэаплэер + Фонавы плэер + Плэер у акне + + Адкрыць бакавую панэль + Зачыніць бакавую панэль + Хутка тут сёе-тое з\'явіцца ;D + + + Пры адкрыцці кантэнту + Пры адкрыцці спасылкі на кантэнт — %s + + Відэаплэер + Фонавы плэер + Плэер у акне + Заўсёды пытацца + + Атрыманне звестак… + Загрузка запытанага кантэнту + + Стварыць плэйліст + Выдаліць плэйліст + Перайменаваць плэйліст + Імя + Дадаць у плэйліст + На мініяцюру плэйліста + + Дадаць плэйліст у закладкі + Выдаліць закладку + + Выдаліць гэты плэйліст? + Плэйліст створаны + Дададзена ў плэйліст + Мініяцюра плэйліста зменена + Не атрымалася выдаліць плэйліст + + Без тытраў + + Падагнаць + Запоўніць + Наблізіць + + Створаны аўтаматычна + + Тытры + Змяніць памер і фон тытраў. Змены ўступяць у сілу пасля перазапуску + + Уключыць LeakCanary + Маніторынг уцечкі памяці можа прывесці да завісання прыкладання + + Паведамляць пра памылкі жыццёвага цыклу + Прымусова паведамляць пра недастаўляемыя Rx-выключэнні па-за фрагментам або жыццёвым цыкле пасля выдалення + + Імпарт/Экспарт + Імпарт + Імпарт з + Экспарт у + + Імпарт… + Экспарт… + + Імпарт файла + Папярэдні экспарт + + Не атрымалася імпартаваць падпіскі + Не атрымалася экспартаваць падпіскі + + Імпарт падпісак з YouTube загрузкай файла экспарту: +\n +\n1. Перайдзіце на: %1$s +\n2. Увайдзіце, калі неабходна +\n3. Павінна пачацца загрузка (гэта будзе файл экспарту) + Імпарт падпісак з SoundCloud набраўшы альбо URL, альбо ваш ID: +\n +\n1. Уключыце \"рэжым працоўнага стала\" у браўзэры (сайт недаступны на тэлефоне) +\n2. Перайдзіце на: %1$s +\n3. Увайдзіце, калі неабходна +\n4. Скапіруйце адрас з адраснага радка. + вашID, soundcloud.com/вашID + + Гэтае дзеянне можа выклікаць вялікі расход трафіку. +\n +\nПрацягнуць? + + Кіраванне хуткасцю прайгравання + Тэмп + Тон + Незалежна (скажэнні) + Прапускаць цішыню + Крок + Скід + + У адпаведнасці з Агульным рэгламентам па абароне дадзеных ЕС (GDPR), звяртаем вашу ўвагу на палітыку прыватнасці NewPipe. Калі ласка, уважліва азнаёмцеся з ёй. +\nВам неабходна прыняць яе ўмовы, каб адправіць нам справаздачу пра памылку. + Прыняць + Адмовіцца + + Без абмежаванняў + Ліміт разрознення ў мабільнай сетцы + Пры згортванні плэера + Пры пераключэнні са стандартнага плэера на іншае прыкладанне — %s + Нічога не рабіць + Фонавы плэер + Плэер у акне + + From 1ccc1f4c1a2ee0ba841a8ffd4a655bb3f4015088 Mon Sep 17 00:00:00 2001 From: "Haris Subandie Md. Suhaimin" Date: Wed, 15 Aug 2018 11:57:23 +0000 Subject: [PATCH 137/181] Added translation using Weblate (Malay) --- app/src/main/res/values-ms/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 app/src/main/res/values-ms/strings.xml diff --git a/app/src/main/res/values-ms/strings.xml b/app/src/main/res/values-ms/strings.xml new file mode 100644 index 000000000..a6b3daec9 --- /dev/null +++ b/app/src/main/res/values-ms/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From 6dccfb4774c4902216e945654590698cf17aa6b9 Mon Sep 17 00:00:00 2001 From: Ivan Dekovets Date: Wed, 15 Aug 2018 06:49:54 +0000 Subject: [PATCH 138/181] Translated using Weblate (Belarusian) Currently translated at 100.0% (383 of 383 strings) --- app/src/main/res/values-be/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 46c50a828..8a1d35df3 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -153,11 +153,11 @@ Экспарт гісторыі, падпісак і плэйлістоў Ачысціць гісторыю праглядаў Выдаліць гісторыю прайграных патокаў - Уся гісторыя праглядаў будзе выдалена + Выдаліць усю гісторыю праглядаў. Гісторыя праглядаў выдалена. Ачысціць гісторыю пошуку Выдаліць гісторыю пошукавых запытаў - Уся гісторыя пошуку будзе выдалена + Выдаліць усю гісторыю пошуку. Гісторыя пошуку выдалена. Памылка Памылка сеткі From e3815e40d22ccc98fc344479ccbdec6b09f1c60b Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Wed, 15 Aug 2018 19:42:25 +0000 Subject: [PATCH 139/181] Translated using Weblate (Russian) Currently translated at 100.0% (383 of 383 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 1b01e965f..0d10dfdbc 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -29,7 +29,7 @@ Скачать Следующее видео URL не поддерживается - \"Следующее\" и \"Предложенные\" видео + \"Следующее\" и \"Похожие\" видео Язык контента по умолчанию Видео и аудио Внешний вид From 5d4f2b786295682c40822f56a2ebd13865e1db29 Mon Sep 17 00:00:00 2001 From: "Haris Subandie Md. Suhaimin" Date: Wed, 15 Aug 2018 12:23:44 +0000 Subject: [PATCH 140/181] Translated using Weblate (Malay) Currently translated at 7.8% (30 of 383 strings) --- app/src/main/res/values-ms/strings.xml | 37 ++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ms/strings.xml b/app/src/main/res/values-ms/strings.xml index a6b3daec9..b228fb282 100644 --- a/app/src/main/res/values-ms/strings.xml +++ b/app/src/main/res/values-ms/strings.xml @@ -1,2 +1,35 @@ - - \ No newline at end of file + +Ketuk carian untuk bermula + %1$s dilihat + Diterbitkan pada %1$s + Tiada pemain strim yang ditemui. Adakah anda mahu memasang VLC? + Tiada pemain strim yang ditemui (anda boleh memasang VLC untuk bermain) + Pasang + Batal + Buka dalam pelayar + Buka dalam mod popup + Kongsi + Muat turun + Muat turun fail strim. + Carian + Tetapan + Adakah anda maksudkan: %1$s ? + Berkongsi dengan + Pilih pelayar + putaran + Guna pemain video luaran + Beberapa resolusi yang TIDAK akan mempunyai audio apabila opsyen ini diaktifkan + Gunakan pemain audio luaran + NewPipe mod popup + Langgan + Dilanggan + Saluran tanpa langganan + Tidak dapat menukar langganan + Tidak dapat mengemaskini langganan + Papar maklumat + + Utama + Langganan + Penanda halaman + + From 510591ef0f33bad0d72a0901c64bee33f29f58c8 Mon Sep 17 00:00:00 2001 From: Somethingweirdhere Date: Thu, 16 Aug 2018 00:45:37 +0200 Subject: [PATCH 141/181] Removed use of blockingFirst() and scheduleDirect() --- .../subscription/SubscriptionFragment.java | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java index a8603960b..c0a96da32 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java @@ -21,7 +21,6 @@ import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; -import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -44,9 +43,9 @@ import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.subscription.SubscriptionExtractor; import org.schabi.newpipe.fragments.BaseStateFragment; import org.schabi.newpipe.info_list.InfoListAdapter; -import org.schabi.newpipe.report.UserAction; import org.schabi.newpipe.local.subscription.services.SubscriptionsExportService; import org.schabi.newpipe.local.subscription.services.SubscriptionsImportService; +import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.UserAction; import org.schabi.newpipe.util.ExtractorHelper; import org.schabi.newpipe.util.FilePickerActivityHelper; @@ -66,7 +65,6 @@ import java.util.Locale; import icepick.State; import io.reactivex.Observer; -import io.reactivex.Scheduler; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.Disposable; @@ -413,13 +411,12 @@ public class SubscriptionFragment extends BaseStateFragment toDelete = subscriptionService.subscriptionTable() + final io.reactivex.Observable> observable = subscriptionService.subscriptionTable() .getSubscription(info.getServiceId(), info.getUrl()) - .blockingFirst(); - Log.d(TAG, "onNext: test"); + .toObservable(); - Scheduler io = Schedulers.io(); - io.scheduleDirect(() -> subscriptionService.subscriptionTable().delete(toDelete)); + observable.observeOn(Schedulers.io()) + .subscribe(getDeleteObserver()); } @Override @@ -434,6 +431,28 @@ public class SubscriptionFragment extends BaseStateFragment> getDeleteObserver(){ + return new Observer>() { + @Override + public void onSubscribe(Disposable d) { + disposables.add(d); + } + + @Override + public void onNext(List subscriptionEntities) { + subscriptionService.subscriptionTable().delete(subscriptionEntities); + } + + @Override + public void onError(Throwable exception) { + SubscriptionFragment.this.onError(exception); + } + + @Override + public void onComplete() { } + }; + } + private void resetFragment() { if (disposables != null) disposables.clear(); if (infoListAdapter != null) infoListAdapter.clearStreamItemList(); From f4416fe007c90f0da6b890c30f5f5ad404e34722 Mon Sep 17 00:00:00 2001 From: Somethingweirdhere Date: Thu, 16 Aug 2018 01:04:37 +0200 Subject: [PATCH 142/181] Doesn't use getChannelInfo() anymore. --- .../subscription/SubscriptionFragment.java | 43 ++++--------------- 1 file changed, 8 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java index c0a96da32..e39047bd3 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java @@ -37,7 +37,6 @@ import org.schabi.newpipe.database.subscription.SubscriptionEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.channel.ChannelInfo; import org.schabi.newpipe.extractor.channel.ChannelInfoItem; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.subscription.SubscriptionExtractor; @@ -47,7 +46,6 @@ import org.schabi.newpipe.local.subscription.services.SubscriptionsExportService import org.schabi.newpipe.local.subscription.services.SubscriptionsImportService; import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.UserAction; -import org.schabi.newpipe.util.ExtractorHelper; import org.schabi.newpipe.util.FilePickerActivityHelper; import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.OnClickGesture; @@ -394,43 +392,18 @@ public class SubscriptionFragment extends BaseStateFragment> observable = subscriptionService.subscriptionTable() + .getSubscription(selectedItem.getServiceId(), selectedItem.getUrl()) + .toObservable(); - - - private Observer getUnsubscribeObserver() { - return new Observer() { - @Override - public void onSubscribe(Disposable d) { - disposables.add(d); - } - - @Override - public void onNext(ChannelInfo info) { - final io.reactivex.Observable> observable = subscriptionService.subscriptionTable() - .getSubscription(info.getServiceId(), info.getUrl()) - .toObservable(); - - observable.observeOn(Schedulers.io()) + observable.observeOn(Schedulers.io()) .subscribe(getDeleteObserver()); - } - @Override - public void onError(Throwable exception) { - SubscriptionFragment.this.onError(exception); - } - - @Override - public void onComplete() { - Toast.makeText(activity, getString(R.string.channel_unsubscribed), Toast.LENGTH_SHORT).show(); - } - }; + Toast.makeText(activity, getString(R.string.channel_unsubscribed), Toast.LENGTH_SHORT).show(); } + + private Observer> getDeleteObserver(){ return new Observer>() { @Override @@ -449,7 +422,7 @@ public class SubscriptionFragment extends BaseStateFragment Date: Fri, 17 Aug 2018 11:29:29 +0000 Subject: [PATCH 143/181] Translated using Weblate (Ukrainian) Currently translated at 100.0% (383 of 383 strings) --- app/src/main/res/values-uk/strings.xml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 7016286b3..084c85920 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -15,16 +15,16 @@ Оберіть переглядач обертання Зовнішній відео-програвач - Зовнішній аудіо-програвач + Зовнішній авдіо-програвач Шлях для завантаження відеозапису Вкажіть шлях для завантаження відеозаписів - Вкажіть шлях для завантаження аудіо файлів + Вкажіть шлях для завантаження авдіофайлів Шлях де зберігатимуться завантажені відеозаписи - Шлях для завантаження аудіо - Шлях де зберігатимуться завантажені аудіофайли + Шлях для завантаження авдіо + Шлях де зберігатимуться завантажені авдіофайли Автоматично відтворювати Відтворює відеозапис коли NewPipe викликано з іншого застосунку Типова роздільна здатність @@ -32,8 +32,8 @@ Застосунок Kore не знайдено. Встановити? Відтворювти у Kodi Показувати опцію відтворення відеозапису за допомогою Kodi media center - Аудіо - Типовий аудіо формат + Авдіо + Типовий авдіоформат WebM — вільний формат M4A — ліпша якість Тема @@ -45,7 +45,7 @@ Являти \"наступні\" й \"схожі\" відео URL не підтримується Переважна мова контенту - Відео та Аудіо + Відео та Авдіо Зовнішній вигляд Інше Відтворення у тловому режимі @@ -100,7 +100,7 @@ Створити теку для завантаження \'%1$s\' Відео - Аудіо + Авдіо Повторити Використовувати старий програвач К @@ -108,7 +108,7 @@ Б Почати - Пауза + Павза Відтворити Видалити Контрольна сума @@ -127,7 +127,7 @@ Стримінґового програвача не знайдено (ви можете встановити VLC для відтворення) Відкрити у віконному режимі - Певні роздільності НЕ МАТИМУТЬ звуку якщо цей параметр увімкнено + Певні роздільності НЕ матимуть звуку якщо цей параметр увімкнено NewPipe у віконному режимі Підписатися Ви підписалися @@ -197,7 +197,7 @@ Відновлююсь після помилки програвача Помилкова URL Відео-струмів не було знайдено - Не знайдено жодних аудіо-струмів + Не знайдено жодних авдіострумів Звіт користувача Без підписників @@ -231,7 +231,7 @@ Топ 50 Новинки Деталі - Налаштування аудіо + Звукові налаштування Відеопрогравач Тловий програвач From 5b8bb9f678b8312231eae7214a8bd6cf0ff113d9 Mon Sep 17 00:00:00 2001 From: DPap Date: Sun, 19 Aug 2018 12:11:17 +0000 Subject: [PATCH 144/181] Translated using Weblate (Greek) Currently translated at 79.6% (305 of 383 strings) --- app/src/main/res/values-el/strings.xml | 279 ++++++++++++++++++++++++- 1 file changed, 271 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 8f383b580..9624bd77f 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -2,7 +2,7 @@ %1$s προβολές Ανέβηκε στις %1$s - Δεν βρέθηκε πρόγραμμα αναπαραγωγής. Εγκατάσταση του VLC; + Δεν βρέθηκε πρόγραμμα αναπαραγωγής. Θα θέλατε να εγκαταστήσετε το VLC; Εγκατάσταση Ακύρωση Άνοιγμα στον browser @@ -18,22 +18,22 @@ Χρήση εξωτερικού audio player Διαδρομή λήψης video - Διαδρομή για αποθήκευση των video. + Διαδρομή για αποθήκευση των video Εισάγετε διαδρομή για λήψη των video Διαδρομή λήψης αρχείων ήχου Διαδρομή για αποθήκευση αρχείων ήχου - Εισάγετε διαδρομή για λήψη αρχείων ήχου. + Εισάγετε διαδρομή για λήψη αρχείων ήχου Προεπιλεγμένη ανάλυση Αναπαραγωγή με το Kodi - Η εφαρμογή Kore δεν βρέθηκε. Εγκατάσταση; + Η εφαρμογή Kore δεν βρέθηκε. Εγκατάσταση της; Εμφάνιση της επιλογής \"Αναπαραγωγή με το Kodi\" - Προβολή μιας επιλογής για αναπαραγωγή με το Kodi media center. + Προβολή μιας επιλογής για αναπαραγωγή με το Kodi media center Ήχος Προεπιλεγμένη μορφή ήχου - WebM — δωρεάν format - m4a — καλύτερη ποιότητα + WebM — δωρεάν μορφή + Μ4Α — καλύτερη ποιότητα Θέμα Σκοτεινό Φωτεινό @@ -52,7 +52,7 @@ Εικόνα προεπισκόπησης video Εικόνα προεπισκόπησης video - Εικόνα προφίλ του uploader + Εικόνα προφίλ του χρήστη Like Dislike Χρήση του Tor @@ -101,4 +101,267 @@ Ιστορικό Εμφάνιση πληροφοριών + Πατήστε στην αναζήτηση για να ξεκινήσετε + Δε βρέθηκε πρόγραμμα αναπαραγωγής ροής δεδομένων (μπορείτε να εγκαταστήσετε το VLC για να κάνετε αναπαραγωγή) + Κατέβασμα του αρχείου ροής. + Κάποιες αναλύσεις ΔΕΝ θα περιλαμβάνουν ήχο όταν επιλεχθεί αυτή η επιλογή + NewPipe σε λειτουργία αναδυόμενου παραθύρου + Έγινε διαγραφή από το κανάλι + Αδύνατη η αλλαγή της εγγραφής + Αδύνατη η ενημέρωση της εγγραφής + Κύριο + Εγγραφές + Σελιδοδείκτες + + Νέα + + Στο παρασκήνιο + Αναδυόμενο παράθυρο + Προσθήκη σε + + Αυτόματη αναπαραγωγή + Αναπαραγωγή του video όταν το NewPipe καλείται από άλλη εφαρμογή + Προεπιλεγμένη ανάλυση αναδυόμενου παραθύρου + Εμφάνιση υψηλότερων αναλύσεων + Προεπιλεγμένη μορφή video + Ενθύμιση του μεγέθους και της θέσης του αναδυόμενου παραθύρου + Ενθύμιση του τελευταίου μεγέθους και θέσης του παραθύρου + Χρήση γρήγορης μη-ακριβούς αναζήτησης + Η μη-ακριβής αναζήτηση επιτρέπει στην εφαρμογή να αναζητεί θέσεις στο βίντεο γρηγορότερα με μειωμένη ακρίβεια + Φόρτωση thumbnails + Απενεργοποιήστε για να σταματήσετε τη φόρτωση των thumbnail και να εξοικονομήσετε δεδομένα και χρήση μνήμης. Αλλάζοντας αυτή τη ρύθμιση θα εκκαθαρίσει τα προσωρινά αποθηκευμένα δεδομένα στη μνήμη και τον αποθηκευτικό χώρο + Εκκαθαρίστηκε η προσωρινή μνήμη εικονών + Εκκαθάριση προσωρινά αποθηκευμένων μεταδεδομένων + Αφαίρεση όλων των προσωρινά αποθηκευμένων δεδομένων ιστοσελίδων + Η προσωρινή μνήμη μεταδεδομένων εκκαθαρίστηκε + Αυτόματη πρόσθεση της επόμενης ροής στην ουρά + Αυτόματη πρόσθεση μιας σχετικής ροής όταν αναπαράγεται η προηγούμενη ροή σε μια μη-επαναλαμβανόμενη ουρά + Χειρισμοί ελέγχου με χειρονομίες + Χρήση χειρονομιών για τον έλεγχο της φωτεινότητας και της έντασης ήχου της εφαρμογής + Εμφάνιση υποδείξεων ενώ κάνετε αναζήτηση + Αποθήκευση αναζητήσεων στη συσκευή + Ιστορικό & Προσωρινή Αποθήκευση + Κρατήστε ιστορικό των video που έχετε δει + Συνέχεια όταν η εφαρμογή έρθει σε πρώτο πλάνο + Συνέχιση της αναπαραγωγής έπειτα από διακοπές (π.χ.: κλήσεις) + Εμφάνιση της βοήθειας \"πιέστε παρατεταμένα για πρόσθεση\" + Εμφάνιση της βοήθειας όταν έχει πατηθεί το κουμπί Παρασκηνίου ή Αναδυόμενου παραθύρου στη σελίδα λεπτομερειών του video + Προεπιλεγμένη χώρα περιεχομένου + Υπηρεσία + Συσκευή Αναπαραγωγής + Συμπεριφορά + Ιστορικό & Προσωρινή Αποθήκευση + Αναδυόμενο παράθυρο + Απασφαλμάτωση + Αναπαραγωγή σε αναδυόμενο παράθυρο + Προστέθηκε στη λίστα αναπαραγωγής παρασκηνίου + Προστέθηκε στη λίστα αναπαραγωγής αναδυόμενου παραθύρου + Περιεχόμενο + Εμφάνιση περιεχομένου περιορισμένης πρόσβασης + Video περιορισμένης πρόσβασης. Για να επιτρέπετε περιερχόμενο τέτοιου είδους, ενεργοποιήστε το στις Ρυθμίσεις. + Ζωντανά + Αναφορά σφαλμάτων + Κανάλια + Λίστα αναπαραγωγής + Λίστες αναπαραγωγής + Κομμάτια + Χρήστες + Απενεργοποιημένο + Ανανέωση + Εκκαθάριση + Αλλαγή μεγέθους + Βέλτιστη ανάλυση + Αναίρεση + Αναπαραγωγή όλων + Πάντα + Μόνο μία φορά + Αρχείο + + Ειδοποίηση NewPipe + Ειδοποιήσεις για την αναπαραγωγή Παρασκηνίου και Αναδυόμενου Παραθύρου + + [Άγνωστο] + + Αλλαγή προσανατολισμού + Αλλαγή σε Παρασκήνιο + Αλλαγή σε Αναδυόμενο Παράθυρο + Αλλαγή σε Κύριο + + Εισαγωγή βάσης δεδομένων + Εξαγωγή βάσης δεδομένων + Θα παρακάμψει το τρέχον ιστορικό και εγγραφές σας + Εξαγωγή ιστορικού, εγγραφών και λιστών αναπαραγωγής + Εκκαθάριση ιστορικού προβολής + Διαγράφει το ιστορικό των ροών που έχουν αναπαραχθεί + Διαγραφή ολόκληρου του ιστορικού προβολής. + Το στορικό προβολής διαγράφηκε. + Διαγραφή ιστορικού αναζητήσεων + Διαγράφει το ιστορικό αναζητήσεών σας + Διαγραφή ολόκληρου του ιστορικού αναζητήσεων. + Το ιστορικό αναζητήσεων διαγράφηκε. + Δεν ήταν δυνατή η φόρτωση όλων των εικονιδίων + Δεν ήταν δυνατή η αποκρυπτογράφηση της υπογραφής του URL του βιντεο + Δεν ήταν δυνατή η ανάλυση του ιστοτόπου + Δεν ήταν δυνατή η ανάλυση ολόκληρου του ιστοτόπου + Το περιεχόμενο δεν είναι διαθέσιμο + "Έχει αποκλειστεί από την GEMA" + Δεν ήταν δυνατή η ρύθμιση του μενού λήψεων + Αυτή είναι μια Ζωντανή Ροή, που δεν υποστηρίζεται ακόμα. + Δεν ήταν δυνατή η λήψη καμίας ροής + Δεν ήταν δυνατή η φόρτωση της εικόνας + Η εφαρμογή κράσαρε + Δεν ήταν δυνατή η αναπαραγωγή αυτής της ροής + Συνέβη ένα μη ανακτήσιμο σφάλμα στη συσκευή αναπαραγωγής + Ανάκτηση από σφάλμα της συσκευής αναπαραγωγής + Οι εξωτερικές συσκευές αναπαραγωγής δεν υποστηρίζουν αυτού του είδους συνδέσμους + Μη έγκυρο URL + Δε βρέθηκαν ροές video + Δε βρέθηκαν ροές ήχου + Μη έγκυρη τοποθεσία + Μη έγκυρο αρχείο ή πηγή περιεχομένου + Το αρχείο δεν υπάρχει ή δεν έχουμε επαρκή εξουσιοδότηση για να διαβάσουμε ή να γράψουμε σε αυτό + Το όνομα αρχείου δεν μπορεί να είναι κενό + Προέκυψε ένα σφάλμα: %1$s + Δεν υπάρχουν διαθέσιμες ροές για λήψη + + Λυπούμαστε, αυτό δεν έπρεπε να έχει συμβεί. + Αναφορά σφάλματος με ηλεκτρονικό ταχυδρομίο + Λυπούμαστε, συνέβησαν κάποια σφάλματα. + What:\\nΑίτημα:\\nΓλώσσα περιεχομένου:\\nΥπηρεσία:\\nΏρα GMT:\\nΠακέτο:\\nΈκδοση:\\nΈκδοση λειτουργικού: + Αναφορά χρήστη + Κανένα αποτέλεσμα + Τρεις κι ο κούκος + Σύρετε για ταξινόμηση + + Προσπάθεια εκ νέου + Δεν δώθηκε άδεια εγγραφής στην εσωτερική μνήμη + Χρήση παλαιάς συσκευής αναπαραγωγής + Παλαιά συσκευή αναπαραγωγής Mediaframework + + Κ + Μ + Κανένας εγγεγραμένος χρήστης + + %s εγγεγραμένος χρήστης + %s εγγεγραμένοι χρήστες + + + Καμία προβολή + + %s προβολή + %s προβολές + + + Κανένα video + + %s video + %s videos + + + Εκκίνηση + Αναπαραγωγή + Δημιουργία + Διαγραφή ενός + Διαγραφή όλων + Checksum + Αγνόηση + Μετονομασία + + Νέα αποστολη + ΟΚ + + Όνομα αρχείου + Νήματα + Ο εξυπηρετητής δεν υποστηρίζεται + Λάθος μορφή URL ή δεν υπάρχει σύνδεση στο διαδίκτυο + Λήψη NewPipe + Παρακαλώ περιμένετε… + Αντιγράφηκε στο πρόχειρο + Παρακαλώ επιλέξτε έναν διαθέσιμο φάκελο λήψεων + Αυτή η άδεια είναι απαραίτητη για +\nτο άνοιγμα αναδυόμενων παραθύρων + 1 αντικείμενο διαγράφηκε. + + reCAPTCHA + Πρόκληση reCAPTCHA + Ζητήθηκε πρόκληση reCAPTCHA + + Επιτρεπτοί χαρακτήρες σε ονόματα αρχείων + Οι μη έγκυροι χαρακτήρες αντικαθίστανται με αυτήν την τιμή + Αντικαταστάτης χαρακτήρας + + Οι περισσότεροι ειδικοί χαρακτήρες + + Δεν υπάρχει εφαρμογή εγκατεστημένη για την αναπαραγωγή αυτού του αρχείου + + Σχετικά με το NewPipe + Περί + Άδειες Τρίτων + © %1$s από %2$s υπό %3$s + Δεν ήταν δυνατή η φόρτωση της άδειας + Περί + Συνεισφέροντες + Ελέυθερη και ελαφριά εφαρμογή αναπαραγωγής ροών στο Android. + Συνεισφέρετε + Αν έχετε ιδέες για μετάφραση, αλλαγή σχεδιασμού, εκκαθάριση ή ριζικές αλλαγές κώδικα της εφαρμογής—η βοήθεια σας είναι πάντα ευπρόσδεκτη. Όσο περισσότερη έχουμε, τόσο καλύτεροι γινόμαστε! + Δείτε το στο GitHub + Κάντε μια δωρεά + Το NewPipe αναπτύσσεται από εθελοντές που δαπανούν χρόνο για να σας προσφέρουν τη βέλτιστη δυνατή εμπειρία της εφαρμογής. Μπορείτε να συνεισφέρετε στους προγραμματιστές του NewPipe να το κάνουν ακόμα καλύτερο, προσφέροντάς τους έναν καφέ. + Προσφέρτε + Ιστότοπος + Επισκευτείτε τον ιστότοπο του NewPipe για περισσότερες πληροφορίες και νέα. + Η πολιτική ιδιωτικού απόρρητου του NewPipe + Το NewPipe παίρνει πολύ σοβαρά το ιδιωτικό σας απόρρητο. Έτσι, η εφαρμογή αυτή δεν συλλέγει δεδομένα από εσάς χωρίς τη συγκατάθεσή σας. +\nΗ πολιτική ιδιωτικού απόρρητου του NewPipe εξηγεί λεπτομερώς ποια δεδομένα αποστέλλονται και αποθηκεύονται όταν επιλέγετε να στείλετε μια αναφορά σφαλμάτων. + Διαβάστε την πολιτική ιδιωτικού απόρρητου + Η άδεια του NewPipe + Το NewPipe είναι copylelft ελεύθερο λογισμικό: Μπορείτε να το χρησιμοποιήσετε, να το μελετήσετε, να το μοιραστείτε και να το βελτιώσετε κατά βούληση. Ειδικότερα, μπορείτε να το αναδιανείμετε ή/και να το τροποποιήσετε υπό την άδεια GNU General Public Licence όπως αυτή εκδόθηκε από το Free Software Foundation, είτε υπό την έκδοση 3 της Άδειας είτε (προεραιτικά) υπό οποιαδήποτε μεταγενέστερη άδεια. + Διαβάστε την άδεια + + + Αναζητημένα + Έχει γίνει προβολή + Το ιστορικό έχει απενεργοποιηθεί + Το ιστορικό είναι κενό + Το ιστορικό εκκαθαρίστηκε + Το αντικείμενο διαγράφηκε + Θέλετε να σβήσετε αυτό το αντικείμενο από το ιστορικό αναζήτησης; + Θέλετε να σβήσετε αυτό το αντικείμενο από το ιστορικό προβολής; + Είστε σίγουροι ότι θέλετε να σβήσετε όλα τα αντικείμενα από το ιστορικό; + Τελευταία αναπαραγωγή + Αναπαράχθηκε περισσότερο + + Περιεχόμενο της κεντρικής σελίδας + Κενή σελίδα + Σελίδα περιπτέρου + Σελίδα εγγραφών + Σελίδα καναλιών + Επιλέξτε ένα κανάλι + Δεν έχει γίνει εγγραφή σε κάποιο κανάλι ακόμα + Επιλέξτε ένα περίπτερο + Η εξαγωγή ολοκληρώθηκε + Η εισαγωγή ολοκληρώθηκε + Μη έγκυρο αρχείο ZIP + Προσοχή: Δεν ήταν δυνατή η εισαγωγή όλων των αρχείων. + Αυτό θα παρακάμψει τις τρέχουσες ρυθμίσεις σας. + Θέλετε επίσης να εισάγετε ρυθμίσεις; + + Περίπτερο + Συσκευή αναπαραγωγής Παρασκηνίου + Συσκευή αναπαραγωγής Αναδυόμενου παραθύρου + Αφαίρεση + Λεπτομέρειες + Ρυθμίσεις ήχου + Πιέστε παρατεταμένα για να προστεθεί στην ουρά + Προσθήκη στην ουρά Παρασκηνίου + Προσθήκη στην ουρά Αναδυόμενου παραθύρου + Εκκίνηση Αναπαραγωγής εδώ + Εκκίνηση εδώ στο Παρασκήνιο + Εκκίνηση εδώ στο Αναδυόμενο Παράθυρο + + Άνοιγμα Συρταριού + Κλείσιμο Συρταριού + Κάτι θα παιχτεί εδω σύντομα ;D + + From d2dce8801bcd1c32f160268dff4ef8d118e0cbd0 Mon Sep 17 00:00:00 2001 From: DPap Date: Mon, 20 Aug 2018 16:56:40 +0000 Subject: [PATCH 145/181] Translated using Weblate (Greek) Currently translated at 91.9% (352 of 383 strings) --- app/src/main/res/values-el/strings.xml | 120 ++++++++++++++++++++----- 1 file changed, 99 insertions(+), 21 deletions(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 9624bd77f..8e43c66e0 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -14,12 +14,12 @@ Κοινοποίηση με Επιλέξτε browser περιστροφή - Χρήση εξωτερικού video player + Χρήση εξωτερικής εφαρμογής αναπαραγωγής βίντεο Χρήση εξωτερικού audio player - Διαδρομή λήψης video - Διαδρομή για αποθήκευση των video - Εισάγετε διαδρομή για λήψη των video + Διαδρομή λήψης βίντεο + Διαδρομή για αποθήκευση των βίντεο + Εισάγετε διαδρομή για λήψη των βίντεο Διαδρομή λήψης αρχείων ήχου Διαδρομή για αποθήκευση αρχείων ήχου @@ -39,20 +39,20 @@ Φωτεινό Λήψη - Επόμενο video - Προβολή επόμενου και σχετικών video + Επόμενο βίντεο + Εμφάνιση \"επόμενου\" και \"σχετικών\" βίντεο Δεν υποστηρίζεται η διεύθυνση URL Προτιμώμενη γλώσσα περιεχομένου - Video & Ήχος + Βίντεο & Ήχος Εμφάνιση Άλλα Αναπαραγωγή στο υπόβαθρο Αναπαραγωγή Σφάλμα δικτύου - Εικόνα προεπισκόπησης video - Εικόνα προεπισκόπησης video - Εικόνα προφίλ του χρήστη + Μικρογραφία προεπισκόπισης βίντεο + Μικρογραφία προεπισκόπησης βίντεο + Μικρογραφία εικόνας προφίλ του χρήστη Like Dislike Χρήση του Tor @@ -120,16 +120,16 @@ Προσθήκη σε Αυτόματη αναπαραγωγή - Αναπαραγωγή του video όταν το NewPipe καλείται από άλλη εφαρμογή + Αναπαραγωγή του βίντεο όταν το NewPipe καλείται από άλλη εφαρμογή Προεπιλεγμένη ανάλυση αναδυόμενου παραθύρου Εμφάνιση υψηλότερων αναλύσεων - Προεπιλεγμένη μορφή video + Προεπιλεγμένη μορφή βίντεο Ενθύμιση του μεγέθους και της θέσης του αναδυόμενου παραθύρου Ενθύμιση του τελευταίου μεγέθους και θέσης του παραθύρου Χρήση γρήγορης μη-ακριβούς αναζήτησης Η μη-ακριβής αναζήτηση επιτρέπει στην εφαρμογή να αναζητεί θέσεις στο βίντεο γρηγορότερα με μειωμένη ακρίβεια Φόρτωση thumbnails - Απενεργοποιήστε για να σταματήσετε τη φόρτωση των thumbnail και να εξοικονομήσετε δεδομένα και χρήση μνήμης. Αλλάζοντας αυτή τη ρύθμιση θα εκκαθαρίσει τα προσωρινά αποθηκευμένα δεδομένα στη μνήμη και τον αποθηκευτικό χώρο + Απενεργοποιήστε για να σταματήσετε τη φόρτωση των μικρογραφιών και να εξοικονομήσετε δεδομένα και χρήση μνήμης. Αλλάζοντας αυτή τη ρύθμιση θα εκκαθαρίσει τα προσωρινά αποθηκευμένα δεδομένα στη μνήμη και τον αποθηκευτικό χώρο Εκκαθαρίστηκε η προσωρινή μνήμη εικονών Εκκαθάριση προσωρινά αποθηκευμένων μεταδεδομένων Αφαίρεση όλων των προσωρινά αποθηκευμένων δεδομένων ιστοσελίδων @@ -141,11 +141,11 @@ Εμφάνιση υποδείξεων ενώ κάνετε αναζήτηση Αποθήκευση αναζητήσεων στη συσκευή Ιστορικό & Προσωρινή Αποθήκευση - Κρατήστε ιστορικό των video που έχετε δει + Κρατήστε ιστορικό των βίντεο που έχετε δει Συνέχεια όταν η εφαρμογή έρθει σε πρώτο πλάνο Συνέχιση της αναπαραγωγής έπειτα από διακοπές (π.χ.: κλήσεις) Εμφάνιση της βοήθειας \"πιέστε παρατεταμένα για πρόσθεση\" - Εμφάνιση της βοήθειας όταν έχει πατηθεί το κουμπί Παρασκηνίου ή Αναδυόμενου παραθύρου στη σελίδα λεπτομερειών του video + Εμφάνιση της βοήθειας όταν έχει πατηθεί το κουμπί Παρασκηνίου ή Αναδυόμενου παραθύρου στη σελίδα λεπτομερειών του βίντεο Προεπιλεγμένη χώρα περιεχομένου Υπηρεσία Συσκευή Αναπαραγωγής @@ -158,7 +158,7 @@ Προστέθηκε στη λίστα αναπαραγωγής αναδυόμενου παραθύρου Περιεχόμενο Εμφάνιση περιεχομένου περιορισμένης πρόσβασης - Video περιορισμένης πρόσβασης. Για να επιτρέπετε περιερχόμενο τέτοιου είδους, ενεργοποιήστε το στις Ρυθμίσεις. + Βίντεο περιορισμένης πρόσβασης. Για να επιτρέπετε περιερχόμενο τέτοιου είδους, ενεργοποιήστε το στις Ρυθμίσεις. Ζωντανά Αναφορά σφαλμάτων Κανάλια @@ -200,7 +200,7 @@ Διαγραφή ολόκληρου του ιστορικού αναζητήσεων. Το ιστορικό αναζητήσεων διαγράφηκε. Δεν ήταν δυνατή η φόρτωση όλων των εικονιδίων - Δεν ήταν δυνατή η αποκρυπτογράφηση της υπογραφής του URL του βιντεο + Δεν ήταν δυνατή η αποκρυπτογράφηση της υπογραφής του URL του βίντεο Δεν ήταν δυνατή η ανάλυση του ιστοτόπου Δεν ήταν δυνατή η ανάλυση ολόκληρου του ιστοτόπου Το περιεχόμενο δεν είναι διαθέσιμο @@ -215,7 +215,7 @@ Ανάκτηση από σφάλμα της συσκευής αναπαραγωγής Οι εξωτερικές συσκευές αναπαραγωγής δεν υποστηρίζουν αυτού του είδους συνδέσμους Μη έγκυρο URL - Δε βρέθηκαν ροές video + Δε βρέθηκαν ροές βίντεο Δε βρέθηκαν ροές ήχου Μη έγκυρη τοποθεσία Μη έγκυρο αρχείο ή πηγή περιεχομένου @@ -252,10 +252,10 @@ %s προβολές - Κανένα video + Κανένα βίντεο - %s video - %s videos + %s βίντεο + %s βίντεο Εκκίνηση @@ -364,4 +364,82 @@ Κάτι θα παιχτεί εδω σύντομα ;D + Τοπ 50 + Καινούρια & δημοφιλή + Προτιμώμενη ενέργεια ανοίγματος + Προεπιλεγμένη ενέργεια για το άνοιγμα περιεχομένου — %s + + Συσκευή αναπαραγωγής βίντεο + Αναπαραγωγή Παρασκηνίου + Αναπαραγωγή σε Αναδυόμενο Παράθυρο + Πάντα ερώτηση + + Γίνεται λήψη πληροφοριών… + Γίνεται φόρτωση του ζητούμενου περιεχομένου + + Δημιουργία νέας Λίστας Αναπαραγωγής + Διαγραφή Λίστας + Μετονομασία Λίστας + Όνομα + Προσθήκη στη Λίστα + Ορισμός ως μικρογραφία λίστας αναπαραγωγής + + Προσθήκη Σελιδοδείκτη στη Λίστα + Διαγραφή Σελιδοδείκτη + + Επιθυμείτε να διαγράψετε αυτή τη λίστα αναπαραγωγής; + Η λίστα αναπαραγωγής δημιουργήθηκε + Προστέθηκε στη λίστα + Η μικρογραφία της λίστας αναπαραγωγής άλλαξε + Δεν ήταν δυνατή η διαγραφή της λίστας + + Δεν υπάρχουν υπότιτλοι + + Προσαρμογή + Γέμισμα + Μεγέθυνση + + Αυτόματοι + + Υπότιτλοι + Τροποποίηση του μεγέθους και του φόντου των υπότιτλων. Απαιτεί επανεκκίνηση της εφαρμογής + + Ενεργοποίηση του LeakCanary + Η παρακολούθηση των διαρροών μνήμης μπορεί να κάνει την εφαρμογή να μην αποκρίνεται κατά το heap dumping + + + + Εισαγωγή/Εξαγωγή + Εισαγωγή + Εισαγωγή από + Εξαγωγή σε + + Γίνεται εισαγωγή… + Γίνεται εξαγωγή… + + Εισαγωγή αρχείου + Προηγούμενη εξαγωγή + + Δεν ήταν δυνατή η εισαγωγή των εγγραφών + Δεν ήταν δυνατή η εισαγωγή των εγγραφών + + Κάντε εισαγωγή των εγγραφών σας στο YouTube κατεβάζοντας το εξής αρχείο: +\n +\n1. Πλοηγηθήτε στο: %1$s +\n2. Εισέλθετε στο λογαριασμό σας, όταν σας ζητηθεί +\n3. Η λήψη του αρχείου των εγγραφών σας θα ξεκινήσει + Για να εισάγετε τον λογαριασμό SoundCloud σας, πληκτρολογήστε τον σύνδεσμο ή το ID σας: +\n +\n1. Ενεργοποιήστε τη λειτουργία Desktop στον φυλλομετρητή σας (καθώς η ιστοσελίδα δεν είναι διαθέσιμη για κινητά) +\n2. Πλοηθηθείτε στο %1$s +\n3. Εισέλθετε στο λογαριασμό σας, όταν σας ζητηθεί +\n4. Αντιγράψτε τον σύνδεσμο του λογαριαμού στον οποίο ανακατευθυνθήκατε. + Αυτή η διαδικασία μπορεί να χρησιμοποιήσει μεγάλο όγκο δεδομένων. +\n +\nΕπιθυμείτε να συνεχίσετε; + + Έλεγχος ταχύτητας αναπαραγωγής + Τέμπο + Τόνος + Ενέργεια όταν γίνεται αλλαγή από την εφαρμογή αναπαραγωγής βίντεο σε άλλη εφαρμογή — %s From 4326354ca65a6b00b6ef693a9f0064824a28d509 Mon Sep 17 00:00:00 2001 From: Somethingweirdhere Date: Wed, 22 Aug 2018 13:59:12 +0200 Subject: [PATCH 146/181] Code cleanup --- .../newpipe/local/subscription/SubscriptionFragment.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java index e39047bd3..7b7f43047 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java @@ -392,11 +392,10 @@ public class SubscriptionFragment extends BaseStateFragment> observable = subscriptionService.subscriptionTable() + subscriptionService.subscriptionTable() .getSubscription(selectedItem.getServiceId(), selectedItem.getUrl()) - .toObservable(); - - observable.observeOn(Schedulers.io()) + .toObservable() + .observeOn(Schedulers.io()) .subscribe(getDeleteObserver()); Toast.makeText(activity, getString(R.string.channel_unsubscribed), Toast.LENGTH_SHORT).show(); From 4cfd9c322b8d0bdd05705397205213d5e39c1a6a Mon Sep 17 00:00:00 2001 From: DPap Date: Tue, 21 Aug 2018 20:09:20 +0000 Subject: [PATCH 147/181] Translated using Weblate (Greek) Currently translated at 96.6% (370 of 383 strings) --- app/src/main/res/values-el/strings.xml | 38 ++++++++++++++++++++------ 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 8e43c66e0..975ad4025 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -15,7 +15,7 @@ Επιλέξτε browser περιστροφή Χρήση εξωτερικής εφαρμογής αναπαραγωγής βίντεο - Χρήση εξωτερικού audio player + Χρήση εξωτερικής συσκευής αναπαραγωγής ήχου Διαδρομή λήψης βίντεο Διαδρομή για αποθήκευση των βίντεο @@ -42,7 +42,7 @@ Επόμενο βίντεο Εμφάνιση \"επόμενου\" και \"σχετικών\" βίντεο Δεν υποστηρίζεται η διεύθυνση URL - Προτιμώμενη γλώσσα περιεχομένου + Προεπιλεγμένη γλώσσα περιεχομένου Βίντεο & Ήχος Εμφάνιση Άλλα @@ -56,7 +56,7 @@ Like Dislike Χρήση του Tor - Αναγκάζει την κίνηση λήψης μέσω Tor για αυξημένη ανωνυμία (η αναπαραγωγή δεν υποστηρίζεται ακόμη) + (Πειραματικό) Αναγκάζει την κίνηση λήψης μέσω Tor για αυξημένη προστασία προσωπικών δεδομένων (η αναπαραγωγή δεν υποστηρίζεται ακόμη). Δεν μπόρεσε να δημιουργηθεί ο φάκελος \'%1$s\' Δημιουργήθηκε ο φάκελος \'%1$s\' @@ -136,7 +136,7 @@ Η προσωρινή μνήμη μεταδεδομένων εκκαθαρίστηκε Αυτόματη πρόσθεση της επόμενης ροής στην ουρά Αυτόματη πρόσθεση μιας σχετικής ροής όταν αναπαράγεται η προηγούμενη ροή σε μια μη-επαναλαμβανόμενη ουρά - Χειρισμοί ελέγχου με χειρονομίες + Έλεγχος αναπαραγωγής με χειρονομίες Χρήση χειρονομιών για τον έλεγχο της φωτεινότητας και της έντασης ήχου της εφαρμογής Εμφάνιση υποδείξεων ενώ κάνετε αναζήτηση Αποθήκευση αναζητήσεων στη συσκευή @@ -407,7 +407,7 @@ Ενεργοποίηση του LeakCanary Η παρακολούθηση των διαρροών μνήμης μπορεί να κάνει την εφαρμογή να μην αποκρίνεται κατά το heap dumping - + Εισαγωγή/Εξαγωγή Εισαγωγή @@ -430,7 +430,7 @@ \n3. Η λήψη του αρχείου των εγγραφών σας θα ξεκινήσει Για να εισάγετε τον λογαριασμό SoundCloud σας, πληκτρολογήστε τον σύνδεσμο ή το ID σας: \n -\n1. Ενεργοποιήστε τη λειτουργία Desktop στον φυλλομετρητή σας (καθώς η ιστοσελίδα δεν είναι διαθέσιμη για κινητά) +\n1. Ενεργοποιήστε τη λειτουργία \"Desktop mode\" στον φυλλομετρητή σας (καθώς η ιστοσελίδα δεν είναι διαθέσιμη για κινητά) \n2. Πλοηθηθείτε στο %1$s \n3. Εισέλθετε στο λογαριασμό σας, όταν σας ζητηθεί \n4. Αντιγράψτε τον σύνδεσμο του λογαριαμού στον οποίο ανακατευθυνθήκατε. @@ -441,5 +441,27 @@ Έλεγχος ταχύτητας αναπαραγωγής Τέμπο Τόνος - Ενέργεια όταν γίνεται αλλαγή από την εφαρμογή αναπαραγωγής βίντεο σε άλλη εφαρμογή — %s - + Ενέργεια κατά τη μετάβαση σε άλλη εφαρμογή — %s + Σελίδαρ Ροής + Δημοφιλή + Αναφορά σφαλμάτων εκτός κύκλου ζωής + Το όνομα χρήστη σας, soundcloud.com/όνομαχρήστη + + Αποσύνδεση (μπορεί να προκαλέσει παραμόρφωση) + Επιτάχυνση αναπαραγωγής κατά τη διάρκεια σιωπής + Βήμα + Μηδενισμός + + Προς συμμόρφωση με τον Ευρωπαϊκό Γενικό Κανονισμό για την Προστασία Δεδομένων (GDPR), σας επιστούμε την προσοχή στην πολιτική προστασίας προσωπικών δεδομένων του NewPipe. Παραλούμε, διαβάστε την προσεκτικά. +\nΘα πρέπει να την αποδεχτέιτε προκειμένου να μας αποστείλετε την αναφορά σφάλματος. + Αποδοχή + Απόρριψη + + Χωρίς όριο + Περιορισμός της ανάλυσης όταν γίνεται χρήση δεδομένων + Ελαχιστοποίηση κατά την εναλλαγή εφαρμογών + Καμία + Ελαχιστοποίηση στο παρασκήνιο + Ελαχιστοποίηση σε αναδυόμενο παράθυρο + + From 8ad917cff0cabab4f40c281e10daccbc4ebd6eea Mon Sep 17 00:00:00 2001 From: Dual Natan Date: Sat, 25 Aug 2018 13:45:52 +0000 Subject: [PATCH 148/181] Translated using Weblate (Macedonian) Currently translated at 100.0% (383 of 383 strings) --- app/src/main/res/values-mk/strings.xml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index f5d552ab4..6dccd4b26 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -455,4 +455,18 @@ Неограничено Ограничи резолуција при користење мобилен интернет - + Канали + Плејлисти + Нумери + Корисници + Прескокни ја тишината + Скокни + Почни одново + + Скриј при промена на апликацијата + Пушти во заднина при промена на апликацијата од видео плеерот — %s + Никое + Смали го во позадина + Смали го во прозорче + + From 8bf7af2e74fa5804cbb34df560e5ae47bb4696f0 Mon Sep 17 00:00:00 2001 From: ButterflyOfFire Date: Sun, 26 Aug 2018 23:04:00 +0000 Subject: [PATCH 149/181] Translated using Weblate (Arabic) Currently translated at 100.0% (383 of 383 strings) --- app/src/main/res/values-ar/strings.xml | 134 ++++++++++++------------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index c070dd189..aff9ff1af 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -51,12 +51,12 @@ استخدام مشغل صوت خارجي استخدام مشغل فيديو خارجي (إختبارية) إجراء التنزيلات من خلال استخدام بروكسي Tor لزيادة الخصوصية ( تشغيل الفيديو المباشر غير مدعوم حتى الأن ). - استخدام Tor + استخدام تور مشاهدات %1$s تنسيق حر — WebM تم حجبه بواسطة GEMA المحتوى غير متاح - لم يتمكن من تحميل كل صور المعاينة + تعذرت عملية تحميل كافة صور المعاينة خطأ تعذرت عملية تحليل الموقع تعذر فك تشفير توقيع رابط الفيديو @@ -138,11 +138,11 @@ [غير معروف] - لايمكن تحليل الموقع بشكل كلي - يتعذر إعداد قائمة التنزيل - هذا هو بث مباشر ، وهو غير معتمد حتى الآن. - يتعذر الحصول على أي بث - تعذر تحميل الصورة + لا يمكن تحليل الموقع بشكل كلي + تعذرت عملية إعداد قائمة التنزيل + هذا بث مباشر، وهو غير معتمد الآن. + تعذر الحصول على أي بث + تعذرت عملية تحميل الصورة تعطل التطبيق / واجهة المستخدم لا يمكن تشغيل هذا البث حدث خطأ للمشغل غير قابل للاسترداد @@ -156,7 +156,7 @@ ماذا حدث: ماذا:\\nطلب:\\nيحتوى اللغة:\\nSالخدمات:\\nتوقيت غرينتش:\\nحزمة:\\nالإصدار:\\nOS إصدار نظام التشغيل: تعليقك (باللغة الإنجليزية): - تفاصيل: + التفاصيل: الإبلاغ عن خطأ @@ -170,22 +170,22 @@ استخدام المشغل القديم المشغل القديم المدمج في إطار Mediaframework - الف + ألف مليون بليون - صفر لا تقم با الإختيار (في بعض اللغات) لأنها ليست \"حالة خاصة\" للأندرويد + ليس هناك مشترِكون - صفر - %s مشترك - اثنان - قليل - كثير + صفر مشترِك + %s مشترِك + مشترِكان + %s مشترك + %s مشترك %s مشتركون - لاتوجد مشاهدات - لاتوجد فديوهات + دون مشاهدات + لاتوجد فيديوهات تشغيل إيقاف شغل @@ -196,15 +196,15 @@ حسناً اسم الملف - العمليات + الخيوط الخطأ الخادم غير معتمد الملف موجود مسبقا - العنوان غير صحيح أو ان الإنترنت غير متوفر - NewPipe يقوم بالتحميل + العنوان غير صحيح أو الإنترنت غير متوفر + يقوم نيوبايب بالتنزيل انقر للحصول على التفاصيل - أرجو الإنتظار… - نسخ إلى الحافظة + يُرجى الإنتظار… + تم نسخه إلى الحافظة الرجاء تحديد مجلد لحفظ التنزيلات هذا الإذن مطلوب \nللفتح في وضع النافذة المنبثقة @@ -217,28 +217,28 @@ الحروف والأرقام معظم الأحرف الخاصة - معلومات عن NewPipe + عن تطبيق نيوپايپ الإعدادات تراخيص الجهات الخارجية تعذر تحميل الترخيص فتح الموقع المساهمون التراخيص - بث مباشر على يوتيوب مجاني خفيف الوزن لنظام أندرويد. + تطبيق حُر و خفيف لالتقاط البث على نظام الأندرويد. ساهم إذا كانت لديك أفكار؛ أو ترجمة، أو تغييرات تخص التصميم، أو تنظيف و تحسين الشفرة البرمجية ، أو تعديلات عميقة عليها، فتذكر أنّ مساعدتك دائما موضع ترحيب. وكلما أتممنا شيئا كلما كان ذلك أفضل ! عرض على GitHub تبرع - "يتم تطوير NewPipe من قبل المتطوعين الذين يقضون وقت فراغهم لتقديم أفضل تجربة لك. حان الوقت لرد المساعدة مع المطورين وجعل NewPipe أكثر و أفضل أثناء الاستمتاع بفنجان من القهوة " + يتم تطوير NewPipe من قبل متطوعين يقضون وقت فراغهم لتقديم أفضل تجربة لك. حان الوقت لرد المساعدة مع المطورين وجعل NewPipe أكثر و أفضل بينما تستمتع بفنجان من القهوة. تبرع - الموقع - قم بزيارة موقع NewPipe لمزيد من المعلومات والأخبار. + موقع الويب + قم بزيارة موقع NewPipe لمزيد من المعلومات والمستجدات. تراخيص NewPipe - قراءة الترخيص + قراءة الرخصة - البحث - تمت مشاهدته + التي تم البحث عنها + تمت مشاهدتها تم تعطيل السجل التاريخ فارغ تم مسح التاريخ @@ -250,20 +250,20 @@ صفحة الاشتراك صفحة الخلاصة صفحة القناة - حدد قناة - لم يتم الاشتراك في اي قناة بعد - الترند + اختر قناة + لم يتم الاشتراك في أي قناة بعد + الشائعة أفضل 50 - جديد & وساخن + جديد وساخن مشغل الخلفية المشغل المنبثق حذف - تفاصيل - إعدادات الصوت - بدء التشغيل هنا + التفاصيل + الإعدادات الصوتية + ابدء التشغيل هنا تشغيل هنا في وضع النافذة المنبثقة تحدي ريكابتشا - اضغط للإدراج بقائمة الانتظار + اضغط للإدراج في قائمة الانتظار لاتوجد مشاهدة %s مشاهدة @@ -274,12 +274,12 @@ - صفر - واحد - %s اثنان - %s قليل - %s عدد كثير - "%s أخرى " + %s فيديو + %s فيديو + %s فيديوهات + %s فيديوهات + %s فيديوهات + %s فيديوهات إعادة طلب كلمة التحقق @@ -288,10 +288,10 @@ صفحة الكشك حدد كشك - كشك - إدراج بقائمة الانتظار في مشغل الخلفية - إدراج بقائمة الانتظار على المنبثقة - ابدأ هنا على خلفية المصدر + الكشك + إدراج في قائمة الانتظار في الخلفية + إدراج في قائمة الانتظار على المنبثقة + ابدأ هنا في الخلفية المحتوى الإفتراضي حسب البلد تغيير الإتجاه الإنتقال إلى التشغيل في الخلفية @@ -309,14 +309,14 @@ استيراد قاعدة البيانات تصدير قاعدة البيانات "سيقوم بالكتابة على سجل التاريخ والاشتراكات الحالية " - تصدير سجل, الاشتراكات وقوائم التشغيل + تصدير السجل، الإشتراكات وقوائم التشغيل عرض المعلومات إضافة إلى تحليل مٌباشِر - لم يتم العثور على أي بث + لم يتم العثور على أي بث مرئي لم يتم العثور على أي بث صوتي إسحب للقيام بالترتيب @@ -333,7 +333,7 @@ سوف يظهر شيء هنا قريبا ;D - مشغل الفديو + مشغل الفيديو السؤال دائماً الحصول على المعلومات … @@ -342,10 +342,10 @@ إنشاء قائمة تشغيل جديدة حذف قائمة التشغيل "إعادة تسمية قائمة التشغيل " - الأسم + التسمية إضافة إلى قائمة تشغيل هل تريد حذف قائمة التشغيل هذه ؟ - قائمة التشغيل التي تم إنشاؤها + تم إنشاء قائمة التشغيل تمت إضافتها إلى قائمة التشغيل لا يمكن حذف قائمة التشغيل @@ -370,14 +370,14 @@ مجلد غير صالح لا يمكن ترك إسم الملف فارغا - طرأ هناك خطأ : %1$s - ملف مضغوط غير صالح - إزالة الإشارات المرجعية + طرأ هناك خطأ: %1$s + ملف مضغوط ZIP غير صالح + إزالة الفواصل المرجعية تناسب مع الشاشة توليد تلقائي - إستيراد و تصدير + إستيراد وتصدير إستيراد إستعادة مِن تصدير إلى @@ -397,7 +397,7 @@ رفض البث المشابه في حال كون البث السابق يعمل في حالة عدم التكرار إضافة صورة مصغرة إلى قائمة التشغيل - قائمة التشغيل المخزنة + تفضيل قائمة التشغيل تم تغيير الصورة المصغرة لقائمة التشغيل بدون تسميات توضيحية @@ -411,29 +411,29 @@ فرض الإبلاغ عن استثناءات Rx غير القابلة للتسليم خارج دورة حياة الجزء أو النشاط بعد التخلص منها محو سجل المشاهدة - احذف محفوظات الفديوهات التي تم تشغيلها + احذف سِجل الفيديوهات التي تم تشغيلها حذف سجل المشاهدة بالكامل. - سجل المشاهدة محذوف. + تم حذف سجل المشاهدة. محو سجل البحث يحذف تاريخ البحث عن الكلمات الرئيسية - حذف محفوظات البحث بالكامل. - سجل البحث المحذوف. + حذف سِجل البحث بالكامل. + تم حذف سجل البحث. المشغل الخارجي لا يدعم هذه الأنواع من الروابط - مصدر ملف / مصدر غير صالح - الملف غير موجود أو ليس لديك الإذن الكافي للقراءة أو الكتابة إليه + ملف غير صالح / محتوى غير صالح + الملف غير موجود أو ليس لديك الإذن الكافي للقراءة أو الكتابة فيه لا توجد تدفقات متاحة للتنزيل تم حذف عنصر واحد. لم يتم تثبيت أي تطبيق لتشغيل هذا الملف - NewPipe هو برنامج مفتوح المصدر حقوق متروكة: يمكنك استخدام الكود ودراسته وتحسينه بإرادتك. و على وجه التحديد يمكنك إعادة توزيعه / أو تعديله تحت شروط رخصة GNU العمومية والتي نشرتها مؤسسة البرمجيات الحرة، سواء الإصدار 3 من الرخصة، أو (باختيارك) أي إصدار لاحق. + NewPipe هو برنامج مفتوح المصدر حقوق متروكة: يمكنك استخدام الكود ودراسته وتحسينه كما شئت. و على وجه التحديد يمكنك إعادة توزيعه / أو تعديله تحت شروط رخصة GNU العمومية والتي نشرتها مؤسسة البرمجيات الحرة، سواء الإصدار 3 من الرخصة، أو (باختيارك) أي إصدار جديد. هل تريد حذف هذا العنصر من سجل المشاهدة؟ هل أنت متأكد من أنك تريد حذف كل العناصر من السجل؟ آخر ما تم تشغيله الأكثر تشغيلا - هذا سوف يتجاوز الإعدادت الحالية الخاصة بك. + هذا سوف يُزيل إعداداتك الحالية. طريقة \'التشغيل\' المفضلة "الإجراء الافتراضي عند فتح المحتوى — %s" @@ -470,7 +470,7 @@ "سياسة الخصوصية في NewPipe " يأخذ مشروع NewPipe خصوصيتك على محمل الجد. لذلك ، لا يجمع التطبيق أي بيانات دون موافقتك. \nتوضح سياسة خصوصية NewPipe بالتفصيل البيانات التي يتم إرسالها وتخزينها عند إرسال تقرير الأعطال. - قراءة سياسة الخصوصية + الإطلاع على سياسة الخصوصية من أجل الامتثال للائحة الأوروبية العامة لحماية البيانات (GDPR) ، فإننا نلفت انتباهك إلى سياسة خصوصية NewPipe. يرجى قراءتها بعناية. \nو يجب عليك قبولها لإرسال تقرير الأخطاء إلينا. قبول From 91c60df0e9fcb92ca03651c00130ff2c621badc3 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Tue, 28 Aug 2018 18:04:45 +0200 Subject: [PATCH 150/181] move on to v0.14.0 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 354dbaa0e..74ea3905f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "org.schabi.newpipe" minSdkVersion 15 targetSdkVersion 27 - versionCode 66 - versionName "0.13.7" + versionCode 67 + versionName "0.14.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true From b188073fb06302c3bd1ca764241f971214ccd72b Mon Sep 17 00:00:00 2001 From: Vincent Tam Date: Tue, 28 Aug 2018 09:57:19 +0000 Subject: [PATCH 151/181] Translated using Weblate (Chinese (Hong Kong)) Currently translated at 36.2% (139 of 383 strings) --- app/src/main/res/values-zh-rHK/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index e21f8f1ea..2fd52bb44 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -186,4 +186,5 @@ 無論您僅想分享您對 NewPipe 的一些構思,還是願意設計和翻譯程式介面,甚至想幫我們整理或重新編寫原始碼,我們都無任歡迎。貢獻更多,應用程式便會變得更好! 檢閱特許 貢獻 - +清除觀看歷史 + From 50203c5f87e9f6fcbabbd9b4b237b58e32f902b5 Mon Sep 17 00:00:00 2001 From: Vincent Tam Date: Tue, 28 Aug 2018 09:58:32 +0000 Subject: [PATCH 152/181] Translated using Weblate (Chinese (Simplified)) Currently translated at 27.4% (105 of 383 strings) --- app/src/main/res/values-cmn/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-cmn/strings.xml b/app/src/main/res/values-cmn/strings.xml index 852ac7f1e..9c1d60681 100644 --- a/app/src/main/res/values-cmn/strings.xml +++ b/app/src/main/res/values-cmn/strings.xml @@ -69,7 +69,7 @@ 清理照片内存 最小化弹出播放器 -清楚观看历史 +清除观看历史 已删除搜索历史 错误 网络错误 From 146b7be825c2fa7dfe14ac96a77a336e83aea59e Mon Sep 17 00:00:00 2001 From: Vincent Tam Date: Tue, 28 Aug 2018 10:00:49 +0000 Subject: [PATCH 153/181] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (383 of 383 strings) --- app/src/main/res/values-zh-rTW/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index ba7c66cf5..8c97742da 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -449,7 +449,7 @@ 刪除播放過的串流歷史 刪除全部的觀看歷史。 觀看歷史已刪除。 - 清除觀看歷史 + 清除搜尋歷史 刪除搜尋關鍵字的歷史 刪除全部的搜尋歷史。 搜尋歷史已刪除。 From cb24347b2344ca953c6bb5a93f792f4070e8daa9 Mon Sep 17 00:00:00 2001 From: MadderRagax Date: Wed, 29 Aug 2018 21:22:28 +0000 Subject: [PATCH 154/181] Translated using Weblate (Swedish) Currently translated at 100.0% (383 of 383 strings) --- app/src/main/res/values-sv/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index ebd9e934c..5df1e8f18 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -290,7 +290,7 @@ Lägga till - Använda snabb inexact sökning + Använda snabb inexakt sökning Ladda miniatyrer Inaktivera för att stoppa alla miniatyrbilder från att ladda och spara på data och minnesanvändning. Ändring av detta kommer att rensa cache-minnet Bild cacheminnet var rensad @@ -304,7 +304,7 @@ Rensa metadatan i cacheminnet Ingen strömspelare hittades (du kan installera VLC för att spela upp) Ladda ned sändning. - "Ej exakt sökning tillåter spelaren att söka positioner snabbare med minskad precision " + "Inexakt sökning tillåter spelaren att söka positioner snabbare med minskad precision " Ta bort alla cachade webbsidor Metadata cache rensad "Köa nästa ström automatiskt " From 81e76f260c34a6369c04dcf46f31783601fc3340 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Sat, 1 Sep 2018 12:33:08 +0200 Subject: [PATCH 155/181] fix drawer header font color for white theme --- app/src/main/res/layout-v21/drawer_header.xml | 2 ++ app/src/main/res/layout/drawer_header.xml | 2 ++ app/src/main/res/values/attrs.xml | 2 +- app/src/main/res/values/colors.xml | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/layout-v21/drawer_header.xml b/app/src/main/res/layout-v21/drawer_header.xml index 918bbaf43..4cdc2b30e 100644 --- a/app/src/main/res/layout-v21/drawer_header.xml +++ b/app/src/main/res/layout-v21/drawer_header.xml @@ -39,6 +39,7 @@ android:gravity="center" android:text="@string/app_name" android:textSize="30dp" + android:textColor="@color/drawer_header_font_color" android:textStyle="bold|italic" /> android:layout_alignBottom="@id/drawer_header_np_nude_view" android:gravity="center" android:textSize="30dp" + android:textColor="@color/drawer_header_font_color" android:textStyle="bold|italic"/> android:layout_alignLeft="@id/drawer_header_np_text_view" android:layout_alignStart="@id/drawer_header_np_text_view" android:textSize="18dp" + android:textColor="@color/drawer_header_font_color" android:textStyle="italic"/> - + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 8fb5ed7c7..515f1d46f 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -35,6 +35,7 @@ #23454545 + #ddffffff #aa000000 #c8E53935 #e6000000 From 0cd153ab61ab546d67a92f486d0c57db1fb5fa0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Mon, 3 Sep 2018 13:07:10 +0200 Subject: [PATCH 156/181] Spelling: Language rework --- app/src/main/res/values/strings.xml | 130 ++++++++++++++-------------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index eaeeb2685..9edc14198 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5,7 +5,7 @@ %1$s views Published on %1$s No stream player found. Do you want to install VLC? - No stream player found (you can install VLC to play it) + No stream player found (you can install VLC to play it). Install Cancel https://f-droid.org/repository/browse/?fdfilter=vlc&fdid=org.videolan.vlc @@ -13,23 +13,23 @@ Open in popup mode Share Download - Download stream file. + Download stream file Search Settings - Did you mean: %1$s ? + Did you mean: %1$s? Share with Choose browser rotation Use external video player - Some resolutions will NOT have audio when this option is enabled + Removes audio at SOME resolutions Use external audio player NewPipe popup mode RSS Subscribe Subscribed Channel unsubscribed - Unable to change subscription - Unable to update subscription + Could not change subscription + Could not update subscription Show info Main @@ -48,8 +48,8 @@ Path to store downloaded videos in Enter download path for videos - Audio download path - Path to store downloaded audio in + Audio download folder + Downloaded audio is stored here Enter download path for audio files Autoplay @@ -75,7 +75,7 @@ Use fast inexact seek Inexact seek allows the player to seek to positions faster with reduced precision Load thumbnails - Disable to stop all thumbnails from loading and save on data and memory usage. Changing this will clear both in-memory and on-disk image cache. + When off no thumbnails load, saving data and memory usage. Changes clear both in-memory and on-disk image cache. Image cache wiped Wipe cached metadata Remove all cached webpage data @@ -93,18 +93,18 @@ Resume on focus gain Continue playing after interruptions (e.g. phone calls) Download - Next video - Show \'next\' and \'similar\' videos - Show \"hold to append\" tip + Next + Show \'Next\' and \'Similar\' videos + Show \"Hold to append\" tip Show tip when background or popup button is pressed on video details page - URL not supported + Unsupported URL Default content country Service Default content language Player Behavior - Video & Audio - History & Cache + Video & audio + History & cache Popup Appearance Other @@ -116,8 +116,8 @@ https://www.c3s.cc/ Play Content - Show age restricted content - Age Restricted Video. Allowing such material is possible from Settings. + Age restricted content + Show age Restricted Video. Allowing such material is possible from \"Settings\". live LIVE Downloads @@ -147,7 +147,7 @@ newpipe NewPipe Notification - Notifications for NewPipe Background and Popup Players + Notifications for NewPipe background and popup players [Unknown] @@ -158,29 +158,29 @@ Import database Export database - Will override your current history and subscriptions - Export history, subscriptions and playlists. + Overrides your current history and subscriptions + Export history, subscriptions and playlists Clear watch history - Deletes the history of played streams. - Delete whole watch history. + Deletes the history of played streams + Delete entire watch history? Watch history deleted. Clear search history - Deletes history of search keywords. - Delete whole search history. + Deletes history of search keywords + Delete entire search history? Search history deleted. Error - External storage not available. - Download to external SD Card is not possible yet. Should the download place be reset? + External storage unavailable + Download to external SD card is not possible yet. Reset download folder location? Network error Could not load all thumbnails Could not decrypt video URL signature Could not parse website Could not parse website completely - Content not available + Content unavailable Blocked by GEMA Could not set up download menu - This is a LIVE STREAM, which is not yet supported. + Live streams are not supported yet Could not get any stream Could not load image App/UI crashed @@ -191,10 +191,10 @@ Invalid URL No video streams found No audio streams found - Invalid directory - Invalid file/content source - File doesn\'t exist or insufficient permission to read or write to it - File name cannot be empty + No such folder + No such file/content source + The file doesn\'t exist or permission to read or write to it is lacking + Filename cannot be empty An error occurred: %1$s No streams available to download @@ -223,7 +223,7 @@ User report No results @string/no_videos - Nothing Here But Crickets + Nothing here but crickets Drag to reorder Cannot create download directory \'%1$s\' @@ -279,7 +279,7 @@ Filename Threads Error - Server unsupported + Unsupported server File already exists Malformed URL or Internet not available NewPipe Downloading @@ -294,8 +294,8 @@ MD5 SHA-1 reCAPTCHA - reCAPTCHA Challenge - reCAPTCHA Challenge requested + reCAPTCHA challenge + reCAPTCHA challenge requested @@ -340,7 +340,7 @@ https://newpipe.schabi.org/legal/privacy/ Read privacy policy NewPipe\'s License - NewPipe is copyleft libre software: You can use, study share and improve it at your 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. + 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. Read license @@ -348,7 +348,7 @@ History Searched Watched - History is disabled + History is turned off History The history is empty History cleared @@ -364,11 +364,11 @@ What tabs are shown on the main page Selection Your tabs - Blank Page - Kiosk Page - Subscription Page - Feed Page - Channel Page + Nothing + Kiosk + Subscriptions + Feed + Channel @string/blank_page_summary @string/kiosk_page_summary @@ -377,10 +377,10 @@ @string/channel_page_summary Select a channel - No channel subscribed yet + No channel subscriptions yet Select a kiosk - Export complete - Import complete + Exported + Imported No valid ZIP file Warning: Could not import all files. This will override your current setup. @@ -394,17 +394,17 @@ %1$s/%2$s - Background Player - Popup Player + Background player + Popup player Remove Details Audio Settings - Hold To Enqueue - Enqueue on Background - Enqueue on Popup - Start Playing Here - Start Here on Background - Start Here on Popup + Hold To enqueue + Enqueue when backgrounded + Enqueue on new popup + Start playing here + Start here when backgrounded + Start here on new popup Open Drawer @@ -428,9 +428,9 @@ "Loading requested content" - Create New Playlist - Delete Playlist - Rename Playlist + New Playlist + Delete + Rename Name Add To Playlist Set as Playlist Thumbnail @@ -438,11 +438,11 @@ Bookmark Playlist Remove Bookmark - Do you want to delete this playlist? + Delete this playlist? Playlist created - Added to playlist - Playlist thumbnail changed - Could not delete playlist + Playlisted + Playlist thumbnail changed. + Could not delete playlist. No Captions @@ -461,11 +461,11 @@ Enable LeakCanary Memory leak monitoring may cause the app to become unresponsive when heap dumping - Report Out-of-lifecycle Errors + Report out-of-lifecycle errors Force reporting of undeliverable Rx exceptions outside of fragment or activity lifecycle after disposal - Import/Export + Import/export Import Import from Export to @@ -516,8 +516,8 @@ - Minimize on application switch - Action when switching to other application from main video player — %s + Minimize on app switch + Action when switching to other app from main video player — %s None Minimize to background player Minimize to popup player From 6e382c64a4e8d18b724b94bf331bc1f9a6db1bb0 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Tue, 4 Sep 2018 13:07:39 +0200 Subject: [PATCH 157/181] Reciever not registered --- app/src/main/java/org/schabi/newpipe/player/BasePlayer.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java index d87df3666..06f2e9721 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java @@ -366,10 +366,7 @@ public abstract class BasePlayer implements try { context.unregisterReceiver(broadcastReceiver); } catch (final IllegalArgumentException unregisteredException) { - ErrorActivity.reportError(context, unregisteredException, null, null, - ErrorActivity.ErrorInfo.make(PLAY_STREAM, - "none", - "play stream", R.string.general_error)); + Log.e(TAG, "Broadcast receiver already unregistered.", unregisteredException); } } From c066ebd76f1515cba4f2fa04015b77b5cda2bf52 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Tue, 4 Sep 2018 14:31:08 +0200 Subject: [PATCH 158/181] merge extractor fix for empty subscriptioin count --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 74ea3905f..49d9386e5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -55,7 +55,7 @@ dependencies { exclude module: 'support-annotations' } - implementation 'com.github.TeamNewPipe:NewPipeExtractor:fef71aeccc37' + implementation 'com.github.TeamNewPipe:NewPipeExtractor:834382111b98e629' testImplementation 'junit:junit:4.12' testImplementation 'org.mockito:mockito-core:2.8.9' From 43674ae80a4e082b46917733fd7f017dcaf84518 Mon Sep 17 00:00:00 2001 From: Mauricio Colli Date: Tue, 4 Sep 2018 23:54:17 -0300 Subject: [PATCH 159/181] Improve tabs UX and saving/loading - Show icons in the tabs list and dialog chooser - Add a "restore to defaults" button - Make removing gesture more user intuitive --- .../newpipe/fragments/MainFragment.java | 278 ++++-------- .../newpipe/settings/AddTabsDialog.java | 41 -- .../newpipe/settings/ChoseTabsFragment.java | 291 ------------ .../settings/SelectChannelFragment.java | 4 +- .../newpipe/settings/SelectKioskFragment.java | 4 +- .../newpipe/settings/SettingsActivity.java | 3 +- .../newpipe/settings/tabs/AddTabDialog.java | 94 ++++ .../settings/tabs/ChooseTabsFragment.java | 386 ++++++++++++++++ .../org/schabi/newpipe/settings/tabs/Tab.java | 416 ++++++++++++++++++ .../newpipe/settings/tabs/TabsJsonHelper.java | 114 +++++ .../newpipe/settings/tabs/TabsManager.java | 93 ++++ .../res/drawable/ic_blank_page_black_24dp.xml | 9 + .../res/drawable/ic_blank_page_white_24dp.xml | 9 + .../ic_settings_backup_restore_black_24dp.xml | 9 + .../ic_settings_backup_restore_white_24dp.xml | 9 + ...hose_tabs.xml => fragment_choose_tabs.xml} | 24 +- app/src/main/res/layout/list_choose_tabs.xml | 62 +++ .../res/layout/list_choose_tabs_dialog.xml | 33 ++ .../main/res/layout/viewholder_chose_tabs.xml | 40 -- app/src/main/res/values/attrs.xml | 2 + app/src/main/res/values/settings_keys.xml | 19 +- app/src/main/res/values/strings.xml | 13 +- app/src/main/res/values/styles.xml | 4 + app/src/main/res/xml/appearance_settings.xml | 2 +- .../schabi/newpipe/settings/tabs/TabTest.java | 20 + .../settings/tabs/TabsJsonHelperTest.java | 120 +++++ 26 files changed, 1493 insertions(+), 606 deletions(-) delete mode 100644 app/src/main/java/org/schabi/newpipe/settings/AddTabsDialog.java delete mode 100644 app/src/main/java/org/schabi/newpipe/settings/ChoseTabsFragment.java create mode 100644 app/src/main/java/org/schabi/newpipe/settings/tabs/AddTabDialog.java create mode 100644 app/src/main/java/org/schabi/newpipe/settings/tabs/ChooseTabsFragment.java create mode 100644 app/src/main/java/org/schabi/newpipe/settings/tabs/Tab.java create mode 100644 app/src/main/java/org/schabi/newpipe/settings/tabs/TabsJsonHelper.java create mode 100644 app/src/main/java/org/schabi/newpipe/settings/tabs/TabsManager.java create mode 100644 app/src/main/res/drawable/ic_blank_page_black_24dp.xml create mode 100644 app/src/main/res/drawable/ic_blank_page_white_24dp.xml create mode 100644 app/src/main/res/drawable/ic_settings_backup_restore_black_24dp.xml create mode 100644 app/src/main/res/drawable/ic_settings_backup_restore_white_24dp.xml rename app/src/main/res/layout/{fragment_chose_tabs.xml => fragment_choose_tabs.xml} (65%) create mode 100644 app/src/main/res/layout/list_choose_tabs.xml create mode 100644 app/src/main/res/layout/list_choose_tabs_dialog.xml delete mode 100644 app/src/main/res/layout/viewholder_chose_tabs.xml create mode 100644 app/src/test/java/org/schabi/newpipe/settings/tabs/TabTest.java create mode 100644 app/src/test/java/org/schabi/newpipe/settings/tabs/TabsJsonHelperTest.java diff --git a/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java index a920ecfe6..de14997ef 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java @@ -1,7 +1,5 @@ package org.schabi.newpipe.fragments; -import android.content.Context; -import android.content.SharedPreferences; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -12,7 +10,6 @@ import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; -import android.support.v7.preference.PreferenceManager; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; @@ -23,42 +20,26 @@ import android.view.ViewGroup; import org.schabi.newpipe.BaseFragment; import org.schabi.newpipe.R; -import org.schabi.newpipe.fragments.list.channel.ChannelFragment; -import org.schabi.newpipe.fragments.list.kiosk.KioskFragment; -import org.schabi.newpipe.local.bookmark.BookmarkFragment; -import org.schabi.newpipe.local.feed.FeedFragment; -import org.schabi.newpipe.local.history.StatisticsPlaylistFragment; -import org.schabi.newpipe.local.subscription.SubscriptionFragment; +import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.UserAction; -import org.schabi.newpipe.util.KioskTranslator; +import org.schabi.newpipe.settings.tabs.Tab; +import org.schabi.newpipe.settings.tabs.TabsManager; import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.ServiceHelper; -import org.schabi.newpipe.util.ThemeHelper; import java.util.ArrayList; -import java.util.Collections; import java.util.List; public class MainFragment extends BaseFragment implements TabLayout.OnTabSelectedListener { - - public int currentServiceId = -1; private ViewPager viewPager; - private List tabs = new ArrayList<>(); - static PagerAdapter adapter; - TabLayout tabLayout; - private SharedPreferences prefs; - private Bundle savedInstanceStateBundle; + private SelectedTabsPagerAdapter pagerAdapter; + private TabLayout tabLayout; - private static final String TAB_NUMBER_BLANK = "0"; - private static final String TAB_NUMBER_KIOSK = "1"; - private static final String TAB_NUMBER_SUBSCIRPTIONS = "2"; - private static final String TAB_NUMBER_FEED = "3"; - private static final String TAB_NUMBER_BOOKMARKS = "4"; - private static final String TAB_NUMBER_HISTORY = "5"; - private static final String TAB_NUMBER_CHANNEL = "6"; + private List tabsList = new ArrayList<>(); + private TabsManager tabsManager; - SharedPreferences.OnSharedPreferenceChangeListener listener; + private boolean hasTabsChanged = false; /*////////////////////////////////////////////////////////////////////////// // Fragment's LifeCycle @@ -66,23 +47,24 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte @Override public void onCreate(Bundle savedInstanceState) { - savedInstanceStateBundle = savedInstanceState; super.onCreate(savedInstanceState); setHasOptionsMenu(true); - listener = (prefs, key) -> { - if(key.equals("saveUsedTabs")) { - mainPageChanged(); + + tabsManager = TabsManager.getManager(activity); + tabsManager.setSavedTabsListener(() -> { + if (DEBUG) { + Log.d(TAG, "TabsManager.SavedTabsChangeListener: onTabsChanged called, isResumed = " + isResumed()); } - }; + if (isResumed()) { + updateTabs(); + } else { + hasTabsChanged = true; + } + }); } @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - currentServiceId = ServiceHelper.getSelectedServiceId(activity); - - prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - prefs.registerOnSharedPreferenceChangeListener(listener); - return inflater.inflate(R.layout.fragment_main, container, false); } @@ -94,110 +76,28 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte viewPager = rootView.findViewById(R.id.pager); /* Nested fragment, use child fragment here to maintain backstack in view pager. */ - adapter = new PagerAdapter(getChildFragmentManager()); - viewPager.setAdapter(adapter); + pagerAdapter = new SelectedTabsPagerAdapter(getChildFragmentManager()); + viewPager.setAdapter(pagerAdapter); tabLayout.setupWithViewPager(viewPager); - - mainPageChanged(); + tabLayout.addOnTabSelectedListener(this); + updateTabs(); } + @Override + public void onResume() { + super.onResume(); - public void mainPageChanged() { - getTabOrder(); - adapter.notifyDataSetChanged(); - viewPager.setOffscreenPageLimit(adapter.getCount()); - setIcons(); - setFirstTitle(); - } - - private void setFirstTitle() { - if((tabs.size() > 0) - && activity != null) { - String tabInformation = tabs.get(0); - if (tabInformation.startsWith(TAB_NUMBER_KIOSK + "\t")) { - String kiosk[] = tabInformation.split("\t"); - if (kiosk.length == 3) { - setTitle(kiosk[1]); - } - } else if (tabInformation.startsWith(TAB_NUMBER_CHANNEL + "\t")) { - - String channelInfo[] = tabInformation.split("\t"); - if(channelInfo.length==4) { - setTitle(channelInfo[2]); - } - } else { - switch (tabInformation) { - case TAB_NUMBER_BLANK: - setTitle(getString(R.string.app_name)); - break; - case TAB_NUMBER_SUBSCIRPTIONS: - setTitle(getString(R.string.tab_subscriptions)); - break; - case TAB_NUMBER_FEED: - setTitle(getString(R.string.fragment_whats_new)); - break; - case TAB_NUMBER_BOOKMARKS: - setTitle(getString(R.string.tab_bookmarks)); - break; - case TAB_NUMBER_HISTORY: - setTitle(getString(R.string.title_activity_history)); - break; - } - } - - + if (hasTabsChanged) { + hasTabsChanged = false; + updateTabs(); } } - private void setIcons() { - for (int i = 0; i < tabs.size(); i++) { - String tabInformation = tabs.get(i); - - TabLayout.Tab tabToSet = tabLayout.getTabAt(i); - Context c = getContext(); - - if (tabToSet != null && c != null) { - - if (tabInformation.startsWith(TAB_NUMBER_KIOSK + "\t")) { - String kiosk[] = tabInformation.split("\t"); - if (kiosk.length == 3) { - tabToSet.setIcon(KioskTranslator.getKioskIcons(kiosk[1], getContext())); - } - } else if (tabInformation.startsWith(TAB_NUMBER_CHANNEL + "\t")) { - tabToSet.setIcon(ThemeHelper.resolveResourceIdFromAttr(getContext(), R.attr.ic_channel)); - } else { - switch (tabInformation) { - case TAB_NUMBER_BLANK: - tabToSet.setIcon(ThemeHelper.resolveResourceIdFromAttr(getContext(), R.attr.ic_hot)); - break; - case TAB_NUMBER_SUBSCIRPTIONS: - tabToSet.setIcon(ThemeHelper.resolveResourceIdFromAttr(getContext(), R.attr.ic_channel)); - break; - case TAB_NUMBER_FEED: - tabToSet.setIcon(ThemeHelper.resolveResourceIdFromAttr(getContext(), R.attr.rss)); - break; - case TAB_NUMBER_BOOKMARKS: - tabToSet.setIcon(ThemeHelper.resolveResourceIdFromAttr(getContext(), R.attr.ic_bookmark)); - break; - case TAB_NUMBER_HISTORY: - tabToSet.setIcon(ThemeHelper.resolveResourceIdFromAttr(getContext(), R.attr.history)); - break; - } - } - - } - } - } - - - private void getTabOrder() { - tabs.clear(); - - String save = prefs.getString("saveUsedTabs", "1\tTrending\t0\n2\n4\n"); - String tabsArray[] = save.trim().split("\n"); - - Collections.addAll(tabs, tabsArray); + @Override + public void onDestroy() { + super.onDestroy(); + tabsManager.unsetSavedTabsListener(); } /*////////////////////////////////////////////////////////////////////////// @@ -237,9 +137,33 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte // Tabs //////////////////////////////////////////////////////////////////////////*/ + public void updateTabs() { + tabsList.clear(); + tabsList.addAll(tabsManager.getTabs()); + pagerAdapter.notifyDataSetChanged(); + + viewPager.setOffscreenPageLimit(pagerAdapter.getCount()); + updateTabsIcon(); + updateCurrentTitle(); + } + + private void updateTabsIcon() { + for (int i = 0; i < tabsList.size(); i++) { + final TabLayout.Tab tabToSet = tabLayout.getTabAt(i); + if (tabToSet != null) { + tabToSet.setIcon(tabsList.get(i).getTabIconRes(activity)); + } + } + } + + private void updateCurrentTitle() { + setTitle(tabsList.get(viewPager.getCurrentItem()).getTabName(requireContext())); + } + @Override - public void onTabSelected(TabLayout.Tab tab) { - viewPager.setCurrentItem(tab.getPosition()); + public void onTabSelected(TabLayout.Tab selectedTab) { + if (DEBUG) Log.d(TAG, "onTabSelected() called with: selectedTab = [" + selectedTab + "]"); + updateCurrentTitle(); } @Override @@ -248,68 +172,40 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte @Override public void onTabReselected(TabLayout.Tab tab) { + if (DEBUG) Log.d(TAG, "onTabReselected() called with: tab = [" + tab + "]"); + updateCurrentTitle(); } - private class PagerAdapter extends FragmentPagerAdapter { - PagerAdapter(FragmentManager fm) { - super(fm); + private class SelectedTabsPagerAdapter extends FragmentPagerAdapter { + private SelectedTabsPagerAdapter(FragmentManager fragmentManager) { + super(fragmentManager); } @Override public Fragment getItem(int position) { - String tabInformation = tabs.get(position); + final Tab tab = tabsList.get(position); - if(tabInformation.startsWith(TAB_NUMBER_KIOSK + "\t")) { - String kiosk[] = tabInformation.split("\t"); - if(kiosk.length==3) { - KioskFragment fragment = null; - try { - fragment = KioskFragment.getInstance(Integer.parseInt(kiosk[2]), kiosk[1]); - fragment.useAsFrontPage(true); - return fragment; - } catch (Exception e) { - ErrorActivity.reportError(activity, e, - activity.getClass(), - null, - ErrorActivity.ErrorInfo.make(UserAction.UI_ERROR, - "none", "", R.string.app_ui_crash)); - } - } - } else if(tabInformation.startsWith(TAB_NUMBER_CHANNEL + "\t")) { - String channelInfo[] = tabInformation.split("\t"); - if(channelInfo.length==4) { - ChannelFragment fragment = ChannelFragment.getInstance(Integer.parseInt(channelInfo[3]), channelInfo[1], channelInfo[2]); - fragment.useAsFrontPage(true); - return fragment; - } else { - return new BlankFragment(); - } - } else { - switch (tabInformation) { - case TAB_NUMBER_BLANK: - return new BlankFragment(); - case TAB_NUMBER_SUBSCIRPTIONS: - SubscriptionFragment sFragment = new SubscriptionFragment(); - sFragment.useAsFrontPage(true); - return sFragment; - case TAB_NUMBER_FEED: - FeedFragment fFragment = new FeedFragment(); - fFragment.useAsFrontPage(true); - return fFragment; - case TAB_NUMBER_BOOKMARKS: - BookmarkFragment bFragment = new BookmarkFragment(); - bFragment.useAsFrontPage(true); - return bFragment; - case TAB_NUMBER_HISTORY: - StatisticsPlaylistFragment cFragment = new StatisticsPlaylistFragment(); - cFragment.useAsFrontPage(true); - return cFragment; - } - } - - return new BlankFragment(); + Throwable throwable = null; + Fragment fragment = null; + try { + fragment = tab.getFragment(); + } catch (ExtractionException e) { + throwable = e; } + if (throwable != null) { + ErrorActivity.reportError(activity, throwable, activity.getClass(), null, + ErrorActivity.ErrorInfo.make(UserAction.UI_ERROR, "none", "", R.string.app_ui_crash)); + return new BlankFragment(); + } + + if (fragment instanceof BaseFragment) { + ((BaseFragment) fragment).useAsFrontPage(true); + } + + return fragment; + } + @Override public int getItemPosition(Object object) { // Causes adapter to reload all Fragments when @@ -319,14 +215,14 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte @Override public int getCount() { - return tabs.size(); + return tabsList.size(); } @Override public void destroyItem(ViewGroup container, int position, Object object) { - getFragmentManager() + getChildFragmentManager() .beginTransaction() - .remove((Fragment)object) + .remove((Fragment) object) .commitNowAllowingStateLoss(); } } diff --git a/app/src/main/java/org/schabi/newpipe/settings/AddTabsDialog.java b/app/src/main/java/org/schabi/newpipe/settings/AddTabsDialog.java deleted file mode 100644 index 5130df3bf..000000000 --- a/app/src/main/java/org/schabi/newpipe/settings/AddTabsDialog.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.schabi.newpipe.settings; - -import android.app.Activity; -import android.app.AlertDialog; -import android.content.Context; -import android.content.DialogInterface; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.view.View; -import android.widget.TextView; - -import org.schabi.newpipe.R; -import org.schabi.newpipe.extractor.stream.StreamInfoItem; - -public class AddTabsDialog { - private final AlertDialog dialog; - - public AddTabsDialog(@NonNull final Context context, - @NonNull final String title, - @NonNull final String[] commands, - @NonNull final DialogInterface.OnClickListener actions) { - - final View bannerView = View.inflate(context, R.layout.dialog_title, null); - bannerView.setSelected(true); - - TextView titleView = bannerView.findViewById(R.id.itemTitleView); - titleView.setText(title); - - TextView detailsView = bannerView.findViewById(R.id.itemAdditionalDetails); - detailsView.setVisibility(View.GONE); - - dialog = new AlertDialog.Builder(context) - .setCustomTitle(bannerView) - .setItems(commands, actions) - .create(); - } - - public void show() { - dialog.show(); - } -} diff --git a/app/src/main/java/org/schabi/newpipe/settings/ChoseTabsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ChoseTabsFragment.java deleted file mode 100644 index d6238c7c4..000000000 --- a/app/src/main/java/org/schabi/newpipe/settings/ChoseTabsFragment.java +++ /dev/null @@ -1,291 +0,0 @@ -package org.schabi.newpipe.settings; - -import android.app.Dialog; -import android.content.SharedPreferences; -import android.content.res.ColorStateList; -import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.design.widget.FloatingActionButton; -import android.support.v4.app.Fragment; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.CardView; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.helper.ItemTouchHelper; -import android.util.TypedValue; -import android.view.LayoutInflater; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import org.schabi.newpipe.R; -import org.schabi.newpipe.util.ThemeHelper; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class ChoseTabsFragment extends Fragment { - - public ChoseTabsFragment.SelectedTabsAdapter selectedTabsAdapter; - - RecyclerView selectedTabsView; - - List selectedTabs = new ArrayList<>(); - private String saveString; - public String[] availableTabs = new String[7]; - - @Override - public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - ((AppCompatActivity)getContext()).getSupportActionBar().setTitle(R.string.main_page_content); - return inflater.inflate(R.layout.fragment_chose_tabs, container, false); - } - - - @Override - public void onViewCreated(@NonNull View rootView, @Nullable Bundle savedInstanceState) { - super.onViewCreated(rootView, savedInstanceState); - - tabNames(); - initUsedTabs(); - initButton(rootView); - - selectedTabsView = rootView.findViewById(R.id.usedTabs); - selectedTabsView.setLayoutManager(new LinearLayoutManager(getContext())); - selectedTabsAdapter = new ChoseTabsFragment.SelectedTabsAdapter(); - - - ItemTouchHelper itemTouchHelper = new ItemTouchHelper(getItemTouchCallback()); - itemTouchHelper.attachToRecyclerView(selectedTabsView); - selectedTabsAdapter.setOnItemSelectedListener(itemTouchHelper); - - selectedTabsView.setAdapter(selectedTabsAdapter); - } - - private void saveChanges() { - StringBuilder save = new StringBuilder(); - if(selectedTabs.size()==0) { - save = new StringBuilder("0"); - } else { - for(String s: selectedTabs) { - save.append(s); - save.append("\n"); - } - } - saveString = save.toString(); - } - - @Override - public void onPause() { - saveChanges(); - SharedPreferences sharedPreferences = android.preference.PreferenceManager.getDefaultSharedPreferences(getContext()); - SharedPreferences.Editor editor = sharedPreferences.edit(); - editor.putString("saveUsedTabs", saveString); - editor.commit(); - super.onPause(); - } - - private void initUsedTabs() { - String save = android.preference.PreferenceManager.getDefaultSharedPreferences(getContext()).getString("saveUsedTabs", "1\tTrending\t0\n2\n4\n"); - String tabs[] = save.trim().split("\n"); - selectedTabs.addAll(Arrays.asList(tabs)); - } - - private void tabNames() { - availableTabs[0] = getString(R.string.blank_page_summary); - availableTabs[1] = getString(R.string.kiosk_page_summary); - availableTabs[2] = getString(R.string.subscription_page_summary); - availableTabs[3] = getString(R.string.feed_page_summary); - availableTabs[4] = getString(R.string.tab_bookmarks); - availableTabs[5] = getString(R.string.title_activity_history); - availableTabs[6] = getString(R.string.channel_page_summary); - } - - private void initButton(View rootView) { - FloatingActionButton fab = rootView.findViewById(R.id.floatingActionButton); - fab.setImageResource(ThemeHelper.getIconByAttr(R.attr.ic_add, getContext())); - fab.setOnClickListener(v -> { - Dialog.OnClickListener onClickListener = (dialog, which) -> addTab(which); - - new AddTabsDialog(getContext(), - getString(R.string.tab_chose), - availableTabs, - onClickListener) - .show(); - }); - - TypedValue typedValue = new TypedValue(); - getActivity().getTheme().resolveAttribute(R.attr.colorPrimary, typedValue, true); - int color = typedValue.data; - fab.setBackgroundTintList(ColorStateList.valueOf(color)); - } - - - private void addTab(int position) { - if(position==6) { - SelectChannelFragment selectChannelFragment = new SelectChannelFragment(); - selectChannelFragment.setOnSelectedLisener((String url, String name, int service) -> { - selectedTabs.add(position+"\t"+url+"\t"+name+"\t"+service); - selectedTabsAdapter.notifyDataSetChanged(); - saveChanges(); - }); - selectChannelFragment.show(getFragmentManager(), "select_channel"); - } else if(position==1) { - SelectKioskFragment selectKioskFragment = new SelectKioskFragment(); - selectKioskFragment.setOnSelectedLisener((String kioskId, int service_id) -> { - selectedTabs.add(position+"\t"+kioskId+"\t"+service_id); - selectedTabsAdapter.notifyDataSetChanged(); - saveChanges(); - }); - selectKioskFragment.show(getFragmentManager(), "select_kiosk"); - } else { - selectedTabs.add(String.valueOf(position)); - selectedTabsAdapter.notifyDataSetChanged(); - saveChanges(); - } - } - - public class SelectedTabsAdapter extends RecyclerView.Adapter{ - private ItemTouchHelper itemTouchHelper; - - public void setOnItemSelectedListener(ItemTouchHelper mItemTouchHelper) { - itemTouchHelper = mItemTouchHelper; - } - - public void swapItems(int fromPosition, int toPosition) { - String temp = selectedTabs.get(fromPosition); - selectedTabs.set(fromPosition, selectedTabs.get(toPosition)); - selectedTabs.set(toPosition, temp); - notifyItemMoved(fromPosition, toPosition); - saveChanges(); - } - - @Override - public ChoseTabsFragment.SelectedTabsAdapter.TabViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - - LayoutInflater inflater = LayoutInflater.from(getContext()); - View view = inflater.inflate(R.layout.viewholder_chose_tabs, parent, false); - return new ChoseTabsFragment.SelectedTabsAdapter.TabViewHolder(view); - } - - @Override - public void onBindViewHolder(@NonNull ChoseTabsFragment.SelectedTabsAdapter.TabViewHolder holder, int position) { - holder.bind(position, holder); - } - - @Override - public int getItemCount() { - return selectedTabs.size(); - } - - class TabViewHolder extends RecyclerView.ViewHolder { - - TextView text; - View view; - CardView cardView; - ImageView handle; - - public TabViewHolder(View itemView) { - super(itemView); - - text = itemView.findViewById(R.id.tabName); - cardView = itemView.findViewById(R.id.layoutCard); - handle = itemView.findViewById(R.id.handle); - view = itemView; - } - - void bind(int position, TabViewHolder holder) { - handle.setImageResource(ThemeHelper.getIconByAttr(R.attr.drag_handle, getContext())); - handle.setOnTouchListener(getOnTouchListener(holder)); - - view.setOnLongClickListener(getOnLongClickListener(holder)); - - if(selectedTabs.get(position).startsWith("6\t")) { - String channelInfo[] = selectedTabs.get(position).split("\t"); - String channelName = ""; - if (channelInfo.length == 4) channelName = channelInfo[2]; - String textToSet = availableTabs[6] + ": " + channelName; - text.setText(textToSet); - } else if(selectedTabs.get(position).startsWith("1\t")) { - String kioskInfo[] = selectedTabs.get(position).split("\t"); - String kioskName = ""; - if (kioskInfo.length == 3) kioskName = kioskInfo[1]; - String textToSet = availableTabs[1] + ": " + kioskName; - text.setText(textToSet); - } else { - text.setText(availableTabs[Integer.parseInt(selectedTabs.get(position))]); - } - } - - private View.OnTouchListener getOnTouchListener(final RecyclerView.ViewHolder item) { - return (view, motionEvent) -> { - view.performClick(); - if (motionEvent.getActionMasked() == MotionEvent.ACTION_DOWN) { - if(itemTouchHelper != null) itemTouchHelper.startDrag(item); - } - return false; - }; - } - - private View.OnLongClickListener getOnLongClickListener(TabViewHolder holder) { - return (view) -> { - if(itemTouchHelper != null) itemTouchHelper.startSwipe(holder); - return false; - }; - } - - } - } - - private ItemTouchHelper.SimpleCallback getItemTouchCallback() { - return new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN, - ItemTouchHelper.START | ItemTouchHelper.END) { - @Override - public int interpolateOutOfBoundsScroll(RecyclerView recyclerView, int viewSize, - int viewSizeOutOfBounds, int totalSize, - long msSinceStartScroll) { - final int standardSpeed = super.interpolateOutOfBoundsScroll(recyclerView, viewSize, - viewSizeOutOfBounds, totalSize, msSinceStartScroll); - final int minimumAbsVelocity = Math.max(12, - Math.abs(standardSpeed)); - return minimumAbsVelocity * (int) Math.signum(viewSizeOutOfBounds); - } - - @Override - public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder source, - RecyclerView.ViewHolder target) { - if (source.getItemViewType() != target.getItemViewType() || - selectedTabsAdapter == null) { - return false; - } - - final int sourceIndex = source.getAdapterPosition(); - final int targetIndex = target.getAdapterPosition(); - selectedTabsAdapter.swapItems(sourceIndex, targetIndex); - return true; - } - - @Override - public boolean isLongPressDragEnabled() { - return false; - } - - @Override - public boolean isItemViewSwipeEnabled() { - return false; - } - - @Override - public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) { - int position = viewHolder.getAdapterPosition(); - selectedTabs.remove(position); - selectedTabsAdapter.notifyItemRemoved(position); - saveChanges(); - } - }; - } -} diff --git a/app/src/main/java/org/schabi/newpipe/settings/SelectChannelFragment.java b/app/src/main/java/org/schabi/newpipe/settings/SelectChannelFragment.java index e961de969..0ebdbefe0 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/SelectChannelFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/SelectChannelFragment.java @@ -66,7 +66,7 @@ public class SelectChannelFragment extends DialogFragment { //////////////////////////////////////////////////////////////////////////*/ public interface OnSelectedLisener { - void onChannelSelected(String url, String name, int service); + void onChannelSelected(int serviceId, String url, String name); } OnSelectedLisener onSelectedLisener = null; public void setOnSelectedLisener(OnSelectedLisener listener) { @@ -126,7 +126,7 @@ public class SelectChannelFragment extends DialogFragment { private void clickedItem(int position) { if(onSelectedLisener != null) { SubscriptionEntity entry = subscriptions.get(position); - onSelectedLisener.onChannelSelected(entry.getUrl(), entry.getName(), entry.getServiceId()); + onSelectedLisener.onChannelSelected(entry.getServiceId(), entry.getUrl(), entry.getName()); } dismiss(); } diff --git a/app/src/main/java/org/schabi/newpipe/settings/SelectKioskFragment.java b/app/src/main/java/org/schabi/newpipe/settings/SelectKioskFragment.java index 00b618889..44cb16682 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/SelectKioskFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/SelectKioskFragment.java @@ -56,7 +56,7 @@ public class SelectKioskFragment extends DialogFragment { //////////////////////////////////////////////////////////////////////////*/ public interface OnSelectedLisener { - void onKioskSelected(String kioskId, int service_id); + void onKioskSelected(int serviceId, String kioskId, String kioskName); } OnSelectedLisener onSelectedLisener = null; @@ -101,7 +101,7 @@ public class SelectKioskFragment extends DialogFragment { private void clickedItem(SelectKioskAdapter.Entry entry) { if(onSelectedLisener != null) { - onSelectedLisener.onKioskSelected(entry.kioskId, entry.serviceId); + onSelectedLisener.onKioskSelected(entry.serviceId, entry.kioskId, entry.kioskName); } dismiss(); } diff --git a/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java b/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java index 7d6f8d633..a8482e0eb 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java +++ b/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java @@ -77,7 +77,8 @@ public class SettingsActivity extends AppCompatActivity implements BasePreferenc finish(); } else getSupportFragmentManager().popBackStack(); } - return true; + + return super.onOptionsItemSelected(item); } @Override diff --git a/app/src/main/java/org/schabi/newpipe/settings/tabs/AddTabDialog.java b/app/src/main/java/org/schabi/newpipe/settings/tabs/AddTabDialog.java new file mode 100644 index 000000000..695f81ff5 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/settings/tabs/AddTabDialog.java @@ -0,0 +1,94 @@ +package org.schabi.newpipe.settings.tabs; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.support.annotation.DrawableRes; +import android.support.annotation.NonNull; +import android.support.v7.widget.AppCompatImageView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.TextView; + +import org.schabi.newpipe.R; +import org.schabi.newpipe.util.ThemeHelper; + +public class AddTabDialog { + private final AlertDialog dialog; + + AddTabDialog(@NonNull final Context context, + @NonNull final ChooseTabListItem[] items, + @NonNull final DialogInterface.OnClickListener actions) { + + dialog = new AlertDialog.Builder(context) + .setTitle(context.getString(R.string.tab_choose)) + .setAdapter(new DialogListAdapter(context, items), actions) + .create(); + } + + public void show() { + dialog.show(); + } + + public static final class ChooseTabListItem { + final int tabId; + final String itemName; + @DrawableRes final int itemIcon; + + ChooseTabListItem(Context context, Tab tab) { + this(tab.getTabId(), tab.getTabName(context), tab.getTabIconRes(context)); + } + + ChooseTabListItem(int tabId, String itemName, @DrawableRes int itemIcon) { + this.tabId = tabId; + this.itemName = itemName; + this.itemIcon = itemIcon; + } + } + + private static class DialogListAdapter extends BaseAdapter { + private final LayoutInflater inflater; + private final ChooseTabListItem[] items; + + @DrawableRes private final int fallbackIcon; + + private DialogListAdapter(Context context, ChooseTabListItem[] items) { + this.inflater = LayoutInflater.from(context); + this.items = items; + this.fallbackIcon = ThemeHelper.resolveResourceIdFromAttr(context, R.attr.ic_hot); + } + + @Override + public int getCount() { + return items.length; + } + + @Override + public ChooseTabListItem getItem(int position) { + return items[position]; + } + + @Override + public long getItemId(int position) { + return getItem(position).tabId; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + if (convertView == null) { + convertView = inflater.inflate(R.layout.list_choose_tabs_dialog, parent, false); + } + + final ChooseTabListItem item = getItem(position); + final AppCompatImageView tabIconView = convertView.findViewById(R.id.tabIcon); + final TextView tabNameView = convertView.findViewById(R.id.tabName); + + tabIconView.setImageResource(item.itemIcon > 0 ? item.itemIcon : fallbackIcon); + tabNameView.setText(item.itemName); + + return convertView; + } + } +} diff --git a/app/src/main/java/org/schabi/newpipe/settings/tabs/ChooseTabsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/tabs/ChooseTabsFragment.java new file mode 100644 index 000000000..b86f13d14 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/settings/tabs/ChooseTabsFragment.java @@ -0,0 +1,386 @@ +package org.schabi.newpipe.settings.tabs; + +import android.annotation.SuppressLint; +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.design.widget.FloatingActionButton; +import android.support.v4.app.Fragment; +import android.support.v7.app.ActionBar; +import android.support.v7.app.AlertDialog; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.content.res.AppCompatResources; +import android.support.v7.widget.AppCompatImageView; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.helper.ItemTouchHelper; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import org.schabi.newpipe.R; +import org.schabi.newpipe.extractor.NewPipe; +import org.schabi.newpipe.report.ErrorActivity; +import org.schabi.newpipe.report.UserAction; +import org.schabi.newpipe.settings.SelectChannelFragment; +import org.schabi.newpipe.settings.SelectKioskFragment; +import org.schabi.newpipe.settings.tabs.AddTabDialog.ChooseTabListItem; +import org.schabi.newpipe.util.ThemeHelper; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import static org.schabi.newpipe.settings.tabs.Tab.typeFrom; + +public class ChooseTabsFragment extends Fragment { + + private TabsManager tabsManager; + private List tabList = new ArrayList<>(); + public ChooseTabsFragment.SelectedTabsAdapter selectedTabsAdapter; + + /*////////////////////////////////////////////////////////////////////////// + // Lifecycle + //////////////////////////////////////////////////////////////////////////*/ + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + tabsManager = TabsManager.getManager(requireContext()); + updateTabList(); + + setHasOptionsMenu(true); + } + + @Override + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + return inflater.inflate(R.layout.fragment_choose_tabs, container, false); + } + + @Override + public void onViewCreated(@NonNull View rootView, @Nullable Bundle savedInstanceState) { + super.onViewCreated(rootView, savedInstanceState); + + initButton(rootView); + + RecyclerView listSelectedTabs = rootView.findViewById(R.id.selectedTabs); + listSelectedTabs.setLayoutManager(new LinearLayoutManager(requireContext())); + + ItemTouchHelper itemTouchHelper = new ItemTouchHelper(getItemTouchCallback()); + itemTouchHelper.attachToRecyclerView(listSelectedTabs); + + selectedTabsAdapter = new SelectedTabsAdapter(requireContext(), itemTouchHelper); + listSelectedTabs.setAdapter(selectedTabsAdapter); + } + + @Override + public void onResume() { + super.onResume(); + updateTitle(); + } + + @Override + public void onPause() { + super.onPause(); + saveChanges(); + } + + /*////////////////////////////////////////////////////////////////////////// + // Menu + //////////////////////////////////////////////////////////////////////////*/ + + private final int MENU_ITEM_RESTORE_ID = 123456; + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + super.onCreateOptionsMenu(menu, inflater); + + final MenuItem restoreItem = menu.add(Menu.NONE, MENU_ITEM_RESTORE_ID, Menu.NONE, R.string.restore_defaults); + restoreItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + + final int restoreIcon = ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_restore_defaults); + restoreItem.setIcon(AppCompatResources.getDrawable(requireContext(), restoreIcon)); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (item.getItemId() == MENU_ITEM_RESTORE_ID) { + restoreDefaults(); + return true; + } + + return super.onOptionsItemSelected(item); + } + + /*////////////////////////////////////////////////////////////////////////// + // Utils + //////////////////////////////////////////////////////////////////////////*/ + + private void updateTabList() { + tabList.clear(); + tabList.addAll(tabsManager.getTabs()); + } + + private void updateTitle() { + if (getActivity() instanceof AppCompatActivity) { + ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar(); + if (actionBar != null) actionBar.setTitle(R.string.main_page_content); + } + } + + private void saveChanges() { + tabsManager.saveTabs(tabList); + } + + private void restoreDefaults() { + new AlertDialog.Builder(requireContext(), ThemeHelper.getDialogTheme(requireContext())) + .setTitle(R.string.restore_defaults) + .setMessage(R.string.restore_defaults_confirmation) + .setNegativeButton(R.string.cancel, null) + .setPositiveButton(R.string.yes, (dialog, which) -> { + tabsManager.resetTabs(); + updateTabList(); + selectedTabsAdapter.notifyDataSetChanged(); + }) + .show(); + } + + private void initButton(View rootView) { + final FloatingActionButton fab = rootView.findViewById(R.id.addTabsButton); + fab.setOnClickListener(v -> { + final ChooseTabListItem[] availableTabs = getAvailableTabs(requireContext()); + + if (availableTabs.length == 0) { + //Toast.makeText(requireContext(), "No available tabs", Toast.LENGTH_SHORT).show(); + return; + } + + Dialog.OnClickListener actionListener = (dialog, which) -> { + final ChooseTabListItem selected = availableTabs[which]; + addTab(selected.tabId); + }; + + new AddTabDialog(requireContext(), availableTabs, actionListener) + .show(); + }); + } + + private void addTab(final Tab tab) { + tabList.add(tab); + selectedTabsAdapter.notifyDataSetChanged(); + } + + private void addTab(int tabId) { + final Tab.Type type = typeFrom(tabId); + + if (type == null) { + ErrorActivity.reportError(requireContext(), new IllegalStateException("Tab id not found: " + tabId), null, null, + ErrorActivity.ErrorInfo.make(UserAction.SOMETHING_ELSE, "none", "Choosing tabs on settings", 0)); + return; + } + + switch (type) { + case KIOSK: { + SelectKioskFragment selectFragment = new SelectKioskFragment(); + selectFragment.setOnSelectedLisener((serviceId, kioskId, kioskName) -> + addTab(new Tab.KioskTab(serviceId, kioskId))); + selectFragment.show(requireFragmentManager(), "select_kiosk"); + return; + } + case CHANNEL: { + SelectChannelFragment selectFragment = new SelectChannelFragment(); + selectFragment.setOnSelectedLisener((serviceId, url, name) -> + addTab(new Tab.ChannelTab(serviceId, url, name))); + selectFragment.show(requireFragmentManager(), "select_channel"); + return; + } + default: + addTab(type.getTab()); + break; + } + } + + public ChooseTabListItem[] getAvailableTabs(Context context) { + final ArrayList returnList = new ArrayList<>(); + + for (Tab.Type type : Tab.Type.values()) { + final Tab tab = type.getTab(); + switch (type) { + case BLANK: + if (!tabList.contains(tab)) { + returnList.add(new ChooseTabListItem(tab.getTabId(), getString(R.string.blank_page_summary), + tab.getTabIconRes(context))); + } + break; + case KIOSK: + returnList.add(new ChooseTabListItem(tab.getTabId(), getString(R.string.kiosk_page_summary), + ThemeHelper.resolveResourceIdFromAttr(context, R.attr.ic_hot))); + break; + case CHANNEL: + returnList.add(new ChooseTabListItem(tab.getTabId(), getString(R.string.channel_page_summary), + tab.getTabIconRes(context))); + break; + default: + if (!tabList.contains(tab)) { + returnList.add(new ChooseTabListItem(context, tab)); + } + break; + } + } + + return returnList.toArray(new ChooseTabListItem[0]); + } + + /*////////////////////////////////////////////////////////////////////////// + // List Handling + //////////////////////////////////////////////////////////////////////////*/ + + private class SelectedTabsAdapter extends RecyclerView.Adapter { + private ItemTouchHelper itemTouchHelper; + private final LayoutInflater inflater; + + SelectedTabsAdapter(Context context, ItemTouchHelper itemTouchHelper) { + this.itemTouchHelper = itemTouchHelper; + this.inflater = LayoutInflater.from(context); + } + + public void swapItems(int fromPosition, int toPosition) { + Collections.swap(tabList, fromPosition, toPosition); + notifyItemMoved(fromPosition, toPosition); + } + + @NonNull + @Override + public ChooseTabsFragment.SelectedTabsAdapter.TabViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = inflater.inflate(R.layout.list_choose_tabs, parent, false); + return new ChooseTabsFragment.SelectedTabsAdapter.TabViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ChooseTabsFragment.SelectedTabsAdapter.TabViewHolder holder, int position) { + holder.bind(position, holder); + } + + @Override + public int getItemCount() { + return tabList.size(); + } + + class TabViewHolder extends RecyclerView.ViewHolder { + private AppCompatImageView tabIconView; + private TextView tabNameView; + private ImageView handle; + + TabViewHolder(View itemView) { + super(itemView); + + tabNameView = itemView.findViewById(R.id.tabName); + tabIconView = itemView.findViewById(R.id.tabIcon); + handle = itemView.findViewById(R.id.handle); + } + + @SuppressLint("ClickableViewAccessibility") + void bind(int position, TabViewHolder holder) { + handle.setOnTouchListener(getOnTouchListener(holder)); + + final Tab tab = tabList.get(position); + final Tab.Type type = Tab.typeFrom(tab.getTabId()); + + if (type == null) { + return; + } + + String tabName = tab.getTabName(requireContext()); + switch (type) { + case BLANK: + tabName = requireContext().getString(R.string.blank_page_summary); + break; + case KIOSK: + tabName = NewPipe.getNameOfService(((Tab.KioskTab) tab).getKioskServiceId()) + "/" + tabName; + break; + case CHANNEL: + tabName = NewPipe.getNameOfService(((Tab.ChannelTab) tab).getChannelServiceId()) + "/" + tabName; + break; + } + + + tabNameView.setText(tabName); + tabIconView.setImageResource(tab.getTabIconRes(requireContext())); + } + + @SuppressLint("ClickableViewAccessibility") + private View.OnTouchListener getOnTouchListener(final RecyclerView.ViewHolder item) { + return (view, motionEvent) -> { + if (motionEvent.getActionMasked() == MotionEvent.ACTION_DOWN) { + if (itemTouchHelper != null && getItemCount() > 1) { + itemTouchHelper.startDrag(item); + return true; + } + } + return false; + }; + } + } + } + + private ItemTouchHelper.SimpleCallback getItemTouchCallback() { + return new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN, + ItemTouchHelper.START | ItemTouchHelper.END) { + @Override + public int interpolateOutOfBoundsScroll(RecyclerView recyclerView, int viewSize, + int viewSizeOutOfBounds, int totalSize, + long msSinceStartScroll) { + final int standardSpeed = super.interpolateOutOfBoundsScroll(recyclerView, viewSize, + viewSizeOutOfBounds, totalSize, msSinceStartScroll); + final int minimumAbsVelocity = Math.max(12, + Math.abs(standardSpeed)); + return minimumAbsVelocity * (int) Math.signum(viewSizeOutOfBounds); + } + + @Override + public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder source, + RecyclerView.ViewHolder target) { + if (source.getItemViewType() != target.getItemViewType() || + selectedTabsAdapter == null) { + return false; + } + + final int sourceIndex = source.getAdapterPosition(); + final int targetIndex = target.getAdapterPosition(); + selectedTabsAdapter.swapItems(sourceIndex, targetIndex); + return true; + } + + @Override + public boolean isLongPressDragEnabled() { + return false; + } + + @Override + public boolean isItemViewSwipeEnabled() { + return true; + } + + @Override + public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) { + int position = viewHolder.getAdapterPosition(); + tabList.remove(position); + selectedTabsAdapter.notifyItemRemoved(position); + + if (tabList.isEmpty()) { + tabList.add(Tab.Type.BLANK.getTab()); + selectedTabsAdapter.notifyItemInserted(0); + } + } + }; + } +} diff --git a/app/src/main/java/org/schabi/newpipe/settings/tabs/Tab.java b/app/src/main/java/org/schabi/newpipe/settings/tabs/Tab.java new file mode 100644 index 000000000..d7c249a3e --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/settings/tabs/Tab.java @@ -0,0 +1,416 @@ +package org.schabi.newpipe.settings.tabs; + +import android.content.Context; +import android.support.annotation.DrawableRes; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; + +import com.grack.nanojson.JsonObject; +import com.grack.nanojson.JsonSink; + +import org.schabi.newpipe.R; +import org.schabi.newpipe.extractor.exceptions.ExtractionException; +import org.schabi.newpipe.fragments.BlankFragment; +import org.schabi.newpipe.fragments.list.channel.ChannelFragment; +import org.schabi.newpipe.fragments.list.kiosk.KioskFragment; +import org.schabi.newpipe.local.bookmark.BookmarkFragment; +import org.schabi.newpipe.local.feed.FeedFragment; +import org.schabi.newpipe.local.history.StatisticsPlaylistFragment; +import org.schabi.newpipe.local.subscription.SubscriptionFragment; +import org.schabi.newpipe.util.KioskTranslator; +import org.schabi.newpipe.util.ThemeHelper; + +public abstract class Tab { + Tab() { + } + + Tab(@NonNull JsonObject jsonObject) { + readDataFromJson(jsonObject); + } + + public abstract int getTabId(); + public abstract String getTabName(Context context); + @DrawableRes public abstract int getTabIconRes(Context context); + + /** + * Return a instance of the fragment that this tab represent. + */ + public abstract Fragment getFragment() throws ExtractionException; + + @Override + public boolean equals(Object obj) { + return obj instanceof Tab && obj.getClass().equals(this.getClass()) + && ((Tab) obj).getTabId() == this.getTabId(); + } + + /*////////////////////////////////////////////////////////////////////////// + // JSON Handling + //////////////////////////////////////////////////////////////////////////*/ + + private static final String JSON_TAB_ID_KEY = "tab_id"; + + public void writeJsonOn(JsonSink jsonSink) { + jsonSink.object(); + + jsonSink.value(JSON_TAB_ID_KEY, getTabId()); + writeDataToJson(jsonSink); + + jsonSink.end(); + } + + protected void writeDataToJson(JsonSink writerSink) { + // No-op + } + + protected void readDataFromJson(JsonObject jsonObject) { + // No-op + } + + /*////////////////////////////////////////////////////////////////////////// + // Tab Handling + //////////////////////////////////////////////////////////////////////////*/ + + @Nullable + public static Tab from(@NonNull JsonObject jsonObject) { + final int tabId = jsonObject.getInt(Tab.JSON_TAB_ID_KEY, -1); + + if (tabId == -1) { + return null; + } + + return from(tabId, jsonObject); + } + + @Nullable + public static Tab from(final int tabId) { + return from(tabId, null); + } + + @Nullable + public static Type typeFrom(int tabId) { + for (Type available : Type.values()) { + if (available.getTabId() == tabId) { + return available; + } + } + return null; + } + + @Nullable + private static Tab from(final int tabId, @Nullable JsonObject jsonObject) { + final Type type = typeFrom(tabId); + + if (type == null) { + return null; + } + + if (jsonObject != null) { + switch (type) { + case KIOSK: + return new KioskTab(jsonObject); + case CHANNEL: + return new ChannelTab(jsonObject); + } + } + + return type.getTab(); + } + + /*////////////////////////////////////////////////////////////////////////// + // Implementations + //////////////////////////////////////////////////////////////////////////*/ + + public enum Type { + BLANK(new BlankTab()), + SUBSCRIPTIONS(new SubscriptionsTab()), + FEED(new FeedTab()), + BOOKMARKS(new BookmarksTab()), + HISTORY(new HistoryTab()), + KIOSK(new KioskTab()), + CHANNEL(new ChannelTab()); + + private Tab tab; + + Type(Tab tab) { + this.tab = tab; + } + + public int getTabId() { + return tab.getTabId(); + } + + public Tab getTab() { + return tab; + } + } + + public static class BlankTab extends Tab { + public static final int ID = 0; + + @Override + public int getTabId() { + return ID; + } + + @Override + public String getTabName(Context context) { + return "NewPipe"; //context.getString(R.string.blank_page_summary); + } + + @DrawableRes + @Override + public int getTabIconRes(Context context) { + return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.ic_blank_page); + } + + @Override + public BlankFragment getFragment() { + return new BlankFragment(); + } + } + + public static class SubscriptionsTab extends Tab { + public static final int ID = 1; + + @Override + public int getTabId() { + return ID; + } + + @Override + public String getTabName(Context context) { + return context.getString(R.string.tab_subscriptions); + } + + @DrawableRes + @Override + public int getTabIconRes(Context context) { + return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.ic_channel); + } + + @Override + public SubscriptionFragment getFragment() { + return new SubscriptionFragment(); + } + + } + + public static class FeedTab extends Tab { + public static final int ID = 2; + + @Override + public int getTabId() { + return ID; + } + + @Override + public String getTabName(Context context) { + return context.getString(R.string.fragment_whats_new); + } + + @DrawableRes + @Override + public int getTabIconRes(Context context) { + return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.rss); + } + + @Override + public FeedFragment getFragment() { + return new FeedFragment(); + } + } + + public static class BookmarksTab extends Tab { + public static final int ID = 3; + + @Override + public int getTabId() { + return ID; + } + + @Override + public String getTabName(Context context) { + return context.getString(R.string.tab_bookmarks); + } + + @DrawableRes + @Override + public int getTabIconRes(Context context) { + return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.ic_bookmark); + } + + @Override + public BookmarkFragment getFragment() { + return new BookmarkFragment(); + } + } + + public static class HistoryTab extends Tab { + public static final int ID = 4; + + @Override + public int getTabId() { + return ID; + } + + @Override + public String getTabName(Context context) { + return context.getString(R.string.title_activity_history); + } + + @DrawableRes + @Override + public int getTabIconRes(Context context) { + return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.history); + } + + @Override + public StatisticsPlaylistFragment getFragment() { + return new StatisticsPlaylistFragment(); + } + } + + public static class KioskTab extends Tab { + public static final int ID = 5; + + private int kioskServiceId; + private String kioskId; + + private static final String JSON_KIOSK_SERVICE_ID_KEY = "service_id"; + private static final String JSON_KIOSK_ID_KEY = "kiosk_id"; + + private KioskTab() { + this(-1, ""); + } + + public KioskTab(int kioskServiceId, String kioskId) { + this.kioskServiceId = kioskServiceId; + this.kioskId = kioskId; + } + + public KioskTab(JsonObject jsonObject) { + super(jsonObject); + } + + @Override + public int getTabId() { + return ID; + } + + @Override + public String getTabName(Context context) { + return KioskTranslator.getTranslatedKioskName(kioskId, context); + } + + @DrawableRes + @Override + public int getTabIconRes(Context context) { + final int kioskIcon = KioskTranslator.getKioskIcons(kioskId, context); + + if (kioskIcon <= 0) { + throw new IllegalStateException("Kiosk ID is not valid: \"" + kioskId + "\""); + } + + return kioskIcon; + } + + @Override + public KioskFragment getFragment() throws ExtractionException { + return KioskFragment.getInstance(kioskServiceId, kioskId); + } + + @Override + protected void writeDataToJson(JsonSink writerSink) { + writerSink.value(JSON_KIOSK_SERVICE_ID_KEY, kioskServiceId) + .value(JSON_KIOSK_ID_KEY, kioskId); + } + + @Override + protected void readDataFromJson(JsonObject jsonObject) { + kioskServiceId = jsonObject.getInt(JSON_KIOSK_SERVICE_ID_KEY, -1); + kioskId = jsonObject.getString(JSON_KIOSK_ID_KEY, ""); + } + + public int getKioskServiceId() { + return kioskServiceId; + } + + public String getKioskId() { + return kioskId; + } + } + + public static class ChannelTab extends Tab { + public static final int ID = 6; + + private int channelServiceId; + private String channelUrl; + private String channelName; + + private static final String JSON_CHANNEL_SERVICE_ID_KEY = "channel_service_id"; + private static final String JSON_CHANNEL_URL_KEY = "channel_url"; + private static final String JSON_CHANNEL_NAME_KEY = "channel_name"; + + private ChannelTab() { + this(-1, "", ""); + } + + public ChannelTab(int channelServiceId, String channelUrl, String channelName) { + this.channelServiceId = channelServiceId; + this.channelUrl = channelUrl; + this.channelName = channelName; + } + + public ChannelTab(JsonObject jsonObject) { + super(jsonObject); + } + + @Override + public int getTabId() { + return ID; + } + + @Override + public String getTabName(Context context) { + return channelName; + } + + @DrawableRes + @Override + public int getTabIconRes(Context context) { + return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.ic_channel); + } + + @Override + public ChannelFragment getFragment() { + return ChannelFragment.getInstance(channelServiceId, channelUrl, channelName); + } + + @Override + protected void writeDataToJson(JsonSink writerSink) { + writerSink.value(JSON_CHANNEL_SERVICE_ID_KEY, channelServiceId) + .value(JSON_CHANNEL_URL_KEY, channelUrl) + .value(JSON_CHANNEL_NAME_KEY, channelName); + } + + @Override + protected void readDataFromJson(JsonObject jsonObject) { + channelServiceId = jsonObject.getInt(JSON_CHANNEL_SERVICE_ID_KEY, -1); + channelUrl = jsonObject.getString(JSON_CHANNEL_URL_KEY, ""); + channelName = jsonObject.getString(JSON_CHANNEL_NAME_KEY, ""); + } + + public int getChannelServiceId() { + return channelServiceId; + } + + public String getChannelUrl() { + return channelUrl; + } + + public String getChannelName() { + return channelName; + } + } +} diff --git a/app/src/main/java/org/schabi/newpipe/settings/tabs/TabsJsonHelper.java b/app/src/main/java/org/schabi/newpipe/settings/tabs/TabsJsonHelper.java new file mode 100644 index 000000000..332e244c8 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/settings/tabs/TabsJsonHelper.java @@ -0,0 +1,114 @@ +package org.schabi.newpipe.settings.tabs; + +import android.support.annotation.Nullable; + +import com.grack.nanojson.JsonArray; +import com.grack.nanojson.JsonObject; +import com.grack.nanojson.JsonParser; +import com.grack.nanojson.JsonParserException; +import com.grack.nanojson.JsonStringWriter; +import com.grack.nanojson.JsonWriter; + +import org.schabi.newpipe.settings.tabs.Tab.Type; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import static org.schabi.newpipe.extractor.ServiceList.YouTube; + +/** + * Class to get a JSON representation of a list of tabs, and the other way around. + */ +public class TabsJsonHelper { + private static final String JSON_TABS_ARRAY_KEY = "tabs"; + + protected static final List FALLBACK_INITIAL_TABS_LIST = Collections.unmodifiableList(Arrays.asList( + new Tab.KioskTab(YouTube.getServiceId(), "Trending"), + Type.SUBSCRIPTIONS.getTab(), + Type.BOOKMARKS.getTab() + )); + + public static class InvalidJsonException extends Exception { + private InvalidJsonException() { + super(); + } + + private InvalidJsonException(String message) { + super(message); + } + + private InvalidJsonException(Throwable cause) { + super(cause); + } + } + + /** + * Try to reads the passed JSON and returns the list of tabs if no error were encountered. + *

+ * If the JSON is null or empty, or the list of tabs that it represents is empty, the + * {@link #FALLBACK_INITIAL_TABS_LIST fallback list} will be returned. + *

+ * Tabs with invalid ids (i.e. not in the {@link Tab.Type} enum) will be ignored. + * + * @param tabsJson a JSON string got from {@link #getJsonToSave(List)}. + * @return a list of {@link Tab tabs}. + * @throws InvalidJsonException if the JSON string is not valid + */ + public static List getTabsFromJson(@Nullable String tabsJson) throws InvalidJsonException { + if (tabsJson == null || tabsJson.isEmpty()) { + return FALLBACK_INITIAL_TABS_LIST; + } + + final List returnTabs = new ArrayList<>(); + + final JsonObject outerJsonObject; + try { + outerJsonObject = JsonParser.object().from(tabsJson); + final JsonArray tabsArray = outerJsonObject.getArray(JSON_TABS_ARRAY_KEY); + + if (tabsArray == null) { + throw new InvalidJsonException("JSON doesn't contain \"" + JSON_TABS_ARRAY_KEY + "\" array"); + } + + for (Object o : tabsArray) { + if (!(o instanceof JsonObject)) continue; + + final Tab tab = Tab.from((JsonObject) o); + + if (tab != null) { + returnTabs.add(tab); + } + } + } catch (JsonParserException e) { + throw new InvalidJsonException(e); + } + + if (returnTabs.isEmpty()) { + return FALLBACK_INITIAL_TABS_LIST; + } + + return returnTabs; + } + + /** + * Get a JSON representation from a list of tabs. + * + * @param tabList a list of {@link Tab tabs}. + * @return a JSON string representing the list of tabs + */ + public static String getJsonToSave(@Nullable List tabList) { + final JsonStringWriter jsonWriter = JsonWriter.string(); + jsonWriter.object(); + + jsonWriter.array(JSON_TABS_ARRAY_KEY); + if (tabList != null) for (Tab tab : tabList) { + tab.writeJsonOn(jsonWriter); + } + jsonWriter.end(); + + jsonWriter.end(); + return jsonWriter.done(); + } +} \ No newline at end of file diff --git a/app/src/main/java/org/schabi/newpipe/settings/tabs/TabsManager.java b/app/src/main/java/org/schabi/newpipe/settings/tabs/TabsManager.java new file mode 100644 index 000000000..a7d8dffa4 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/settings/tabs/TabsManager.java @@ -0,0 +1,93 @@ +package org.schabi.newpipe.settings.tabs; + +import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; +import android.widget.Toast; + +import org.schabi.newpipe.R; + +import java.util.List; + +public class TabsManager { + private final SharedPreferences sharedPreferences; + private final String savedTabsKey; + private final Context context; + + public static TabsManager getManager(Context context) { + return new TabsManager(context); + } + + private TabsManager(Context context) { + this.context = context; + this.sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); + this.savedTabsKey = context.getString(R.string.saved_tabs_key); + } + + public List getTabs() { + final String savedJson = sharedPreferences.getString(savedTabsKey, null); + try { + return TabsJsonHelper.getTabsFromJson(savedJson); + } catch (TabsJsonHelper.InvalidJsonException e) { + Toast.makeText(context, R.string.saved_tabs_invalid_json, Toast.LENGTH_SHORT).show(); + return getDefaultTabs(); + } + } + + public void saveTabs(List tabList) { + final String jsonToSave = TabsJsonHelper.getJsonToSave(tabList); + sharedPreferences.edit().putString(savedTabsKey, jsonToSave).apply(); + } + + public void resetTabs() { + sharedPreferences.edit().remove(savedTabsKey).apply(); + } + + public List getDefaultTabs() { + return TabsJsonHelper.FALLBACK_INITIAL_TABS_LIST; + } + + /*////////////////////////////////////////////////////////////////////////// + // Listener + //////////////////////////////////////////////////////////////////////////*/ + + public interface SavedTabsChangeListener { + void onTabsChanged(); + } + + private SavedTabsChangeListener savedTabsChangeListener; + private SharedPreferences.OnSharedPreferenceChangeListener preferenceChangeListener; + + public void setSavedTabsListener(SavedTabsChangeListener listener) { + if (preferenceChangeListener != null) { + sharedPreferences.unregisterOnSharedPreferenceChangeListener(preferenceChangeListener); + } + savedTabsChangeListener = listener; + preferenceChangeListener = getPreferenceChangeListener(); + sharedPreferences.registerOnSharedPreferenceChangeListener(preferenceChangeListener); + } + + public void unsetSavedTabsListener() { + if (preferenceChangeListener != null) { + sharedPreferences.unregisterOnSharedPreferenceChangeListener(preferenceChangeListener); + } + preferenceChangeListener = null; + savedTabsChangeListener = null; + } + + private SharedPreferences.OnSharedPreferenceChangeListener getPreferenceChangeListener() { + return (sharedPreferences, key) -> { + if (key.equals(savedTabsKey)) { + if (savedTabsChangeListener != null) savedTabsChangeListener.onTabsChanged(); + } + }; + } + +} + + + + + + + diff --git a/app/src/main/res/drawable/ic_blank_page_black_24dp.xml b/app/src/main/res/drawable/ic_blank_page_black_24dp.xml new file mode 100644 index 000000000..e8c60a1a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_blank_page_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_blank_page_white_24dp.xml b/app/src/main/res/drawable/ic_blank_page_white_24dp.xml new file mode 100644 index 000000000..86a68484f --- /dev/null +++ b/app/src/main/res/drawable/ic_blank_page_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_settings_backup_restore_black_24dp.xml b/app/src/main/res/drawable/ic_settings_backup_restore_black_24dp.xml new file mode 100644 index 000000000..aa424c0d4 --- /dev/null +++ b/app/src/main/res/drawable/ic_settings_backup_restore_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_settings_backup_restore_white_24dp.xml b/app/src/main/res/drawable/ic_settings_backup_restore_white_24dp.xml new file mode 100644 index 000000000..03a26f550 --- /dev/null +++ b/app/src/main/res/drawable/ic_settings_backup_restore_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/fragment_chose_tabs.xml b/app/src/main/res/layout/fragment_choose_tabs.xml similarity index 65% rename from app/src/main/res/layout/fragment_chose_tabs.xml rename to app/src/main/res/layout/fragment_choose_tabs.xml index 2bdf261f4..0097a409a 100644 --- a/app/src/main/res/layout/fragment_chose_tabs.xml +++ b/app/src/main/res/layout/fragment_choose_tabs.xml @@ -1,32 +1,32 @@ - - - + tools:listitem="@layout/list_choose_tabs"/> + android:clickable="true" + android:focusable="true" + app:backgroundTint="?attr/colorPrimary" + app:fabSize="auto" + app:srcCompat="?attr/ic_add"/> \ No newline at end of file diff --git a/app/src/main/res/layout/list_choose_tabs.xml b/app/src/main/res/layout/list_choose_tabs.xml new file mode 100644 index 000000000..e62cf24f1 --- /dev/null +++ b/app/src/main/res/layout/list_choose_tabs.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/list_choose_tabs_dialog.xml b/app/src/main/res/layout/list_choose_tabs_dialog.xml new file mode 100644 index 000000000..8c6574e6d --- /dev/null +++ b/app/src/main/res/layout/list_choose_tabs_dialog.xml @@ -0,0 +1,33 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/viewholder_chose_tabs.xml b/app/src/main/res/layout/viewholder_chose_tabs.xml deleted file mode 100644 index 311d1441f..000000000 --- a/app/src/main/res/layout/viewholder_chose_tabs.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 731e18853..7b879fb4c 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -36,6 +36,8 @@ + + diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index 02f065285..9b39fec26 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -8,6 +8,8 @@ service @string/youtube + saved_tabs_key + download_path download_path_audio @@ -143,22 +145,7 @@ enable_search_history enable_watch_history main_page_content - blank_page - feed_page - subscription_page_key - kiosk_page - channel_page - - @string/blank_page_key - @string/kiosk_page_key - @string/feed_page_key - @string/subscription_page_key - @string/channel_page_key - - main_page_selected_service - main_page_selected_channel_name - main_page_selected_channel_url - main_page_selectd_kiosk_id + import_data export_data diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index eaeeb2685..00da99b9e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -36,7 +36,7 @@ Subscriptions Bookmarks New Tab - Chose Tab + Choose Tab What\'s New @@ -197,6 +197,9 @@ File name cannot be empty An error occurred: %1$s No streams available to download + Using default tabs, error while reading saved tabs + Restore defaults + Do you want to restore the defaults? Sorry, that should not have happened. @@ -363,19 +366,11 @@ Content of main page What tabs are shown on the main page Selection - Your tabs Blank Page Kiosk Page Subscription Page Feed Page Channel Page - - @string/blank_page_summary - @string/kiosk_page_summary - @string/feed_page_summary - @string/subscription_page_summary - @string/channel_page_summary - Select a channel No channel subscribed yet Select a kiosk diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 1f7280e6f..87e19cede 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -52,6 +52,8 @@ @drawable/ic_save_black_24dp @drawable/ic_backup_black_24dp @drawable/ic_add_black_24dp + @drawable/ic_settings_backup_restore_black_24dp + @drawable/ic_blank_page_black_24dp @color/light_separator_color @color/light_contrast_background_color @@ -110,6 +112,8 @@ @drawable/ic_save_white_24dp @drawable/ic_backup_white_24dp @drawable/ic_add_white_24dp + @drawable/ic_settings_backup_restore_white_24dp + @drawable/ic_blank_page_white_24dp @color/dark_separator_color @color/dark_contrast_background_color diff --git a/app/src/main/res/xml/appearance_settings.xml b/app/src/main/res/xml/appearance_settings.xml index 8835e7705..1f711b510 100644 --- a/app/src/main/res/xml/appearance_settings.xml +++ b/app/src/main/res/xml/appearance_settings.xml @@ -28,7 +28,7 @@ android:summary="@string/caption_setting_description"/> diff --git a/app/src/test/java/org/schabi/newpipe/settings/tabs/TabTest.java b/app/src/test/java/org/schabi/newpipe/settings/tabs/TabTest.java new file mode 100644 index 000000000..45c7c0fff --- /dev/null +++ b/app/src/test/java/org/schabi/newpipe/settings/tabs/TabTest.java @@ -0,0 +1,20 @@ +package org.schabi.newpipe.settings.tabs; + +import org.junit.Test; + +import java.util.HashSet; +import java.util.Set; + +import static org.junit.Assert.assertTrue; + +public class TabTest { + @Test + public void checkIdDuplication() { + final Set usedIds = new HashSet<>(); + + for (Tab.Type type : Tab.Type.values()) { + final boolean added = usedIds.add(type.getTabId()); + assertTrue("Id was already used: " + type.getTabId(), added); + } + } +} \ No newline at end of file diff --git a/app/src/test/java/org/schabi/newpipe/settings/tabs/TabsJsonHelperTest.java b/app/src/test/java/org/schabi/newpipe/settings/tabs/TabsJsonHelperTest.java new file mode 100644 index 000000000..c78b9c9b1 --- /dev/null +++ b/app/src/test/java/org/schabi/newpipe/settings/tabs/TabsJsonHelperTest.java @@ -0,0 +1,120 @@ +package org.schabi.newpipe.settings.tabs; + +import com.grack.nanojson.JsonArray; +import com.grack.nanojson.JsonObject; +import com.grack.nanojson.JsonParser; +import com.grack.nanojson.JsonParserException; + +import org.junit.Test; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import static java.util.Objects.requireNonNull; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +public class TabsJsonHelperTest { + private static final String JSON_TABS_ARRAY_KEY = "tabs"; + private static final String JSON_TAB_ID_KEY = "tab_id"; + + @Test + public void testEmptyAndNullRead() throws TabsJsonHelper.InvalidJsonException { + final String emptyTabsJson = "{\"" + JSON_TABS_ARRAY_KEY + "\":[]}"; + List items = TabsJsonHelper.getTabsFromJson(emptyTabsJson); + // Check if instance is the same + assertTrue(items == TabsJsonHelper.FALLBACK_INITIAL_TABS_LIST); + + final String nullSource = null; + items = TabsJsonHelper.getTabsFromJson(nullSource); + assertTrue(items == TabsJsonHelper.FALLBACK_INITIAL_TABS_LIST); + } + + @Test + public void testInvalidIdRead() throws TabsJsonHelper.InvalidJsonException { + final int blankTabId = Tab.Type.BLANK.getTabId(); + final String emptyTabsJson = "{\"" + JSON_TABS_ARRAY_KEY + "\":[" + + "{\"" + JSON_TAB_ID_KEY + "\":" + blankTabId + "}," + + "{\"" + JSON_TAB_ID_KEY + "\":" + 12345678 + "}" + + "]}"; + final List items = TabsJsonHelper.getTabsFromJson(emptyTabsJson); + + assertEquals("Should ignore the tab with invalid id", 1, items.size()); + assertEquals(blankTabId, items.get(0).getTabId()); + } + + @Test + public void testInvalidRead() { + final List invalidList = Arrays.asList( + "{\"notTabsArray\":[]}", + "{invalidJSON]}", + "{}" + ); + + for (String invalidContent : invalidList) { + try { + TabsJsonHelper.getTabsFromJson(invalidContent); + + fail("didn't throw exception"); + } catch (Exception e) { + boolean isExpectedException = e instanceof TabsJsonHelper.InvalidJsonException; + assertTrue("\"" + e.getClass().getSimpleName() + "\" is not the expected exception", isExpectedException); + } + } + } + + @Test + public void testEmptyAndNullSave() throws JsonParserException { + final List emptyList = Collections.emptyList(); + String returnedJson = TabsJsonHelper.getJsonToSave(emptyList); + assertTrue(isTabsArrayEmpty(returnedJson)); + + final List nullList = null; + returnedJson = TabsJsonHelper.getJsonToSave(nullList); + assertTrue(isTabsArrayEmpty(returnedJson)); + } + + private boolean isTabsArrayEmpty(String returnedJson) throws JsonParserException { + JsonObject jsonObject = JsonParser.object().from(returnedJson); + assertTrue(jsonObject.containsKey(JSON_TABS_ARRAY_KEY)); + return jsonObject.getArray(JSON_TABS_ARRAY_KEY).size() == 0; + } + + @Test + public void testSaveAndReading() throws JsonParserException { + // Saving + final Tab.BlankTab blankTab = new Tab.BlankTab(); + final Tab.SubscriptionsTab subscriptionsTab = new Tab.SubscriptionsTab(); + final Tab.ChannelTab channelTab = new Tab.ChannelTab(666, "https://example.org", "testName"); + final Tab.KioskTab kioskTab = new Tab.KioskTab(123, "trending_key"); + + final List tabs = Arrays.asList(blankTab, subscriptionsTab, channelTab, kioskTab); + String returnedJson = TabsJsonHelper.getJsonToSave(tabs); + + // Reading + final JsonObject jsonObject = JsonParser.object().from(returnedJson); + assertTrue(jsonObject.containsKey(JSON_TABS_ARRAY_KEY)); + final JsonArray tabsFromArray = jsonObject.getArray(JSON_TABS_ARRAY_KEY); + + assertEquals(tabs.size(), tabsFromArray.size()); + + final Tab.BlankTab blankTabFromReturnedJson = requireNonNull((Tab.BlankTab) Tab.from(((JsonObject) tabsFromArray.get(0)))); + assertEquals(blankTab.getTabId(), blankTabFromReturnedJson.getTabId()); + + final Tab.SubscriptionsTab subscriptionsTabFromReturnedJson = requireNonNull((Tab.SubscriptionsTab) Tab.from(((JsonObject) tabsFromArray.get(1)))); + assertEquals(subscriptionsTab.getTabId(), subscriptionsTabFromReturnedJson.getTabId()); + + final Tab.ChannelTab channelTabFromReturnedJson = requireNonNull((Tab.ChannelTab) Tab.from(((JsonObject) tabsFromArray.get(2)))); + assertEquals(channelTab.getTabId(), channelTabFromReturnedJson.getTabId()); + assertEquals(channelTab.getChannelServiceId(), channelTabFromReturnedJson.getChannelServiceId()); + assertEquals(channelTab.getChannelUrl(), channelTabFromReturnedJson.getChannelUrl()); + assertEquals(channelTab.getChannelName(), channelTabFromReturnedJson.getChannelName()); + + final Tab.KioskTab kioskTabFromReturnedJson = requireNonNull((Tab.KioskTab) Tab.from(((JsonObject) tabsFromArray.get(3)))); + assertEquals(kioskTab.getTabId(), kioskTabFromReturnedJson.getTabId()); + assertEquals(kioskTab.getKioskServiceId(), kioskTabFromReturnedJson.getKioskServiceId()); + assertEquals(kioskTab.getKioskId(), kioskTabFromReturnedJson.getKioskId()); + } +} \ No newline at end of file From 07256e2e34e7bd3ed6742afb2b4b5cbb504619bb Mon Sep 17 00:00:00 2001 From: Mauricio Colli Date: Tue, 4 Sep 2018 23:54:17 -0300 Subject: [PATCH 160/181] Handle case where subscribers count is not available --- .../fragments/list/channel/ChannelFragment.java | 11 ++++++----- app/src/main/res/layout/channel_header.xml | 2 +- app/src/main/res/values/strings.xml | 1 + 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java index 4df5982f7..9a52b8d12 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java @@ -33,15 +33,14 @@ import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.channel.ChannelInfo; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.stream.StreamInfoItem; -import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; import org.schabi.newpipe.fragments.list.BaseListInfoFragment; import org.schabi.newpipe.info_list.InfoItemDialog; import org.schabi.newpipe.local.dialog.PlaylistAppendDialog; +import org.schabi.newpipe.local.subscription.SubscriptionService; import org.schabi.newpipe.player.playqueue.ChannelPlayQueue; import org.schabi.newpipe.player.playqueue.PlayQueue; import org.schabi.newpipe.player.playqueue.SinglePlayQueue; import org.schabi.newpipe.report.UserAction; -import org.schabi.newpipe.local.subscription.SubscriptionService; import org.schabi.newpipe.util.AnimationUtils; import org.schabi.newpipe.util.ExtractorHelper; import org.schabi.newpipe.util.ImageDisplayConstants; @@ -422,10 +421,12 @@ public class ChannelFragment extends BaseListInfoFragment { imageLoader.displayImage(result.getAvatarUrl(), headerAvatarView, ImageDisplayConstants.DISPLAY_AVATAR_OPTIONS); - if (result.getSubscriberCount() != -1) { + headerSubscribersTextView.setVisibility(View.VISIBLE); + if (result.getSubscriberCount() >= 0) { headerSubscribersTextView.setText(Localization.localizeSubscribersCount(activity, result.getSubscriberCount())); - headerSubscribersTextView.setVisibility(View.VISIBLE); - } else headerSubscribersTextView.setVisibility(View.GONE); + } else { + headerSubscribersTextView.setText(R.string.subscribers_count_not_available); + } if (menuRssButton != null) menuRssButton.setVisible(!TextUtils.isEmpty(result.getFeedUrl())); diff --git a/app/src/main/res/layout/channel_header.xml b/app/src/main/res/layout/channel_header.xml index ca795d9db..0947cb307 100644 --- a/app/src/main/res/layout/channel_header.xml +++ b/app/src/main/res/layout/channel_header.xml @@ -61,7 +61,7 @@ android:layout_below="@+id/channel_title_view" android:ellipsize="end" android:gravity="left|center" - android:lines="1" + android:maxLines="2" android:textSize="@dimen/channel_subscribers_text_size" android:visibility="gone" tools:ignore="RtlHardcoded" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 00da99b9e..0dc837ae8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -249,6 +249,7 @@ %s subscriber %s subscribers + Subscribers count not available No views From 9883a386984598012602ebc9635345080d19f2a9 Mon Sep 17 00:00:00 2001 From: Mauricio Colli Date: Tue, 4 Sep 2018 23:54:17 -0300 Subject: [PATCH 161/181] Fix registering of broadcast receiver --- .../org/schabi/newpipe/player/BasePlayer.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java index 06f2e9721..01a0614fa 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java @@ -70,7 +70,6 @@ import org.schabi.newpipe.player.playqueue.PlayQueue; import org.schabi.newpipe.player.playqueue.PlayQueueAdapter; import org.schabi.newpipe.player.playqueue.PlayQueueItem; import org.schabi.newpipe.player.resolver.MediaSourceTag; -import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.util.ImageDisplayConstants; import org.schabi.newpipe.util.SerializedCache; @@ -88,7 +87,6 @@ import static com.google.android.exoplayer2.Player.DISCONTINUITY_REASON_INTERNAL import static com.google.android.exoplayer2.Player.DISCONTINUITY_REASON_PERIOD_TRANSITION; import static com.google.android.exoplayer2.Player.DISCONTINUITY_REASON_SEEK; import static com.google.android.exoplayer2.Player.DISCONTINUITY_REASON_SEEK_ADJUSTMENT; -import static org.schabi.newpipe.report.UserAction.PLAY_STREAM; /** * Base for the players, joining the common properties @@ -175,7 +173,6 @@ public abstract class BasePlayer implements }; this.intentFilter = new IntentFilter(); setupBroadcastReceiver(intentFilter); - context.registerReceiver(broadcastReceiver, intentFilter); this.recordManager = new HistoryRecordManager(context); @@ -212,6 +209,8 @@ public abstract class BasePlayer implements audioReactor = new AudioReactor(context, simpleExoPlayer); mediaSessionManager = new MediaSessionManager(context, simpleExoPlayer, new BasePlayerMediaSession(this)); + + registerBroadcastReceiver(); } public void initListeners() {} @@ -362,11 +361,17 @@ public abstract class BasePlayer implements } } - public void unregisterBroadcastReceiver() { + protected void registerBroadcastReceiver() { + // Try to unregister current first + unregisterBroadcastReceiver(); + context.registerReceiver(broadcastReceiver, intentFilter); + } + + protected void unregisterBroadcastReceiver() { try { context.unregisterReceiver(broadcastReceiver); } catch (final IllegalArgumentException unregisteredException) { - Log.e(TAG, "Broadcast receiver already unregistered.", unregisteredException); + Log.w(TAG, "Broadcast receiver already unregistered (" + unregisteredException.getMessage() + ")"); } } From 6e75d41956eb2dc18763c967a471f8b913b05c34 Mon Sep 17 00:00:00 2001 From: Mauricio Colli Date: Tue, 4 Sep 2018 23:54:17 -0300 Subject: [PATCH 162/181] Use current volume as the start value in the volume gesture - Renamed some variables/classes to increase readability --- .../newpipe/player/MainVideoPlayer.java | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java index 41e7c305d..4e8398ff2 100644 --- a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java @@ -460,7 +460,7 @@ public final class MainVideoPlayer extends AppCompatActivity public void initListeners() { super.initListeners(); - MySimpleOnGestureListener listener = new MySimpleOnGestureListener(); + PlayerGestureListener listener = new PlayerGestureListener(); gestureDetector = new GestureDetector(context, listener); gestureDetector.setIsLongpressEnabled(false); getRootView().setOnTouchListener(listener); @@ -489,6 +489,8 @@ public final class MainVideoPlayer extends AppCompatActivity volumeProgressBar.setMax(maxGestureLength); brightnessProgressBar.setMax(maxGestureLength); + + setInitialGestureValues(); } }); } @@ -799,6 +801,13 @@ public final class MainVideoPlayer extends AppCompatActivity // Utils //////////////////////////////////////////////////////////////////////////*/ + private void setInitialGestureValues() { + if (getAudioReactor() != null) { + final float currentVolumeNormalized = (float) getAudioReactor().getVolume() / getAudioReactor().getMaxVolume(); + volumeProgressBar.setProgress((int) (volumeProgressBar.getMax() * currentVolumeNormalized)); + } + } + @Override public void showControlsThenHide() { if (queueVisible) return; @@ -939,7 +948,7 @@ public final class MainVideoPlayer extends AppCompatActivity } } - private class MySimpleOnGestureListener extends GestureDetector.SimpleOnGestureListener implements View.OnTouchListener { + private class PlayerGestureListener extends GestureDetector.SimpleOnGestureListener implements View.OnTouchListener { private boolean isMoving; @Override @@ -978,31 +987,30 @@ public final class MainVideoPlayer extends AppCompatActivity return super.onDown(e); } - private final boolean isPlayerGestureEnabled = PlayerHelper.isPlayerGestureEnabled(getApplicationContext()); + private static final int MOVEMENT_THRESHOLD = 40; + private final boolean isPlayerGestureEnabled = PlayerHelper.isPlayerGestureEnabled(getApplicationContext()); private final int maxVolume = playerImpl.getAudioReactor().getMaxVolume(); - private final int MOVEMENT_THRESHOLD = 40; - @Override - public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { + public boolean onScroll(MotionEvent initialEvent, MotionEvent movingEvent, float distanceX, float distanceY) { if (!isPlayerGestureEnabled) return false; //noinspection PointlessBooleanExpression if (DEBUG && false) Log.d(TAG, "MainVideoPlayer.onScroll = " + - ", e1.getRaw = [" + e1.getRawX() + ", " + e1.getRawY() + "]" + - ", e2.getRaw = [" + e2.getRawX() + ", " + e2.getRawY() + "]" + + ", e1.getRaw = [" + initialEvent.getRawX() + ", " + initialEvent.getRawY() + "]" + + ", e2.getRaw = [" + movingEvent.getRawX() + ", " + movingEvent.getRawY() + "]" + ", distanceXy = [" + distanceX + ", " + distanceY + "]"); - if (!isMoving && ( - Math.abs(e2.getY() - e1.getY()) <= MOVEMENT_THRESHOLD - || Math.abs(distanceX) > Math.abs(distanceY) - ) || playerImpl.getCurrentState() == BasePlayer.STATE_COMPLETED) + final boolean insideThreshold = Math.abs(movingEvent.getY() - initialEvent.getY()) <= MOVEMENT_THRESHOLD; + if (!isMoving && (insideThreshold || Math.abs(distanceX) > Math.abs(distanceY)) + || playerImpl.getCurrentState() == BasePlayer.STATE_COMPLETED) { return false; + } isMoving = true; - if (e1.getX() > playerImpl.getRootView().getWidth() / 2) { + if (initialEvent.getX() > playerImpl.getRootView().getWidth() / 2) { playerImpl.getVolumeProgressBar().incrementProgressBy((int) distanceY); float currentProgressPercent = (float) playerImpl.getVolumeProgressBar().getProgress() / playerImpl.getMaxGestureLength(); From 612228bb73fd2a65e891517de665a9ef4c68e9a4 Mon Sep 17 00:00:00 2001 From: Mauricio Colli Date: Wed, 5 Sep 2018 07:29:15 -0300 Subject: [PATCH 163/181] Update extractor version - Handle case where subscribers count is not available - Fix NPE when a YouTube playlist is empty - Quick fix for the kiosks in SoundCloud --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 49d9386e5..8e6e3782c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -55,7 +55,7 @@ dependencies { exclude module: 'support-annotations' } - implementation 'com.github.TeamNewPipe:NewPipeExtractor:834382111b98e629' + implementation 'com.github.TeamNewPipe:NewPipeExtractor:850670917fce' testImplementation 'junit:junit:4.12' testImplementation 'org.mockito:mockito-core:2.8.9' From 818ae039287d90d6294b291315fba3c5a78def66 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Fri, 7 Sep 2018 21:51:14 +0200 Subject: [PATCH 164/181] fix decrypt url and move on to v0.14.1 --- app/build.gradle | 6 ++-- .../metadata/android/en-US/changelogs/68.txt | 31 +++++++++++++++++++ 2 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/68.txt diff --git a/app/build.gradle b/app/build.gradle index 8e6e3782c..b7cfff281 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "org.schabi.newpipe" minSdkVersion 15 targetSdkVersion 27 - versionCode 67 - versionName "0.14.0" + versionCode 68 + versionName "0.14.1" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true @@ -55,7 +55,7 @@ dependencies { exclude module: 'support-annotations' } - implementation 'com.github.TeamNewPipe:NewPipeExtractor:850670917fce' + implementation 'com.github.TeamNewPipe:NewPipeExtractor:4469d1130799' testImplementation 'junit:junit:4.12' testImplementation 'org.mockito:mockito-core:2.8.9' diff --git a/fastlane/metadata/android/en-US/changelogs/68.txt b/fastlane/metadata/android/en-US/changelogs/68.txt new file mode 100644 index 000000000..238b1e0b1 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/68.txt @@ -0,0 +1,31 @@ +# changes of v0.14.1 + +### Fixed +- Fixed failed to decrypt video url #1659 +- Fixed description link not extract well #1657 + +# changes of v0.14.0 + +### New +- New Drawer design #1461 +- New customizable front page #1461 + +### Improvements +- Reworked Gesture controls #1604 +- New way to close the popup player #1597 + +### Fixed +- Fix error when subscription count is not available. Closes #1649. + - Show "Subscriber count not available" in those cases +- Fix NPE when a YouTube playlist is empty +- Quick fix for the kiosks in SoundCloud +- Refactor and bugfix #1623 + - Fix Cyclic search result #1562 + - Fix Seek bar not statically lay outed + - Fix YT Premium video are not blocked correctly + - Fix Videos sometimes not loading (due to DASH parsing) + - Fix links in video description + - Show warning when someone tries to download to external sdcard + - fix nothing shown exception triggers report + - thumbnail not shown in background player for android 8.1 [see here](https://github.com/TeamNewPipe/NewPipe/issues/943) +- Fix registering of broadcast receiver. Closes #1641. From 05f8ee9747151f89bf75c22f28447321ab03b0f8 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Fri, 7 Sep 2018 22:23:32 +0200 Subject: [PATCH 165/181] fix channel links in description part 2 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index b7cfff281..4b717cafc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -55,7 +55,7 @@ dependencies { exclude module: 'support-annotations' } - implementation 'com.github.TeamNewPipe:NewPipeExtractor:4469d1130799' + implementation 'com.github.TeamNewPipe:NewPipeExtractor:66c3c3f45241d4b0c909' testImplementation 'junit:junit:4.12' testImplementation 'org.mockito:mockito-core:2.8.9' From 784e01347cf30f5c5ca7f0bad31938c83b242a62 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Tue, 11 Sep 2018 15:16:39 +0200 Subject: [PATCH 166/181] fix wrong subscriptini count --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 4b717cafc..4ae9f0fb7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -55,7 +55,7 @@ dependencies { exclude module: 'support-annotations' } - implementation 'com.github.TeamNewPipe:NewPipeExtractor:66c3c3f45241d4b0c909' + implementation 'com.github.TeamNewPipe:NewPipeExtractor:217d13b1028' testImplementation 'junit:junit:4.12' testImplementation 'org.mockito:mockito-core:2.8.9' From 27fbe690333f460f44841559c5b2d8926085ca50 Mon Sep 17 00:00:00 2001 From: BO41 Date: Tue, 28 Aug 2018 19:17:14 +0200 Subject: [PATCH 167/181] code cleanup mainly removes throw statements automated using Android Studio, staged by hand BUILD SUCCESSFUL in 52s 39 actionable tasks: 37 executed, 2 up-to-date --- app/src/main/java/org/schabi/newpipe/App.java | 2 +- .../newpipe/local/dialog/PlaylistDialog.java | 2 +- .../subscription/SubscriptionService.java | 2 +- .../mediasession/PlayQueueNavigator.java | 2 +- .../player/playback/CustomTrackSelector.java | 2 +- .../playqueue/AbstractInfoPlayQueue.java | 2 +- .../newpipe/report/AcraReportSender.java | 2 +- .../settings/SelectChannelFragment.java | 2 +- .../newpipe/settings/SelectKioskFragment.java | 2 +- .../schabi/newpipe/util/ExtractorHelper.java | 2 +- .../services/ImportExportJsonHelperTest.java | 2 +- .../newpipe/report/ErrorActivityTest.java | 2 +- .../schabi/newpipe/util/ListHelperTest.java | 20 +++++++++---------- .../util/QuadraticSliderStrategyTest.java | 18 ++++++++--------- .../giga/get/DownloadManagerImplTest.java | 12 +++++------ 15 files changed, 37 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/App.java b/app/src/main/java/org/schabi/newpipe/App.java index f436a26b8..dfce8f100 100644 --- a/app/src/main/java/org/schabi/newpipe/App.java +++ b/app/src/main/java/org/schabi/newpipe/App.java @@ -106,7 +106,7 @@ public class App extends Application { // https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling RxJavaPlugins.setErrorHandler(new Consumer() { @Override - public void accept(@NonNull Throwable throwable) throws Exception { + public void accept(@NonNull Throwable throwable) { Log.e(TAG, "RxJavaPlugins.ErrorHandler called with -> : " + "throwable = [" + throwable.getClass().getName() + "]"); diff --git a/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistDialog.java b/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistDialog.java index 4b8e391c7..96d628683 100644 --- a/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistDialog.java +++ b/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistDialog.java @@ -58,7 +58,7 @@ public abstract class PlaylistDialog extends DialogFragment implements StateSave @Override @SuppressWarnings("unchecked") - public void readFrom(@NonNull Queue savedObjects) throws Exception { + public void readFrom(@NonNull Queue savedObjects) { streamEntities = (List) savedObjects.poll(); } diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionService.java b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionService.java index fc4230711..b4545a2dd 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionService.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionService.java @@ -116,7 +116,7 @@ public class SubscriptionService { public Completable updateChannelInfo(final ChannelInfo info) { final Function, CompletableSource> update = new Function, CompletableSource>() { @Override - public CompletableSource apply(@NonNull List subscriptionEntities) throws Exception { + public CompletableSource apply(@NonNull List subscriptionEntities) { if (DEBUG) Log.d(TAG, "updateChannelInfo() called with: subscriptionEntities = [" + subscriptionEntities + "]"); if (subscriptionEntities.size() == 1) { SubscriptionEntity subscription = subscriptionEntities.get(0); diff --git a/app/src/main/java/org/schabi/newpipe/player/mediasession/PlayQueueNavigator.java b/app/src/main/java/org/schabi/newpipe/player/mediasession/PlayQueueNavigator.java index 429c26fd9..3d1fd171f 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediasession/PlayQueueNavigator.java +++ b/app/src/main/java/org/schabi/newpipe/player/mediasession/PlayQueueNavigator.java @@ -79,7 +79,7 @@ public class PlayQueueNavigator implements MediaSessionConnector.QueueNavigator private void publishFloatingQueueWindow() { if (callback.getQueueSize() == 0) { - mediaSession.setQueue(Collections.emptyList()); + mediaSession.setQueue(Collections.emptyList()); activeQueueItemId = MediaSessionCompat.QueueItem.UNKNOWN_ID; return; } diff --git a/app/src/main/java/org/schabi/newpipe/player/playback/CustomTrackSelector.java b/app/src/main/java/org/schabi/newpipe/player/playback/CustomTrackSelector.java index d80ea5bae..45cf545ce 100644 --- a/app/src/main/java/org/schabi/newpipe/player/playback/CustomTrackSelector.java +++ b/app/src/main/java/org/schabi/newpipe/player/playback/CustomTrackSelector.java @@ -55,7 +55,7 @@ public class CustomTrackSelector extends DefaultTrackSelector { /** @see DefaultTrackSelector#selectTextTrack(TrackGroupArray, int[][], Parameters) */ @Override protected TrackSelection selectTextTrack(TrackGroupArray groups, int[][] formatSupport, - Parameters params) throws ExoPlaybackException { + Parameters params) { TrackGroup selectedGroup = null; int selectedTrackIndex = 0; int selectedTrackScore = 0; diff --git a/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java b/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java index 2c08f4f92..5ff766313 100644 --- a/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java +++ b/app/src/main/java/org/schabi/newpipe/player/playqueue/AbstractInfoPlayQueue.java @@ -26,7 +26,7 @@ abstract class AbstractInfoPlayQueue ext transient Disposable fetchReactor; AbstractInfoPlayQueue(final U item) { - this(item.getServiceId(), item.getUrl(), null, Collections.emptyList(), 0); + this(item.getServiceId(), item.getUrl(), null, Collections.emptyList(), 0); } AbstractInfoPlayQueue(final int serviceId, diff --git a/app/src/main/java/org/schabi/newpipe/report/AcraReportSender.java b/app/src/main/java/org/schabi/newpipe/report/AcraReportSender.java index 2d3226ab6..4ef075353 100644 --- a/app/src/main/java/org/schabi/newpipe/report/AcraReportSender.java +++ b/app/src/main/java/org/schabi/newpipe/report/AcraReportSender.java @@ -31,7 +31,7 @@ import org.schabi.newpipe.R; public class AcraReportSender implements ReportSender { @Override - public void send(@NonNull Context context, @NonNull CrashReportData report) throws ReportSenderException { + public void send(@NonNull Context context, @NonNull CrashReportData report) { ErrorActivity.reportError(context, report, ErrorActivity.ErrorInfo.make(UserAction.UI_ERROR,"none", "App crash, UI failure", R.string.app_ui_crash)); diff --git a/app/src/main/java/org/schabi/newpipe/settings/SelectChannelFragment.java b/app/src/main/java/org/schabi/newpipe/settings/SelectChannelFragment.java index 0ebdbefe0..6d85d5967 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/SelectChannelFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/SelectChannelFragment.java @@ -89,7 +89,7 @@ public class SelectChannelFragment extends DialogFragment { @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.select_channel_fragment, container, false); - recyclerView = (RecyclerView) v.findViewById(R.id.items_list); + recyclerView = v.findViewById(R.id.items_list); recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); channelAdapter = new SelectChannelAdapter(); recyclerView.setAdapter(channelAdapter); diff --git a/app/src/main/java/org/schabi/newpipe/settings/SelectKioskFragment.java b/app/src/main/java/org/schabi/newpipe/settings/SelectKioskFragment.java index 44cb16682..16ba6fec6 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/SelectKioskFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/SelectKioskFragment.java @@ -75,7 +75,7 @@ public class SelectKioskFragment extends DialogFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.select_kiosk_fragment, container, false); - recyclerView = (RecyclerView) v.findViewById(R.id.items_list); + recyclerView = v.findViewById(R.id.items_list); recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); try { selectKioskAdapter = new SelectKioskAdapter(); diff --git a/app/src/main/java/org/schabi/newpipe/util/ExtractorHelper.java b/app/src/main/java/org/schabi/newpipe/util/ExtractorHelper.java index e445233c3..fb9579802 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ExtractorHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/ExtractorHelper.java @@ -183,7 +183,7 @@ public final class ExtractorHelper { cache.removeInfo(serviceId, url); load = loadFromNetwork; } else { - load = Maybe.concat(ExtractorHelper.loadFromCache(serviceId, url), + load = Maybe.concat(ExtractorHelper.loadFromCache(serviceId, url), loadFromNetwork.toMaybe()) .firstElement() //Take the first valid .toSingle(); diff --git a/app/src/test/java/org/schabi/newpipe/local/subscription/services/ImportExportJsonHelperTest.java b/app/src/test/java/org/schabi/newpipe/local/subscription/services/ImportExportJsonHelperTest.java index 4a8b3d8c8..7f5f818be 100644 --- a/app/src/test/java/org/schabi/newpipe/local/subscription/services/ImportExportJsonHelperTest.java +++ b/app/src/test/java/org/schabi/newpipe/local/subscription/services/ImportExportJsonHelperTest.java @@ -27,7 +27,7 @@ public class ImportExportJsonHelperTest { } @Test - public void testInvalidSource() throws Exception { + public void testInvalidSource() { List invalidList = Arrays.asList( "{}", "", diff --git a/app/src/test/java/org/schabi/newpipe/report/ErrorActivityTest.java b/app/src/test/java/org/schabi/newpipe/report/ErrorActivityTest.java index 44a2f7cd0..ca6c76ff3 100644 --- a/app/src/test/java/org/schabi/newpipe/report/ErrorActivityTest.java +++ b/app/src/test/java/org/schabi/newpipe/report/ErrorActivityTest.java @@ -15,7 +15,7 @@ import static org.junit.Assert.assertNull; */ public class ErrorActivityTest { @Test - public void getReturnActivity() throws Exception { + public void getReturnActivity() { Class returnActivity; returnActivity = ErrorActivity.getReturnActivity(MainActivity.class); assertEquals(MainActivity.class, returnActivity); diff --git a/app/src/test/java/org/schabi/newpipe/util/ListHelperTest.java b/app/src/test/java/org/schabi/newpipe/util/ListHelperTest.java index 278ea81e1..abc09dc98 100644 --- a/app/src/test/java/org/schabi/newpipe/util/ListHelperTest.java +++ b/app/src/test/java/org/schabi/newpipe/util/ListHelperTest.java @@ -45,7 +45,7 @@ public class ListHelperTest { new VideoStream("", MediaFormat.MPEG_4, /**/ "1080p60", true)); @Test - public void getSortedStreamVideosListTest() throws Exception { + public void getSortedStreamVideosListTest() { List result = ListHelper.getSortedStreamVideosList(MediaFormat.MPEG_4, true, videoStreamsTestList, videoOnlyStreamsTestList, true); List expected = Arrays.asList("144p", "240p", "360p", "480p", "720p", "720p60", "1080p", "1080p60", "1440p60", "2160p", "2160p60"); @@ -67,7 +67,7 @@ public class ListHelperTest { } @Test - public void getSortedStreamVideosExceptHighResolutionsTest() throws Exception { + public void getSortedStreamVideosExceptHighResolutionsTest() { //////////////////////////////////// // Don't show Higher resolutions // ////////////////////////////////// @@ -79,7 +79,7 @@ public class ListHelperTest { } @Test - public void getDefaultResolutionTest() throws Exception { + public void getDefaultResolutionTest() { List testList = Arrays.asList( new VideoStream("", MediaFormat.MPEG_4, /**/ "720p"), new VideoStream("", MediaFormat.v3GPP, /**/ "240p"), @@ -130,7 +130,7 @@ public class ListHelperTest { } @Test - public void getHighestQualityAudioFormatTest() throws Exception { + public void getHighestQualityAudioFormatTest() { AudioStream stream = audioStreamsTestList.get(ListHelper.getHighestQualityAudioIndex(MediaFormat.M4A, audioStreamsTestList)); assertEquals(320, stream.average_bitrate); assertEquals(MediaFormat.M4A, stream.getFormat()); @@ -145,7 +145,7 @@ public class ListHelperTest { } @Test - public void getHighestQualityAudioFormatPreferredAbsent() throws Exception { + public void getHighestQualityAudioFormatPreferredAbsent() { ////////////////////////////////////////// // Doesn't contain the preferred format // @@ -186,13 +186,13 @@ public class ListHelperTest { } @Test - public void getHighestQualityAudioNull() throws Exception { + public void getHighestQualityAudioNull() { assertEquals(-1, ListHelper.getHighestQualityAudioIndex(null, null)); assertEquals(-1, ListHelper.getHighestQualityAudioIndex(null, new ArrayList())); } @Test - public void getLowestQualityAudioFormatTest() throws Exception { + public void getLowestQualityAudioFormatTest() { AudioStream stream = audioStreamsTestList.get(ListHelper.getMostCompactAudioIndex(MediaFormat.M4A, audioStreamsTestList)); assertEquals(128, stream.average_bitrate); assertEquals(MediaFormat.M4A, stream.getFormat()); @@ -207,7 +207,7 @@ public class ListHelperTest { } @Test - public void getLowestQualityAudioFormatPreferredAbsent() throws Exception { + public void getLowestQualityAudioFormatPreferredAbsent() { ////////////////////////////////////////// // Doesn't contain the preferred format // @@ -250,13 +250,13 @@ public class ListHelperTest { } @Test - public void getLowestQualityAudioNull() throws Exception { + public void getLowestQualityAudioNull() { assertEquals(-1, ListHelper.getMostCompactAudioIndex(null, null)); assertEquals(-1, ListHelper.getMostCompactAudioIndex(null, new ArrayList())); } @Test - public void getVideoDefaultStreamIndexCombinations() throws Exception { + public void getVideoDefaultStreamIndexCombinations() { List testList = Arrays.asList( new VideoStream("", MediaFormat.MPEG_4, /**/ "1080p"), new VideoStream("", MediaFormat.MPEG_4, /**/ "720p60"), diff --git a/app/src/test/java/org/schabi/newpipe/util/QuadraticSliderStrategyTest.java b/app/src/test/java/org/schabi/newpipe/util/QuadraticSliderStrategyTest.java index 8c8d52043..c652472d1 100644 --- a/app/src/test/java/org/schabi/newpipe/util/QuadraticSliderStrategyTest.java +++ b/app/src/test/java/org/schabi/newpipe/util/QuadraticSliderStrategyTest.java @@ -11,25 +11,25 @@ public class QuadraticSliderStrategyTest { private final SliderStrategy.Quadratic standard = new SliderStrategy.Quadratic(0f, 100f, 50f, STEP); @Test - public void testLeftBound() throws Exception { + public void testLeftBound() { assertEquals(standard.progressOf(0), 0); assertEquals(standard.valueOf(0), 0f, DELTA); } @Test - public void testCenter() throws Exception { + public void testCenter() { assertEquals(standard.progressOf(50), 50); assertEquals(standard.valueOf(50), 50f, DELTA); } @Test - public void testRightBound() throws Exception { + public void testRightBound() { assertEquals(standard.progressOf(100), 100); assertEquals(standard.valueOf(100), 100f, DELTA); } @Test - public void testLeftRegion() throws Exception { + public void testLeftRegion() { final int leftProgress = standard.progressOf(25); final double leftValue = standard.valueOf(25); assertTrue(leftProgress > 0 && leftProgress < 50); @@ -37,7 +37,7 @@ public class QuadraticSliderStrategyTest { } @Test - public void testRightRegion() throws Exception { + public void testRightRegion() { final int leftProgress = standard.progressOf(75); final double leftValue = standard.valueOf(75); assertTrue(leftProgress > 50 && leftProgress < 100); @@ -45,7 +45,7 @@ public class QuadraticSliderStrategyTest { } @Test - public void testConversion() throws Exception { + public void testConversion() { assertEquals(standard.progressOf(standard.valueOf(0)), 0); assertEquals(standard.progressOf(standard.valueOf(25)), 25); assertEquals(standard.progressOf(standard.valueOf(50)), 50); @@ -54,7 +54,7 @@ public class QuadraticSliderStrategyTest { } @Test - public void testReverseConversion() throws Exception { + public void testReverseConversion() { // Need a larger delta since step size / granularity is too small and causes // floating point round-off errors during conversion final float largeDelta = 1f; @@ -67,7 +67,7 @@ public class QuadraticSliderStrategyTest { } @Test - public void testQuadraticPropertyLeftRegion() throws Exception { + public void testQuadraticPropertyLeftRegion() { final double differenceCloserToCenter = Math.abs(standard.valueOf(40) - standard.valueOf(45)); final double differenceFurtherFromCenter = @@ -76,7 +76,7 @@ public class QuadraticSliderStrategyTest { } @Test - public void testQuadraticPropertyRightRegion() throws Exception { + public void testQuadraticPropertyRightRegion() { final double differenceCloserToCenter = Math.abs(standard.valueOf(75) - standard.valueOf(70)); final double differenceFurtherFromCenter = diff --git a/app/src/test/java/us/shandian/giga/get/DownloadManagerImplTest.java b/app/src/test/java/us/shandian/giga/get/DownloadManagerImplTest.java index 6ff702273..49bfd4840 100644 --- a/app/src/test/java/us/shandian/giga/get/DownloadManagerImplTest.java +++ b/app/src/test/java/us/shandian/giga/get/DownloadManagerImplTest.java @@ -110,7 +110,7 @@ public class DownloadManagerImplTest { } @Test - public void resumeMission() throws Exception { + public void resumeMission() { DownloadMission mission = missions.get(0); mission.running = true; verify(mission, never()).start(); @@ -122,7 +122,7 @@ public class DownloadManagerImplTest { } @Test - public void pauseMission() throws Exception { + public void pauseMission() { DownloadMission mission = missions.get(0); mission.running = false; downloadManager.pauseMission(0); @@ -133,7 +133,7 @@ public class DownloadManagerImplTest { } @Test - public void deleteMission() throws Exception { + public void deleteMission() { DownloadMission mission = missions.get(0); assertEquals(mission, downloadManager.getMission(0)); downloadManager.deleteMission(0); @@ -143,18 +143,18 @@ public class DownloadManagerImplTest { } @Test(expected = RuntimeException.class) - public void getMissionWithNegativeIndex() throws Exception { + public void getMissionWithNegativeIndex() { downloadManager.getMission(-1); } @Test - public void getMission() throws Exception { + public void getMission() { assertSame(missions.get(0), downloadManager.getMission(0)); assertSame(missions.get(1), downloadManager.getMission(1)); } @Test - public void sortByTimestamp() throws Exception { + public void sortByTimestamp() { ArrayList downloadMissions = new ArrayList<>(); DownloadMission mission = new DownloadMission(); mission.timestamp = 0; From 5660b5ddc6d90299710896a796570d58c563517a Mon Sep 17 00:00:00 2001 From: BO41 Date: Tue, 28 Aug 2018 19:25:56 +0200 Subject: [PATCH 168/181] accessibility image without contentDescription Keyboard inaccessible widget BUILD SUCCESSFUL in 6s 39 actionable tasks: 4 executed, 35 up-to-date --- app/src/main/res/layout-v21/drawer_header.xml | 9 ++++++--- app/src/main/res/layout/drawer_header.xml | 9 ++++++--- app/src/main/res/layout/fragment_about.xml | 3 ++- app/src/main/res/layout/item_search_history.xml | 3 ++- app/src/main/res/layout/item_software_component.xml | 3 ++- app/src/main/res/layout/mission_item.xml | 6 ++++-- app/src/main/res/layout/mission_item_linear.xml | 6 ++++-- app/src/main/res/layout/select_channel_item.xml | 3 ++- app/src/main/res/layout/select_kiosk_item.xml | 6 ++++-- 9 files changed, 32 insertions(+), 16 deletions(-) diff --git a/app/src/main/res/layout-v21/drawer_header.xml b/app/src/main/res/layout-v21/drawer_header.xml index 4cdc2b30e..9336c8d9c 100644 --- a/app/src/main/res/layout-v21/drawer_header.xml +++ b/app/src/main/res/layout-v21/drawer_header.xml @@ -16,7 +16,8 @@ android:layout_height="match_parent" android:background="?attr/colorPrimary" android:scaleType="centerCrop" - android:src="@drawable/background_header" /> + android:src="@drawable/background_header" + android:contentDescription="TODO" /> + android:src="@drawable/np_logo_nude_shadow" + android:contentDescription="TODO" /> + android:src="@drawable/ic_arrow_down_white" + android:contentDescription="TODO" /> \ No newline at end of file diff --git a/app/src/main/res/layout/drawer_header.xml b/app/src/main/res/layout/drawer_header.xml index c119c302a..833abe1c6 100644 --- a/app/src/main/res/layout/drawer_header.xml +++ b/app/src/main/res/layout/drawer_header.xml @@ -16,7 +16,8 @@ android:focusable="true"> android:layout_height="match_parent" android:background="?attr/colorPrimary" android:src="@drawable/background_header" - android:scaleType="centerCrop"/> + android:scaleType="centerCrop" + android:contentDescription="TODO" /> android:layout_width="70dp" android:layout_height="70dp" - android:src="@drawable/np_logo_nude_shadow"/> + android:src="@drawable/np_logo_nude_shadow" + android:contentDescription="TODO" /> android:paddingBottom="20dp" android:paddingRight="20dp" android:src="@drawable/ic_arrow_down_white" - android:paddingEnd="20dp" /> + android:paddingEnd="20dp" + android:contentDescription="TODO" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml index 320f72ab9..e8537cad3 100644 --- a/app/src/main/res/layout/fragment_about.xml +++ b/app/src/main/res/layout/fragment_about.xml @@ -21,7 +21,8 @@ android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginBottom="8dp" - app:srcCompat="@mipmap/ic_launcher" /> + app:srcCompat="@mipmap/ic_launcher" + android:contentDescription="TODO" /> + android:paddingTop="8dp" + android:focusable="true"> + android:clickable="true" + android:focusable="true"> + android:scaleType="centerInside" + android:contentDescription="TODO" /> @@ -50,7 +51,8 @@ android:layout_centerHorizontal="true" android:scaleType="fitXY" android:gravity="center" - android:padding="10dp"/> + android:padding="10dp" + android:contentDescription="TODO" /> + android:padding="15dp" + android:contentDescription="TODO" /> + android:scaleType="centerInside" + android:contentDescription="TODO" /> diff --git a/app/src/main/res/layout/select_channel_item.xml b/app/src/main/res/layout/select_channel_item.xml index 09602a371..5d00c1b01 100644 --- a/app/src/main/res/layout/select_channel_item.xml +++ b/app/src/main/res/layout/select_channel_item.xml @@ -6,7 +6,8 @@ android:layout_height="wrap_content" android:background="?attr/selectableItemBackground" android:clickable="true" - android:padding="5dp"> + android:padding="5dp" + android:focusable="true"> + android:padding="5dp" + android:focusable="true"> + tools:ignore="RtlHardcoded" + android:contentDescription="TODO" /> Date: Tue, 28 Aug 2018 19:30:44 +0200 Subject: [PATCH 169/181] correctness use apply() on SharedPreferences use dp instead of sp for text sizes BUILD SUCCESSFUL in 22s 39 actionable tasks: 10 executed, 29 up-to-date --- .../org/schabi/newpipe/settings/ContentSettingsFragment.java | 2 +- app/src/main/res/layout-v21/drawer_header.xml | 4 ++-- app/src/main/res/layout/drawer_header.xml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java index 0ca78b34a..ca48ed8b5 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java @@ -264,7 +264,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment { else if (v instanceof String) prefEdit.putString(key, ((String) v)); } - prefEdit.commit(); + prefEdit.apply(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { diff --git a/app/src/main/res/layout-v21/drawer_header.xml b/app/src/main/res/layout-v21/drawer_header.xml index 9336c8d9c..4474ee4ed 100644 --- a/app/src/main/res/layout-v21/drawer_header.xml +++ b/app/src/main/res/layout-v21/drawer_header.xml @@ -40,7 +40,7 @@ android:layout_toRightOf="@id/drawer_header_np_nude_view" android:gravity="center" android:text="@string/app_name" - android:textSize="30dp" + android:textSize="30sp" android:textColor="@color/drawer_header_font_color" android:textStyle="bold|italic" /> @@ -52,7 +52,7 @@ android:layout_alignStart="@id/drawer_header_np_text_view" android:layout_below="@id/drawer_header_np_text_view" android:text="YouTube" - android:textSize="18dp" + android:textSize="18sp" android:textColor="@color/drawer_header_font_color" android:textStyle="italic" /> diff --git a/app/src/main/res/layout/drawer_header.xml b/app/src/main/res/layout/drawer_header.xml index 833abe1c6..0458773d7 100644 --- a/app/src/main/res/layout/drawer_header.xml +++ b/app/src/main/res/layout/drawer_header.xml @@ -40,7 +40,7 @@ android:focusable="true"> android:layout_alignTop="@id/drawer_header_np_nude_view" android:layout_alignBottom="@id/drawer_header_np_nude_view" android:gravity="center" - android:textSize="30dp" + android:textSize="30sp" android:textColor="@color/drawer_header_font_color" android:textStyle="bold|italic"/> @@ -52,7 +52,7 @@ android:focusable="true"> android:layout_below="@id/drawer_header_np_text_view" android:layout_alignLeft="@id/drawer_header_np_text_view" android:layout_alignStart="@id/drawer_header_np_text_view" - android:textSize="18dp" + android:textSize="18sp" android:textColor="@color/drawer_header_font_color" android:textStyle="italic"/> From 5db0cc524174dfda56d19cc7e1bd61d91fa8ec06 Mon Sep 17 00:00:00 2001 From: BO41 Date: Tue, 28 Aug 2018 19:40:05 +0200 Subject: [PATCH 170/181] performance + usability obsolete layout params Ellipsis string can be replaced with ellipsis character Missing inputType Usage of showAsAction=always BUILD SUCCESSFUL in 5s 39 actionable tasks: 4 executed, 35 up-to-date --- app/src/main/res/layout/activity_error.xml | 3 ++- app/src/main/res/layout/mission_item_linear.xml | 3 +-- app/src/main/res/menu/menu_videooptions.xml | 6 +++--- app/src/main/res/values-hu/strings.xml | 2 +- app/src/main/res/values-ko/strings.xml | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/layout/activity_error.xml b/app/src/main/res/layout/activity_error.xml index 7752dc7cb..c47077c73 100644 --- a/app/src/main/res/layout/activity_error.xml +++ b/app/src/main/res/layout/activity_error.xml @@ -114,7 +114,8 @@ + android:layout_height="wrap_content" + android:inputType="" />