Merge branch 'libre-tube:master' into master

This commit is contained in:
XelXen 2022-09-24 17:51:04 +05:30 committed by GitHub
commit 18ffd4eb69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 194 additions and 441 deletions

View File

@ -0,0 +1,6 @@
package com.github.libretube.obj
data class Country(
val name: String,
val code: String
)

View File

@ -1,11 +1,13 @@
package com.github.libretube.ui.fragments
import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import android.widget.Toast.makeText
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
@ -14,6 +16,8 @@ import com.github.libretube.api.RetrofitInstance
import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.databinding.FragmentHomeBinding
import com.github.libretube.extensions.TAG
import com.github.libretube.extensions.getStyledSnackBar
import com.github.libretube.ui.activities.SettingsActivity
import com.github.libretube.ui.adapters.ChannelAdapter
import com.github.libretube.ui.adapters.TrendingAdapter
import com.github.libretube.ui.base.BaseFragment
@ -79,6 +83,26 @@ class HomeFragment : BaseFragment() {
}
runOnUiThread {
binding.progressBar.visibility = View.GONE
// show a [SnackBar] if there are no trending videos available
if (response.isEmpty()) {
binding.root.getStyledSnackBar(
R.string.change_region
)
.setAction(
R.string.settings
) {
startActivity(
Intent(
context,
SettingsActivity::class.java
)
)
}
.show()
return@runOnUiThread
}
if (
PreferenceHelper.getBoolean(
PreferenceKeys.ALTERNATIVE_TRENDING_LAYOUT,

View File

@ -11,6 +11,7 @@ import com.github.libretube.ui.activities.SettingsActivity
import com.github.libretube.ui.base.BasePreferenceFragment
import com.github.libretube.ui.dialogs.NavBarOptionsDialog
import com.github.libretube.ui.dialogs.RequireRestartDialog
import com.github.libretube.util.LocaleHelper
import com.github.libretube.util.PreferenceHelper
class GeneralSettings : BasePreferenceFragment() {
@ -28,6 +29,9 @@ class GeneralSettings : BasePreferenceFragment() {
true
}
val region = findPreference<ListPreference>("region")
region?.let { setupRegionPref(it) }
val autoRotation = findPreference<SwitchPreferenceCompat>(PreferenceKeys.AUTO_ROTATION)
autoRotation?.setOnPreferenceChangeListener { _, _ ->
val restartDialog = RequireRestartDialog()
@ -57,4 +61,21 @@ class GeneralSettings : BasePreferenceFragment() {
true
}
}
private fun setupRegionPref(preference: ListPreference) {
val countries = LocaleHelper.getAvailableCountries()
val countryNames = countries.map { it.name }
.toMutableList()
countryNames.add(0, requireContext().getString(R.string.systemLanguage))
val countryCodes = countries.map { it.code }
.toMutableList()
countryCodes.add(0, "sys")
preference.entries = countryNames.toTypedArray()
preference.entryValues = countryCodes.toTypedArray()
preference.summaryProvider = Preference.SummaryProvider<ListPreference> {
it.entry
}
}
}

View File

@ -8,6 +8,7 @@ import com.github.libretube.R
import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.ui.activities.SettingsActivity
import com.github.libretube.ui.base.BasePreferenceFragment
import com.github.libretube.util.LocaleHelper
import com.github.libretube.util.PreferenceHelper
import java.util.*
@ -36,24 +37,24 @@ class PlayerSettings : BasePreferenceFragment() {
}
val defaultSubtitle = findPreference<ListPreference>(PreferenceKeys.DEFAULT_SUBTITLE)
val locales: Array<Locale> = Locale.getAvailableLocales()
val localeNames = ArrayList<String>()
val localeCodes = ArrayList<String>()
defaultSubtitle?.let { setupSubtitlePref(it) }
}
localeNames.add(context?.getString(R.string.none)!!)
localeCodes.add("")
private fun setupSubtitlePref(preference: ListPreference) {
val locales = LocaleHelper.getAvailableLocales()
val localeNames = locales.map { it.name }
.toMutableList()
localeNames.add(0, requireContext().getString(R.string.none))
locales.forEach {
if (!localeNames.contains(it.getDisplayLanguage())) {
localeNames.add(it.getDisplayLanguage())
localeCodes.add(it.language)
}
}
defaultSubtitle?.entries = localeNames.toTypedArray()
defaultSubtitle?.entryValues = localeCodes.toTypedArray()
defaultSubtitle?.summaryProvider =
Preference.SummaryProvider<ListPreference> { preference ->
preference.entry
val localeCodes = locales.map { it.code }
.toMutableList()
localeCodes.add(0, "")
preference.entries = localeNames.toTypedArray()
preference.entryValues = localeCodes.toTypedArray()
preference.summaryProvider =
Preference.SummaryProvider<ListPreference> {
it.entry
}
}
}

View File

@ -4,6 +4,7 @@ import android.content.Context
import android.os.Build
import android.telephony.TelephonyManager
import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.obj.Country
import java.util.*
object LocaleHelper {
@ -33,11 +34,7 @@ object LocaleHelper {
val res = context.resources
val dm = res.displayMetrics
val conf = res.configuration
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
conf.setLocale(locale)
} else {
conf.locale = locale
}
conf.setLocale(locale)
res.updateConfiguration(conf, dm)
}
@ -81,10 +78,46 @@ object LocaleHelper {
private fun detectLocaleCountry(context: Context): String? {
try {
return context.resources.configuration.locales[0].country
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return context.resources.configuration.locales[0].country
}
} catch (e: Exception) {
e.printStackTrace()
}
return null
}
fun getAvailableCountries(): List<Country> {
val isoCountries = Locale.getISOCountries()
val countries = mutableListOf<Country>()
isoCountries.forEach { countryCode ->
val locale = Locale("", countryCode)
val countryName = locale.displayCountry
countries.add(
Country(
countryName,
countryCode
)
)
}
countries.sortBy { it.name }
return countries
}
fun getAvailableLocales(): List<Country> {
val availableLocales: Array<Locale> = Locale.getAvailableLocales()
val locales = mutableListOf<Country>()
availableLocales.forEach { locale ->
if (locales.filter { it.code == locale.language }.isEmpty()) {
locales.add(
Country(
locale.displayLanguage,
locale.language
)
)
}
}
return locales
}
}

View File

@ -335,4 +335,7 @@
<string name="push_channel_description">يظهر إشعارًا عند توفر تدفقات جديدة.</string>
<string name="save_feed">تحميل التغذية في الخلفية</string>
<string name="save_feed_summary">قم بتحميل خلاصة الاشتراك في الخلفية وامنعها من التحديث التلقائي.</string>
<string name="play_next">تشغيل التالي</string>
<string name="navigation_bar">شريط التنقل</string>
<string name="select_at_least_one">يرجى اختيار عنصر واحد على الأقل</string>
</resources>

View File

@ -336,4 +336,6 @@
<string name="push_channel_description">Yeni yayımlar mövcud olduqda bildiriş göstərir.</string>
<string name="background_channel_description">Səs oynadıcını idarə etmək üçün düymələri olan bildiriş göstərir.</string>
<string name="play_next">Növbəti oynadın</string>
<string name="navigation_bar">Naviqasiya paneli</string>
<string name="select_at_least_one">Ən azı bir element seçin</string>
</resources>

View File

@ -336,4 +336,6 @@
<string name="save_feed">Načítat zdroj v pozadí</string>
<string name="save_feed_summary">Načítat zdroj odběrů v pozadí a zabránit jeho automatickému obnovování.</string>
<string name="play_next">Přehrát jako další</string>
<string name="navigation_bar">Navigační lišta</string>
<string name="select_at_least_one">Vyberte prosím alespoň jednu položku</string>
</resources>

View File

@ -92,9 +92,9 @@
<string name="category_sponsor_description">Promoción pagada, referencias pagadas y anuncios directos. No para la autopromoción o los agradecimientos genuinos y gratuitos a las causas, creadores, sitios web y productos.</string>
<string name="sponsorblock_state">Activado</string>
<string name="category_segments">Segmentos</string>
<string name="category_selfpromo_description">Similar a \"patrocinador\", excepto que no se paga o se hace autopromoción. Esto incluye secciones sobre mercancía, donaciones o información sobre con quién han colaborado.</string>
<string name="category_interaction">Recordatorio de interacción (me gusta y suscríbete)</string>
<string name="category_interaction_description">Cuando hay un breve recordatorio para dar me gusta, suscribirse o seguir en medio del contenido. Si es largo o se trata de algo específico, debería ser una autopromoción.</string>
<string name="category_selfpromo_description">Similar a \"patrocinador\" excepto por promoción no remunerada o propia. Esto incluye secciones sobre mercadería, donaciones o información sobre con quién colaboraron.</string>
<string name="category_interaction">Recordatorio de interacción (me gusta y suscribirse)</string>
<string name="category_interaction_description">Cuando hay un breve recordatorio para dar me gusta, suscribirse o seguir en medio del contenido. Si es largo o sobre algo específico, debería ser una autopromoción.</string>
<string name="category_selfpromo">No remunerado/Autopromoción</string>
<string name="category_intro">Intermedio/Animación de entrada</string>
<string name="category_outro">Tarjetas finales y créditos</string>
@ -110,7 +110,7 @@
<string name="oledTheme">Negro</string>
<string name="material_you">Tu Material</string>
<string name="app_icon">Icono</string>
<string name="piped">Piped</string>
<string name="piped">Hilo</string>
<string name="youtube">YouTube</string>
<string name="sponsorblock_notifications">Notificaciones</string>
<string name="enabled">Activado</string>
@ -264,7 +264,7 @@
<string name="playingOnBackground">Reproduciendo en segundo plano…</string>
<string name="caption_settings">Subtítulos</string>
<string name="best_quality">Mejor</string>
<string name="worst_quality">Peor</string>
<string name="worst_quality">Peor calidad</string>
<string name="default_subtitle_language">Idioma subtítulo</string>
<string name="notify_new_streams">Norificaciones para nuevos directos</string>
<string name="checking_frequency">Comprobando todo …</string>
@ -307,7 +307,7 @@
<string name="add_to_queue">Añadir a la cola</string>
<string name="misc">Miscelánea</string>
<string name="break_reminder">Recordatorio de pausa</string>
<string name="yt_shorts">Shorts</string>
<string name="yt_shorts">Vídeos Cortos</string>
<string name="no_subtitles_available">No hay subtítulos disponibles</string>
<string name="player_resize_mode">Modo de redimensión</string>
<string name="maximum_image_cache">Tamaño máximo de la caché de imágenes</string>
@ -330,4 +330,12 @@
<string name="sb_skip_manual_summary">No omita segmentos automáticamente, siempre pregunte antes.</string>
<string name="push_channel_description">Muestra una notificación cuando haya nuevos flujos disponibles.</string>
<string name="background_channel_description">Mostrar una notificación con botones para controlar el reproductor de audio.</string>
<string name="local_subscriptions">Suscripciones locales</string>
<string name="preferences">Preferencias</string>
<string name="backup_customInstances">Instancias personalizadas</string>
<string name="save_feed">Cargar los feed en segundo plano</string>
<string name="save_feed_summary">Cargar el feed de suscripción en segundo plano y evitar que se actualice automáticamente.</string>
<string name="play_next">Reproducir el siguiente</string>
<string name="navigation_bar">Barra de navegación</string>
<string name="select_at_least_one">Por favor, seleccione al menos un artículo</string>
</resources>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="cancel">Ezeztatu</string>
<string name="cancel">Utzi</string>
<string name="startpage">Hasiera</string>
<string name="subscriptions">Harpidetzak</string>
<string name="library">Liburutegia</string>
@ -44,7 +44,7 @@
<string name="grid">Lauki-sare zutabea</string>
<string name="emptyList">Ezer hemen.</string>
<string name="deletePlaylist">Ezabatu erreprodukzio zerrenda</string>
<string name="areYouSure">Erreprodukzio zerrenda ezabatu\?</string>
<string name="areYouSure">Erreprodukzio zerrenda ezabatu nahi duzu\?</string>
<string name="playlistCreated">Erreprodukzio zerrenda sortua.</string>
<string name="playlistName">Erreprodukzio zerrendaren izena</string>
<string name="addToPlaylist">Gehitu erreprodukzio zerrendara</string>
@ -96,14 +96,14 @@
<string name="disabled">Itzalita</string>
<string name="piped">Piped</string>
<string name="youtube">YouTube</string>
<string name="playOnBackground">Abiarazi atzeko planoan</string>
<string name="playOnBackground">Erreproduzitu atzeko planoan</string>
<string name="update_available">%1$s bertsioa eskuragarri dago</string>
<string name="update_available_text">GitHub-era joan deskargatzeko\?</string>
<string name="category_outro">Amaierako txartelak eta kredituak</string>
<string name="video_format">Bideo formatua</string>
<string name="video_format_summary">Audioa eta bideoa deskargatzen badira, fitxategi bihurtzea.</string>
<string name="download_directory">Deskargatu hona</string>
<string name="download_directory_summary">Deskargatutako multimedia gordetzen den lekua</string>
<string name="download_directory_summary">Deskargatutako multimedia gordetzen den lekua.</string>
<string name="app_uptodate">Azken bertsioa da hau.</string>
<string name="no_update_available">Azken bertsioa erabiltzen ari zara.</string>
<string name="advanced">Aurreratua</string>
@ -131,9 +131,9 @@
<string name="unsubscribe">Kendu harpidetza</string>
<string name="loggedout">Saioa itxita.</string>
<string name="empty">Erabiltzaile izena eta pasahitza sartu behar dituzu.</string>
<string name="createPlaylist">Erreprodukzio zerrenda sortu</string>
<string name="createPlaylist">Sortu erreprodukzio zerrenda</string>
<string name="choose_filter">Hautatu bilaketa filtroa</string>
<string name="emptyPlaylistName">Erreprodukzio zerrendak ezin du hutsik egon</string>
<string name="emptyPlaylistName">Erreprodukzio zerrendaren izenak ezin du hutsik egon</string>
<string name="fail">Akatsa :(</string>
<string name="systemLanguage">Sistema</string>
<string name="retry">Saiatu berriro</string>
@ -142,9 +142,9 @@
<string name="search_history">Bilaketen historia</string>
<string name="playlists">Erreprodukzio zerrendak</string>
<string name="category_sponsor">Babeslea</string>
<string name="segment_skipped">Alde batera utzitako zatiak</string>
<string name="segment_skipped">Saltatutako zatiak</string>
<string name="sponsorblock_state">Piztuta</string>
<string name="category_segments">Segmentuak</string>
<string name="category_segments">Zatiak</string>
<string name="downloads">Deskargak</string>
<string name="app_behavior">Portaera</string>
<string name="appearance">Itxura</string>
@ -153,7 +153,7 @@
<string name="donate">Dohaintza</string>
<string name="update_summary">Klik egin aplikazioa eguneratuta dagoen jakiteko.</string>
<string name="live">Zuzenean</string>
<string name="playback_speed">Erreprodukzio-abiadura</string>
<string name="playback_speed">Erreprodukzio abiadura</string>
<string name="authors">Egileak</string>
<string name="internal_storage">Barne biltegiratzea</string>
<string name="customInstance_summary">Gehitu…</string>
@ -172,7 +172,7 @@
<string name="hide_chapters">Ezkutatu kapituluak</string>
<string name="category_music_offtopic">Musika: Musikarik gabeko atala</string>
<string name="category_preview">Aurrebista</string>
<string name="category_preview_description">Serie honetan edo etorkizunean agertuko dena erakusten duten segmentuetarako, baina ez dute informazio gehigarririk ematen. Hemen bakarrik agertzen diren klipak baditu, oso litekeena da kategoria okerra izatea.</string>
<string name="category_preview_description">Serie honetan edo etorkizunean agertuko dena erakusten duten zatietarako, baina ez dute informazio gehigarririk ematen. Hemen bakarrik agertzen diren klipak baditu, oso litekeena da kategoria okerra izatea.</string>
<string name="buffering_goal_summary">Bideoak aurrez kargatzen diren segundo kopuru maximoa.</string>
<string name="category_filler">Betegarria/Txisteak</string>
<string name="category_filler_description">Bideoaren eduki nagusia ulertzeko beharrezkoak ez diren betegarrirako edo umorerako soilik gehitutako eszenak dira.</string>
@ -196,7 +196,7 @@
<string name="pauseOnScreenOff_summary">Pantaila itzalita dagoenean, erreproduzitzailea gelditu.</string>
<string name="autoplay_summary">Erreproduzitu automatikoki hurrengo bideoa unekoa amaitzen denean.</string>
<string name="pauseOnScreenOff">Automatikoki gelditzea</string>
<string name="clonePlaylist">Klonatu erreprodukzio-zerrenda</string>
<string name="clonePlaylist">Klonatu erreprodukzio zerrenda</string>
<string name="deleteAccount">Ezabatu kontua</string>
<string name="deleteAccount_summary">Ezabatu zure Piped kontua</string>
<string name="account">Kontua</string>
@ -245,7 +245,7 @@
<string name="none">Bat ere ez</string>
<string name="update_now">Libretube bertsio berria instalatu nahi duzu orain\?</string>
<string name="seekbar_preview">Bideoaren aurrebista</string>
<string name="seekbar_preview_summary">Aurreikusi bideoa erreprodukzio-barran arrastatzean.</string>
<string name="seekbar_preview_summary">Aurreikusi bideoa erreprodukzio barra arrastatzean.</string>
<string name="watch_history_summary">Gailuan ikusitako bideoen jarraipena egitea</string>
<string name="watch_positions_title">Gogoratu erreprodukzioen posizioak</string>
<string name="captions">Azpitituluak</string>
@ -296,7 +296,7 @@
<string name="break_reminder">Atsedenaren abisua</string>
<string name="already_spent_time">Dagoeneko %1$s minutu eman dituzu aplikazioan, atseden hartzeko ordua da.</string>
<string name="yt_shorts">Motzak</string>
<string name="break_reminder_time">Gogorarazi minutu batzuk lehenago</string>
<string name="break_reminder_time">Gogorarazi ondorengo minutuak igarotzean</string>
<string name="legacy_subscriptions">Harpidetza zaharren ikuspegia</string>
<string name="device_info">Gailuaren informazioa</string>
<string name="no_subtitles_available">Ez dago azpititulurik erabilgarri</string>
@ -314,4 +314,28 @@
<string name="open_copied">Ireki</string>
<string name="picture_in_picture">Irudia irudian</string>
<string name="audio_video_summary">Kalitatea ea formatua</string>
<string name="new_videos_badge">Bideo berrien adierazlea</string>
<string name="new_videos_badge_summary">Erakutsi bereizgarri bat bideo berrien kopuruarekin, baldin badaude.</string>
<string name="wifi">Wi-Fi</string>
<string name="skip_segment">Saltatu zatia</string>
<string name="sb_skip_manual">Saltatu eskuz</string>
<string name="sb_skip_manual_summary">Ez saltatu segmentuak automatikoki, galdetu beti aurretik.</string>
<string name="download_channel_name">Deskarga zerbitzua</string>
<string name="download_channel_description">Multimedia deskargatzean jakinarazpen bat erakusten du.</string>
<string name="background_channel_name">Atzeko planoko modua</string>
<string name="background_channel_description">Audio-erreproduzitzailea maneiatzeko botoiekin jakinarazpen bat erakusten du.</string>
<string name="push_channel_name">Jakinarazpenen egilea</string>
<string name="local_subscriptions">Tokiko harpidetzak</string>
<string name="preferences">Hobespenak</string>
<string name="backup_customInstances">Instantzia pertsonalizatuak</string>
<string name="save_feed">Kargatu jarioa atzeko planoan</string>
<string name="save_feed_summary">Kargatu harpidetzako jarioa atzeko planoan eta saihestu automatikoki freskatzea.</string>
<string name="play_next">Erreproduzitu hurrengoa</string>
<string name="navigation_bar">Nabigazio-barra</string>
<string name="push_channel_description">Erakutsi jakinarazpen bat korronte berriak erabilgarri daudenean.</string>
<string name="select_at_least_one">Hautatu elementu bat gutxienez</string>
<string name="delete">Ezabatu</string>
<string name="trending_layout">Joera alternatiboaren diseinua</string>
<string name="renamePlaylist">Berrizendatu erreprodukzio zerrenda</string>
<string name="mobile_data">Datu mugikorrak</string>
</resources>

View File

@ -336,4 +336,6 @@
<string name="save_feed">Muat umpan di latar belakang</string>
<string name="save_feed_summary">Muat umpan langganan di latar belakang dan cegah dari memuat secara otomatis.</string>
<string name="play_next">Main berikutnya</string>
<string name="navigation_bar">Bilah navigasi</string>
<string name="select_at_least_one">Mohon pilih setidaknya satu item</string>
</resources>

View File

@ -329,4 +329,13 @@
<string name="preferences">Preferenze</string>
<string name="backup_customInstances">Istanze personalizzate</string>
<string name="play_next">Riproduci il successivo</string>
<string name="background_channel_name">Modalità in background</string>
<string name="download_channel_name">Servizio di Download</string>
<string name="push_channel_name">Operatore di notifica</string>
<string name="push_channel_description">Mostra una notifica quando sono disponibili nuove stream.</string>
<string name="save_feed">Carica feed in background</string>
<string name="save_feed_summary">Carica il feed delle iscrizioni in background e impedisci che venga aggiornato automaticamente.</string>
<string name="legacy_subscriptions">Visualizzazione iscrizioni legacy</string>
<string name="navigation_bar">Barra di navigazione</string>
<string name="select_at_least_one">Seleziona almeno un elemento</string>
</resources>

View File

@ -335,4 +335,7 @@
<string name="push_channel_name">מתפעל התראות</string>
<string name="save_feed_summary">לטעון את ערוץ ההזנה של המינוי ברקע ולמנוע את רענונו מחדש אוטומטית.</string>
<string name="push_channel_description">מציג התראה כשתזרימים חדשים זמינים.</string>
<string name="play_next">לנגן את הבא</string>
<string name="navigation_bar">סרגל ניווט</string>
<string name="select_at_least_one">נא לבחור פריט אחד לפחות</string>
</resources>

View File

@ -30,11 +30,11 @@
<string name="logout">Wyloguj się</string>
<string name="import_from_yt">Importuj subskrypcje</string>
<string name="app_theme">Motyw aplikacji</string>
<string name="server_error">Serwer napotkał problem. Spróbuj może użyć innej instancji\?</string>
<string name="server_error">Serwer napotkał problem. Spróbuj użyć innej instancji.</string>
<string name="unknown_error">Błąd sieci.</string>
<string name="error">Coś poszło nie tak.</string>
<string name="notgmail">To jest dla konta Piped.</string>
<string name="defres">Jakość wideo</string>
<string name="defres">Rozdzielczość wideo</string>
<string name="grid">Zagęszczenie siatki filmów</string>
<string name="emptyList">Tu jeszcze nic nie ma.</string>
<string name="deletePlaylist">Usuń listę odtwarzania</string>
@ -48,7 +48,7 @@
<string name="cannotDownload">Nie można pobrać tego wideo.</string>
<string name="vlc">Otwórz w VLC</string>
<string name="empty">Nazwa użytkownika i hasło nie mogą być puste.</string>
<string name="vlcerror">Nie można otworzyć w VLC. Może nie być zainstalowana.</string>
<string name="vlcerror">Nie można otworzyć w VLC. Może nie być zainstalowany.</string>
<string name="areYouSure">Na pewno chcesz usunąć tę listę odtwarzania\?</string>
<string name="addToPlaylist">Dodaj do listy odtwarzania</string>
<string name="emptyPlaylistName">Nazwa listy odtwarzania nie może być pusta</string>
@ -109,7 +109,7 @@
<string name="app_icon">Ikona aplikacji</string>
<string name="youtube">YouTube</string>
<string name="music_songs">YT Music (Muzyka)</string>
<string name="music_videos">YT Wideoklip</string>
<string name="music_videos">YT Music (Wideo)</string>
<string name="music_albums">YT Music (Albumy)</string>
<string name="music_playlists">YT Music (Listy odtwarzania)</string>
<string name="playOnBackground">Odtwarzanie w tle</string>
@ -335,4 +335,7 @@
<string name="download_channel_description">Pokazuje powiadomienie podczas pobierania mediów.</string>
<string name="save_feed_summary">Załaduj kanał subskrypcji w tle i zapobiegnij jego automatycznemu odświeżaniu.</string>
<string name="save_feed">Ładowanie kanału w tle</string>
<string name="play_next">Odtwórz następne</string>
<string name="navigation_bar">Pasek nawigacyjny</string>
<string name="select_at_least_one">Proszę wybrać co najmniej jedną pozycję</string>
</resources>

View File

@ -335,4 +335,7 @@
<string name="download_channel_description">Medya indirirken bildirim gösterir.</string>
<string name="push_channel_name">Bildirim Çalışanı</string>
<string name="push_channel_description">Yeni akışlar mevcut olduğunda bir bildirim gösterir.</string>
<string name="play_next">Sonrakini oynat</string>
<string name="navigation_bar">Gezinme çubuğu</string>
<string name="select_at_least_one">Lütfen en az bir öge seçin</string>
</resources>

View File

@ -336,4 +336,6 @@
<string name="save_feed">后台加载订阅源</string>
<string name="save_feed_summary">后台加载订阅源并防止其自动刷新。</string>
<string name="play_next">播放下一个</string>
<string name="select_at_least_one">请选择至少一个项目</string>
<string name="navigation_bar">导航栏</string>
</resources>

View File

@ -24,6 +24,7 @@
<item>https://api.yt.jae.fi/</item>
<item>https://piped-api.privacy.com.de/</item>
</string-array>
<string-array name="shareHostsList">
<item>youtube.com"</item>
<item>m.youtube.com"</item>
@ -64,398 +65,6 @@
<item>piped.mint.lgbt"</item>
<item>il.ax"</item>
</string-array>
<string-array name="regions">
<item>@string/systemDefault</item>
<item>Afghanistan</item>
<item>Albania</item>
<item>Algeria</item>
<item>Andorra</item>
<item>Angola</item>
<item>Antigua and Barbuda</item>
<item>Argentina</item>
<item>Armenia</item>
<item>Australia</item>
<item>Austria</item>
<item>Azerbaijan</item>
<item>Bahamas</item>
<item>Bahrain</item>
<item>Bangladesh</item>
<item>Barbados</item>
<item>Belarus</item>
<item>Belgium</item>
<item>Belize</item>
<item>Benin</item>
<item>Bhutan</item>
<item>Bolivia (Plurinational State of)</item>
<item>Bosnia and Herzegovina</item>
<item>Botswana</item>
<item>Brazil</item>
<item>Brunei Darussalam</item>
<item>Bulgaria</item>
<item>Burkina Faso</item>
<item>Burundi</item>
<item>Cabo Verde</item>
<item>Cambodia</item>
<item>Cameroon</item>
<item>Canada</item>
<item>Central African Republic</item>
<item>Chad</item>
<item>Chile</item>
<item>China</item>
<item>Colombia</item>
<item>Comoros</item>
<item>Congo</item>
<item>Congo, Democratic Republic of the</item>
<item>Costa Rica</item>
<item>Côte d\'Ivoire</item>
<item>Croatia</item>
<item>Cuba</item>
<item>Cyprus</item>
<item>Czechia</item>
<item>Denmark</item>
<item>Djibouti</item>
<item>Dominica</item>
<item>Dominican Republic</item>
<item>Ecuador</item>
<item>Egypt</item>
<item>El Salvador</item>
<item>Equatorial Guinea</item>
<item>Eritrea</item>
<item>Estonia</item>
<item>Eswatini</item>
<item>Ethiopia</item>
<item>Fiji</item>
<item>Finland</item>
<item>France</item>
<item>Gabon</item>
<item>Gambia</item>
<item>Georgia</item>
<item>Germany</item>
<item>Ghana</item>
<item>Greece</item>
<item>Grenada</item>
<item>Guatemala</item>
<item>Guinea</item>
<item>Guinea-Bissau</item>
<item>Guyana</item>
<item>Haiti</item>
<item>Honduras</item>
<item>Hungary</item>
<item>Iceland</item>
<item>India</item>
<item>Indonesia</item>
<item>Iran (Islamic Republic of)</item>
<item>Iraq</item>
<item>Ireland</item>
<item>Israel</item>
<item>Italy</item>
<item>Jamaica</item>
<item>Japan</item>
<item>Jordan</item>
<item>Kazakhstan</item>
<item>Kenya</item>
<item>Kiribati</item>
<item>Korea (Democratic People\'s Republic of)</item>
<item>Korea, Republic of</item>
<item>Kuwait</item>
<item>Kyrgyzstan</item>
<item>Lao People\'s Democratic Republic</item>
<item>Latvia</item>
<item>Lebanon</item>
<item>Lesotho</item>
<item>Liberia</item>
<item>Libya</item>
<item>Liechtenstein</item>
<item>Lithuania</item>
<item>Luxembourg</item>
<item>Madagascar</item>
<item>Malawi</item>
<item>Malaysia</item>
<item>Maldives</item>
<item>Mali</item>
<item>Malta</item>
<item>Marshall Islands</item>
<item>Mauritania</item>
<item>Mauritius</item>
<item>Mexico</item>
<item>Micronesia (Federated States of)</item>
<item>Moldova, Republic of</item>
<item>Monaco</item>
<item>Mongolia</item>
<item>Montenegro</item>
<item>Morocco</item>
<item>Mozambique</item>
<item>Myanmar</item>
<item>Namibia</item>
<item>Nauru</item>
<item>Nepal</item>
<item>Netherlands</item>
<item>New Zealand</item>
<item>Nicaragua</item>
<item>Niger</item>
<item>Nigeria</item>
<item>North Macedonia</item>
<item>Norway</item>
<item>Oman</item>
<item>Pakistan</item>
<item>Palau</item>
<item>Panama</item>
<item>Papua New Guinea</item>
<item>Paraguay</item>
<item>Peru</item>
<item>Philippines</item>
<item>Poland</item>
<item>Portugal</item>
<item>Qatar</item>
<item>Romania</item>
<item>Russian Federation</item>
<item>Rwanda</item>
<item>Saint Kitts and Nevis</item>
<item>Saint Lucia</item>
<item>Saint Vincent and the Grenadines</item>
<item>Samoa</item>
<item>San Marino</item>
<item>Sao Tome and Principe</item>
<item>Saudi Arabia</item>
<item>Senegal</item>
<item>Serbia</item>
<item>Seychelles</item>
<item>Sierra Leone</item>
<item>Singapore</item>
<item>Slovakia</item>
<item>Slovenia</item>
<item>Solomon Islands</item>
<item>Somalia</item>
<item>South Africa</item>
<item>South Sudan</item>
<item>Spain</item>
<item>Sri Lanka</item>
<item>Sudan</item>
<item>Suriname</item>
<item>Sweden</item>
<item>Switzerland</item>
<item>Syrian Arab Republic</item>
<item>Tajikistan</item>
<item>Tanzania, United Republic of</item>
<item>Thailand</item>
<item>Timor-Leste</item>
<item>Togo</item>
<item>Tonga</item>
<item>Trinidad and Tobago</item>
<item>Tunisia</item>
<item>Turkey</item>
<item>Turkmenistan</item>
<item>Tuvalu</item>
<item>Uganda</item>
<item>Ukraine</item>
<item>United Arab Emirates</item>
<item>United Kingdom of Great Britain and Northern Ireland</item>
<item>United States of America</item>
<item>Uruguay</item>
<item>Uzbekistan</item>
<item>Vanuatu</item>
<item>Venezuela (Bolivarian Republic of)</item>
<item>Viet Nam</item>
<item>Yemen</item>
<item>Zambia</item>
<item>Zimbabwe</item>
</string-array>
<string-array name="regionsValue">
<item>sys</item>
<item>AF</item>
<item>AL</item>
<item>DZ</item>
<item>AD</item>
<item>AO</item>
<item>AG</item>
<item>AR</item>
<item>AM</item>
<item>AU</item>
<item>AT</item>
<item>AZ</item>
<item>BS</item>
<item>BH</item>
<item>BD</item>
<item>BB</item>
<item>BY</item>
<item>BE</item>
<item>BZ</item>
<item>BJ</item>
<item>BT</item>
<item>BO</item>
<item>BA</item>
<item>BW</item>
<item>BR</item>
<item>BN</item>
<item>BG</item>
<item>BF</item>
<item>BI</item>
<item>CV</item>
<item>KH</item>
<item>CM</item>
<item>CA</item>
<item>CF</item>
<item>TD</item>
<item>CL</item>
<item>CN</item>
<item>CO</item>
<item>KM</item>
<item>CG</item>
<item>CD</item>
<item>CR</item>
<item>CI</item>
<item>HR</item>
<item>CU</item>
<item>CY</item>
<item>CZ</item>
<item>DK</item>
<item>DJ</item>
<item>DM</item>
<item>DO</item>
<item>EC</item>
<item>EG</item>
<item>SV</item>
<item>GQ</item>
<item>ER</item>
<item>EE</item>
<item>SZ</item>
<item>ET</item>
<item>FJ</item>
<item>FI</item>
<item>FR</item>
<item>GA</item>
<item>GM</item>
<item>GE</item>
<item>DE</item>
<item>GH</item>
<item>GR</item>
<item>GD</item>
<item>GT</item>
<item>GN</item>
<item>GW</item>
<item>GY</item>
<item>HT</item>
<item>HN</item>
<item>HU</item>
<item>IS</item>
<item>IN</item>
<item>ID</item>
<item>IR</item>
<item>IQ</item>
<item>IE</item>
<item>IL</item>
<item>IT</item>
<item>JM</item>
<item>JP</item>
<item>JO</item>
<item>KZ</item>
<item>KE</item>
<item>KI</item>
<item>KP</item>
<item>KR</item>
<item>KW</item>
<item>KG</item>
<item>LA</item>
<item>LV</item>
<item>LB</item>
<item>LS</item>
<item>LR</item>
<item>LY</item>
<item>LI</item>
<item>LT</item>
<item>LU</item>
<item>MG</item>
<item>MW</item>
<item>MY</item>
<item>MV</item>
<item>ML</item>
<item>MT</item>
<item>MH</item>
<item>MR</item>
<item>MU</item>
<item>MX</item>
<item>FM</item>
<item>MD</item>
<item>MC</item>
<item>MN</item>
<item>ME</item>
<item>MA</item>
<item>MZ</item>
<item>MM</item>
<item>NA</item>
<item>NR</item>
<item>NP</item>
<item>NL</item>
<item>NZ</item>
<item>NI</item>
<item>NE</item>
<item>NG</item>
<item>MK</item>
<item>NO</item>
<item>OM</item>
<item>PK</item>
<item>PW</item>
<item>PA</item>
<item>PG</item>
<item>PY</item>
<item>PE</item>
<item>PH</item>
<item>PL</item>
<item>PT</item>
<item>QA</item>
<item>RO</item>
<item>RU</item>
<item>RW</item>
<item>KN</item>
<item>LC</item>
<item>VC</item>
<item>WS</item>
<item>SM</item>
<item>ST</item>
<item>SA</item>
<item>SN</item>
<item>RS</item>
<item>SC</item>
<item>SL</item>
<item>SG</item>
<item>SK</item>
<item>SI</item>
<item>SB</item>
<item>SO</item>
<item>ZA</item>
<item>SS</item>
<item>ES</item>
<item>LK</item>
<item>SD</item>
<item>SR</item>
<item>SE</item>
<item>CH</item>
<item>SY</item>
<item>TJ</item>
<item>TZ</item>
<item>TH</item>
<item>TL</item>
<item>TG</item>
<item>TO</item>
<item>TT</item>
<item>TN</item>
<item>TR</item>
<item>TM</item>
<item>TV</item>
<item>UG</item>
<item>UA</item>
<item>AE</item>
<item>GB</item>
<item>US</item>
<item>UY</item>
<item>UZ</item>
<item>VU</item>
<item>VE</item>
<item>VN</item>
<item>YE</item>
<item>ZM</item>
<item>ZW</item>
</string-array>
<string-array name="languages">
<item>@string/systemLanguage</item>

View File

@ -332,6 +332,7 @@
<string name="play_next">Play next</string>
<string name="navigation_bar">Navigation bar</string>
<string name="select_at_least_one">Please select at least one item</string>
<string name="change_region">Trending seems to be unavailable for the current region. Please select another in the settings.</string>
<!-- Notification channel strings -->
<string name="download_channel_name">Download Service</string>

View File

@ -7,11 +7,8 @@
<ListPreference
android:icon="@drawable/ic_region"
app:defaultValue="sys"
app:entries="@array/regions"
app:entryValues="@array/regionsValue"
app:key="region"
app:title="@string/region"
app:useSimpleSummaryProvider="true" />
app:title="@string/region" />
<ListPreference
android:icon="@drawable/ic_translate"