1
mirror of https://github.com/TeamNewPipe/NewPipe synced 2025-09-20 11:20:52 +02:00

Compare commits

...

76 Commits

Author SHA1 Message Date
TobiGr
8b2599297b Release 0.19.2 (920) 2020-04-03 10:38:03 +02:00
TobiGr
a9a43538be Merge remote-tracking branch 'Weblate/dev' into dev 2020-04-02 23:37:14 +02:00
Igor Nedoboy
905e4f16e2 Translated using Weblate (Russian)
Currently translated at 98.0% (549 of 560 strings)
2020-04-02 23:24:25 +02:00
anonymous
008489361d Translated using Weblate (Russian)
Currently translated at 98.0% (549 of 560 strings)
2020-04-02 23:24:23 +02:00
Igor Nedoboy
dfa7fb53b2 Translated using Weblate (Russian)
Currently translated at 98.0% (549 of 560 strings)
2020-04-02 23:24:22 +02:00
Tobias Groza
dc6604bcda Merge pull request #3265 from TeamNewPipe/apk_base_name
Change APK base name depending on the branch name for debug builds
2020-04-02 23:18:18 +02:00
Igor Nedoboy
63194ff292 Translated using Weblate (Russian)
Currently translated at 97.3% (545 of 560 strings)
2020-04-02 23:16:56 +02:00
anonymous
53a727955f Translated using Weblate (Russian)
Currently translated at 97.3% (545 of 560 strings)
2020-04-02 23:16:54 +02:00
Igor Nedoboy
a8fca89045 Translated using Weblate (Russian)
Currently translated at 97.3% (545 of 560 strings)
2020-04-02 23:16:54 +02:00
anonymous
1eff727722 Translated using Weblate (Russian)
Currently translated at 95.5% (535 of 560 strings)
2020-04-02 22:46:22 +02:00
TobiGr
faefe957b0 Change APK base name depending on the branch name for debug builds 2020-04-02 21:45:28 +02:00
Tobias Groza
2fb8467673 Merge pull request #3334 from mauriciocolli/improve-drawer-height-handling
Make the drawer layout adapt to any status bar size
2020-04-02 21:42:35 +02:00
zmni
401422deb3 Translated using Weblate (Indonesian)
Currently translated at 99.2% (556 of 560 strings)
2020-04-02 20:49:16 +02:00
AioiLight
b52ed8e4c9 Translated using Weblate (Japanese)
Currently translated at 100.0% (560 of 560 strings)
2020-04-02 20:49:16 +02:00
Mauricio Colli
45194061b3 Make the drawer layout adapt to any status bar size
This improves the drawer specifically for phones that have a notch.
2020-04-02 11:05:19 -03:00
Kik Ki
ea917c82b6 Translated using Weblate (Thai)
Currently translated at 49.6% (278 of 560 strings)
2020-04-02 10:51:35 +02:00
Xiang Xu
65d5303765 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (560 of 560 strings)
2020-04-02 10:51:35 +02:00
CE4
08d37a4bef Translated using Weblate (German)
Currently translated at 100.0% (560 of 560 strings)
2020-04-02 10:51:35 +02:00
Tobias Groza
da2b059802 Merge pull request #3325 from kapodamy/int-overflow-2-fixes
Integer overflow fixes in downloader
2020-04-01 22:29:39 +02:00
kapodamy
62d934dd8e fix integer overflows
* available() method in ChunkFileInputStream.java
* free "ahead space" calculation in CircularFileWriter.java
2020-04-01 15:30:33 -03:00
kapodamy
96086b7733 code cleanup 2020-04-01 15:30:32 -03:00
Tobias Groza
182fc104bb Merge pull request #3259 from mauriciocolli/improve-drawer-layout
Improvements for the drawer header layout
2020-04-01 18:47:53 +02:00
Tobias Groza
06a897fba0 Merge pull request #3322 from Stypox/fix-mute-button
Fix mute button causing crashes on API 19
2020-04-01 18:30:10 +02:00
Jeff Huang
ff4b13245c Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (560 of 560 strings)
2020-04-01 09:10:33 +02:00
Stypox
00a8906128 Fix mute button causing crashes on API 19
Using rootView.getContext() because getApplicationContext() didn't work (it was probably missing information about theme)
2020-04-01 09:08:03 +02:00
opusforlife2
8b73d2d39f Translated using Weblate (English)
Currently translated at 99.8% (559 of 560 strings)
2020-03-31 18:15:23 +02:00
Vojtěch Šamla
e976b3e43e Translated using Weblate (Czech)
Currently translated at 100.0% (560 of 560 strings)
2020-03-31 14:04:56 +02:00
Jakub Gajdoš
1585ca7c85 Translated using Weblate (Slovak)
Currently translated at 94.2% (528 of 560 strings)
2020-03-31 14:04:56 +02:00
TobiGr
f7697007e5 Merge branch 'master' into dev 2020-03-31 12:33:16 +02:00
CaptainCrumble
249e9c0b52 Translated using Weblate (Portuguese)
Currently translated at 100.0% (560 of 560 strings)
2020-03-30 17:33:56 +02:00
ssantos
099d5570f4 Translated using Weblate (Portuguese)
Currently translated at 100.0% (560 of 560 strings)
2020-03-30 17:33:54 +02:00
chr56
12bf409e10 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (560 of 560 strings)
2020-03-30 00:51:52 +02:00
ssantos
a01f1e64fe Translated using Weblate (German)
Currently translated at 100.0% (560 of 560 strings)
2020-03-30 00:11:01 +02:00
Tobias Groza
5f549a8fc6 Merge pull request #3289 from B0pol/grid_moreinfo
add upload date on stream grid items
2020-03-29 23:49:39 +02:00
WaldiS
eb144af0b9 Translated using Weblate (Polish)
Currently translated at 100.0% (560 of 560 strings)
2020-03-28 17:09:30 +01:00
ssantos
0d020d3a54 Translated using Weblate (Portuguese)
Currently translated at 90.7% (508 of 560 strings)
2020-03-28 17:09:29 +01:00
Terry Louwers
e1042e326d Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-28 17:09:29 +01:00
anonymous
f085e7d362 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-28 17:09:29 +01:00
bopol
b995f39206 add upload date on stream grid items
fixes #3175
2020-03-28 14:19:57 +01:00
Terry Louwers
0be78b1204 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:50:58 +01:00
anonymous
0a67ecbc3a Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:50:56 +01:00
Terry Louwers
c57b4ee965 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:50:31 +01:00
anonymous
d4db7b3fc1 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:50:29 +01:00
Terry Louwers
e9db964a70 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:48:08 +01:00
anonymous
90c8a714fc Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:48:06 +01:00
Terry Louwers
d958c0c68a Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:48:05 +01:00
Terry Louwers
377d02ab1a Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:46:46 +01:00
anonymous
2c0ad89a07 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:46:42 +01:00
Terry Louwers
101a8adbc2 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 09:34:55 +01:00
anonymous
5009fa461c Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 09:34:53 +01:00
Terry Louwers
f48f6ae5df Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 09:32:53 +01:00
Terry Louwers
be504212d0 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 09:32:51 +01:00
anonymous
0f075137c9 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 09:32:50 +01:00
Terry Louwers
8714664e00 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:56:24 +01:00
anonymous
bfaf938543 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:56:21 +01:00
Terry Louwers
b605bc086c Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:43:37 +01:00
anonymous
e394b16335 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:43:34 +01:00
Terry Louwers
0457423498 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:29:41 +01:00
anonymous
91d30dbb83 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:29:38 +01:00
Terry Louwers
63642a4d3e Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:26:41 +01:00
anonymous
1b64900c14 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:26:38 +01:00
Terry Louwers
2660178658 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:25:08 +01:00
anonymous
3a0271cd4d Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:25:05 +01:00
Terry Louwers
76e2a2f032 Translated using Weblate (Dutch)
Currently translated at 99.6% (558 of 560 strings)
2020-03-27 08:14:47 +01:00
anonymous
932de969f0 Translated using Weblate (Dutch)
Currently translated at 99.6% (558 of 560 strings)
2020-03-27 08:14:42 +01:00
Terry Louwers
9082ab6ff7 Translated using Weblate (Dutch)
Currently translated at 99.6% (558 of 560 strings)
2020-03-27 08:14:41 +01:00
Terry Louwers
2461173e26 Translated using Weblate (Dutch)
Currently translated at 99.1% (555 of 560 strings)
2020-03-27 08:10:59 +01:00
Terry Louwers
48c2f8b91b Translated using Weblate (Dutch)
Currently translated at 99.1% (555 of 560 strings)
2020-03-27 08:10:55 +01:00
anonymous
6766b25414 Translated using Weblate (Dutch)
Currently translated at 99.1% (555 of 560 strings)
2020-03-27 08:10:55 +01:00
Terry Louwers
aacaf1b3fe Translated using Weblate (Dutch)
Currently translated at 98.3% (551 of 560 strings)
2020-03-27 08:03:08 +01:00
Daniele Lira Mereb
4cc154cbe1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:03:08 +01:00
anonymous
ca030dd5ed Translated using Weblate (Dutch)
Currently translated at 98.3% (551 of 560 strings)
2020-03-27 08:03:04 +01:00
Terry Louwers
f000409a90 Translated using Weblate (Dutch)
Currently translated at 98.3% (551 of 560 strings)
2020-03-27 08:03:03 +01:00
Mauricio Colli
697f0659e2 Distribute the service indicator views in the drawer header layout
People have voted, and that was the chosen design.
2020-03-26 19:21:32 -03:00
Mauricio Colli
5169ef1f00 Remove unused drawer header views and resources 2020-03-26 19:21:31 -03:00
Mauricio Colli
10faa45182 Align and enable autosizing for the app name text view in drawer header
- Use a proper drop up/down arrow icon.
- Move selected service views for better visibility.
- Show the selected service icon next to its name.
- Add a subtle fade background to the service name/icon for better
readability.
2020-03-26 19:21:30 -03:00
43 changed files with 520 additions and 349 deletions

View File

@@ -12,8 +12,8 @@ android {
resValue "string", "app_name", "NewPipe"
minSdkVersion 19
targetSdkVersion 28
versionCode 910
versionName "0.19.1"
versionCode 920
versionName "0.19.2"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
@@ -46,6 +46,7 @@ android {
} else {
applicationIdSuffix ".debug." + normalizedWorkingBranch
resValue "string", "app_name", "NewPipe " + workingBranch
archivesBaseName = 'NewPipe_' + normalizedWorkingBranch
}
}
}

View File

@@ -83,11 +83,12 @@ public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
public static final boolean DEBUG = !BuildConfig.BUILD_TYPE.equals("release");
private ActionBarDrawerToggle toggle = null;
private DrawerLayout drawer = null;
private NavigationView drawerItems = null;
private TextView headerServiceView = null;
private Button toggleServiceButton = null;
private ActionBarDrawerToggle toggle;
private DrawerLayout drawer;
private NavigationView drawerItems;
private ImageView headerServiceIcon;
private TextView headerServiceView;
private Button toggleServiceButton;
private boolean servicesShown = false;
private ImageView serviceArrow;
@@ -285,11 +286,10 @@ public class MainActivity extends AppCompatActivity {
View hView = navigationView.getHeaderView(0);
serviceArrow = hView.findViewById(R.id.drawer_arrow);
headerServiceIcon = hView.findViewById(R.id.drawer_header_service_icon);
headerServiceView = hView.findViewById(R.id.drawer_header_service_view);
toggleServiceButton = hView.findViewById(R.id.drawer_header_action_button);
toggleServiceButton.setOnClickListener(view -> {
toggleServices();
});
toggleServiceButton.setOnClickListener(view -> toggleServices());
}
private void toggleServices() {
@@ -299,7 +299,6 @@ public class MainActivity extends AppCompatActivity {
drawerItems.getMenu().removeGroup(R.id.menu_tabs_group);
drawerItems.getMenu().removeGroup(R.id.menu_options_about_group);
if(servicesShown) {
showServices();
} else {
@@ -312,7 +311,7 @@ public class MainActivity extends AppCompatActivity {
}
private void showServices() {
serviceArrow.setImageResource(R.drawable.ic_arrow_up_white);
serviceArrow.setImageResource(R.drawable.ic_arrow_drop_up_white_24dp);
for(StreamingService s : NewPipe.getServices()) {
final String title = s.getServiceInfo().getName() +
@@ -370,7 +369,7 @@ public class MainActivity extends AppCompatActivity {
}
private void showTabs() throws ExtractionException {
serviceArrow.setImageResource(R.drawable.ic_arrow_down_white);
serviceArrow.setImageResource(R.drawable.ic_arrow_drop_down_white_24dp);
//Tabs
int currentServiceId = ServiceHelper.getSelectedServiceId(this);
@@ -428,9 +427,11 @@ public class MainActivity extends AppCompatActivity {
// when the user returns to MainActivity
drawer.closeDrawer(GravityCompat.START, false);
try {
String selectedServiceName = NewPipe.getService(
ServiceHelper.getSelectedServiceId(this)).getServiceInfo().getName();
final int selectedServiceId = ServiceHelper.getSelectedServiceId(this);
final String selectedServiceName = NewPipe.getService(selectedServiceId).getServiceInfo().getName();
headerServiceView.setText(selectedServiceName);
headerServiceIcon.setImageResource(ServiceHelper.getIcon(selectedServiceId));
headerServiceView.post(() -> headerServiceView.setSelected(true));
toggleServiceButton.setContentDescription(
getString(R.string.drawer_header_description) + selectedServiceName);

View File

@@ -5,7 +5,7 @@ import android.view.ViewGroup;
import org.schabi.newpipe.R;
import org.schabi.newpipe.info_list.InfoItemBuilder;
public class StreamGridInfoItemHolder extends StreamMiniInfoItemHolder {
public class StreamGridInfoItemHolder extends StreamInfoItemHolder {
public StreamGridInfoItemHolder(InfoItemBuilder infoItemBuilder, ViewGroup parent) {
super(infoItemBuilder, R.layout.list_stream_grid_item, parent);

View File

@@ -40,7 +40,11 @@ public class StreamInfoItemHolder extends StreamMiniInfoItemHolder {
public final TextView itemAdditionalDetails;
public StreamInfoItemHolder(InfoItemBuilder infoItemBuilder, ViewGroup parent) {
super(infoItemBuilder, R.layout.list_stream_item, parent);
this(infoItemBuilder, R.layout.list_stream_item, parent);
}
public StreamInfoItemHolder(InfoItemBuilder infoItemBuilder, int layoutId, ViewGroup parent) {
super(infoItemBuilder, layoutId, parent);
itemAdditionalDetails = itemView.findViewById(R.id.itemAdditionalDetails);
}

View File

@@ -3,17 +3,9 @@ package org.schabi.newpipe.player;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.IBinder;
import android.provider.Settings;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.ItemTouchHelper;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
@@ -26,6 +18,12 @@ import android.widget.ProgressBar;
import android.widget.SeekBar;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.exoplayer2.PlaybackParameters;
import com.google.android.exoplayer2.Player;
@@ -698,13 +696,10 @@ public abstract class ServicePlayerActivity extends AppCompatActivity
item.setTitle(player.isMuted() ? R.string.unmute : R.string.mute);
//2) Icon change accordingly to current App Theme
item.setIcon(player.isMuted() ? getThemedDrawable(R.attr.volume_off) : getThemedDrawable(R.attr.volume_on));
// using rootView.getContext() because getApplicationContext() didn't work
item.setIcon(player.isMuted()
? ThemeHelper.resolveResourceIdFromAttr(rootView.getContext(), R.attr.volume_off)
: ThemeHelper.resolveResourceIdFromAttr(rootView.getContext(), R.attr.volume_on));
}
}
private Drawable getThemedDrawable(int attribute) {
return getResources().getDrawable(
getTheme().obtainStyledAttributes(R.style.Theme_AppCompat, new int[]{attribute})
.getResourceId(0, 0));
}
}

View File

@@ -69,6 +69,11 @@ public class DataReader {
return primitive[0] << 24 | primitive[1] << 16 | primitive[2] << 8 | primitive[3];
}
public long readUnsignedInt() throws IOException {
long value = readInt();
return value & 0xffffffffL;
}
public short readShort() throws IOException {
primitiveRead(SHORT_SIZE);
return (short) (primitive[0] << 8 | primitive[1]);

View File

@@ -294,10 +294,6 @@ public class Mp4DashReader {
private long readUint() throws IOException {
return stream.readInt() & 0xffffffffL;
}
public static boolean hasFlag(int flags, int mask) {
return (flags & mask) == mask;
}
@@ -317,7 +313,7 @@ public class Mp4DashReader {
private Box readBox() throws IOException {
Box b = new Box();
b.offset = stream.position();
b.size = stream.readInt();
b.size = stream.readUnsignedInt();
b.type = stream.readInt();
if (b.size == 1) {
@@ -478,7 +474,7 @@ public class Mp4DashReader {
private long parse_tfdt() throws IOException {
int version = stream.read();
stream.skipBytes(3);// flags
return version == 0 ? readUint() : stream.readLong();
return version == 0 ? stream.readUnsignedInt() : stream.readLong();
}
private Trun parse_trun() throws IOException {
@@ -551,7 +547,7 @@ public class Mp4DashReader {
stream.skipBytes(2 * (version == 0 ? 4 : 8));
Mvhd obj = new Mvhd();
obj.timeScale = readUint();
obj.timeScale = stream.readUnsignedInt();
// chunkDuration
stream.skipBytes(version == 0 ? 4 : 8);
@@ -563,7 +559,7 @@ public class Mp4DashReader {
// predefined
stream.skipBytes(76);
obj.nextTrackId = readUint();
obj.nextTrackId = stream.readUnsignedInt();
return obj;
}
@@ -582,7 +578,7 @@ public class Mp4DashReader {
stream.skipBytes(4);// reserved
obj.duration = version == 0 ? readUint() : stream.readLong();
obj.duration = version == 0 ? stream.readUnsignedInt() : stream.readLong();
stream.skipBytes(2 * 4);// reserved

View File

@@ -46,7 +46,7 @@ public class Mp4FromDashWriter {
private int overrideMainBrand = 0x00;
private ArrayList<Integer> compatibleBrands = new ArrayList<>(5);
private final ArrayList<Integer> compatibleBrands = new ArrayList<>(5);
public Mp4FromDashWriter(SharpStream... sources) throws IOException {
for (SharpStream src : sources) {

View File

@@ -104,7 +104,7 @@ public class ChunkFileInputStream extends SharpStream {
@Override
public long available() {
return (int) (length - position);
return length - position;
}
@SuppressWarnings("EmptyCatchBlock")

View File

@@ -221,7 +221,7 @@ public class CircularFileWriter extends SharpStream {
available = out.length - offsetOut;
}
int length = Math.min(len, (int) available);
int length = Math.min(len, (int) Math.min(Integer.MAX_VALUE, available));
out.write(b, off, length);
len -= length;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 458 B

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="90"
android:endColor="#00000000"
android:startColor="#4D000000"/>
</shape>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M7,10l5,5 5,-5z" />
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M7,14l5,-5 5,5z" />
</vector>

View File

@@ -1,82 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:clickable="true"
android:focusable="true">
<Button
android:id="@+id/drawer_header_action_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/drawer_header_description"
android:background="?android:attr/selectableItemBackground" />
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorPrimary"
android:scaleType="centerCrop"
android:src="@drawable/background_header"
android:contentDescription="TODO" />
<ImageView
android:id="@+id/drawer_header_np_nude_view"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginLeft="30dp"
android:layout_marginStart="30dp"
android:layout_marginTop="30dp"
android:src="@drawable/np_logo_nude_shadow"
android:contentDescription="TODO" />
<TextView
android:id="@+id/drawer_header_np_text_view"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_alignBottom="@id/drawer_header_np_nude_view"
android:layout_alignTop="@id/drawer_header_np_nude_view"
android:layout_toEndOf="@id/drawer_header_np_nude_view"
android:layout_toRightOf="@id/drawer_header_np_nude_view"
android:gravity="center"
android:text="@string/app_name"
android:textSize="30sp"
android:textColor="@color/drawer_header_font_color"
android:textStyle="bold|italic" />
<TextView
android:id="@+id/drawer_header_service_view"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_alignLeft="@id/drawer_header_np_text_view"
android:layout_alignStart="@id/drawer_header_np_text_view"
android:layout_below="@id/drawer_header_np_text_view"
android:layout_toLeftOf="@id/drawer_arrow"
android:layout_marginRight="5dp"
android:text="YouTube"
android:textSize="18sp"
android:textColor="@color/drawer_header_font_color"
android:textStyle="italic"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true" />
<ImageView
android:id="@+id/drawer_arrow"
android:layout_width="30dp"
android:layout_height="35dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_gravity="bottom"
android:layout_marginBottom="0dp"
android:paddingBottom="20dp"
android:paddingEnd="20dp"
android:paddingRight="20dp"
android:src="@drawable/ic_arrow_down_white"
android:contentDescription="TODO" />
</RelativeLayout>

View File

@@ -1,81 +1,122 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:clickable="true"
android:focusable="true">
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?colorPrimary"
android:nextFocusDown="@+id/drawer_header_action_button">
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:scaleType="centerCrop"
android:src="@drawable/background_header"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/drawer_header_padding_top"
android:fitsSystemWindows="true"
android:gravity="bottom"
android:minHeight="@dimen/drawer_header_content_min_height"
android:orientation="vertical"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:gravity="center"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/drawer_header_newpipe_icon"
android:layout_width="@dimen/drawer_header_newpipe_icon_size"
android:layout_height="@dimen/drawer_header_newpipe_icon_size"
android:layout_marginEnd="@dimen/drawer_header_newpipe_icon_title_space"
app:srcCompat="@drawable/splash_forground"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/drawer_header_newpipe_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/drawer_header_newpipe_icon_title_space"
android:ellipsize="end"
android:gravity="start|center_vertical"
android:hyphenationFrequency="full"
android:maxWidth="@dimen/drawer_header_newpipe_title_max_width"
android:maxLines="2"
android:minWidth="@dimen/drawer_header_newpipe_title_min_width"
android:text="@string/app_name"
android:textColor="@color/drawer_header_font_color"
android:textStyle="bold"
app:autoSizeMaxTextSize="@dimen/drawer_header_newpipe_title_max_text_size"
app:autoSizeMinTextSize="@dimen/drawer_header_newpipe_title_min_text_size"
app:autoSizeTextType="uniform"
tools:ignore="UnusedAttribute" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:background="@drawable/drawer_header_bottom_background"
android:gravity="center"
android:orientation="horizontal"
android:paddingLeft="6dp"
android:paddingRight="6dp">
<LinearLayout
android:layout_width="0dp"
android:layout_height="32dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/drawer_header_service_icon"
android:layout_width="@dimen/drawer_header_service_icon_size"
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:layout_marginRight="6dp"
android:scaleType="fitCenter"
app:tint="@color/drawer_header_font_color"
tools:ignore="ContentDescription"
tools:srcCompat="@drawable/youtube" />
<TextView
android:id="@+id/drawer_header_service_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@color/drawer_header_font_color"
android:textSize="@dimen/drawer_header_service_title_text_size"
tools:text="YouTube" />
</LinearLayout>
<ImageView
android:id="@+id/drawer_arrow"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginStart="4dp"
app:srcCompat="@drawable/ic_arrow_drop_down_white_24dp"
tools:ignore="ContentDescription" />
</LinearLayout>
</LinearLayout>
<Button
android:id="@+id/drawer_header_action_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/selectableItemBackground"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorPrimary"
android:src="@drawable/background_header"
android:scaleType="centerCrop"
android:contentDescription="TODO" />
<ImageView
android:id="@+id/drawer_header_np_nude_view"
android:layout_marginLeft="30dp"
android:layout_marginStart="30dp"
android:layout_marginTop="20dp"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@drawable/np_logo_nude_shadow"
android:contentDescription="TODO" />
<TextView
android:id="@+id/drawer_header_np_text_view"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:text="@string/app_name"
android:layout_toRightOf="@id/drawer_header_np_nude_view"
android:layout_toEndOf="@id/drawer_header_np_nude_view"
android:layout_alignTop="@id/drawer_header_np_nude_view"
android:layout_alignBottom="@id/drawer_header_np_nude_view"
android:gravity="center"
android:textSize="30sp"
android:textColor="@color/drawer_header_font_color"
android:textStyle="bold|italic"/>
<TextView
android:id="@+id/drawer_header_service_view"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="YouTube"
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:layout_toLeftOf="@id/drawer_arrow"
android:layout_marginRight="5dp"
android:textSize="18sp"
android:textColor="@color/drawer_header_font_color"
android:textStyle="italic"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true" />
<ImageView
android:id="@+id/drawer_arrow"
android:layout_width="30dp"
android:layout_height="35dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_gravity="bottom"
android:layout_marginBottom="0dp"
android:paddingBottom="20dp"
android:paddingRight="20dp"
android:src="@drawable/ic_arrow_down_white"
android:paddingEnd="20dp"
android:contentDescription="TODO" />
</RelativeLayout>
android:background="?selectableItemBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,36 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.navigation.NavigationView android:id="@+id/navigation_layout"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_gravity="start"
<com.google.android.material.navigation.NavigationView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:clickable="true"
android:focusable="true"
>
<com.google.android.material.navigation.NavigationView
android:id="@+id/navigation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:elevation="0dp"
android:background="?attr/android:windowBackground"
app:headerLayout="@layout/drawer_header"
android:theme="@style/NavViewTextStyle"/>
<!-- app:menu="@menu/drawer_items" -->
<LinearLayout
android:id="@+id/navigation_drawer_footer"
android:layout_width="0dp"
android:layout_height="60dp"
android:orientation="horizontal"
android:layout_alignLeft="@id/navigation"
android:layout_alignRight="@id/navigation"
android:layout_alignStart="@id/navigation"
android:layout_alignEnd="@id/navigation"
android:layout_alignParentBottom="true">
</LinearLayout>
</com.google.android.material.navigation.NavigationView>
android:id="@+id/navigation"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="?android:attr/windowBackground"
android:orientation="vertical"
app:headerLayout="@layout/drawer_header" />

View File

@@ -67,6 +67,19 @@
android:textSize="@dimen/video_item_search_uploader_text_size"
tools:text="Uploader"/>
<TextView
android:id="@+id/itemAdditionalDetails"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/itemUploaderView"
android:layout_alignStart="@id/itemUploaderView"
android:layout_alignEnd="@id/itemUploaderView"
android:ellipsize="end"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="@dimen/video_item_search_upload_date_text_size"
tools:text="2 years ago • 10M views"/>
<org.schabi.newpipe.views.AnimatedProgressBar
android:id="@+id/itemProgressView"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"

View File

@@ -456,7 +456,7 @@
<string name="error_postprocessing_failed">后期处理失败</string>
<string name="stop">停止</string>
<string name="max_retry_msg">最大重试次数</string>
<string name="max_retry_desc">取消下载前的最多重试次数</string>
<string name="max_retry_desc">取消下载前的最多重试次数</string>
<string name="pause_downloads_on_mobile">在切换到移动流量网络时中断播放</string>
<string name="pause_downloads_on_mobile_desc">切换至移动数据时可能有用,尽管一些下载无法被暂停</string>
<string name="events">事件</string>
@@ -551,7 +551,7 @@
<plurals name="days">
<item quantity="other">%d天</item>
</plurals>
<string name="feed_groups_header_title">Feed组</string>
<string name="feed_groups_header_title">频道组</string>
<string name="feed_oldest_subscription_update">最早订阅更新:%s</string>
<string name="feed_subscription_not_loaded_count">未加载: %d</string>
<string name="feed_notification_loading">正在加载feed…</string>
@@ -565,7 +565,7 @@
<string name="feed_group_dialog_name_input">名称</string>
<string name="feed_group_dialog_delete_message">您要删除该组吗?</string>
<string name="feed_create_new_group_button_title">新建</string>
<string name="settings_category_feed_title">Feed</string>
<string name="settings_category_feed_title">订阅</string>
<string name="feed_update_threshold_title">Feed更新阈值</string>
<string name="feed_update_threshold_summary">上次更新后,订阅被视为过时的时间-s</string>
<string name="feed_update_threshold_option_always_update">始终更新</string>

View File

@@ -557,8 +557,8 @@ otevření ve vyskakovacím okně</string>
<item quantity="other">%d vteřin</item>
</plurals>
<string name="new_seek_duration_toast">Kvůli omezením ExoPlayer bylo prohledávání nastaveno na %d vteřin</string>
<string name="mute">Umlčet</string>
<string name="unmute">Odumlčet</string>
<string name="mute">Ztišit</string>
<string name="unmute">Obnovit hlasitost</string>
<string name="help">Nápověda</string>
<plurals name="minutes">
<item quantity="one">%d minuta</item>

View File

@@ -572,7 +572,7 @@
<string name="feed_group_dialog_delete_message">Möchtest du diese Gruppe löschen\?</string>
<string name="feed_create_new_group_button_title">Neu</string>
<string name="feed_update_threshold_option_always_update">Immer aktualisieren</string>
<string name="feed_groups_header_title">Feed-Gruppen</string>
<string name="feed_groups_header_title">Channel-Gruppen</string>
<string name="feed_subscription_not_loaded_count">Nicht geladen: %d</string>
<string name="feed_notification_loading">Feed laden…</string>
<string name="feed_processing_message">Feed verarbeiten…</string>

View File

@@ -550,7 +550,7 @@
<plurals name="days">
<item quantity="other">%d hari</item>
</plurals>
<string name="feed_groups_header_title">Grup feed</string>
<string name="feed_groups_header_title">Grup channel</string>
<string name="feed_oldest_subscription_update">Pembaruan subscription terlama: %s</string>
<string name="feed_subscription_not_loaded_count">Tidak dimuat: %d</string>
<string name="feed_notification_loading">Memuat feed…</string>

View File

@@ -551,7 +551,7 @@
<plurals name="days">
<item quantity="other">%d 日</item>
</plurals>
<string name="feed_groups_header_title">フィード グループ</string>
<string name="feed_groups_header_title">チャンネル グループ</string>
<string name="feed_oldest_subscription_update">最も古い登録チャンネルの更新: %s</string>
<string name="feed_subscription_not_loaded_count">読み込み失敗: %d</string>
<string name="feed_notification_loading">フィードを読み込み中…</string>

View File

@@ -16,10 +16,10 @@
<string name="screen_rotation">draaiing</string>
<string name="download_path_title">Downloadlocatie voor video\'s</string>
<string name="download_path_summary">Locatie om gedownloade video\'s in op te slaan</string>
<string name="download_path_dialog_title">Kies de downloadlocatie voor video\'s</string>
<string name="download_path_dialog_title">Voer de downloadlocatie in voor video\'s</string>
<string name="default_resolution_title">Standaardresolutie</string>
<string name="play_with_kodi_title">Afspelen met Kodi</string>
<string name="kore_not_found">Installeer ontbrekende Kore-app\?</string>
<string name="kore_not_found">Kore-app niet gevonden. Deze installeren\?</string>
<string name="show_play_with_kodi_title">\"Afspelen met Kodi\"-optie tonen</string>
<string name="show_play_with_kodi_summary">Toon een optie om een video af te spelen via Kodi media center</string>
<string name="play_audio">Audio</string>
@@ -33,12 +33,12 @@
<string name="use_external_audio_player_title">Externe audiospeler gebruiken</string>
<string name="settings_category_video_audio_title">Audio en video</string>
<string name="list_thumbnail_view_description">Videovoorbeeldminiatuur</string>
<string name="detail_thumbnail_view_description">Videovoorbeeldminiatuur</string>
<string name="detail_thumbnail_view_description">Speel video, tijd:</string>
<string name="detail_uploader_thumbnail_view_description">Gebruikersafbeelding van uploader</string>
<string name="detail_dislikes_img_view_description">Vind-ik-niet-leuks</string>
<string name="download_path_audio_title">Downloadfolder voor audio</string>
<string name="download_path_audio_summary">Gedownloade muziek wordt hier opgeslagen</string>
<string name="download_path_audio_dialog_title">Kies de downloadlocatie voor audiobestanden</string>
<string name="download_path_audio_dialog_title">Voer de downloadlocatie in voor audiobestanden</string>
<string name="theme_title">Thema</string>
<string name="dark_theme_title">Donker</string>
<string name="light_theme_title">Licht</string>
@@ -85,7 +85,7 @@
<string name="could_not_load_image">Kan afbeelding niet laden</string>
<string name="app_ui_crash">App/UI gecrasht</string>
<string name="info_labels">Wat:\\nVerzoek:\\nTaal van inhoud:\\nDienst:\\nTijd in GMT:\\nPakket:\\nVersie:\\nVersie van besturingssysteem:</string>
<string name="report_error">Probleem melden</string>
<string name="report_error">Meld een probleem</string>
<string name="user_report">Gebruikersrapport</string>
<string name="storage_permission_denied">Geef eerst toegang tot de opslag</string>
<string name="start">Begin</string>
@@ -105,7 +105,7 @@
<string name="msg_running_detail">Druk voor meer informatie</string>
<string name="msg_wait">Even geduld…</string>
<string name="msg_copied">Gekopieerd naar klembord</string>
<string name="no_available_dir">Kies een beschikbare downloadmap</string>
<string name="no_available_dir">Selecteer een downloadmap in de Instellingen</string>
<string name="black_theme_title">Zwart</string>
<string name="recaptcha">reCAPTCHA</string>
<string name="title_activity_recaptcha">reCAPTCHA-uitdaging</string>
@@ -177,7 +177,7 @@
<string name="enable_watch_history_title">Kijkgeschiedenis</string>
<string name="enable_watch_history_summary">Kijkgeschiedenis bijhouden</string>
<string name="resume_on_audio_focus_gain_title">Hervat afspelen</string>
<string name="resume_on_audio_focus_gain_summary">Ga verder met afspelen na onderbrekingen (zoals telefoongesprekken)</string>
<string name="resume_on_audio_focus_gain_summary">Ga verder met afspelen na onderbrekingen (b.v. telefoongesprekken)</string>
<string name="notification_channel_name">NewPipe-melding</string>
<string name="notification_channel_description">Meldingen voor NewPipe-achtergrond- en pop-upspelers</string>
<string name="title_activity_history">Geschiedenis</string>
@@ -212,7 +212,7 @@
<string name="item_deleted">Item verwijderd</string>
<string name="delete_item_search_history">Wil je dit item verwijderen uit je zoekgeschiedenis?</string>
<string name="show_hold_to_append_title">Toon tip \"Ingedrukt houden om toe te voegen\"</string>
<string name="show_hold_to_append_summary">Toon tip als achtergrond- of pop-upknop wordt ingedrukt op de videogegevenspagina</string>
<string name="show_hold_to_append_summary">Toon tip als de achtergrond- of pop-upknop wordt ingedrukt op de videogegevenspagina</string>
<string name="background_player_append">Toegevoegd aan wachtrij voor achtergrondspeler</string>
<string name="popup_playing_append">Toegevoegd aan wachtrij voor pop-upspeler</string>
<string name="play_all">Alles afspelen</string>
@@ -237,7 +237,7 @@
<string name="play_queue_remove">Verwijderen</string>
<string name="play_queue_stream_detail">Details</string>
<string name="play_queue_audio_settings">Audio-instellingen</string>
<string name="hold_to_append">Ingedrukt houden om toe te voegen aan wachtrij</string>
<string name="hold_to_append">Houd ingedrukt om toe te voegen aan de wachtrij</string>
<string name="unknown_content">[Onbekend]</string>
<string name="enqueue_on_background">Toevoegen aan wachtrij in de achtergrond</string>
<string name="enqueue_on_popup">Toevoegen aan wachtrij in nieuwe pop-up</string>
@@ -318,7 +318,7 @@
<string name="enable_disposed_exceptions_title">Out-of-lifecycle-fouten melden</string>
<string name="enable_disposed_exceptions_summary">Forceer het melden van niet-bezorgbare Rx-uitzonderingen buiten fragment of activiteitscyclus</string>
<string name="use_inexact_seek_title">Snelle, minder exact spoelen gebruiken</string>
<string name="use_inexact_seek_summary">Onnauwkeurig zoeken laat de speler sneller posities zoeken met verminderde precisie. 5, 15 of 25 zoeken werkt dan niet.</string>
<string name="use_inexact_seek_summary">Minder exact spoelen laat de speler sneller posities zoeken met verminderde precisie. 5, 15 en 25 seconden werken niet.</string>
<string name="auto_queue_title">Volgende stream automatisch in wachtrij plaatsen</string>
<string name="auto_queue_summary">Automatisch een gerelateerde stream toekennen bij het afspelen van de laatste stream in een niet-herhalende afspeelwachtlijst</string>
<string name="file">Bestand</string>
@@ -369,7 +369,7 @@
<string name="caption_setting_description">Bijschriftgrootte en -achtergrondstijlen wijzigen. Vereist een herstart van de app.</string>
<string name="toast_no_player">Er is geen app geïnstalleerd die dit bestand kan afspelen</string>
<string name="clear_views_history_title">Kijkgeschiedenis wissen</string>
<string name="clear_views_history_summary">Verwijdert de geschiedenis van afgespeelde streams</string>
<string name="clear_views_history_summary">Verwijdert de geschiedenis van afgespeelde streams en afspeelposities</string>
<string name="delete_view_history_alert">De gehele kijkgeschiedenis wissen\?</string>
<string name="watch_history_deleted">Kijkgeschiedenis gewist.</string>
<string name="clear_search_history_title">Zoekgeschiedenis wissen</string>
@@ -458,13 +458,13 @@
<string name="stop">Stop</string>
<string name="max_retry_msg">Maximum aantal keer proberen</string>
<string name="max_retry_desc">Maximum aantal pogingen voordat de download wordt geannuleerd</string>
<string name="pause_downloads_on_mobile">Onderbreken op netwerken met datalimiet</string>
<string name="pause_downloads_on_mobile_desc">Handig bij het overschakelen naar mobiele gegevens, hoewel sommige downloads niet onderbroken kunnen worden</string>
<string name="pause_downloads_on_mobile">Pauzeren bij overschakelen naar mobiele data</string>
<string name="pause_downloads_on_mobile_desc">Handig voor wanneer u naar mobiel internet overschakelt, hoewel sommige downloads niet gepauzeerd kunnen worden</string>
<string name="events">Gebeurtenissen</string>
<string name="conferences">Conferenties</string>
<string name="error_timeout">Time-out van verbinding</string>
<string name="show_comments_title">Reacties tonen</string>
<string name="show_comments_summary">Schakel uit om reacties niet te tonen</string>
<string name="show_comments_summary">Schakel dit uit om reacties te verbergen</string>
<string name="autoplay_title">Automatisch afspelen</string>
<plurals name="comments">
<item quantity="one">%s reactie</item>
@@ -473,40 +473,40 @@
<string name="no_comments">Geen reacties</string>
<string name="error_unable_to_load_comments">Kan reacties niet laden</string>
<string name="close">Sluiten</string>
<string name="downloads_storage_use_saf_summary">Het \'Storage Access Framework\' laat downloads naar een externe SD kaart toe.
\n Niet alle toestellen zijn compatibel</string>
<string name="downloads_storage_use_saf_summary">Het \'Storage Access Framework\' laat downloads naar een externe SD kaart toe.
\nNiet alle toestellen zijn compatibel</string>
<string name="settings_category_clear_data_title">Wis data</string>
<string name="download_choose_new_path">Verander de downloadmappen om effect te bekomen</string>
<string name="enable_playback_resume_title">Afspelen hervatten</string>
<string name="enable_playback_resume_summary">Laatste afspeelpositie herstellen</string>
<string name="enable_playback_resume_title">Hervat afspelen</string>
<string name="enable_playback_resume_summary">Herstel de vorige afspeelpositie</string>
<string name="enable_playback_state_lists_title">Posities in lijsten</string>
<string name="enable_playback_state_lists_summary">Afspeelpositie-indicatoren in lijsten tonen</string>
<string name="watch_history_states_deleted">Afspeelposities verwijderd.</string>
<string name="missing_file">Bestand verplaatst of verwijderd</string>
<string name="overwrite_unrelated_warning">Een bestand met deze naam bestaat al</string>
<string name="overwrite_failed">kan het bestand niet overschrijven</string>
<string name="download_already_pending">Er is een download in behandeling met deze naam</string>
<string name="overwrite_unrelated_warning">Een bestand met dezelfde naam bestaat al</string>
<string name="overwrite_failed">het is niet mogelijk het bestand te overschrijven</string>
<string name="download_already_pending">Er is al een download met deze naam bezig</string>
<string name="error_insufficient_storage">Geen ruimte meer op het apparaat</string>
<string name="error_progress_lost">Voortgang verloren, omdat het bestand is verwijderd</string>
<string name="error_progress_lost">Voortgang verloren, omdat bestand was verwijderd</string>
<string name="confirm_prompt">Wil je je downloadgeschiedenis wissen of alle gedownloade bestanden verwijderen\?</string>
<string name="enable_queue_limit">Downloadwachtrij beperken</string>
<string name="enable_queue_limit_desc">Een download zal tegelijkertijd worden uitgevoerd</string>
<string name="start_downloads">Downloads starten</string>
<string name="enable_queue_limit">Limiteer de download wachtrij</string>
<string name="enable_queue_limit_desc">Er zal maximaal 1 bestand tegelijk worden gedownload</string>
<string name="start_downloads">Download starten</string>
<string name="pause_downloads">Downloads pauzeren</string>
<string name="downloads_storage_ask_title">Vraag waar te downloaden</string>
<string name="downloads_storage_ask_summary">Je zal gevraagd worden waar elke download op te slaan</string>
<string name="downloads_storage_ask_title">Vraag waar bestanden geplaatst moeten worden</string>
<string name="downloads_storage_ask_summary">U zal worden gevraagd waar u bestanden wilt opslaan</string>
<string name="downloads_storage_ask_summary_kitkat">Je zal gevraagd worden waar elke download op te slaan.
\nKies SAF als je wilt downloaden naar een externe SD-kaart</string>
<string name="downloads_storage_use_saf_title">SAF gebruiken</string>
<string name="clear_playback_states_title">Afspeelposities verwijderen</string>
<string name="clear_playback_states_summary">Alle afspeelposities verwijderen</string>
<string name="downloads_storage_use_saf_title">Gebruik SAF</string>
<string name="clear_playback_states_title">Verwijder afspeelposities</string>
<string name="clear_playback_states_summary">Verwijder alle afspeelposities</string>
<string name="delete_playback_states_alert">Alle afspeelposities verwijderen\?</string>
<string name="no_one_watching">Niemand kijkt</string>
<string name="no_one_watching">Niemand is aan het kijken</string>
<plurals name="watching">
<item quantity="one">%s kijkt</item>
<item quantity="other">%s kijken</item>
<item quantity="one">%s kijker</item>
<item quantity="other">%s kijkers</item>
</plurals>
<string name="no_one_listening">Niemand luistert</string>
<string name="no_one_listening">Niemand is aan het luisteren</string>
<plurals name="listening">
<item quantity="one">%s luisteraar</item>
<item quantity="other">%s luisteraars</item>
@@ -514,38 +514,38 @@
<string name="localization_changes_requires_app_restart">De taal zal veranderen zodra de app opnieuw is opgestart.</string>
<string name="default_kiosk_page_summary">Standaardkiosk</string>
<string name="seek_duration_title">Duur van snel voor-/achteruit zoeken</string>
<string name="peertube_instance_url_title">PeerTube-instanties</string>
<string name="peertube_instance_url_summary">Selecteer je favoriete PeerTube-instanties</string>
<string name="peertube_instance_url_help">Zoek de instanties die je leuk vindt op %s</string>
<string name="peertube_instance_add_title">Instantie toevoegen</string>
<string name="peertube_instance_add_help">Instantie-URL invoeren</string>
<string name="peertube_instance_add_fail">Kon instantie niet valideren</string>
<string name="peertube_instance_add_https_only">Alleen HTTPS-URL\'s worden ondersteund</string>
<string name="peertube_instance_add_exists">Instantie bestaat al</string>
<string name="peertube_instance_url_title">PeerTube instanties</string>
<string name="peertube_instance_url_summary">Favoriete PeerTube instanties instellen</string>
<string name="peertube_instance_url_help">Vind het kanaal dat je leuk vind op %s</string>
<string name="peertube_instance_add_title">Kanaal toevoegen</string>
<string name="peertube_instance_add_help">Kanaal URL invoeren</string>
<string name="peertube_instance_add_fail">Kon kanaal niet valideren</string>
<string name="peertube_instance_add_https_only">Alleen HTTPS links worden ondersteund</string>
<string name="peertube_instance_add_exists">Kanaal bestaat al</string>
<string name="local">Lokaal</string>
<string name="recently_added">Onlangs toegevoegd</string>
<string name="recently_added">Recentelijk toegevoegd</string>
<string name="playlist_no_uploader">Automatisch gegenereerd (geen uploader gevonden)</string>
<string name="recovering">herstellen</string>
<string name="error_download_resource_gone">Kan deze download niet herstellen</string>
<string name="choose_instance_prompt">Kies een instantie</string>
<string name="enable_lock_screen_video_thumbnail_title">Videominiatuur op vergrendelscherm</string>
<string name="enable_lock_screen_video_thumbnail_summary">Een videominiatuur wordt getoond op het vergrendelscherm wanneer de achtergrondspeler wordt gebruikt</string>
<string name="clear_download_history">Downloadgeschiedenis wissen</string>
<string name="delete_downloaded_files">Gedownloade bestanden verwijderen</string>
<string name="enable_lock_screen_video_thumbnail_title">Video afbeelding laten zien op vergrendelingsscherm</string>
<string name="enable_lock_screen_video_thumbnail_summary">Een video afbeelding wordt weergegeven op het vergrendelscherm wanneer de achtergrond speler wordt gebruikt</string>
<string name="clear_download_history">Download geschiedenis verwijderen</string>
<string name="delete_downloaded_files">Verwijder gedownloade bestanden</string>
<string name="deleted_downloads">%1$s downloads verwijderd</string>
<string name="permission_display_over_apps">Geef toestemming voor weergave over andere apps</string>
<string name="app_language_title">App-taal</string>
<string name="systems_language">Systeemstandaard</string>
<string name="app_language_title">Applicatie taal</string>
<string name="systems_language">Systeem taal gebruiken</string>
<string name="subtitle_activity_recaptcha">Druk op \"Klaar\" zodra opgelost</string>
<string name="recaptcha_done_button">Klaar</string>
<string name="videos_string">Video\'s</string>
<string name="new_seek_duration_toast">Door beperkingen van ExoPlayer is de zoekduur ingesteld op %d seconden</string>
<string name="mute">Dempen</string>
<string name="unmute">Dempen opheffen</string>
<string name="mute">Geluid dempen</string>
<string name="unmute">Geluid aanzetten</string>
<string name="help">Hulp</string>
<plurals name="seconds">
<item quantity="one">%d seconde</item>
<item quantity="other">%d secondes</item>
<item quantity="other">%d seconden</item>
</plurals>
<plurals name="minutes">
<item quantity="one">%d minuut</item>
@@ -560,11 +560,11 @@
<item quantity="other">%d dagen</item>
</plurals>
<string name="feed_groups_header_title">Feedgroepen</string>
<string name="feed_oldest_subscription_update">Oudste abonnementsupdate: %s</string>
<string name="feed_oldest_subscription_update">Oudste abonnements-update: %s</string>
<string name="feed_subscription_not_loaded_count">Niet geladen: %d</string>
<string name="feed_notification_loading">Feed aan het laden…</string>
<string name="feed_processing_message">Feed aan het verwerken…</string>
<string name="feed_group_dialog_select_subscriptions">Abonnementen selecteren</string>
<string name="feed_group_dialog_select_subscriptions">Selecteer abonnementen</string>
<string name="feed_group_dialog_empty_selection">Geen abonnement geselecteerd</string>
<plurals name="feed_group_dialog_selection_count">
<item quantity="one">%d geselecteerd</item>
@@ -572,7 +572,7 @@
</plurals>
<string name="feed_group_dialog_empty_name">Lege groepsnaam</string>
<string name="feed_group_dialog_name_input">Naam</string>
<string name="feed_group_dialog_delete_message">Wil je deze groep verwijderen\?</string>
<string name="feed_group_dialog_delete_message">Wilt u deze groep verwijderen\?</string>
<string name="feed_create_new_group_button_title">Nieuw</string>
<string name="settings_category_feed_title">Feed</string>
<string name="feed_update_threshold_title">Drempel voor feedupdate</string>
@@ -593,4 +593,7 @@
\nYouTube is een voorbeeld van een service die deze snelle methode aanbiedt door zijn RSS-feed.
\n
\nDe keuze komt dus neer op wat je liever hebt: snelheid of precieze informatie.</string>
<string name="drawer_header_description">Toggle service, momenteel geselecteerd:</string>
<string name="most_liked">Meest geliked</string>
<string name="error_postprocessing_stopped">NewPipe werd gesloten terwijl het bezig was met het bestand</string>
</resources>

View File

@@ -550,11 +550,62 @@
<string name="recaptcha_done_button">Gotowe</string>
<string name="videos_string">Filmy</string>
<plurals name="seconds">
<item quantity="one">%d sekund</item>
<item quantity="few">%d sekund</item>
<item quantity="one">%d sekunda</item>
<item quantity="few">%d sekundy</item>
<item quantity="many">%d sekund</item>
</plurals>
<string name="new_seek_duration_toast">Ze względu na ograniczenia ExoPlayer, czas trwania wyszukiwania został ustawiony na %d sekund</string>
<string name="mute">Wycisz</string>
<string name="unmute">Wyłącz wyciszenie</string>
<string name="feed_use_dedicated_fetch_method_help_text">Czy uważasz, że ładowanie kanałów jest zbyt powolne\? Jeśli tak, spróbuj włączyć szybkie ładowanie (możesz go zmienić w ustawieniach lub naciskając przycisk poniżej).
\n
\nNewPipe oferuje dwie strategie ładowania kanału:
\n• Pobieranie całego kanału subskrypcji, który jest powolny, ale kompletny.
\n• Korzystanie z dedykowanego punktu końcowego usługi, który jest szybki, ale zwykle nie jest kompletny.
\n
\nRóżnica między nimi polega na tym, że w szybkim zwykle brakuje pewnych informacji, takich jak czas trwania lub typ pozycji (nie można odróżnić filmów na żywo od zwykłych) i może zwrócić mniej pozycji.
\n
\nYouTube jest przykładem usługi, która oferuje tę szybką metodę z kanałem RSS.
\n
\nTak więc wybór sprowadza się do tego, co wolisz: prędkości lub precyzyjne informacje.</string>
<string name="feed_use_dedicated_fetch_method_disable_button">Wyłącz tryb szybki</string>
<string name="feed_use_dedicated_fetch_method_enable_button">Włącz tryb szybki</string>
<string name="feed_use_dedicated_fetch_method_summary">Dostępne w niektórych usługach jest zwykle znacznie szybsze, ale może zwrócić ograniczoną liczbę pozycji i często niekompletne informacje (np. Brak czasu trwania, typ pozycji, brak statusu na żywo).</string>
<string name="feed_use_dedicated_fetch_method_title">Pobierz z dedykowanego kanału, jeśli jest dostępny</string>
<string name="feed_update_threshold_option_always_update">Zawsze aktualizuj</string>
<string name="feed_update_threshold_summary">Czas po ostatniej aktualizacji, zanim subskrypcja zostanie uznana za nieaktualną — %s</string>
<string name="feed_update_threshold_title">Próg aktualizacji kanału</string>
<string name="settings_category_feed_title">Kanał</string>
<string name="feed_create_new_group_button_title">Nowy</string>
<string name="feed_group_dialog_delete_message">Czy chcesz usunąć tę grupę\?</string>
<string name="feed_group_dialog_name_input">Nazwa</string>
<string name="feed_group_dialog_empty_name">Pusta nazwa grupy</string>
<plurals name="feed_group_dialog_selection_count">
<item quantity="one">wybrany %d</item>
<item quantity="few">wybrano %d</item>
<item quantity="many">wybrano %d</item>
</plurals>
<string name="feed_group_dialog_empty_selection">Nie wybrano żadnej subskrypcji</string>
<string name="feed_group_dialog_select_subscriptions">Wybierz subskrypcje</string>
<string name="feed_processing_message">Przetwarzam plik danych…</string>
<string name="feed_notification_loading">Ładowanie kanału…</string>
<string name="feed_subscription_not_loaded_count">Nie uruchamia się: %d</string>
<string name="feed_oldest_subscription_update">Najstarsza aktualizacja subskrypcji: %s</string>
<string name="feed_groups_header_title">Grupy kanałów</string>
<plurals name="days">
<item quantity="one">%d dzień</item>
<item quantity="few">%d dni</item>
<item quantity="many">%d dni</item>
</plurals>
<plurals name="hours">
<item quantity="one">%d godzina</item>
<item quantity="few">%d godziny</item>
<item quantity="many">%d godzin</item>
</plurals>
<plurals name="minutes">
<item quantity="one">%d minuta</item>
<item quantity="few">%d minuty</item>
<item quantity="many">%d minut</item>
</plurals>
<string name="help">Pomoc</string>
</resources>

Some files were not shown because too many files have changed in this diff Show More