Merge branch 'dev' into pr2335

This commit is contained in:
Stypox 2022-01-24 10:25:07 +01:00
commit d5cfcb28fc
No known key found for this signature in database
GPG key ID: 4BDF1B40A49FDD23
110 changed files with 645 additions and 487 deletions

View file

@ -113,6 +113,7 @@ ext {
leakCanaryVersion = '2.5'
stethoVersion = '1.6.0'
mockitoVersion = '4.0.0'
assertJVersion = '3.22.0'
}
configurations {
@ -293,6 +294,7 @@ dependencies {
androidTestImplementation "androidx.test.ext:junit:1.1.3"
androidTestImplementation "androidx.test:runner:1.4.0"
androidTestImplementation "androidx.room:room-testing:${androidxRoomVersion}"
androidTestImplementation "org.assertj:assertj-core:${assertJVersion}"
}
static String getGitWorkingBranch() {

View file

@ -1,19 +1,19 @@
package org.schabi.newpipe.local.history
import androidx.test.core.app.ApplicationProvider
import org.assertj.core.api.Assertions.assertThat
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.rules.Timeout
import org.schabi.newpipe.database.AppDatabase
import org.schabi.newpipe.database.history.model.SearchHistoryEntry
import org.schabi.newpipe.testUtil.TestDatabase
import org.schabi.newpipe.testUtil.TrampolineSchedulerRule
import java.time.LocalDateTime
import java.time.OffsetDateTime
import java.util.concurrent.TimeUnit
import java.time.ZoneOffset
class HistoryRecordManagerTest {
@ -23,9 +23,6 @@ class HistoryRecordManagerTest {
@get:Rule
val trampolineScheduler = TrampolineSchedulerRule()
@get:Rule
val timeout = Timeout(1, TimeUnit.SECONDS)
@Before
fun setup() {
database = TestDatabase.createReplacingNewPipeDatabase()
@ -45,59 +42,59 @@ class HistoryRecordManagerTest {
// that the number of Lists it returns is exactly 1, we can only check if the first List is
// correct. Why on earth has a Flowable been used instead of a Single for getAll()?!?
val entities = database.searchHistoryDAO().all.blockingFirst()
assertEquals(1, entities.size)
assertEquals(1, entities[0].id)
assertEquals(0, entities[0].serviceId)
assertEquals("Hello", entities[0].search)
assertThat(entities).hasSize(1)
assertThat(entities[0].id).isEqualTo(1)
assertThat(entities[0].serviceId).isEqualTo(0)
assertThat(entities[0].search).isEqualTo("Hello")
}
@Test
fun deleteSearchHistory() {
val entries = listOf(
SearchHistoryEntry(OffsetDateTime.now(), 0, "A"),
SearchHistoryEntry(OffsetDateTime.now(), 2, "A"),
SearchHistoryEntry(OffsetDateTime.now(), 1, "B"),
SearchHistoryEntry(OffsetDateTime.now(), 0, "B"),
SearchHistoryEntry(time.minusSeconds(1), 0, "A"),
SearchHistoryEntry(time.minusSeconds(2), 2, "A"),
SearchHistoryEntry(time.minusSeconds(3), 1, "B"),
SearchHistoryEntry(time.minusSeconds(4), 0, "B"),
)
// make sure all 4 were inserted
database.searchHistoryDAO().insertAll(entries)
assertEquals(entries.size, database.searchHistoryDAO().all.blockingFirst().size)
assertThat(database.searchHistoryDAO().all.blockingFirst()).hasSameSizeAs(entries)
// try to delete only "A" entries, "B" entries should be untouched
manager.deleteSearchHistory("A").test().await().assertValue(2)
val entities = database.searchHistoryDAO().all.blockingFirst()
assertEquals(2, entities.size)
assertTrue(entries[2].hasEqualValues(entities[0]))
assertTrue(entries[3].hasEqualValues(entities[1]))
assertThat(entities).hasSize(2)
assertThat(entities).usingElementComparator { o1, o2 -> if (o1.hasEqualValues(o2)) 0 else 1 }
.containsExactly(*entries.subList(2, 4).toTypedArray())
// assert that nothing happens if we delete a search query that does exist in the db
manager.deleteSearchHistory("A").test().await().assertValue(0)
val entities2 = database.searchHistoryDAO().all.blockingFirst()
assertEquals(2, entities2.size)
assertTrue(entries[2].hasEqualValues(entities2[0]))
assertTrue(entries[3].hasEqualValues(entities2[1]))
assertThat(entities2).hasSize(2)
assertThat(entities2).usingElementComparator { o1, o2 -> if (o1.hasEqualValues(o2)) 0 else 1 }
.containsExactly(*entries.subList(2, 4).toTypedArray())
// delete all remaining entries
manager.deleteSearchHistory("B").test().await().assertValue(2)
assertEquals(0, database.searchHistoryDAO().all.blockingFirst().size)
assertThat(database.searchHistoryDAO().all.blockingFirst()).isEmpty()
}
@Test
fun deleteCompleteSearchHistory() {
val entries = listOf(
SearchHistoryEntry(OffsetDateTime.now(), 1, "A"),
SearchHistoryEntry(OffsetDateTime.now(), 2, "B"),
SearchHistoryEntry(OffsetDateTime.now(), 0, "C"),
SearchHistoryEntry(time.minusSeconds(1), 1, "A"),
SearchHistoryEntry(time.minusSeconds(2), 2, "B"),
SearchHistoryEntry(time.minusSeconds(3), 0, "C"),
)
// make sure all 3 were inserted
database.searchHistoryDAO().insertAll(entries)
assertEquals(entries.size, database.searchHistoryDAO().all.blockingFirst().size)
assertThat(database.searchHistoryDAO().all.blockingFirst()).hasSameSizeAs(entries)
// should remove everything
manager.deleteCompleteSearchHistory().test().await().assertValue(entries.size)
assertEquals(0, database.searchHistoryDAO().all.blockingFirst().size)
assertThat(database.searchHistoryDAO().all.blockingFirst()).isEmpty()
}
@Test
@ -111,11 +108,12 @@ class HistoryRecordManagerTest {
// make sure correct number of searches is returned and in correct order
val searches = manager.getRelatedSearches("", 6, 4).blockingFirst()
assertEquals(4, searches.size)
assertEquals(RELATED_SEARCHES_ENTRIES[6].search, searches[0]) // A (even if in two places)
assertEquals(RELATED_SEARCHES_ENTRIES[4].search, searches[1]) // B
assertEquals(RELATED_SEARCHES_ENTRIES[5].search, searches[2]) // AA
assertEquals(RELATED_SEARCHES_ENTRIES[2].search, searches[3]) // BA
assertThat(searches).containsExactly(
RELATED_SEARCHES_ENTRIES[6].search, // A (even if in two places)
RELATED_SEARCHES_ENTRIES[4].search, // B
RELATED_SEARCHES_ENTRIES[5].search, // AA
RELATED_SEARCHES_ENTRIES[2].search, // BA
)
}
@Test
@ -129,25 +127,28 @@ class HistoryRecordManagerTest {
// make sure correct number of searches is returned and in correct order
val searches = manager.getRelatedSearches("A", 3, 5).blockingFirst()
assertEquals(3, searches.size)
assertEquals(RELATED_SEARCHES_ENTRIES[6].search, searches[0]) // A (even if in two places)
assertEquals(RELATED_SEARCHES_ENTRIES[5].search, searches[1]) // AA
assertEquals(RELATED_SEARCHES_ENTRIES[1].search, searches[2]) // BA
assertThat(searches).containsExactly(
RELATED_SEARCHES_ENTRIES[6].search, // A (even if in two places)
RELATED_SEARCHES_ENTRIES[5].search, // AA
RELATED_SEARCHES_ENTRIES[1].search, // BA
)
// also make sure that the string comparison is case insensitive
val searches2 = manager.getRelatedSearches("a", 3, 5).blockingFirst()
assertEquals(searches, searches2)
assertThat(searches).isEqualTo(searches2)
}
companion object {
val RELATED_SEARCHES_ENTRIES = listOf(
SearchHistoryEntry(OffsetDateTime.now().minusSeconds(7), 2, "AC"),
SearchHistoryEntry(OffsetDateTime.now().minusSeconds(6), 0, "ABC"),
SearchHistoryEntry(OffsetDateTime.now().minusSeconds(5), 1, "BA"),
SearchHistoryEntry(OffsetDateTime.now().minusSeconds(4), 3, "A"),
SearchHistoryEntry(OffsetDateTime.now().minusSeconds(2), 0, "B"),
SearchHistoryEntry(OffsetDateTime.now().minusSeconds(3), 2, "AA"),
SearchHistoryEntry(OffsetDateTime.now().minusSeconds(1), 1, "A"),
private val time = OffsetDateTime.of(LocalDateTime.of(2000, 1, 1, 1, 1), ZoneOffset.UTC)
private val RELATED_SEARCHES_ENTRIES = listOf(
SearchHistoryEntry(time.minusSeconds(7), 2, "AC"),
SearchHistoryEntry(time.minusSeconds(6), 0, "ABC"),
SearchHistoryEntry(time.minusSeconds(5), 1, "BA"),
SearchHistoryEntry(time.minusSeconds(4), 3, "A"),
SearchHistoryEntry(time.minusSeconds(2), 0, "B"),
SearchHistoryEntry(time.minusSeconds(3), 2, "AA"),
SearchHistoryEntry(time.minusSeconds(1), 1, "A"),
)
}
}

View file

@ -4,13 +4,11 @@ import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.rules.Timeout
import org.schabi.newpipe.database.AppDatabase
import org.schabi.newpipe.database.stream.model.StreamEntity
import org.schabi.newpipe.extractor.stream.StreamType
import org.schabi.newpipe.testUtil.TestDatabase
import org.schabi.newpipe.testUtil.TrampolineSchedulerRule
import java.util.concurrent.TimeUnit
class LocalPlaylistManagerTest {
@ -20,9 +18,6 @@ class LocalPlaylistManagerTest {
@get:Rule
val trampolineScheduler = TrampolineSchedulerRule()
@get:Rule
val timeout = Timeout(1, TimeUnit.SECONDS)
@Before
fun setup() {
database = TestDatabase.createReplacingNewPipeDatabase()

View file

@ -1,79 +0,0 @@
package org.schabi.newpipe.database.history.model;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.Ignore;
import androidx.room.Index;
import androidx.room.PrimaryKey;
import java.time.OffsetDateTime;
import static org.schabi.newpipe.database.history.model.SearchHistoryEntry.SEARCH;
@Entity(tableName = SearchHistoryEntry.TABLE_NAME,
indices = {@Index(value = SEARCH)})
public class SearchHistoryEntry {
public static final String ID = "id";
public static final String TABLE_NAME = "search_history";
public static final String SERVICE_ID = "service_id";
public static final String CREATION_DATE = "creation_date";
public static final String SEARCH = "search";
@ColumnInfo(name = ID)
@PrimaryKey(autoGenerate = true)
private long id;
@ColumnInfo(name = CREATION_DATE)
private OffsetDateTime creationDate;
@ColumnInfo(name = SERVICE_ID)
private int serviceId;
@ColumnInfo(name = SEARCH)
private String search;
public SearchHistoryEntry(final OffsetDateTime creationDate, final int serviceId,
final String search) {
this.serviceId = serviceId;
this.creationDate = creationDate;
this.search = search;
}
public long getId() {
return id;
}
public void setId(final long id) {
this.id = id;
}
public OffsetDateTime getCreationDate() {
return creationDate;
}
public void setCreationDate(final OffsetDateTime creationDate) {
this.creationDate = creationDate;
}
public int getServiceId() {
return serviceId;
}
public void setServiceId(final int serviceId) {
this.serviceId = serviceId;
}
public String getSearch() {
return search;
}
public void setSearch(final String search) {
this.search = search;
}
@Ignore
public boolean hasEqualValues(final SearchHistoryEntry otherEntry) {
return getServiceId() == otherEntry.getServiceId()
&& getSearch().equals(otherEntry.getSearch());
}
}

View file

@ -0,0 +1,40 @@
package org.schabi.newpipe.database.history.model
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.Ignore
import androidx.room.Index
import androidx.room.PrimaryKey
import java.time.OffsetDateTime
@Entity(
tableName = SearchHistoryEntry.TABLE_NAME,
indices = [Index(value = [SearchHistoryEntry.SEARCH])]
)
data class SearchHistoryEntry(
@field:ColumnInfo(name = CREATION_DATE) var creationDate: OffsetDateTime?,
@field:ColumnInfo(
name = SERVICE_ID
) var serviceId: Int,
@field:ColumnInfo(name = SEARCH) var search: String?
) {
@ColumnInfo(name = ID)
@PrimaryKey(autoGenerate = true)
var id: Long = 0
@Ignore
fun hasEqualValues(otherEntry: SearchHistoryEntry): Boolean {
return (
serviceId == otherEntry.serviceId &&
search == otherEntry.search
)
}
companion object {
const val ID = "id"
const val TABLE_NAME = "search_history"
const val SERVICE_ID = "service_id"
const val CREATION_DATE = "creation_date"
const val SEARCH = "search"
}
}

View file

@ -1098,6 +1098,11 @@ public final class VideoDetailFragment
toggleFullscreenIfInFullscreenMode();
if (isPlayerAvailable()) {
// FIXME Workaround #7427
player.setRecovery();
}
if (!useExternalAudioPlayer) {
openNormalBackgroundPlayer(append);
} else {
@ -1114,6 +1119,9 @@ public final class VideoDetailFragment
// See UI changes while remote playQueue changes
if (!isPlayerAvailable()) {
playerHolder.startService(false, this);
} else {
// FIXME Workaround #7427
player.setRecovery();
}
toggleFullscreenIfInFullscreenMode();
@ -2208,12 +2216,20 @@ public final class VideoDetailFragment
mainFragment.setDescendantFocusability(afterDescendants);
toolbar.setDescendantFocusability(afterDescendants);
((ViewGroup) requireView()).setDescendantFocusability(blockDescendants);
mainFragment.requestFocus();
// Only focus the mainFragment if the mainFragment (e.g. search-results)
// or the toolbar (e.g. Textfield for search) don't have focus.
// This was done to fix problems with the keyboard input, see also #7490
if (!mainFragment.hasFocus() && !toolbar.hasFocus()) {
mainFragment.requestFocus();
}
} else {
mainFragment.setDescendantFocusability(blockDescendants);
toolbar.setDescendantFocusability(blockDescendants);
((ViewGroup) requireView()).setDescendantFocusability(afterDescendants);
binding.detailThumbnailRootLayout.requestFocus();
// Only focus the player if it not already has focus
if (!binding.getRoot().hasFocus()) {
binding.detailThumbnailRootLayout.requestFocus();
}
}
}

View file

@ -268,7 +268,10 @@ public class PlaylistFragment extends BaseListInfoFragment<PlaylistInfo> {
ShareUtils.openUrlInBrowser(requireContext(), url);
break;
case R.id.menu_item_share:
ShareUtils.shareText(requireContext(), name, url, currentInfo.getThumbnailUrl());
if (currentInfo != null) {
ShareUtils.shareText(requireContext(), name, url,
currentInfo.getThumbnailUrl());
}
break;
case R.id.menu_item_bookmark:
onBookmarkClicked();

View file

@ -271,7 +271,7 @@ class FeedFragment : BaseStateFragment<FeedState>() {
override fun onDestroyView() {
// Ensure that all animations are canceled
feedBinding.newItemsLoadedButton?.clearAnimation()
tryGetNewItemsLoadedButton()?.clearAnimation()
feedBinding.itemsList.adapter = null
_feedBinding = null

View file

@ -635,6 +635,7 @@ public final class Player implements
final boolean isMuted = intent.getBooleanExtra(IS_MUTED, isMuted());
/*
* TODO As seen in #7427 this does not work:
* There are 3 situations when playback shouldn't be started from scratch (zero timestamp):
* 1. User pressed on a timestamp link and the same video should be rewound to the timestamp
* 2. User changed a player from, for example. main to popup, or from audio to main, etc

View file

@ -157,9 +157,8 @@ public final class NavigationHelper {
return;
}
if (PlayerHolder.getInstance().getType() != PlayerType.POPUP) {
Toast.makeText(context, R.string.popup_playing_toast, Toast.LENGTH_SHORT).show();
}
Toast.makeText(context, R.string.popup_playing_toast, Toast.LENGTH_SHORT).show();
final Intent intent = getPlayerIntent(context, MainPlayer.class, queue, resumePlayback);
intent.putExtra(Player.PLAYER_TYPE, MainPlayer.PlayerType.POPUP.ordinal());
ContextCompat.startForegroundService(context, intent);
@ -168,12 +167,7 @@ public final class NavigationHelper {
public static void playOnBackgroundPlayer(final Context context,
final PlayQueue queue,
final boolean resumePlayback) {
Toast.makeText(
context,
PlayerHolder.getInstance().getType() == PlayerType.AUDIO
? R.string.background_player_already_playing_toast
: R.string.background_player_playing_toast,
Toast.LENGTH_SHORT)
Toast.makeText(context, R.string.background_player_playing_toast, Toast.LENGTH_SHORT)
.show();
final Intent intent = getPlayerIntent(context, MainPlayer.class, queue, resumePlayback);

View file

@ -2,6 +2,7 @@ package org.schabi.newpipe.util;
import android.content.Context;
import android.net.Uri;
import android.util.Log;
import android.widget.Toast;
import androidx.fragment.app.Fragment;
@ -21,6 +22,7 @@ import org.schabi.newpipe.util.external_communication.ShareUtils;
import java.util.Collections;
import java.util.List;
import java.util.function.Consumer;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.schedulers.Schedulers;
@ -63,20 +65,24 @@ public enum StreamDialogEntry {
* Info: Add this entry within showStreamDialog.
*/
enqueue(R.string.enqueue_stream, (fragment, item) -> {
NavigationHelper.enqueueOnPlayer(fragment.getContext(), new SinglePlayQueue(item));
fetchItemInfoIfSparse(fragment, item, fullItem ->
NavigationHelper.enqueueOnPlayer(fragment.getContext(), fullItem));
}),
enqueue_next(R.string.enqueue_next_stream, (fragment, item) -> {
NavigationHelper.enqueueNextOnPlayer(fragment.getContext(), new SinglePlayQueue(item));
fetchItemInfoIfSparse(fragment, item, fullItem ->
NavigationHelper.enqueueNextOnPlayer(fragment.getContext(), fullItem));
}),
start_here_on_background(R.string.start_here_on_background, (fragment, item) ->
NavigationHelper.playOnBackgroundPlayer(fragment.getContext(),
new SinglePlayQueue(item), true)),
start_here_on_background(R.string.start_here_on_background, (fragment, item) -> {
fetchItemInfoIfSparse(fragment, item, fullItem ->
NavigationHelper.playOnBackgroundPlayer(fragment.getContext(), fullItem, true));
}),
start_here_on_popup(R.string.start_here_on_popup, (fragment, item) ->
NavigationHelper.playOnPopupPlayer(fragment.getContext(),
new SinglePlayQueue(item), true)),
start_here_on_popup(R.string.start_here_on_popup, (fragment, item) -> {
fetchItemInfoIfSparse(fragment, item, fullItem ->
NavigationHelper.playOnPopupPlayer(fragment.getContext(), fullItem, true));
}),
set_as_playlist_thumbnail(R.string.set_as_playlist_thumbnail, (fragment, item) -> {
}), // has to be set manually
@ -218,4 +224,39 @@ public enum StreamDialogEntry {
fragment.requireActivity().getSupportFragmentManager(),
item.getServiceId(), uploaderUrl, item.getUploaderName());
}
/////////////////////////////////////////////
// helper functions //
/////////////////////////////////////////////
private static void fetchItemInfoIfSparse(final Fragment fragment,
final StreamInfoItem item,
final Consumer<SinglePlayQueue> callback) {
if (!(item.getStreamType() == StreamType.LIVE_STREAM
|| item.getStreamType() == StreamType.AUDIO_LIVE_STREAM)
&& item.getDuration() < 0) {
// Sparse item: fetched by fast fetch
ExtractorHelper.getStreamInfo(
item.getServiceId(),
item.getUrl(),
false
)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(result -> {
final HistoryRecordManager recordManager =
new HistoryRecordManager(fragment.getContext());
recordManager.saveStreamState(result, 0)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnError(throwable -> Log.e("StreamDialogEntry",
throwable.toString()))
.subscribe();
callback.accept(new SinglePlayQueue(result));
}, throwable -> Log.e("StreamDialogEntry", throwable.toString()));
} else {
callback.accept(new SinglePlayQueue(item));
}
}
}

View file

@ -651,7 +651,6 @@
android:layout_height="60dp"
android:layout_alignParentStart="true"
android:background="@color/transparent_background_color"
android:contentDescription="@string/list_thumbnail_view_description"
android:gravity="center_vertical"
android:paddingLeft="@dimen/video_item_search_padding"
android:paddingRight="@dimen/video_item_search_padding"

View file

@ -626,7 +626,6 @@
android:layout_height="60dp"
android:layout_alignParentStart="true"
android:background="@color/transparent_background_color"
android:contentDescription="@string/list_thumbnail_view_description"
android:gravity="center_vertical"
android:paddingLeft="@dimen/video_item_search_padding"
android:paddingRight="@dimen/video_item_search_padding"

View file

@ -63,7 +63,6 @@
android:layout_width="@dimen/video_item_search_thumbnail_image_width"
android:layout_height="@dimen/video_item_search_thumbnail_image_height"
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
android:contentDescription="@string/list_thumbnail_view_description"
android:src="@drawable/buddy"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/itemTitleView"

View file

@ -15,7 +15,6 @@
android:layout_height="42dp"
android:layout_centerVertical="true"
android:layout_marginRight="12dp"
android:contentDescription="@string/list_thumbnail_view_description"
android:src="@drawable/buddy_channel_item"
tools:ignore="RtlHardcoded" />

View file

@ -18,7 +18,6 @@
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
android:contentDescription="@string/list_thumbnail_view_description"
android:focusable="false"
android:src="@drawable/buddy"
tools:ignore="RtlHardcoded" />

View file

@ -16,7 +16,6 @@
android:layout_height="42dp"
android:layout_centerVertical="true"
android:layout_marginRight="12dp"
android:contentDescription="@string/list_thumbnail_view_description"
android:src="@drawable/buddy_channel_item"
tools:ignore="RtlHardcoded" />

View file

@ -17,7 +17,6 @@
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
android:contentDescription="@string/list_thumbnail_view_description"
android:scaleType="centerCrop"
android:src="@drawable/dummy_thumbnail_playlist"
tools:ignore="RtlHardcoded" />

View file

@ -18,7 +18,6 @@
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
android:contentDescription="@string/list_thumbnail_view_description"
android:scaleType="centerCrop"
android:src="@drawable/dummy_thumbnail_playlist"
tools:ignore="RtlHardcoded" />

View file

@ -18,7 +18,6 @@
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
android:contentDescription="@string/list_thumbnail_view_description"
android:scaleType="centerCrop"
android:src="@drawable/dummy_thumbnail_playlist"
tools:ignore="RtlHardcoded" />

View file

@ -14,7 +14,6 @@
android:id="@+id/itemThumbnailView"
android:layout_width="@dimen/video_item_grid_thumbnail_image_width"
android:layout_height="@dimen/video_item_grid_thumbnail_image_height"
android:contentDescription="@string/list_thumbnail_view_description"
android:scaleType="centerCrop"
android:src="@drawable/dummy_thumbnail"
app:layout_constraintEnd_toEndOf="parent"

View file

@ -14,7 +14,6 @@
android:id="@+id/itemThumbnailView"
android:layout_width="@dimen/video_item_search_thumbnail_image_width"
android:layout_height="@dimen/video_item_search_thumbnail_image_height"
android:contentDescription="@string/list_thumbnail_view_description"
android:scaleType="centerCrop"
android:src="@drawable/dummy_thumbnail"
app:layout_constraintBottom_toTopOf="@+id/itemProgressView"

View file

@ -17,7 +17,6 @@
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
android:contentDescription="@string/list_thumbnail_view_description"
android:scaleType="centerCrop"
android:src="@drawable/dummy_thumbnail"
tools:ignore="RtlHardcoded" />

View file

@ -17,7 +17,6 @@
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
android:contentDescription="@string/list_thumbnail_view_description"
android:scaleType="centerCrop"
android:src="@drawable/dummy_thumbnail"
tools:ignore="RtlHardcoded" />

View file

@ -18,7 +18,6 @@
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
android:contentDescription="@string/list_thumbnail_view_description"
android:scaleType="centerCrop"
android:src="@drawable/dummy_thumbnail"
tools:ignore="RtlHardcoded" />

View file

@ -21,7 +21,6 @@
android:id="@+id/thumbnail_view"
android:layout_width="48dp"
android:layout_height="48dp"
android:contentDescription="@string/list_thumbnail_view_description"
tools:src="@drawable/buddy_channel_item" />
<org.schabi.newpipe.views.NewPipeTextView

View file

@ -17,7 +17,6 @@
android:layout_marginStart="@dimen/video_item_search_image_right_margin"
android:layout_marginTop="@dimen/video_item_search_image_right_margin"
android:layout_marginBottom="@dimen/video_item_search_image_right_margin"
android:contentDescription="@string/list_thumbnail_view_description"
android:scaleType="centerCrop"
android:src="@drawable/dummy_thumbnail"
app:layout_constraintBottom_toBottomOf="parent"

View file

@ -17,7 +17,6 @@
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="5dp"
android:contentDescription="@string/list_thumbnail_view_description"
android:src="@drawable/buddy"
tools:ignore="RtlHardcoded" />

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Before After
Before After

View file

@ -21,7 +21,6 @@
<string name="install">تثبيت</string>
<string name="kore_not_found">تطبيق Kore غير موجود. هل تريد تثبيته؟</string>
<string name="light_theme_title">فاتح</string>
<string name="list_thumbnail_view_description">صور معاينة الفيديو</string>
<string name="network_error">خطأ في الشبكة</string>
<string name="no_player_found">لم يتم العثور على مشغل بث. تثبيت VLC؟</string>
<string name="open_in_browser">افتح في المتصفح</string>

View file

@ -458,7 +458,6 @@
<string name="detail_drag_description">Arrastra pa reordenar</string>
<string name="detail_uploader_thumbnail_view_description">Avatar del xubidor</string>
<string name="detail_thumbnail_view_description">Reproducción d\'un videu, duración:</string>
<string name="list_thumbnail_view_description">Miniatura del videu</string>
<string name="your_comment">Un comentariu (n\'inglés):</string>
<string name="what_happened_headline">Qué pasó:</string>
<string name="error_snackbar_action">Informar</string>

View file

@ -288,7 +288,6 @@
<string name="detail_likes_img_view_description">Layklar</string>
<string name="detail_uploader_thumbnail_view_description">Yuklovchining avatar eskizi</string>
<string name="detail_thumbnail_view_description">Videoni ijro etish muddati, davomiyligi:</string>
<string name="list_thumbnail_view_description">Videoni oldindan ko\'rish uchun eskiz</string>
<string name="error_details_headline">Detallar:</string>
<string name="your_comment">Sizning sharhingiz (ingliz tilida):</string>
<string name="info_labels">Nima: \\n So\'rov: \\nTarkib tili: \\nTarkib mamlakati: \\nIlova tili: \\ nXizmat: \\ nGMT vaqti: \\ nPaket: \\ nVersion: \\ nOS versiyasi:</string>

View file

@ -155,7 +155,6 @@
<string name="info_labels">详情:\\n请求\\n内容语言\\n内容国家\\n客户端语言\\n服务\\nGMT时间\\n包名\\n版本\\n操作系统版本</string>
<string name="your_comment">您的附加说明(请用英文):</string>
<string name="error_details_headline">详细信息:</string>
<string name="list_thumbnail_view_description">视频预览缩略图</string>
<string name="detail_thumbnail_view_description">播放视频,时长:</string>
<string name="detail_uploader_thumbnail_view_description">视频上传者的头像缩略图</string>
<string name="short_billion">十亿</string>

View file

@ -153,7 +153,6 @@
<string name="info_labels">Што:\\nЗапыт:\\nМова кантэнту:\\nСэрвіс:\\nЧас па Грынвічы:\\nПакет:\\nВерсія:\\nВерсія АС:</string>
<string name="your_comment">Ваш каментар (English):</string>
<string name="error_details_headline">Падрабязнасці:</string>
<string name="list_thumbnail_view_description">Мініяцюра відэа-прэв\'ю</string>
<string name="detail_thumbnail_view_description">Мініяцюра відэа-прэв\'ю</string>
<string name="detail_uploader_thumbnail_view_description">Мініяцюра аватара карыстальніка</string>
<string name="detail_likes_img_view_description">Спадабалася</string>

View file

@ -213,7 +213,6 @@
<string name="video_streams_empty">Не са намерени видео стриймове</string>
<string name="audio_streams_empty">Не са намерени аудио стриймове</string>
<string name="info_labels">Какво:\\nЗаявка:\\nЕзик на съдържанието:\\nУслуга:\\nВреме по GMT:\\nПакет:\\nВерсия:\\nОС версия:</string>
<string name="list_thumbnail_view_description">Миниатюра на видео</string>
<string name="detail_drag_description">Пренареди чрез плъзгане</string>
<string name="start">Начало</string>
<string name="rename">Преименувай</string>

View file

@ -77,7 +77,6 @@
<string name="your_comment">তোমার মন্তব্য (ইংরেজিতে):</string>
<string name="error_details_headline">বর্ণনা:</string>
<!-- Content descriptions (for better accessibility) -->
<string name="list_thumbnail_view_description">ভিডিও প্রাকদর্শন থাম্বনেইল</string>
<string name="detail_thumbnail_view_description">ভিডিও প্রাকদর্শন, সময়ঃ</string>
<string name="detail_uploader_thumbnail_view_description">আপলোডারের ইউজারপিক থাম্বনেইল</string>
<string name="detail_likes_img_view_description">পছন্দ হয়েছে</string>

View file

@ -31,7 +31,6 @@
<string name="detail_likes_img_view_description">পছন্দ হয়েছে</string>
<string name="detail_uploader_thumbnail_view_description">আপলোডারের ইউজারপিক থাম্বনেইল</string>
<string name="detail_thumbnail_view_description">ভিডিও প্রাকদর্শন, সময়ঃ</string>
<string name="list_thumbnail_view_description">ভিডিও প্রাকদর্শন থাম্বনেইল</string>
<string name="error_details_headline">বর্ণনা:</string>
<string name="your_comment">আপনার মন্তব্য (ইংরেজিতে):</string>
<string name="info_labels">কি:\\nঅনুরোধ:\\nকন্টেন্ট ভাষা:\\nসার্ভিস:\\nসময়(GMT এ):\\nপ্যাকেজ:\\nসংস্করণ:\\nওএস সংস্করণ:\\nআইপি পরিসর:</string>

View file

@ -116,7 +116,6 @@
<string name="detail_likes_img_view_description">পছন্দ</string>
<string name="detail_uploader_thumbnail_view_description">আপলোডারের অবয়বের প্রতিচ্ছবি</string>
<string name="detail_thumbnail_view_description">ভিডিও চালাও, সময়ঃ</string>
<string name="list_thumbnail_view_description">ভিডিও প্রাকদর্শন প্রতিচ্ছবি</string>
<string name="error_details_headline">বর্ণনা:</string>
<string name="your_comment">তোমার মন্তব্য (ইংরেজিতে):</string>
<string name="info_labels">কি:\\nঅনুরোধ:\\nকন্টেন্ট ভাষা:\\nসার্ভিস:\\nসময়(GMT এ):\\nপ্যাকেজ:\\nসংস্করণ:\\nওএস সংস্করণ:\\nআইপি পরিসর:</string>

View file

@ -161,7 +161,6 @@
<string name="what_happened_headline">Què ha passat:</string>
<string name="your_comment">Comentari (en anglès):</string>
<string name="error_details_headline">Detalls:</string>
<string name="list_thumbnail_view_description">Miniatura de previsualització del vídeo</string>
<string name="detail_thumbnail_view_description">Reprodueix el vídeo, duració:</string>
<string name="detail_uploader_thumbnail_view_description">Miniatura de l\'avatar del propietari</string>
<string name="detail_likes_img_view_description">M\'agrada</string>

View file

@ -177,7 +177,6 @@
<string name="auto_queue_title">خستنه‌ نۆبه‌تی-خۆكاری په‌خشی دواتر</string>
<string name="external_player_unsupported_link_type">لێده‌ره‌ دەرەکییەکان پشتگیری ئەم جۆرە بەستەرانە ناکەن</string>
<string name="permission_denied">کردار ڕەتکرایەوە لەلایەن سیستەمەوە</string>
<string name="list_thumbnail_view_description">زووبینینی وێنۆچکەی ڤیدیۆ</string>
<string name="controls_popup_title">په‌نجه‌ره‌</string>
<string name="black_theme_title">ڕه‌ش</string>
<string name="default_popup_resolution_title">قه‌باره‌ی بنەڕەتی په‌نجه‌ره‌</string>

View file

@ -42,7 +42,6 @@
<string name="youtube_signature_deobfuscation_error">Nebylo možné dekódovat URL videa</string>
<string name="parsing_error">Nebylo možné analyzovat stránku</string>
<string name="content_not_available">Obsah není k dispozici</string>
<string name="list_thumbnail_view_description">Náhled videa</string>
<string name="detail_thumbnail_view_description">Přehrát video, délka:</string>
<string name="detail_uploader_thumbnail_view_description">Náhled avataru uploadera</string>
<string name="detail_likes_img_view_description">To se mi líbí</string>

View file

@ -171,7 +171,6 @@
<string name="what_happened_headline">Hvad skete der:</string>
<string name="your_comment">Din kommentar (på engelsk):</string>
<string name="error_details_headline">Detaljer:</string>
<string name="list_thumbnail_view_description">Videominiaturebillede</string>
<string name="detail_thumbnail_view_description">Videominiaturebillede</string>
<string name="detail_uploader_thumbnail_view_description">Uploaders profilbillede</string>
<string name="detail_likes_img_view_description">Synes godt om</string>

View file

@ -26,7 +26,6 @@
<string name="unsupported_url">Nicht unterstützte URL</string>
<string name="settings_category_video_audio_title">Video und Audio</string>
<string name="content_language_title">Bevorzugte Sprache des Inhalts</string>
<string name="list_thumbnail_view_description">Video-Vorschaubild</string>
<string name="detail_thumbnail_view_description">Video abspielen, Dauer:</string>
<string name="detail_uploader_thumbnail_view_description">Avatarbild des Benutzers</string>
<string name="detail_dislikes_img_view_description">Gefällt mir nicht</string>

View file

@ -37,7 +37,6 @@
<string name="settings_category_appearance_title">Εμφάνιση</string>
<string name="background_player_playing_toast">Αναπαραγωγή στο παρασκήνιο</string>
<string name="network_error">Σφάλμα δικτύου</string>
<string name="list_thumbnail_view_description">Μικρογραφία προεπισκόπησης βίντεο</string>
<string name="detail_thumbnail_view_description">Αναπαραγωγή βίντεο, διάρκεια:</string>
<string name="detail_uploader_thumbnail_view_description">Μικρογραφία εικόνας προφίλ του χρήστη</string>
<string name="detail_likes_img_view_description">Like</string>

View file

@ -38,7 +38,6 @@
<string name="could_not_load_thumbnails">Ĉiuj bildetoj ne ŝargeblas</string>
<string name="youtube_signature_deobfuscation_error">La subskribo de la ligilo de la filmeto ne malĉifreblas</string>
<string name="parsing_error">La retejo ne analizeblas</string>
<string name="list_thumbnail_view_description">Bildeto de la antaŭrigardo de la filmeto</string>
<string name="detail_thumbnail_view_description">Ludi filmeton, daŭro:</string>
<string name="detail_uploader_thumbnail_view_description">Bildeto de la alŝutinto</string>
<string name="download_path_title">Elŝutujo por filmetoj</string>

View file

@ -42,7 +42,6 @@
<string name="parsing_error">No se pudo analizar el sitio web</string>
<string name="show_next_and_similar_title">Mostrar vídeos \'Siguientes\' y \'Similares\'</string>
<string name="content_language_title">Idioma predefinido del contenido</string>
<string name="list_thumbnail_view_description">Miniatura de previsualización del vídeo</string>
<string name="detail_thumbnail_view_description">Reproducir vídeo; duración:</string>
<string name="detail_likes_img_view_description">Me gusta</string>
<string name="detail_dislikes_img_view_description">No me gusta</string>

View file

@ -148,7 +148,6 @@
<string name="info_labels">Mis:\\nPäring:\\nSisu keel:\\nSisu maa:\\nRakenduse keel:\\nTeenus:\\nGMT aeg:\\nPakett:\\nVersioon:\\nOS versioon:</string>
<string name="your_comment">Oma kommentaar (inglise keeles):</string>
<string name="error_details_headline">Üksikasjad:</string>
<string name="list_thumbnail_view_description">Video eelvaate pisipilt</string>
<string name="detail_thumbnail_view_description">Esita video, kestus:</string>
<string name="detail_uploader_thumbnail_view_description">Üleslaadiaja avatari pisipilt</string>
<string name="detail_likes_img_view_description">Meeldib</string>

View file

@ -24,7 +24,6 @@
<string name="unsupported_url">URLak ez du euskarririk</string>
<string name="content_language_title">Edukiaren hizkuntz lehenetsia</string>
<string name="settings_category_video_audio_title">Bideoa eta audioa</string>
<string name="list_thumbnail_view_description">Bideoaren aurreikuspen argazkitxoa</string>
<string name="detail_thumbnail_view_description">Erreproduzitu bideoa, iraupena:</string>
<string name="detail_uploader_thumbnail_view_description">Igotzailearen abatarraren iruditxoa</string>
<string name="detail_dislikes_img_view_description">Ez dute gustoko</string>

View file

@ -58,7 +58,6 @@
<string name="what_happened_headline">چه روی داد:</string>
<string name="your_comment">توضیح شما (به انگلیسی):</string>
<string name="error_details_headline">جزییات:</string>
<string name="list_thumbnail_view_description">بندانگشتی پیش‌نمایش ویدیو</string>
<string name="detail_thumbnail_view_description">پخش ویدیو، مدت زمان:</string>
<string name="detail_uploader_thumbnail_view_description">بندانگشتی کاربر بارگذاری کننده</string>
<string name="detail_likes_img_view_description">پسندها</string>

View file

@ -95,7 +95,6 @@
<string name="what_happened_headline">Mitä tapahtui:</string>
<string name="your_comment">Sinun viesti (englanniksi):</string>
<string name="error_details_headline">Yksityiskohdat:</string>
<string name="list_thumbnail_view_description">Videon esikatselukuva</string>
<string name="detail_thumbnail_view_description">Toista video, kesto:</string>
<string name="detail_uploader_thumbnail_view_description">Lataajan hahmokuvake</string>
<string name="detail_likes_img_view_description">Tykkäykset</string>

View file

@ -25,7 +25,6 @@
<string name="show_next_and_similar_title">Afficher les vidéos « Suivantes » et « Similaires »</string>
<string name="unsupported_url">URL non pris en charge</string>
<string name="settings_category_video_audio_title">Vidéo et audio</string>
<string name="list_thumbnail_view_description">Miniature daperçu vidéo</string>
<string name="detail_thumbnail_view_description">Lecture vidéo, durée :</string>
<string name="detail_dislikes_img_view_description">Je naime pas</string>
<string name="detail_likes_img_view_description">Jaime</string>

View file

@ -152,7 +152,6 @@
<string name="info_labels">Que: \\n Solicitar: \\n Idioma de contido: \\n País de contido: \\n Idioma do aplicativo: \\nServicio: \\n Tempo GMT: \\n Paquete: \\n Versión: \\n versión de nOS:</string>
<string name="your_comment">O teu comentario (en inglés):</string>
<string name="error_details_headline">Detalles:</string>
<string name="list_thumbnail_view_description">Miniatura do vídeo</string>
<string name="detail_thumbnail_view_description">Reproducir o vídeo, duración:</string>
<string name="detail_uploader_thumbnail_view_description">Miniatura do avatar do autor</string>
<string name="detail_likes_img_view_description">Gosto</string>

View file

@ -105,7 +105,6 @@
<string name="player_recoverable_failure">מתבצעת החלמה משגיאת נגן</string>
<string name="your_comment">ההערה שלך (באנגלית):</string>
<string name="error_details_headline">פרטים:</string>
<string name="list_thumbnail_view_description">תמונה ממוזערת לתצוגה המקדימה של הסרטון</string>
<string name="detail_thumbnail_view_description">נגינת סרטון, משך:</string>
<string name="detail_uploader_thumbnail_view_description">תמונה ייצוגית של המפרסם</string>
<string name="detail_likes_img_view_description">אהבו</string>

View file

@ -119,7 +119,6 @@
<string name="info_labels">क्या:\\nमांग:\\nविषयवस्तु की भाषा:\\nसेवा:\\nजीएमटी समय:\\nपैकेज:\\nसंस्करण:\\nOS संस्करण:</string>
<string name="your_comment">आपकी टिप्पणी:</string>
<string name="error_details_headline">विवरण:</string>
<string name="list_thumbnail_view_description">विडियो के thumbnail के पूर्व दर्शन</string>
<string name="detail_thumbnail_view_description">वीडियो चलाये, समय :</string>
<string name="detail_uploader_thumbnail_view_description">अपलोडर के thumbnail वाले फोटो</string>
<string name="detail_likes_img_view_description">पसंद</string>

View file

@ -92,7 +92,6 @@
<string name="info_labels">Što:\\nZahtjev:\\nJezik sadržaja:\\nZemlja sadržaja:\\nJezik programa:\\nUsluga:\\nGMT vrijeme:\\nPaket:\\nVerzija:\\nVerzija OS-a:</string>
<string name="your_comment">Vaš komentar (na engleskom):</string>
<string name="error_details_headline">Detalji:</string>
<string name="list_thumbnail_view_description">Sličica pregleda videozapisa</string>
<string name="detail_thumbnail_view_description">Pokreni video, trajanje:</string>
<string name="detail_uploader_thumbnail_view_description">Profilna slika prenositelja</string>
<string name="detail_likes_img_view_description">Goreglasovi</string>

View file

@ -39,7 +39,6 @@
<string name="download_path_audio_summary">A letöltött hangfájlok itt találhatóak</string>
<string name="detail_likes_img_view_description">Tetszik</string>
<string name="detail_dislikes_img_view_description">Nem tetszik</string>
<string name="list_thumbnail_view_description">Előnézeti kép</string>
<string name="detail_thumbnail_view_description">Videó lejátszása, hossz:</string>
<string name="detail_uploader_thumbnail_view_description">Fetöltő profilképe</string>
<string name="content">Tartalom</string>

View file

@ -55,7 +55,6 @@
<string name="what_happened_headline">Yang terjadi:</string>
<string name="your_comment">Komentar Anda (dalam bahasa Inggris):</string>
<string name="error_details_headline">Detail:</string>
<string name="list_thumbnail_view_description">Thumbnail pratinjau video</string>
<string name="detail_thumbnail_view_description">Putar video, durasi:</string>
<string name="detail_likes_img_view_description">Suka</string>
<string name="detail_uploader_thumbnail_view_description">Thumbnail avatar pengunggah</string>

View file

@ -26,7 +26,6 @@
<string name="unsupported_url">URL non supportato</string>
<string name="content_language_title">Lingua predefinita per i contenuti</string>
<string name="settings_category_video_audio_title">Video e audio</string>
<string name="list_thumbnail_view_description">Copertina di anteprima video</string>
<string name="detail_thumbnail_view_description">Riproduci video, durata:</string>
<string name="detail_uploader_thumbnail_view_description">Immagine dell\'utente</string>
<string name="detail_dislikes_img_view_description">Non mi piace</string>

View file

@ -26,7 +26,6 @@
<string name="unsupported_url">対応していないURLです</string>
<string name="content_language_title">デフォルトの言語</string>
<string name="settings_category_video_audio_title">動画と音声</string>
<string name="list_thumbnail_view_description">動画 プレビュー サムネイル</string>
<string name="detail_thumbnail_view_description">ビデオ再生、時間:</string>
<string name="detail_uploader_thumbnail_view_description">投稿者アイコンのサムネイル</string>
<string name="detail_dislikes_img_view_description">低評価</string>

View file

@ -65,7 +65,6 @@
<string name="detail_likes_img_view_description">Evîn</string>
<string name="detail_uploader_thumbnail_view_description">Nîgariya avatar ya barkêşker</string>
<string name="detail_thumbnail_view_description">Vîdeo, demdirêj bilîze:</string>
<string name="list_thumbnail_view_description">Pêşniyara vîdyoyê wêneyê piçûk</string>
<string name="error_details_headline">Hûrî:</string>
<string name="your_comment">Şîroveya we (bi Îngilîzî):</string>
<string name="info_labels">Çi:\\nRequest:\\nContent Language:\\nContent Welat:\\nApp Language:\\nService:\\nGMT Dem:\\nPackage:\\nVersion:\\nOS version:</string>

View file

@ -26,7 +26,6 @@
<string name="unsupported_url">지원하지 않는 URL입니다</string>
<string name="content_language_title">기본 컨텐츠 언어</string>
<string name="settings_category_video_audio_title">비디오 &amp; 오디오</string>
<string name="list_thumbnail_view_description">비디오 미리보기 썸네일</string>
<string name="detail_thumbnail_view_description">비디오 재생, 구간:</string>
<string name="detail_uploader_thumbnail_view_description">업로더 썸네일</string>
<string name="detail_dislikes_img_view_description">싫어요</string>

View file

@ -127,7 +127,6 @@
<string name="what_happened_headline">چی ڕوویدا:</string>
<string name="your_comment">لێدوانەکەت (بە ئینگلیزی):</string>
<string name="error_details_headline">وردەکارییەکان:</string>
<string name="list_thumbnail_view_description">پێشبینین ی وێنۆچکەی ڤیدیۆ</string>
<string name="detail_thumbnail_view_description">کارپێکردنی ڤیدیۆ، ماوەی:</string>
<string name="detail_uploader_thumbnail_view_description">وێنۆچکەی کەسی بەرزکەرەوە</string>
<string name="detail_likes_img_view_description">بەدڵبوون</string>

View file

@ -79,7 +79,6 @@
<string name="info_labels">Kas:\\nUžklausa:\\nTurinio Kalba:\\nTurinio Šalis:\\nProgramėlės Kalba:\\nPaslauga:\\nGMT Laikas:\\nPaketas:\\nVersija:\\nOS versija:</string>
<string name="your_comment">Jūsų komentaras (anglų kalba):</string>
<string name="error_details_headline">Išsami informacija:</string>
<string name="list_thumbnail_view_description">Vaizdo įrašo peržiūros miniatiūra</string>
<string name="detail_thumbnail_view_description">Paleisti vaizdo įrašą, trukmė:</string>
<string name="detail_uploader_thumbnail_view_description">Įkėlėjo naudotojo paveikslėlio miniatiūra</string>
<string name="detail_likes_img_view_description">Pamėgimai</string>

View file

@ -153,7 +153,6 @@
<string name="detail_likes_img_view_description">Patīk</string>
<string name="detail_uploader_thumbnail_view_description">Autora avatāra attēls</string>
<string name="detail_thumbnail_view_description">Atskaņot video, ilgums:</string>
<string name="list_thumbnail_view_description">Video priekšskatījuma attēls</string>
<string name="error_details_headline">Detaļas:</string>
<string name="your_comment">Jūsu komentārs (Angliski):</string>
<string name="info_labels">Kas:\\nRequest:\\nContent Valoda:\\nContent Valsts:\\nApp Valoda:\\nService:\\nGMT Laiks:\\nPackage:\\nVersion:\\nOS versija:</string>

View file

@ -140,7 +140,6 @@
<string name="info_labels">Што:\\nБарање:\\nЈазик на Содрж.:\\nУслуга:\\nGMT Час:\\nПакет:\\nВерзија:\\nВерз. на ОС:</string>
<string name="your_comment">Ваш коментар (на Англиски):</string>
<string name="error_details_headline">Детали:</string>
<string name="list_thumbnail_view_description">Сликичка за преглед на видеото</string>
<string name="detail_thumbnail_view_description">Сликичка за преглед на видеото</string>
<string name="detail_uploader_thumbnail_view_description">Икона од аватарот на објавителот</string>
<string name="detail_likes_img_view_description">Допаѓања</string>

View file

@ -198,7 +198,6 @@
<string name="detail_likes_img_view_description">ലൈക്കുകൾ</string>
<string name="detail_uploader_thumbnail_view_description">അപ്‌ലോഡറുടെ ലഘുചിത്രം</string>
<string name="detail_thumbnail_view_description">പ്ലേ വീഡിയോ, ദൈർഘ്യം:</string>
<string name="list_thumbnail_view_description">വീഡിയോ ലഘുചിത്രം</string>
<string name="error_details_headline">വിശദാംശങ്ങൾ:</string>
<string name="your_comment">നിങ്ങളുടെ അഭിപ്രായം (ഇംഗ്ലീഷിൽ):</string>
<string name="what_happened_headline">എന്ത് സംഭവിച്ചു:</string>

View file

@ -169,7 +169,6 @@
<string name="info_labels">Apa:\\nPermintaan:\\nBahasa Kandungan:\\nNegara Kandungan:\\nBahasa Aplikasi:\\nPerkhidmatan:\\nWaktu GMT:\\nPakej:\\nVersi:\\nVersi OS:</string>
<string name="your_comment">Ulasan anda (dalam bahasa Inggeris):</string>
<string name="error_details_headline">Butiran:</string>
<string name="list_thumbnail_view_description">Thumbnail pratonton video</string>
<string name="detail_thumbnail_view_description">Main video, tempoh masa:</string>
<string name="detail_uploader_thumbnail_view_description">Thumbnail avatar pemuatnaik</string>
<string name="detail_likes_img_view_description">Suka</string>

View file

@ -37,7 +37,6 @@
<string name="settings_category_appearance_title">Utseende</string>
<string name="background_player_playing_toast">Spiller i bakgrunnen</string>
<string name="network_error">Nettverksfeil</string>
<string name="list_thumbnail_view_description">Video-forhåndsvisning i miniatyrbilde</string>
<string name="detail_thumbnail_view_description">Spill av video, varighet:</string>
<string name="detail_uploader_thumbnail_view_description">Opplasterens avatar</string>
<string name="detail_likes_img_view_description">Nikk</string>

View file

@ -174,7 +174,6 @@
<string name="info_labels">के:\\nअनुरोध:\\nसामग्री भाषा: \\nसेवा:\\nGMT समय:\\nप्याकेज:\\nसंस्करण: \\nOS संस्करण:</string>
<string name="your_comment">तपाईंको टिप्पणी (अंग्रेजी मा):</string>
<string name="error_details_headline">विवरण:</string>
<string name="list_thumbnail_view_description">सामग्री वर्णन (राम्रो पहुँच लागि)</string>
<string name="detail_thumbnail_view_description">प्ले भिडियो, अवधि:</string>
<string name="detail_uploader_thumbnail_view_description">अपलोडरको अवतार थम्बनेल</string>
<string name="detail_likes_img_view_description">मनपर्दो</string>

View file

@ -141,7 +141,6 @@
<string name="info_labels">Wat:\\nVerzoek:\\nTaal van inhoud:\\nLand:\\nTaal van applicatie:\\nDienst:\\nGMT tijd:\\nPakket:\\nVersie:\\nVersie van besturingssysteem:</string>
<string name="your_comment">Uw opmerking (in het Engels):</string>
<string name="error_details_headline">Details:</string>
<string name="list_thumbnail_view_description">Videovoorbeeldminiatuur</string>
<string name="detail_thumbnail_view_description">Speel video, tijd:</string>
<string name="detail_uploader_thumbnail_view_description">Avatarminiatuur van uploader</string>
<string name="detail_likes_img_view_description">Duimen</string>

View file

@ -28,7 +28,6 @@
<string name="use_external_video_player_title">Externe videospeler gebruiken</string>
<string name="use_external_audio_player_title">Externe audiospeler gebruiken</string>
<string name="settings_category_video_audio_title">Video en audio</string>
<string name="list_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>

View file

@ -147,7 +147,6 @@
<string name="info_labels">ਕੀ:\\nRequest:\\nContent ਭਾਸ਼ਾ/ਬੋਲੀ:\\nContent Country:\\nApp ਭਾਸ਼ਾ/ਬੋਲੀ:\\nService:\\nGMT ਸਮਾਂ:\\nPackage:\\nVersion:\\nOS version:</string>
<string name="your_comment">ਤੁਹਾਡੀ ਟਿੱਪਣੀ (ਅੰਗਰੇਜ਼ੀ ਵਿਚ):</string>
<string name="error_details_headline">ਵੇਰਵੇ:</string>
<string name="list_thumbnail_view_description">ਵੀਡੀਓ preview thumbnail</string>
<string name="detail_thumbnail_view_description">ਵਿਡੀਉ ਚਲਾਓ, ਮਿਆਦ:</string>
<string name="detail_uploader_thumbnail_view_description">ਅਪਲੋਡਰ ਦਾ ਅਵਤਾਰ thumbnail</string>
<string name="detail_likes_img_view_description">ਪਸੰਦ</string>

View file

@ -59,7 +59,6 @@
<string name="info_labels">Co:\\nŻądanie:\\nJęzyk treści:\\nKraj treści:\\nJęzyk aplikacji:\\nUsługa:\\nCzas GMT:\\nPakiet:\\nWersja:\\nWersja systemu:</string>
<string name="your_comment">Twój komentarz (po angielsku):</string>
<string name="error_details_headline">Szczegóły:</string>
<string name="list_thumbnail_view_description">Miniatura podglądu wideo</string>
<string name="detail_thumbnail_view_description">Odtwarzane wideo, czas trwania:</string>
<string name="detail_uploader_thumbnail_view_description">Miniatura awatara przesyłającego</string>
<string name="detail_likes_img_view_description">Polubienia</string>

View file

@ -70,7 +70,6 @@
<string name="download_path_summary">Vídeos baixados são salvos aqui</string>
<string name="download_path_title">Pasta para vídeos baixados</string>
<string name="kore_not_found">Instalar o aplicativo Kore\?</string>
<string name="list_thumbnail_view_description">Miniatura de visualização do vídeo</string>
<string name="main_bg_subtitle">Toque na lupa para começar.</string>
<string name="msg_threads">Threads</string>
<string name="no_available_dir">Por favor, defina uma pasta de download depois nas configurações</string>

View file

@ -444,7 +444,6 @@
<string name="feed_update_threshold_summary">Tempo após a última atualização antes de a subscrição ser considerada desatualizada - %s</string>
<string name="search">Pesquisar</string>
<string name="settings_category_updates_title">Atualizações</string>
<string name="list_thumbnail_view_description">Miniatura do vídeo</string>
<string name="updates_setting_title">Atualizações</string>
<string name="start_downloads">Iniciar transferências</string>
<string name="enable_search_history_summary">Guardar termos de pesquisa localmente</string>

View file

@ -28,7 +28,6 @@
<string name="unsupported_url">URL não suportado</string>
<string name="content_language_title">Idioma padrão para conteúdo</string>
<string name="settings_category_video_audio_title">Vídeo e áudio</string>
<string name="list_thumbnail_view_description">Miniatura do vídeo</string>
<string name="detail_thumbnail_view_description">Reproduzir vídeo, duração:</string>
<string name="detail_uploader_thumbnail_view_description">Miniatura do avatar do canal</string>
<string name="detail_dislikes_img_view_description">Não gosto</string>

View file

@ -45,7 +45,6 @@
<string name="parsing_error">Nu s-a putut analiza site-ul web</string>
<string name="content_not_available">Conținut indisponibil</string>
<string name="could_not_setup_download_menu">Nu s-a putut configura meniul de descărcare</string>
<string name="list_thumbnail_view_description">Miniatura de previzualizare video</string>
<string name="detail_thumbnail_view_description">Redare video, durata:</string>
<string name="detail_uploader_thumbnail_view_description">Miniatura avatarului autorului</string>
<string name="detail_likes_img_view_description">Au apreciat</string>

View file

@ -27,7 +27,6 @@
<string name="content_language_title">Язык контента по умолчанию</string>
<string name="settings_category_video_audio_title">Видео и аудио</string>
<string name="settings_category_appearance_title">Внешний вид</string>
<string name="list_thumbnail_view_description">Миниатюра видео-превью</string>
<string name="detail_thumbnail_view_description">Воспроизвести видео, длительность:</string>
<string name="detail_uploader_thumbnail_view_description">Миниатюра аватара пользователя</string>
<string name="detail_dislikes_img_view_description">Не понравилось</string>

View file

@ -180,7 +180,6 @@
<string name="detail_likes_img_view_description">Agradessimentos</string>
<string name="detail_uploader_thumbnail_view_description">Miniadura de s\'avatar de su carrigadore</string>
<string name="detail_thumbnail_view_description">Riprodui su vìdeu, longària:</string>
<string name="list_thumbnail_view_description">Miniadura de anteprima de su vìdeu</string>
<string name="error_details_headline">Detàllios:</string>
<string name="your_comment">Su cummentu tuo (in inglesu):</string>
<string name="what_happened_headline">Ite est acontèssidu:</string>

View file

@ -42,7 +42,6 @@
<string name="youtube_signature_deobfuscation_error">Nepodarilo sa dekódovať URL videa</string>
<string name="parsing_error">Nemožno analyzovať webovú stránku</string>
<string name="content_not_available">Obsah nie je dostupný</string>
<string name="list_thumbnail_view_description">Náhľad videa</string>
<string name="detail_thumbnail_view_description">Prehrať video, dĺžka:</string>
<string name="detail_uploader_thumbnail_view_description">Náhľad avataru uploadera</string>
<string name="detail_likes_img_view_description">Lajky</string>

View file

@ -27,7 +27,6 @@
<string name="unsupported_url">Nepodprt URL</string>
<string name="content_language_title">Privzeti jezik vsebine</string>
<string name="settings_category_video_audio_title">Video in zvok</string>
<string name="list_thumbnail_view_description">Sličica predogleda videa</string>
<string name="detail_thumbnail_view_description">Predvajaj video, dolžina:</string>
<string name="detail_uploader_thumbnail_view_description">Sličica objavitelja</string>
<string name="show_play_with_kodi_summary">Pokaži možnost predvajanja videa preko predstavnega središča Kodi</string>

View file

@ -259,7 +259,6 @@
<string name="detail_uploader_thumbnail_view_description">Sawirka u saaran soosaareha</string>
<string name="detail_thumbnail_view_description">Daar muuqaalka, intuu socdo:</string>
<string name="info_labels">Shayga:\\nCodsiga:\\nLuuqada Shayga:\\nWadanka Shayga:\\nLuuqada Appka:\\nAdeega:\\nWakhtiga oo GMT ah:\\nXidhmada:\\nTirsiga Appka:\\nTirsiga Nooca Barnaamijka:</string>
<string name="list_thumbnail_view_description">Galka muuqaal tusaha</string>
<string name="error_details_headline">Faahfaahin:</string>
<string name="your_comment">Faalladaada (oo Ingiriis ah):</string>
<string name="what_happened_headline">Waxa dhacay:</string>

View file

@ -313,7 +313,6 @@
<string name="detail_likes_img_view_description">Pëlqimet</string>
<string name="detail_uploader_thumbnail_view_description">Pamja statike e fotos së ngarkuesit</string>
<string name="detail_thumbnail_view_description">Luaje videon, kohëzgjatja:</string>
<string name="list_thumbnail_view_description">Pamjet statike të parapamjes së videove</string>
<string name="error_details_headline">Detajet:</string>
<string name="your_comment">Komenti juaj (në Anglisht):</string>
<string name="info_labels">Çfarë:\\nKërkesa:\\nGjuha e përmbajtjes:\\nShteti i pëmbajtjes:\\nGjuha e aplikacionit:\\nShërbimi:\\nKoha në GMT:\\nPaketa:\\nVersioni:\\nVersioni i sistemit operativ:</string>

View file

@ -26,7 +26,6 @@
<string name="show_next_and_similar_title">Прикажи „следећи“ и „слични“ видео</string>
<string name="content_language_title">Подразумевани језик садржаја</string>
<string name="settings_category_video_audio_title">Видео и аудио</string>
<string name="list_thumbnail_view_description">Сличица видео прегледа</string>
<string name="detail_thumbnail_view_description">Пусти видео, трајање:</string>
<string name="detail_uploader_thumbnail_view_description">Аватар пошиљаоца</string>
<string name="detail_dislikes_img_view_description">Несвиђања</string>

View file

@ -107,7 +107,6 @@
<string name="player_recoverable_failure">Återhämtar sig från spelarfel</string>
<string name="error_report_button_text">Rapportera detta fel via e-post</string>
<string name="info_labels">Vad:\\nBegäran:\\nInnehållsspråk:\\nInnehållsland:\\nApp-språk:\\nTjänst:\\nGMT-tid:\\nPaket:\\nVersion:\\nOS-version:</string>
<string name="list_thumbnail_view_description">Videons miniatyrbild</string>
<string name="detail_thumbnail_view_description">Spela video, längd:</string>
<string name="detail_uploader_thumbnail_view_description">Uppladdarens avatar-miniatyrbild</string>
<string name="search_no_results">Inga resultat</string>

View file

@ -135,7 +135,6 @@
<string name="error_report_button_text">மின்னஞ்சல் மூலம் பிழையை தெரிவிக்கவும்</string>
<string name="what_happened_headline">என்ன நடந்தது:</string>
<string name="your_comment">உங்கள் கருத்து:</string>
<string name="list_thumbnail_view_description">காணொளி முன்தோற்றம்</string>
<string name="detail_dislikes_img_view_description">வெறுப்புகள்</string>
<string name="no_subscribers">பின் தொடர்பவர்கள் இல்லை</string>
<plurals name="subscribers">

View file

@ -71,7 +71,6 @@
<string name="what_happened_headline">ఏం జరిగింది:</string>
<string name="your_comment">మీ వ్యాఖ్య(ఆంగ్లం లో):</string>
<string name="error_details_headline">వివరములు:</string>
<string name="list_thumbnail_view_description">వీడియో ప్రివ్యూ సూక్ష్మచిత్రం</string>
<string name="detail_thumbnail_view_description">వీడియోని ప్లే చేయండి, వ్యవధి:</string>
<string name="detail_likes_img_view_description">ఇష్టాలు</string>
<string name="detail_dislikes_img_view_description">మంది ఇష్టపడలేదు</string>

View file

@ -163,7 +163,6 @@
<string name="what_happened_headline">เกิดอะไรขึ้น:</string>
<string name="your_comment">ความคิดเห็นของคุณ (เป็นภาษาอังกฤษ):</string>
<string name="error_details_headline">รายละเอียด:</string>
<string name="list_thumbnail_view_description">ภาพขนาดย่อของตัวอย่างวิดีโอ</string>
<string name="detail_thumbnail_view_description">ภาพของตัวอย่างวิดีโอขนาดย่อ</string>
<string name="detail_uploader_thumbnail_view_description">รูปขนาดย่อของผู้อัปโหลด</string>
<string name="detail_likes_img_view_description">ชอบ</string>

View file

@ -90,7 +90,6 @@
<string name="disabled">Devre dışı</string>
<string name="your_comment">Yorumunuz (İngilizce):</string>
<string name="error_details_headline">Ayrıntılar:</string>
<string name="list_thumbnail_view_description">Video ön izleme küçük resmi</string>
<string name="short_thousand">b</string>
<string name="short_million">M</string>
<string name="short_billion">B</string>

View file

@ -63,7 +63,6 @@
<string name="app_ui_crash">Збій застосунку/інтерфейсу</string>
<string name="your_comment">Ваш коментар (англійською):</string>
<string name="error_details_headline">Деталі:</string>
<string name="list_thumbnail_view_description">Зображення відео перед його переглядом</string>
<string name="detail_thumbnail_view_description">Відтворити відео, тривалість:</string>
<string name="video">Відео</string>
<string name="audio">Аудіо</string>

View file

@ -140,7 +140,6 @@
<string name="info_labels">کیا ہوا:\\nدرخواست:\\nمواد کی زبان:\\nملک:\\nایپ کی زبان:\\nسروس:\\nجی ایم ٹٰ:\\nوقت:\\nپیکیج:\\nورژن:\\nآپریٹنگ سسٹم ورزن:</string>
<string name="your_comment">آپ کا تبصرہ (انگریزی میں):</string>
<string name="error_details_headline">تفصیلات:</string>
<string name="list_thumbnail_view_description">ویڈیو پیش منظر انگشتی</string>
<string name="detail_thumbnail_view_description">ویڈیو چلائیں، دورانیہ:</string>
<string name="detail_uploader_thumbnail_view_description">اپ لوڈر کا اوتار نظرِ انگشتی</string>
<string name="detail_likes_img_view_description">پسندیدگی</string>

View file

@ -77,7 +77,6 @@
<string name="info_labels">Cái gì:\\nYêu cầu:\\nNgôn ngữ của nội dung:\\nVùng miền (quốc gia) của nội dung:\\nNgôn ngữ của ứng dụng:\\nDịch vụ:\\nThời gian GMT:\\nTên gói:\\nPhiên bản:\\nPhiên bản hệ điều hành:</string>
<string name="your_comment">Nhận xét của bạn (bằng tiếng Anh):</string>
<string name="error_details_headline">Chi tiết:</string>
<string name="list_thumbnail_view_description">Hình thu nhỏ xem trước video</string>
<string name="detail_thumbnail_view_description">Xem video, thời lượng:</string>
<string name="detail_uploader_thumbnail_view_description">Hình thu nhỏ của avatar người tải lên</string>
<string name="detail_likes_img_view_description">Lượt thích</string>

View file

@ -155,7 +155,6 @@
<string name="info_labels">详情:\\n请求\\n内容语言\\n服务\\nGMT时间\\n包\\n版本\\n操作系统版本</string>
<string name="your_comment">您的注释(请用英文):</string>
<string name="error_details_headline">详细信息:</string>
<string name="list_thumbnail_view_description">视频预览缩略图</string>
<string name="detail_thumbnail_view_description">播放视频,时长:</string>
<string name="detail_uploader_thumbnail_view_description">视频上传者的头像缩略图</string>
<string name="short_billion">字节</string>

View file

@ -31,7 +31,6 @@
<string name="settings_category_appearance_title">外觀</string>
<string name="background_player_playing_toast">背景播放</string>
<string name="network_error">網絡問題</string>
<string name="list_thumbnail_view_description">影片預覽縮圖</string>
<string name="detail_thumbnail_view_description">影片預覽縮圖</string>
<string name="detail_uploader_thumbnail_view_description">上載者的個人頭像縮圖</string>
<string name="detail_likes_img_view_description">讚好</string>

View file

@ -34,7 +34,6 @@
<string name="settings_category_appearance_title">外觀</string>
<string name="background_player_playing_toast">背景播放中</string>
<string name="network_error">網路錯誤</string>
<string name="list_thumbnail_view_description">影片預覽縮圖</string>
<string name="detail_thumbnail_view_description">播放影片,持續時間:</string>
<string name="detail_uploader_thumbnail_view_description">發佈者的個人頭像縮圖</string>
<string name="detail_likes_img_view_description">喜歡</string>

View file

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="fdroid_vlc_url">https://f-droid.org/packages/org.videolan.vlc/</string>
<string name="rss_button_title">RSS</string>
<string name="kore_package">org.xbmc.kore</string>
<string name="peertube_instance_list_url">https://joinpeertube.org/instances#instances-list</string>
<string name="notification_channel_id">newpipe</string>
<string name="app_update_notification_channel_id">newpipeAppUpdate</string>
<string name="hash_channel_id">newpipeHash</string>
<string name="error_report_channel_id">newpipeErrorReport</string>
<string name="streams_notification_channel_id" translatable="false">newpipeNewStreams</string>
<string name="guru_meditation">Guru Meditation.</string>
<string name="empty_view_no_videos">@string/no_videos</string>
<string name="empty_view_no_comments">@string/no_comments</string>
<string name="more_than_100_videos_mini">100+</string>
<string name="infinite_videos_mini"></string>
<string name="md5">MD5</string>
<string name="sha1">SHA-1</string>
<string name="recaptcha">reCAPTCHA</string>
<string name="github_url">https://github.com/TeamNewPipe/NewPipe</string>
<string name="donation_url">https://newpipe.net/donate/</string>
<string name="website_url">https://newpipe.net/</string>
<string name="privacy_policy_url">https://newpipe.net/legal/privacy/</string>
<string name="service_kiosk_string">%1$s/%2$s</string>
<string name="youtube">YouTube</string>
<string name="soundcloud">SoundCloud</string>
<string name="preferred_open_action_share_menu_title">@string/app_name</string>
<string name="leakcanary">LeakCanary</string>
</resources>

View file

@ -1,42 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" translatable="false">
<!-- App versioning -->
<string name="last_used_preferences_version" translatable="false">last_used_preferences_version</string>
<string name="last_used_preferences_version">last_used_preferences_version</string>
<!-- Service -->
<string-array name="service_list" translatable="false">
<string-array name="service_list">
<item>@string/youtube</item>
<item>@string/soundcloud</item>
</string-array>
<string name="current_service_key" translatable="false">service</string>
<string name="default_service_value" translatable="false">@string/youtube</string>
<string name="current_service_key">service</string>
<string name="default_service_value">@string/youtube</string>
<string name="saved_tabs_key" translatable="false">saved_tabs_key</string>
<string name="saved_tabs_key">saved_tabs_key</string>
<!-- Key values -->
<string name="download_path_video_key" translatable="false">download_path</string>
<string name="download_path_audio_key" translatable="false">download_path_audio</string>
<string name="download_path_video_key">download_path</string>
<string name="download_path_audio_key">download_path_audio</string>
<string name="use_external_video_player_key" translatable="false">use_external_video_player</string>
<string name="use_external_audio_player_key" translatable="false">use_external_audio_player</string>
<string name="use_external_video_player_key">use_external_video_player</string>
<string name="use_external_audio_player_key">use_external_audio_player</string>
<string name="volume_gesture_control_key" translatable="false">volume_gesture_control</string>
<string name="brightness_gesture_control_key" translatable="false">brightness_gesture_control</string>
<string name="resume_on_audio_focus_gain_key" translatable="false">resume_on_audio_focus_gain</string>
<string name="popup_remember_size_pos_key" translatable="false">popup_remember_size_pos_key</string>
<string name="use_inexact_seek_key" translatable="false">use_inexact_seek_key</string>
<string name="auto_queue_key" translatable="false">auto_queue_key</string>
<string name="screen_brightness_key" translatable="false">screen_brightness_key</string>
<string name="screen_brightness_timestamp_key" translatable="false">screen_brightness_timestamp_key</string>
<string name="clear_queue_confirmation_key" translatable="false">clear_queue_confirmation_key</string>
<string name="volume_gesture_control_key">volume_gesture_control</string>
<string name="brightness_gesture_control_key">brightness_gesture_control</string>
<string name="resume_on_audio_focus_gain_key">resume_on_audio_focus_gain</string>
<string name="popup_remember_size_pos_key">popup_remember_size_pos_key</string>
<string name="use_inexact_seek_key">use_inexact_seek_key</string>
<string name="auto_queue_key">auto_queue_key</string>
<string name="screen_brightness_key">screen_brightness_key</string>
<string name="screen_brightness_timestamp_key">screen_brightness_timestamp_key</string>
<string name="clear_queue_confirmation_key">clear_queue_confirmation_key</string>
<string name="popup_saved_width_key" translatable="false">popup_saved_width</string>
<string name="popup_saved_x_key" translatable="false">popup_saved_x</string>
<string name="popup_saved_y_key" translatable="false">popup_saved_y</string>
<string name="popup_saved_width_key">popup_saved_width</string>
<string name="popup_saved_x_key">popup_saved_x</string>
<string name="popup_saved_y_key">popup_saved_y</string>
<string name="seek_duration_key" translatable="false">seek_duration</string>
<string name="seek_duration_default_value" translatable="false">10000</string>
<string-array name="seek_duration_description" translatable="false">
<string name="seek_duration_key">seek_duration</string>
<string name="seek_duration_default_value">10000</string>
<string-array name="seek_duration_description">
<!-- They are overridden in VideoAudioSettingsFragment.java if the translation
(seconds) exist. Otherwise this array is picked-->
<item>5 seconds</item>
@ -46,7 +46,7 @@
<item>25 seconds</item>
<item>30 seconds</item>
</string-array>
<string-array name="seek_duration_value" translatable="false">
<string-array name="seek_duration_value">
<item>5000</item>
<item>10000</item>
<item>15000</item>
@ -55,63 +55,63 @@
<item>30000</item>
</string-array>
<string name="minimize_on_exit_key" translatable="false">minimize_on_exit_key</string>
<string name="minimize_on_exit_value" translatable="false">@string/minimize_on_exit_background_key</string>
<string name="minimize_on_exit_none_key" translatable="false">minimize_on_exit_none_key</string>
<string name="minimize_on_exit_background_key" translatable="false">minimize_on_exit_background_key</string>
<string name="minimize_on_exit_popup_key" translatable="false">minimize_on_exit_popup_key</string>
<string-array name="minimize_on_exit_action_key" translatable="false">
<string name="minimize_on_exit_key">minimize_on_exit_key</string>
<string name="minimize_on_exit_value">@string/minimize_on_exit_background_key</string>
<string name="minimize_on_exit_none_key">minimize_on_exit_none_key</string>
<string name="minimize_on_exit_background_key">minimize_on_exit_background_key</string>
<string name="minimize_on_exit_popup_key">minimize_on_exit_popup_key</string>
<string-array name="minimize_on_exit_action_key">
<item>@string/minimize_on_exit_none_key</item>
<item>@string/minimize_on_exit_background_key</item>
<item>@string/minimize_on_exit_popup_key</item>
</string-array>
<string-array name="minimize_on_exit_action_description" translatable="false">
<string-array name="minimize_on_exit_action_description">
<item>@string/minimize_on_exit_none_description</item>
<item>@string/minimize_on_exit_background_description</item>
<item>@string/minimize_on_exit_popup_description</item>
</string-array>
<string name="start_main_player_fullscreen_key" translatable="false">start_main_player_fullscreen_key</string>
<string name="start_main_player_fullscreen_key">start_main_player_fullscreen_key</string>
<string name="autoplay_key" translatable="false">autoplay_key</string>
<string name="autoplay_value" translatable="false">@string/autoplay_wifi_key</string>
<string name="autoplay_always_key" translatable="false">autoplay_always_key</string>
<string name="autoplay_wifi_key" translatable="false">autoplay_wifi_key</string>
<string name="autoplay_never_key" translatable="false">autoplay_never_key</string>
<string-array name="autoplay_type_key" translatable="false">
<string name="autoplay_key">autoplay_key</string>
<string name="autoplay_value">@string/autoplay_wifi_key</string>
<string name="autoplay_always_key">autoplay_always_key</string>
<string name="autoplay_wifi_key">autoplay_wifi_key</string>
<string name="autoplay_never_key">autoplay_never_key</string>
<string-array name="autoplay_type_key">
<item>@string/autoplay_always_key</item>
<item>@string/autoplay_wifi_key</item>
<item>@string/autoplay_never_key</item>
</string-array>
<string-array name="autoplay_type_description" translatable="false">
<string-array name="autoplay_type_description">
<item>@string/always</item>
<item>@string/wifi_only</item>
<item>@string/never</item>
</string-array>
<string name="seekbar_preview_thumbnail_key" translatable="false">seekbar_preview_thumbnail_key</string>
<string name="seekbar_preview_thumbnail_high_quality" translatable="false">seekbar_preview_thumbnail_high_quality</string>
<string name="seekbar_preview_thumbnail_low_quality" translatable="false">seekbar_preview_thumbnail_low_quality</string>
<string name="seekbar_preview_thumbnail_none" translatable="false">seekbar_preview_thumbnail_none</string>
<string-array name="seekbar_preview_thumbnail_type_key" translatable="false">
<string name="seekbar_preview_thumbnail_key">seekbar_preview_thumbnail_key</string>
<string name="seekbar_preview_thumbnail_high_quality">seekbar_preview_thumbnail_high_quality</string>
<string name="seekbar_preview_thumbnail_low_quality">seekbar_preview_thumbnail_low_quality</string>
<string name="seekbar_preview_thumbnail_none">seekbar_preview_thumbnail_none</string>
<string-array name="seekbar_preview_thumbnail_type_key">
<item>@string/seekbar_preview_thumbnail_high_quality</item>
<item>@string/seekbar_preview_thumbnail_low_quality</item>
<item>@string/seekbar_preview_thumbnail_none</item>
</string-array>
<string-array name="seekbar_preview_thumbnail_type_description" translatable="false">
<string-array name="seekbar_preview_thumbnail_type_description">
<item>@string/high_quality_larger</item>
<item>@string/low_quality_smaller</item>
<item>@string/dont_show</item>
</string-array>
<string name="default_resolution_key" translatable="false">default_resolution</string>
<string name="default_resolution_value" translatable="false">720p60</string>
<string name="show_higher_resolutions_key" translatable="false">show_higher_resolutions</string>
<string name="default_popup_resolution_key" translatable="false">default_popup_resolution</string>
<string name="default_popup_resolution_value" translatable="false">480p</string>
<string name="best_resolution_key" translatable="false">best_resolution</string>
<string name="default_resolution_key">default_resolution</string>
<string name="default_resolution_value">720p60</string>
<string name="show_higher_resolutions_key">show_higher_resolutions</string>
<string name="default_popup_resolution_key">default_popup_resolution</string>
<string name="default_popup_resolution_value">480p</string>
<string name="best_resolution_key">best_resolution</string>
<string-array name="resolution_list_values" translatable="false">
<string-array name="resolution_list_values">
<item>@string/best_resolution_key</item>
<item>1080p60</item>
<item>1080p</item>
@ -122,7 +122,7 @@
<item>240p</item>
<item>144p</item>
</string-array>
<string-array name="resolution_list_description" translatable="false">
<string-array name="resolution_list_description">
<item>@string/best_resolution</item>
<item>1080p60</item>
<item>1080p</item>
@ -134,145 +134,145 @@
<item>144p</item>
</string-array>
<string name="scale_to_square_image_in_notifications_key" translatable="false">scale_to_square_image_in_notifications</string>
<string name="scale_to_square_image_in_notifications_key">scale_to_square_image_in_notifications</string>
<string name="notification_slot_0_key" translatable="false">notification_slot_0_key</string>
<string name="notification_slot_1_key" translatable="false" tools:ignore="Typos">notification_slot_1_key</string>
<string name="notification_slot_2_key" translatable="false">notification_slot_2_key</string>
<string name="notification_slot_3_key" translatable="false">notification_slot_3_key</string>
<string name="notification_slot_4_key" translatable="false">notification_slot_4_key</string>
<string name="notification_slot_0_key">notification_slot_0_key</string>
<string name="notification_slot_1_key" tools:ignore="Typos">notification_slot_1_key</string>
<string name="notification_slot_2_key">notification_slot_2_key</string>
<string name="notification_slot_3_key">notification_slot_3_key</string>
<string name="notification_slot_4_key">notification_slot_4_key</string>
<string name="notification_slot_compact_0_key" translatable="false">notification_slot_compact_0_key</string>
<string name="notification_slot_compact_1_key" translatable="false" tools:ignore="Typos">notification_slot_compact_1_key</string>
<string name="notification_slot_compact_2_key" translatable="false">notification_slot_compact_2_key</string>
<string name="notification_slot_compact_0_key">notification_slot_compact_0_key</string>
<string name="notification_slot_compact_1_key" tools:ignore="Typos">notification_slot_compact_1_key</string>
<string name="notification_slot_compact_2_key">notification_slot_compact_2_key</string>
<string name="notification_colorize_key" translatable="false">notification_colorize_key</string>
<string name="notification_colorize_key">notification_colorize_key</string>
<string name="video_mp4_key" translatable="false">video_mp4</string>
<string name="video_webm_key" translatable="false">video_webm</string>
<string name="video_3gp_key" translatable="false">video_3gp</string>
<string name="default_video_format_key" translatable="false">default_video_format</string>
<string name="default_video_format_value" translatable="false">@string/video_mp4_key</string>
<string-array name="video_format_description_list" translatable="false">
<string name="video_mp4_key">video_mp4</string>
<string name="video_webm_key">video_webm</string>
<string name="video_3gp_key">video_3gp</string>
<string name="default_video_format_key">default_video_format</string>
<string name="default_video_format_value">@string/video_mp4_key</string>
<string-array name="video_format_description_list">
<item>MPEG-4</item>
<item>WebM</item>
<item>3GP</item>
</string-array>
<string-array name="video_format_values_list" translatable="false">
<string-array name="video_format_values_list">
<item>@string/video_mp4_key</item>
<item>@string/video_webm_key</item>
<item>@string/video_3gp_key</item>
</string-array>
<string name="default_audio_format_key" translatable="false">default_audio_format</string>
<string name="default_audio_format_value" translatable="false">@string/audio_m4a_key</string>
<string name="audio_m4a_key" translatable="false">audio_m4a</string>
<string name="audio_webm_key" translatable="false">audio_webm</string>
<string-array name="audio_format_description_list" translatable="false">
<string name="default_audio_format_key">default_audio_format</string>
<string name="default_audio_format_value">@string/audio_m4a_key</string>
<string name="audio_m4a_key">audio_m4a</string>
<string name="audio_webm_key">audio_webm</string>
<string-array name="audio_format_description_list">
<item>M4A</item>
<item>WebM</item>
</string-array>
<string-array name="audio_format_values_list" translatable="false">
<string-array name="audio_format_values_list">
<item>@string/audio_m4a_key</item>
<item>@string/audio_webm_key</item>
</string-array>
<string name="last_resize_mode" translatable="false">last_resize_mode</string>
<string name="last_resize_mode">last_resize_mode</string>
<!-- DEBUG ONLY -->
<string name="debug_pref_screen_key" translatable="false">debug_pref_screen_key</string>
<string name="allow_heap_dumping_key" translatable="false">allow_heap_dumping_key</string>
<string name="show_memory_leaks_key" translatable="false">show_memory_leaks_key</string>
<string name="allow_disposed_exceptions_key" translatable="false">allow_disposed_exceptions_key</string>
<string name="show_original_time_ago_key" translatable="false">show_original_time_ago_key</string>
<string name="disable_media_tunneling_key" translatable="false">disable_media_tunneling_key</string>
<string name="show_image_indicators_key" translatable="false">show_image_indicators_key</string>
<string name="show_crash_the_player_key" translatable="false">show_crash_the_player_key</string>
<string name="check_new_streams_key" translatable="false">check_new_streams</string>
<string name="crash_the_app_key" translatable="false">crash_the_app_key</string>
<string name="show_error_snackbar_key" translatable="false">show_error_snackbar_key</string>
<string name="create_error_notification_key" translatable="false">create_error_notification_key</string>
<string name="debug_pref_screen_key">debug_pref_screen_key</string>
<string name="allow_heap_dumping_key">allow_heap_dumping_key</string>
<string name="show_memory_leaks_key">show_memory_leaks_key</string>
<string name="allow_disposed_exceptions_key">allow_disposed_exceptions_key</string>
<string name="show_original_time_ago_key">show_original_time_ago_key</string>
<string name="disable_media_tunneling_key">disable_media_tunneling_key</string>
<string name="show_image_indicators_key">show_image_indicators_key</string>
<string name="show_crash_the_player_key">show_crash_the_player_key</string>
<string name="check_new_streams_key">check_new_streams</string>
<string name="crash_the_app_key">crash_the_app_key</string>
<string name="show_error_snackbar_key">show_error_snackbar_key</string>
<string name="create_error_notification_key">create_error_notification_key</string>
<!-- THEMES -->
<string name="theme_key" translatable="false">theme</string>
<string name="night_theme_key" translatable="false">night_theme</string>
<string name="light_theme_key" translatable="false">light_theme</string>
<string name="dark_theme_key" translatable="false">dark_theme</string>
<string name="black_theme_key" translatable="false">black_theme</string>
<string name="auto_device_theme_key" translatable="false">auto_device_theme</string>
<string name="default_theme_value" translatable="false">@string/auto_device_theme_key</string>
<string name="default_night_theme_value" translatable="false">@string/dark_theme_key</string>
<string-array name="theme_values_list" translatable="false">
<string name="theme_key">theme</string>
<string name="night_theme_key">night_theme</string>
<string name="light_theme_key">light_theme</string>
<string name="dark_theme_key">dark_theme</string>
<string name="black_theme_key">black_theme</string>
<string name="auto_device_theme_key">auto_device_theme</string>
<string name="default_theme_value">@string/auto_device_theme_key</string>
<string name="default_night_theme_value">@string/dark_theme_key</string>
<string-array name="theme_values_list">
<item>@string/light_theme_key</item>
<item>@string/dark_theme_key</item>
<item>@string/black_theme_key</item>
<item>@string/auto_device_theme_key</item>
</string-array>
<string-array name="theme_description_list" translatable="false">
<string-array name="theme_description_list">
<item>@string/light_theme_title</item>
<item>@string/dark_theme_title</item>
<item>@string/black_theme_title</item>
<item>@string/auto_device_theme_title</item>
</string-array>
<string-array name="night_theme_values_list" translatable="false">
<string-array name="night_theme_values_list">
<item>@string/dark_theme_key</item>
<item>@string/black_theme_key</item>
</string-array>
<string-array name="night_theme_description_list" translatable="false">
<string-array name="night_theme_description_list">
<item>@string/dark_theme_title</item>
<item>@string/black_theme_title</item>
</string-array>
<!-- Caption Size -->
<string name="caption_settings_key" translatable="false">caption_settings_key</string>
<string name="caption_user_set_key" translatable="false">caption_user_set_key</string>
<string name="caption_settings_key">caption_settings_key</string>
<string name="caption_user_set_key">caption_user_set_key</string>
<!-- Content & History -->
<string name="show_search_suggestions_key" translatable="false">show_search_suggestions</string>
<string name="show_local_search_suggestions_key" translatable="false">show_local_search_suggestions</string>
<string name="show_remote_search_suggestions_key" translatable="false">show_remote_search_suggestions</string>
<string-array name="show_search_suggestions_value_list" translatable="false">
<string name="show_search_suggestions_key">show_search_suggestions</string>
<string name="show_local_search_suggestions_key">show_local_search_suggestions</string>
<string name="show_remote_search_suggestions_key">show_remote_search_suggestions</string>
<string-array name="show_search_suggestions_value_list">
<item>@string/show_local_search_suggestions_key</item>
<item>@string/show_remote_search_suggestions_key</item>
</string-array>
<string-array name="show_search_suggestions_description_list" translatable="false">
<string-array name="show_search_suggestions_description_list">
<item>@string/local_search_suggestions</item>
<item>@string/remote_search_suggestions</item>
</string-array>
<string name="show_play_with_kodi_key" translatable="false">show_play_with_kodi</string>
<string name="show_comments_key" translatable="false">show_comments</string>
<string name="show_next_video_key" translatable="false">show_next_video</string>
<string name="show_description_key" translatable="false">show_description</string>
<string name="show_meta_info_key" translatable="false">show_meta_info</string>
<string name="stream_info_selected_tab_key" translatable="false">stream_info_selected_tab</string>
<string name="show_hold_to_append_key" translatable="false">show_hold_to_append</string>
<string name="content_language_key" translatable="false">content_language</string>
<string name="peertube_instance_setup_key" translatable="false">peertube_instance_setup</string>
<string name="peertube_selected_instance_key" translatable="false">peertube_selected_instance</string>
<string name="peertube_instance_list_key" translatable="false">peertube_instance_list</string>
<string name="content_country_key" translatable="false">content_country</string>
<string name="show_age_restricted_content" translatable="false">show_age_restricted_content</string>
<string name="youtube_restricted_mode_enabled" translatable="false">youtube_restricted_mode_enabled</string>
<string name="enable_search_history_key" translatable="false">enable_search_history</string>
<string name="enable_watch_history_key" translatable="false">enable_watch_history</string>
<string name="main_page_content_key" translatable="false">main_page_content</string>
<string name="enable_playback_resume_key" translatable="false">enable_playback_resume</string>
<string name="enable_playback_state_lists_key" translatable="false">enable_playback_state_lists</string>
<string name="playback_unhook_key" translatable="false">playback_unhook_key</string>
<string name="playback_speed_key" translatable="false">playback_speed_key</string>
<string name="playback_pitch_key" translatable="false">playback_pitch_key</string>
<string name="playback_skip_silence_key" translatable="false">playback_skip_silence_key</string>
<string name="show_play_with_kodi_key">show_play_with_kodi</string>
<string name="show_comments_key">show_comments</string>
<string name="show_next_video_key">show_next_video</string>
<string name="show_description_key">show_description</string>
<string name="show_meta_info_key">show_meta_info</string>
<string name="stream_info_selected_tab_key">stream_info_selected_tab</string>
<string name="show_hold_to_append_key">show_hold_to_append</string>
<string name="content_language_key">content_language</string>
<string name="peertube_instance_setup_key">peertube_instance_setup</string>
<string name="peertube_selected_instance_key">peertube_selected_instance</string>
<string name="peertube_instance_list_key">peertube_instance_list</string>
<string name="content_country_key">content_country</string>
<string name="show_age_restricted_content">show_age_restricted_content</string>
<string name="youtube_restricted_mode_enabled">youtube_restricted_mode_enabled</string>
<string name="enable_search_history_key">enable_search_history</string>
<string name="enable_watch_history_key">enable_watch_history</string>
<string name="main_page_content_key">main_page_content</string>
<string name="enable_playback_resume_key">enable_playback_resume</string>
<string name="enable_playback_state_lists_key">enable_playback_state_lists</string>
<string name="playback_unhook_key">playback_unhook_key</string>
<string name="playback_speed_key">playback_speed_key</string>
<string name="playback_pitch_key">playback_pitch_key</string>
<string name="playback_skip_silence_key">playback_skip_silence_key</string>
<string name="app_language_key" translatable="false">app_language_key</string>
<string name="app_language_key">app_language_key</string>
<string name="feed_update_threshold_key" translatable="false">feed_update_threshold_key</string>
<string name="feed_update_threshold_default_value" translatable="false">300</string>
<string name="feed_show_played_items_key" translatable="false">feed_show_played_items</string>
<string name="feed_update_threshold_key">feed_update_threshold_key</string>
<string name="feed_update_threshold_default_value">300</string>
<string name="feed_show_played_items_key">feed_show_played_items</string>
<string name="show_thumbnail_key" translatable="false">show_thumbnail_key</string>
<string name="show_thumbnail_key">show_thumbnail_key</string>
<!-- Values will be localized in runtime -->
<string-array name="feed_update_threshold_options" translatable="false">
<string-array name="feed_update_threshold_options">
<item>@string/feed_update_threshold_option_always_update</item>
<item>5 minutes</item>
<item>15 minutes</item>
@ -282,7 +282,7 @@
<item>1 day</item>
</string-array>
<!-- Threshold values in seconds -->
<string-array name="feed_update_threshold_values" translatable="false">
<string-array name="feed_update_threshold_values">
<item>0</item>
<item>300</item>
<item>900</item>
@ -291,53 +291,53 @@
<item>43200</item>
<item>86400</item>
</string-array>
<string name="feed_use_dedicated_fetch_method_key" translatable="false">feed_use_dedicated_fetch_method</string>
<string name="feed_use_dedicated_fetch_method_key">feed_use_dedicated_fetch_method</string>
<string name="import_export_data_path" translatable="false">import_export_data_path</string>
<string name="import_data" translatable="false">import_data</string>
<string name="export_data" translatable="false">export_data</string>
<string name="import_export_data_path">import_export_data_path</string>
<string name="import_data">import_data</string>
<string name="export_data">export_data</string>
<string name="clear_cookie_key" translatable="false">clear_cookie</string>
<string name="clear_cookie_key">clear_cookie</string>
<string name="download_thumbnail_key" translatable="false">download_thumbnail_key</string>
<string name="download_thumbnail_key">download_thumbnail_key</string>
<string name="metadata_cache_wipe_key" translatable="false">cache_wipe_key</string>
<string name="clear_views_history_key" translatable="false">clear_play_history</string>
<string name="clear_playback_states_key" translatable="false">clear_playback_states</string>
<string name="clear_search_history_key" translatable="false">clear_search_history</string>
<string name="metadata_cache_wipe_key">cache_wipe_key</string>
<string name="clear_views_history_key">clear_play_history</string>
<string name="clear_playback_states_key">clear_playback_states</string>
<string name="clear_search_history_key">clear_search_history</string>
<string name="last_used_download_type" translatable="false">@string/last_download_type_video_key</string>
<string name="last_download_type_video_key" translatable="false">last_dl_type_video</string>
<string name="last_download_type_audio_key" translatable="false">last_dl_type_audio</string>
<string name="last_download_type_subtitle_key" translatable="false">last_dl_type_subtitle</string>
<string name="last_used_download_type">@string/last_download_type_video_key</string>
<string name="last_download_type_video_key">last_dl_type_video</string>
<string name="last_download_type_audio_key">last_dl_type_audio</string>
<string name="last_download_type_subtitle_key">last_dl_type_subtitle</string>
<string name="downloads_storage_ask" translatable="false">downloads_storage_ask</string>
<string name="storage_use_saf" translatable="false">storage_use_saf</string>
<string name="downloads_storage_ask">downloads_storage_ask</string>
<string name="storage_use_saf">storage_use_saf</string>
<!-- FileName Downloads -->
<string name="settings_file_charset_key" translatable="false">file_rename_charset</string>
<string name="settings_file_replacement_character_key" translatable="false">file_replacement_character</string>
<string name="settings_file_replacement_character_default_value" translatable="false">_</string>
<string name="settings_file_charset_key">file_rename_charset</string>
<string name="settings_file_replacement_character_key">file_replacement_character</string>
<string name="settings_file_replacement_character_default_value">_</string>
<string name="charset_letters_and_digits_value" translatable="false">CHARSET_LETTERS_AND_DIGITS</string>
<string name="charset_most_special_value" translatable="false">CHARSET_MOST_SPECIAL</string>
<string name="charset_letters_and_digits_value">CHARSET_LETTERS_AND_DIGITS</string>
<string name="charset_most_special_value">CHARSET_MOST_SPECIAL</string>
<string-array name="settings_filename_charset" translatable="false">
<string-array name="settings_filename_charset">
<item>@string/charset_letters_and_digits_value</item>
<item>@string/charset_most_special_value</item>
</string-array>
<string-array name="settings_filename_charset_name" translatable="false">
<string-array name="settings_filename_charset_name">
<item>@string/charset_letters_and_digits</item>
<item>@string/charset_most_special_characters</item>
</string-array>
<string name="default_file_charset_value" translatable="false">@string/charset_most_special_value</string>
<string name="default_file_charset_value">@string/charset_most_special_value</string>
<string name="downloads_maximum_retry" translatable="false">downloads_max_retry</string>
<string name="downloads_maximum_retry_default" translatable="false">3</string>
<string-array name="downloads_maximum_retry_list" translatable="false">
<string name="downloads_maximum_retry">downloads_max_retry</string>
<string name="downloads_maximum_retry_default">3</string>
<string-array name="downloads_maximum_retry_list">
<item translatable="true">@string/minimize_on_exit_none_description</item>
<item>1</item>
<item>2</item>
@ -349,25 +349,25 @@
<item>15</item>
</string-array>
<string name="downloads_cross_network" translatable="false">cross_network_downloads</string>
<string name="downloads_queue_limit" translatable="false">downloads_queue_limit</string>
<string name="downloads_cross_network">cross_network_downloads</string>
<string name="downloads_queue_limit">downloads_queue_limit</string>
<string name="default_download_threads" translatable="false">default_download_threads</string>
<string name="default_download_threads">default_download_threads</string>
<!-- Preferred action on open (open from external app) -->
<string name="preferred_open_action_key" translatable="false">preferred_open_action_key</string>
<string name="preferred_open_action_default" translatable="false">@string/always_ask_open_action_key</string>
<string name="preferred_open_action_last_selected_key" translatable="false">preferred_open_action_last_selected</string>
<string name="preferred_open_action_key">preferred_open_action_key</string>
<string name="preferred_open_action_default">@string/always_ask_open_action_key</string>
<string name="preferred_open_action_last_selected_key">preferred_open_action_last_selected</string>
<string name="show_info_key" translatable="false">show_info</string>
<string name="video_player_key" translatable="false">video_player</string>
<string name="background_player_key" translatable="false">background_player</string>
<string name="popup_player_key" translatable="false">popup_player</string>
<string name="download_key" translatable="false">download</string>
<string name="add_to_playlist_key" translatable="false">add_to_playlist</string>
<string name="always_ask_open_action_key" translatable="false">always_ask_player</string>
<string name="show_info_key">show_info</string>
<string name="video_player_key">video_player</string>
<string name="background_player_key">background_player</string>
<string name="popup_player_key">popup_player</string>
<string name="download_key">download</string>
<string name="add_to_playlist_key">add_to_playlist</string>
<string name="always_ask_open_action_key">always_ask_player</string>
<string-array name="preferred_open_action_description_list" translatable="false">
<string-array name="preferred_open_action_description_list">
<item>@string/show_info</item>
<item>@string/video_player</item>
<item>@string/background_player</item>
@ -376,7 +376,7 @@
<item>@string/add_to_playlist</item>
<item>@string/always_ask_open_action</item>
</string-array>
<string-array name="preferred_open_action_values_list" translatable="false">
<string-array name="preferred_open_action_values_list">
<item>@string/show_info_key</item>
<item>@string/video_player_key</item>
<item>@string/background_player_key</item>
@ -387,15 +387,15 @@
</string-array>
<!-- Updates -->
<string name="update_app_key" translatable="false">update_app_key</string>
<string name="update_app_key">update_app_key</string>
<string name="manual_update_key">manual_update_key</string>
<string name="update_pref_screen_key" translatable="false">update_pref_screen_key</string>
<string name="update_expiry_key" translatable="false">update_expiry_key</string>
<string name="update_pref_screen_key">update_pref_screen_key</string>
<string name="update_expiry_key">update_expiry_key</string>
<!-- Localizations -->
<string name="default_localization_key" translatable="false">system</string>
<string name="default_localization_key">system</string>
<!-- alternatively, load these from some local android data store -->
<string-array name="language_codes" translatable="false">
<string-array name="language_codes">
<item>@string/default_localization_key</item>
<item>af</item>
<item>az</item>
@ -474,7 +474,7 @@
<item>ja</item>
<item>ko</item>
</string-array>
<string-array name="language_names" translatable="false">
<string-array name="language_names">
<item>@string/systems_language</item>
<item>Afrikaans</item>
<item>Azərbaycan</item>
@ -555,7 +555,7 @@
</string-array>
<string-array name="country_names" translatable="false">
<string-array name="country_names">
<item>@string/systems_language</item>
<item>Afghanistan</item>
<item>Aland Islands</item>
@ -806,7 +806,7 @@
<item>Zimbabwe</item>
</string-array>
<string-array name="country_codes" translatable="false">
<string-array name="country_codes">
<item>@string/default_localization_key</item>
<item>AF</item>
<item>AX</item>
@ -1058,7 +1058,7 @@
</string-array>
<!--The next two arrays are set to change the app language-->
<string-array name="app_language_code" translatable="false">
<string-array name="app_language_code">
<item>@string/default_localization_key</item>
<item>ace</item>
<item>ar</item>
@ -1137,7 +1137,7 @@
<item>zh-hk</item>
<item>zh-tw</item>
</string-array>
<string-array name="app_language_name" translatable="false">
<string-array name="app_language_name">
<item>@string/systems_language</item>
<item>Basa Acèh</item>
<item>العربية</item>
@ -1218,9 +1218,9 @@
</string-array>
<!-- Limit mobile data usage -->
<string name="limit_mobile_data_usage_key" translatable="false">limit_mobile_data_usage</string>
<string name="limit_data_usage_none_key" translatable="false">limit_data_usage_none</string>
<string name="limit_mobile_data_usage_key">limit_mobile_data_usage</string>
<string name="limit_data_usage_none_key">limit_data_usage_none</string>
<string name="limit_mobile_data_usage_value">@string/limit_data_usage_none_key</string>
<string-array name="limit_data_usage_values_list">
<item>@string/limit_data_usage_none_key</item>
<item>1080p60</item>
@ -1233,45 +1233,46 @@
<item>144p</item>
</string-array>
<string name="list_view_mode_key" translatable="false">list_view_mode</string>
<string name="list_view_mode_value" translatable="false">@string/list_view_mode_auto_key</string>
<string name="list_view_mode_key">list_view_mode</string>
<string name="list_view_mode_value">@string/list_view_mode_auto_key</string>
<!-- TODO: Use these across the app instead of hardcoding it -->
<string name="list_view_mode_auto_key" translatable="false">auto</string>
<string name="list_view_mode_list_key" translatable="false">list</string>
<string name="list_view_mode_grid_key" translatable="false">grid</string>
<string name="list_view_mode_auto_key">auto</string>
<string name="list_view_mode_list_key">list</string>
<string name="list_view_mode_grid_key">grid</string>
<string-array name="list_view_mode_values" translatable="false">
<string-array name="list_view_mode_values">
<item>@string/list_view_mode_auto_key</item>
<item>@string/list_view_mode_list_key</item>
<item>@string/list_view_mode_grid_key</item>
</string-array>
<string-array name="list_view_mode_description" translatable="false">
<string-array name="list_view_mode_description">
<item>@string/auto</item>
<item>@string/list</item>
<item>@string/grid</item>
</string-array>
<string name="tablet_mode_key" translatable="false">tablet_mode</string>
<string name="tablet_mode_key">tablet_mode</string>
<string name="tablet_mode_auto_key" translatable="false">auto</string>
<string name="tablet_mode_on_key" translatable="false">on</string>
<string name="tablet_mode_off_key" translatable="false">off</string>
<string-array name="tablet_mode_values" translatable="false">
<string name="tablet_mode_auto_key">auto</string>
<string name="tablet_mode_on_key">on</string>
<string name="tablet_mode_off_key">off</string>
<string-array name="tablet_mode_values">
<item>@string/tablet_mode_auto_key</item>
<item>@string/tablet_mode_on_key</item>
<item>@string/tablet_mode_off_key</item>
</string-array>
<string-array name="tablet_mode_description" translatable="false">
<string-array name="tablet_mode_description">
<item>@string/auto</item>
<item>@string/on</item>
<item>@string/off</item>
</string-array>
<string name="recaptcha_cookies_key" translatable="false">recaptcha_cookies_key</string>
<string name="enable_streams_notifications" translatable="false">enable_streams_notifications</string>
<string name="streams_notifications_interval_key" translatable="false">streams_notifications_interval</string>
<string name="streams_notifications_interval_default" translatable="false">14400</string>
<string name="recaptcha_cookies_key">recaptcha_cookies_key</string>
<string name="enable_streams_notifications">enable_streams_notifications</string>
<string name="streams_notifications_interval_key">streams_notifications_interval</string>
<string name="streams_notifications_interval_default">14400</string>
<!-- Values will be localized in runtime -->
<string-array name="streams_notifications_interval_description">
<item>15 minutes</item>
@ -1292,10 +1293,10 @@
<item>43200</item>
<item>86400</item>
</string-array>
<string name="streams_notifications_network_key" translatable="false">streams_notifications_network</string>
<string name="streams_notifications_network_any" translatable="false">any</string>
<string name="streams_notifications_network_wifi" translatable="false">wifi</string>
<string name="streams_notifications_network_default" translatable="false">@string/streams_notifications_network_wifi</string>
<string name="streams_notifications_network_key">streams_notifications_network</string>
<string name="streams_notifications_network_any">any</string>
<string name="streams_notifications_network_wifi">wifi</string>
<string name="streams_notifications_network_default">@string/streams_notifications_network_wifi</string>
<string-array name="streams_notifications_network_values">
<item>@string/streams_notifications_network_any</item>
<item>@string/streams_notifications_network_wifi</item>
@ -1304,5 +1305,5 @@
<item>@string/any_network</item>
<item>@string/wifi_only</item>
</string-array>
<string name="streams_notifications_channels_key" translatable="false">streams_notifications_channels</string>
<string name="streams_notifications_channels_key">streams_notifications_channels</string>
</resources>

View file

@ -7,7 +7,6 @@
<string name="install">Install</string>
<string name="cancel">Cancel</string>
<string name="ok">OK</string>
<string name="fdroid_vlc_url" translatable="false">https://f-droid.org/repository/browse/?fdfilter=vlc&amp;fdid=org.videolan.vlc</string>
<string name="open_in_browser">Open in browser</string>
<string name="mark_as_watched">Mark as watched</string>
<string name="open_in_popup_mode">Open in popup mode</string>
@ -23,7 +22,6 @@
<string name="use_external_video_player_title">Use external video player</string>
<string name="use_external_video_player_summary">Removes audio at some resolutions</string>
<string name="use_external_audio_player_title">Use external audio player</string>
<string name="rss_button_title" translatable="false">RSS</string>
<string name="subscribe_button_title">Subscribe</string>
<string name="subscribed_button_title">Subscribed</string>
<string name="unsubscribe">Unsubscribe</string>
@ -49,7 +47,6 @@
<string name="show_higher_resolutions_summary">Only some devices can play 2K/4K videos</string>
<string name="play_with_kodi_title">Play with Kodi</string>
<string name="kore_not_found">Install missing Kore app?</string>
<string name="kore_package" translatable="false">org.xbmc.kore</string>
<string name="show_play_with_kodi_title">Show \"Play with Kodi\" option</string>
<string name="show_play_with_kodi_summary">Display an option to play a video via Kodi media center</string>
<string name="crash_the_player">Crash the player</string>
@ -132,7 +129,6 @@
<string name="peertube_instance_url_title">PeerTube instances</string>
<string name="peertube_instance_url_summary">Select your favorite PeerTube instances</string>
<string name="peertube_instance_url_help">Find the instances you like on %s</string>
<string name="peertube_instance_list_url" translatable="false">https://joinpeertube.org/instances#instances-list</string>
<string name="peertube_instance_add_title">Add instance</string>
<string name="peertube_instance_add_help">Enter instance URL</string>
<string name="peertube_instance_add_fail">Could not validate instance</string>
@ -148,7 +144,6 @@
<string name="settings_category_player_notification_title">Player notification</string>
<string name="settings_category_player_notification_summary">Configure current playing stream notification</string>
<string name="background_player_playing_toast">Playing in background</string>
<string name="background_player_already_playing_toast">Already playing in background</string>
<string name="popup_playing_toast">Playing in popup mode</string>
<string name="content">Content</string>
<string name="show_age_restricted_content_title">Show age restricted content</string>
@ -182,19 +177,14 @@
<string name="just_once">Just Once</string>
<string name="file">File</string>
<string name="notifications">Notifications</string>
<string name="notification_channel_id" translatable="false">newpipe</string>
<string name="notification_channel_name">NewPipe notification</string>
<string name="notification_channel_description">Notifications for NewPipe\'s player</string>
<string name="app_update_notification_channel_id" translatable="false">newpipeAppUpdate</string>
<string name="app_update_notification_channel_name">App update notification</string>
<string name="app_update_notification_channel_description">Notifications for new NewPipe versions</string>
<string name="hash_channel_id" translatable="false">newpipeHash</string>
<string name="hash_channel_name">Video hash notification</string>
<string name="hash_channel_description">Notifications for video hashing progress</string>
<string name="streams_notification_channel_id" translatable="false">newpipeNewStreams</string>
<string name="streams_notification_channel_name">New streams</string>
<string name="streams_notification_channel_description">Notifications about new streams for subscriptions</string>
<string name="error_report_channel_id" translatable="false">newpipeErrorReport</string>
<string name="error_report_channel_name">Error report notification</string>
<string name="error_report_channel_description">Notifications to report errors</string>
<string name="unknown_content">[Unknown]</string>
@ -253,7 +243,6 @@
<string name="error_report_notification_title">NewPipe encountered an error, tap to report</string>
<string name="error_report_notification_toast">An error occurred, see the notification</string>
<string name="sorry_string">Sorry, that should not have happened.</string>
<string name="guru_meditation" translatable="false">Guru Meditation.</string>
<string name="error_report_button_text">Report this error via e-mail</string>
<string name="copy_for_github">Copy formatted report</string>
<string name="error_report_open_issue_button_text">Report on GitHub</string>
@ -266,7 +255,6 @@
<string name="your_comment">Your comment (in English):</string>
<string name="error_details_headline">Details:</string>
<!-- Content descriptions (for better accessibility) -->
<string name="list_thumbnail_view_description">Video preview thumbnail</string>
<string name="detail_thumbnail_view_description">Play video, duration:</string>
<string name="detail_uploader_thumbnail_view_description">Uploader\'s avatar thumbnail</string>
<string name="detail_likes_img_view_description">Likes</string>
@ -275,8 +263,6 @@
<string name="related_items_tab_description">Related items</string>
<string name="description_tab_description">Description</string>
<string name="search_no_results">No results</string>
<string name="empty_view_no_videos" translatable="false">@string/no_videos</string>
<string name="empty_view_no_comments" translatable="false">@string/no_comments</string>
<string name="empty_subscription_feed_subtitle">Nothing here but crickets</string>
<string name="detail_drag_description">Drag to reorder</string>
<string name="video">Video</string>
@ -311,8 +297,6 @@
<string name="no_videos">No videos</string>
<string name="more_than_100_videos">100+ videos</string>
<string name="infinite_videos">∞ videos</string>
<string name="more_than_100_videos_mini" translatable="false">100+</string>
<string name="infinite_videos_mini" translatable="false"></string>
<plurals name="videos">
<item quantity="one">%s video</item>
<item quantity="other">%s videos</item>
@ -344,11 +328,7 @@
<string name="no_dir_yet">No download folder set yet, choose the default download folder now</string>
<string name="msg_popup_permission">This permission is needed to\nopen in popup mode</string>
<string name="one_item_deleted">1 item deleted.</string>
<!-- Checksum types -->
<string name="md5" translatable="false">MD5</string>
<string name="sha1" translatable="false">SHA-1</string>
<!-- reCAPTCHA -->
<string name="recaptcha" translatable="false">reCAPTCHA</string>
<string name="title_activity_recaptcha">reCAPTCHA challenge</string>
<string name="subtitle_activity_recaptcha">Press \"Done\" when solved</string>
<string name="recaptcha_request_toast">reCAPTCHA challenge requested</string>
@ -371,18 +351,14 @@
<string name="app_description">Libre lightweight streaming on Android.</string>
<string name="contribution_title">Contribute</string>
<string name="contribution_encouragement">Whether you have ideas of; translation, design changes, code cleaning, or real heavy code changes—help is always welcome. The more is done the better it gets!</string>
<string name="github_url" translatable="false">https://github.com/TeamNewPipe/NewPipe</string>
<string name="view_on_github">View on GitHub</string>
<string name="donation_title">Donate</string>
<string name="donation_encouragement">NewPipe is developed by volunteers spending their free time bringing you the best user experience. Give back to help developers make NewPipe even better while they enjoy a cup of coffee.</string>
<string name="donation_url" translatable="false">https://newpipe.net/donate</string>
<string name="give_back">Give back</string>
<string name="website_title">Website</string>
<string name="website_encouragement">Visit the NewPipe Website for more info and news.</string>
<string name="website_url" translatable="false">https://newpipe.net/</string>
<string name="privacy_policy_title">NewPipe\'s Privacy Policy</string>
<string name="privacy_policy_encouragement">The NewPipe project takes your privacy very seriously. Therefore, the app does not collect any data without your consent.\nNewPipe\'s privacy policy explains in detail what data is sent and stored when you send a crash report.</string>
<string name="privacy_policy_url" translatable="false">https://newpipe.net/legal/privacy/</string>
<string name="read_privacy_policy">Read privacy policy</string>
<string name="app_license_title">NewPipe\'s License</string>
<string name="app_license">NewPipe is copyleft libre software: You can use, study share and improve it at will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</string>
@ -422,7 +398,6 @@
<string name="recently_added">Recently added</string>
<string name="most_liked">Most liked</string>
<string name="conferences">Conferences</string>
<string name="service_kiosk_string" translatable="false">%1$s/%2$s</string>
<!-- Play Queue -->
<string name="title_activity_play_queue">Play queue</string>
<string name="play_queue_remove">Remove</string>
@ -439,10 +414,7 @@
<!-- Drawer -->
<string name="drawer_open">Open Drawer</string>
<string name="drawer_close">Close Drawer</string>
<string name="youtube" translatable="false">YouTube</string>
<string name="soundcloud" translatable="false">SoundCloud</string>
<!-- Preferred player -->
<string name="preferred_open_action_share_menu_title" translatable="false">@string/app_name</string>
<string name="preferred_open_action_settings_title">Preferred \'open\' action</string>
<string name="preferred_open_action_settings_summary">Default action when opening content — %s</string>
<string name="video_player">Video player</string>
@ -477,7 +449,6 @@
<string name="caption_setting_title">Captions</string>
<string name="caption_setting_description">Modify player caption text scale and background styles. Requires app restart to take effect</string>
<!-- Debug Settings -->
<string name="leakcanary" translatable="false">LeakCanary</string>
<string name="enable_leak_canary_summary">Memory leak monitoring may cause the app to become unresponsive when heap dumping</string>
<string name="show_memory_leaks">Show memory leaks</string>
<string name="enable_disposed_exceptions_title">Report out-of-lifecycle errors</string>
@ -523,7 +494,6 @@
<!-- Limit mobile data usage -->
<string name="limit_data_usage_none_description">No limit</string>
<string name="limit_mobile_data_usage_title">Limit resolution when using mobile data</string>
<string name="limit_mobile_data_usage_value" translatable="false">@string/limit_data_usage_none_key</string>
<string-array name="limit_data_usage_description_list">
<item>@string/limit_data_usage_none_description</item>
<item>1080p60</item>