forked from recloudstream/cloudstream
added webvideocaster
This commit is contained in:
parent
88a7248e47
commit
071004f6c2
33 changed files with 209 additions and 118 deletions
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
<queries>
|
<queries>
|
||||||
<package android:name="org.videolan.vlc" />
|
<package android:name="org.videolan.vlc" />
|
||||||
|
<package android:name="com.instantbits.cast.webvideo" />
|
||||||
</queries>
|
</queries>
|
||||||
|
|
||||||
<!--TODO https://stackoverflow.com/questions/41799732/chromecast-button-not-visible-in-android-->
|
<!--TODO https://stackoverflow.com/questions/41799732/chromecast-button-not-visible-in-android-->
|
||||||
|
|
|
@ -101,12 +101,13 @@ val VLC_COMPONENT: ComponentName =
|
||||||
ComponentName(VLC_PACKAGE, "org.videolan.vlc.gui.video.VideoPlayerActivity")
|
ComponentName(VLC_PACKAGE, "org.videolan.vlc.gui.video.VideoPlayerActivity")
|
||||||
const val VLC_REQUEST_CODE = 42
|
const val VLC_REQUEST_CODE = 42
|
||||||
|
|
||||||
const val VLC_FROM_START = -1
|
|
||||||
const val VLC_FROM_PROGRESS = -2
|
|
||||||
const val VLC_EXTRA_POSITION_OUT = "extra_position"
|
const val VLC_EXTRA_POSITION_OUT = "extra_position"
|
||||||
const val VLC_EXTRA_DURATION_OUT = "extra_duration"
|
const val VLC_EXTRA_DURATION_OUT = "extra_duration"
|
||||||
const val VLC_LAST_ID_KEY = "vlc_last_open_id"
|
const val VLC_LAST_ID_KEY = "vlc_last_open_id"
|
||||||
|
|
||||||
|
const val WEB_VIDEO_CAST_PACKAGE = "com.instantbits.cast.webvideo"
|
||||||
|
|
||||||
|
|
||||||
// Short name for requests client to make it nicer to use
|
// Short name for requests client to make it nicer to use
|
||||||
|
|
||||||
var app = Requests(responseParser = object : ResponseParser {
|
var app = Requests(responseParser = object : ResponseParser {
|
||||||
|
|
|
@ -55,6 +55,9 @@ const val ACTION_SHOW_DESCRIPTION = 15
|
||||||
const val ACTION_DOWNLOAD_EPISODE_SUBTITLE = 13
|
const val ACTION_DOWNLOAD_EPISODE_SUBTITLE = 13
|
||||||
const val ACTION_DOWNLOAD_EPISODE_SUBTITLE_MIRROR = 14
|
const val ACTION_DOWNLOAD_EPISODE_SUBTITLE_MIRROR = 14
|
||||||
|
|
||||||
|
const val ACTION_PLAY_EPISODE_IN_WEB_VIDEO = 16
|
||||||
|
|
||||||
|
|
||||||
data class EpisodeClickEvent(val action: Int, val data: ResultEpisode)
|
data class EpisodeClickEvent(val action: Int, val data: ResultEpisode)
|
||||||
|
|
||||||
class EpisodeAdapter(
|
class EpisodeAdapter(
|
||||||
|
@ -73,6 +76,7 @@ class EpisodeAdapter(
|
||||||
1 -> ACTION_PLAY_EPISODE_IN_PLAYER
|
1 -> ACTION_PLAY_EPISODE_IN_PLAYER
|
||||||
2 -> ACTION_PLAY_EPISODE_IN_VLC_PLAYER
|
2 -> ACTION_PLAY_EPISODE_IN_VLC_PLAYER
|
||||||
3 -> ACTION_PLAY_EPISODE_IN_BROWSER
|
3 -> ACTION_PLAY_EPISODE_IN_BROWSER
|
||||||
|
4 -> ACTION_PLAY_EPISODE_IN_WEB_VIDEO
|
||||||
else -> ACTION_PLAY_EPISODE_IN_PLAYER
|
else -> ACTION_PLAY_EPISODE_IN_PLAYER
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.lagradost.cloudstream3.ui.result
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.*
|
import android.content.*
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.content.FileProvider
|
import androidx.core.content.FileProvider
|
||||||
|
@ -51,9 +52,7 @@ import com.lagradost.cloudstream3.utils.DataStoreHelper.getViewPos
|
||||||
import com.lagradost.cloudstream3.utils.DataStoreHelper.setDub
|
import com.lagradost.cloudstream3.utils.DataStoreHelper.setDub
|
||||||
import com.lagradost.cloudstream3.utils.DataStoreHelper.setResultEpisode
|
import com.lagradost.cloudstream3.utils.DataStoreHelper.setResultEpisode
|
||||||
import com.lagradost.cloudstream3.utils.DataStoreHelper.setResultSeason
|
import com.lagradost.cloudstream3.utils.DataStoreHelper.setResultSeason
|
||||||
import com.lagradost.cloudstream3.utils.UIHelper.checkWrite
|
|
||||||
import com.lagradost.cloudstream3.utils.UIHelper.navigate
|
import com.lagradost.cloudstream3.utils.UIHelper.navigate
|
||||||
import com.lagradost.cloudstream3.utils.UIHelper.requestRW
|
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.lang.Math.abs
|
import java.lang.Math.abs
|
||||||
|
@ -955,105 +954,152 @@ class ResultViewModel2 : ViewModel() {
|
||||||
return LinkLoadingResult(sortUrls(links), sortSubs(subs))
|
return LinkLoadingResult(sortUrls(links), sortSubs(subs))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun launchActivity(
|
||||||
|
activity: Activity?,
|
||||||
|
work: suspend (CoroutineScope.(Activity) -> Unit)
|
||||||
|
): Job? {
|
||||||
|
val act = activity ?: return null
|
||||||
|
return CoroutineScope(Dispatchers.IO).launch {
|
||||||
|
try {
|
||||||
|
work(act)
|
||||||
|
} catch (t: Throwable) {
|
||||||
|
logError(t)
|
||||||
|
main {
|
||||||
|
if (t is ActivityNotFoundException) {
|
||||||
|
showToast(activity, txt(R.string.app_not_found_error), Toast.LENGTH_LONG)
|
||||||
|
} else {
|
||||||
|
showToast(activity, t.toString(), Toast.LENGTH_LONG)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun playInWebVideo(
|
||||||
|
activity: Activity?,
|
||||||
|
link: ExtractorLink,
|
||||||
|
title: String?,
|
||||||
|
posterUrl: String?,
|
||||||
|
subtitles: List<SubtitleData>
|
||||||
|
) = launchActivity(activity) { act ->
|
||||||
|
val shareVideo = Intent(Intent.ACTION_VIEW)
|
||||||
|
|
||||||
|
shareVideo.setDataAndType(Uri.parse(link.url), "video/*")
|
||||||
|
shareVideo.setPackage(WEB_VIDEO_CAST_PACKAGE)
|
||||||
|
shareVideo.putExtra("subs", subtitles.map { it.url.toUri() }.toTypedArray())
|
||||||
|
title?.let { shareVideo.putExtra("title", title) }
|
||||||
|
posterUrl?.let { shareVideo.putExtra("poster", posterUrl) }
|
||||||
|
val headers = Bundle().apply {
|
||||||
|
if (link.referer.isNotBlank())
|
||||||
|
putString("Referer", link.referer)
|
||||||
|
putString("User-Agent", USER_AGENT)
|
||||||
|
for ((key, value) in link.headers) {
|
||||||
|
putString(key, value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
shareVideo.putExtra("android.media.intent.extra.HTTP_HEADERS", headers)
|
||||||
|
shareVideo.putExtra("secure_uri", true)
|
||||||
|
|
||||||
|
act.startActivity(shareVideo)
|
||||||
|
}
|
||||||
|
|
||||||
// https://wiki.videolan.org/Android_Player_Intents/
|
// https://wiki.videolan.org/Android_Player_Intents/
|
||||||
private fun playWithVlc(
|
private fun playWithVlc(
|
||||||
act: Activity?,
|
activity: Activity?,
|
||||||
data: LinkLoadingResult,
|
data: LinkLoadingResult,
|
||||||
id: Int,
|
id: Int,
|
||||||
resume: Boolean = true,
|
resume: Boolean = true,
|
||||||
// if it is only a single link then resume works correctly
|
// if it is only a single link then resume works correctly
|
||||||
singleFile: Boolean? = null
|
singleFile: Boolean? = null
|
||||||
) = ioSafe {
|
) = launchActivity(activity) { act ->
|
||||||
if (act == null) return@ioSafe
|
val vlcIntent = Intent(VLC_INTENT_ACTION_RESULT)
|
||||||
if (data.links.isEmpty()) {
|
|
||||||
showToast(act, R.string.no_links_found_toast, Toast.LENGTH_SHORT)
|
|
||||||
return@ioSafe
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
if (!act.checkWrite()) {
|
|
||||||
act.requestRW()
|
|
||||||
if (act.checkWrite()) return@ioSafe
|
|
||||||
}
|
|
||||||
|
|
||||||
val vlcIntent = Intent(VLC_INTENT_ACTION_RESULT)
|
vlcIntent.setPackage(VLC_PACKAGE)
|
||||||
|
vlcIntent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION)
|
||||||
|
vlcIntent.addFlags(Intent.FLAG_GRANT_PREFIX_URI_PERMISSION)
|
||||||
|
vlcIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
|
||||||
|
vlcIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
|
||||||
|
val outputDir = act.cacheDir
|
||||||
|
|
||||||
vlcIntent.setPackage(VLC_PACKAGE)
|
if (singleFile ?: (data.links.size == 1)) {
|
||||||
vlcIntent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION)
|
vlcIntent.setDataAndType(data.links.first().url.toUri(), "video/*")
|
||||||
vlcIntent.addFlags(Intent.FLAG_GRANT_PREFIX_URI_PERMISSION)
|
} else {
|
||||||
vlcIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
|
val outputFile = File.createTempFile("mirrorlist", ".m3u8", outputDir)
|
||||||
vlcIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
|
|
||||||
val outputDir = act.cacheDir
|
|
||||||
|
|
||||||
if (singleFile ?: (data.links.size == 1)) {
|
var text = "#EXTM3U"
|
||||||
vlcIntent.setDataAndType(data.links.first().url.toUri(), "video/*")
|
|
||||||
} else {
|
|
||||||
val outputFile = File.createTempFile("mirrorlist", ".m3u8", outputDir)
|
|
||||||
|
|
||||||
var text = "#EXTM3U"
|
// With subtitles it doesn't work for no reason :(
|
||||||
|
|
||||||
// With subtitles it doesn't work for no reason :(
|
|
||||||
// for (sub in data.subs) {
|
// for (sub in data.subs) {
|
||||||
// text += "\n#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID=\"subs\",NAME=\"${sub.name}\",DEFAULT=NO,AUTOSELECT=NO,FORCED=NO,LANGUAGE=\"${sub.name}\",URI=\"${sub.url}\""
|
// text += "\n#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID=\"subs\",NAME=\"${sub.name}\",DEFAULT=NO,AUTOSELECT=NO,FORCED=NO,LANGUAGE=\"${sub.name}\",URI=\"${sub.url}\""
|
||||||
// }
|
// }
|
||||||
for (link in data.links) {
|
for (link in data.links) {
|
||||||
text += "\n#EXTINF:, ${link.name}\n${link.url}"
|
text += "\n#EXTINF:, ${link.name}\n${link.url}"
|
||||||
}
|
}
|
||||||
outputFile.writeText(text)
|
outputFile.writeText(text)
|
||||||
|
|
||||||
vlcIntent.setDataAndType(
|
vlcIntent.setDataAndType(
|
||||||
FileProvider.getUriForFile(
|
FileProvider.getUriForFile(
|
||||||
|
act,
|
||||||
|
act.applicationContext.packageName + ".provider",
|
||||||
|
outputFile
|
||||||
|
), "video/*"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
val position = if (resume) {
|
||||||
|
getViewPos(id)?.position ?: 0L
|
||||||
|
} else {
|
||||||
|
1L
|
||||||
|
}
|
||||||
|
vlcIntent.putExtra("from_start", !resume)
|
||||||
|
vlcIntent.putExtra("position", position)
|
||||||
|
//vlcIntent.putExtra("subtitles_location", data.subs.first().url)
|
||||||
|
/*for (s in data.subs) {
|
||||||
|
if (s.origin == SubtitleOrigin.URL) {
|
||||||
|
try {
|
||||||
|
val txt = app.get(s.url, s.headers).text
|
||||||
|
val subtitleFile = File.createTempFile("subtitle1", ".srt", outputDir)
|
||||||
|
subtitleFile.writeText(txt)
|
||||||
|
println("Subtitles::::::${subtitleFile.path}")
|
||||||
|
vlcIntent.putExtra("subtitles_location", FileProvider.getUriForFile(
|
||||||
act,
|
act,
|
||||||
act.applicationContext.packageName + ".provider",
|
act.applicationContext.packageName + ".provider",
|
||||||
outputFile
|
subtitleFile
|
||||||
), "video/*"
|
))
|
||||||
)
|
break
|
||||||
}
|
} catch (t : Throwable) {
|
||||||
|
logError(t)
|
||||||
val position = if (resume) {
|
|
||||||
getViewPos(id)?.position ?: 0L
|
|
||||||
} else {
|
|
||||||
1L
|
|
||||||
}
|
|
||||||
vlcIntent.putExtra("from_start", !resume)
|
|
||||||
vlcIntent.putExtra("position", position)
|
|
||||||
//vlcIntent.putExtra("subtitles_location", data.subs.first().url)
|
|
||||||
/*for (s in data.subs) {
|
|
||||||
if (s.origin == SubtitleOrigin.URL) {
|
|
||||||
try {
|
|
||||||
val txt = app.get(s.url, s.headers).text
|
|
||||||
val subtitleFile = File.createTempFile("subtitle1", ".srt", outputDir)
|
|
||||||
subtitleFile.writeText(txt)
|
|
||||||
println("Subtitles::::::${subtitleFile.path}")
|
|
||||||
vlcIntent.putExtra("subtitles_location", FileProvider.getUriForFile(
|
|
||||||
act,
|
|
||||||
act.applicationContext.packageName + ".provider",
|
|
||||||
subtitleFile
|
|
||||||
))
|
|
||||||
break
|
|
||||||
} catch (t : Throwable) {
|
|
||||||
logError(t)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
vlcIntent.component = VLC_COMPONENT
|
|
||||||
act.setKey(VLC_LAST_ID_KEY, id)
|
|
||||||
act.startActivityForResult(vlcIntent, VLC_REQUEST_CODE)
|
|
||||||
} catch (e: Exception) {
|
|
||||||
logError(e)
|
|
||||||
main {
|
|
||||||
if (e is ActivityNotFoundException) {
|
|
||||||
showToast(act, txt(R.string.vlc_not_found_error), Toast.LENGTH_LONG)
|
|
||||||
} else {
|
|
||||||
showToast(act, e.toString(), Toast.LENGTH_LONG)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
vlcIntent.component = VLC_COMPONENT
|
||||||
|
act.setKey(VLC_LAST_ID_KEY, id)
|
||||||
|
act.startActivityForResult(vlcIntent, VLC_REQUEST_CODE)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun handleAction(activity: Activity?, click: EpisodeClickEvent) =
|
||||||
|
viewModelScope.launchSafe {
|
||||||
|
handleEpisodeClickEvent(activity, click)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
fun handleAction(activity: Activity?, click: EpisodeClickEvent) = viewModelScope.launchSafe {
|
data class ExternalApp(
|
||||||
handleEpisodeClickEvent(activity, click)
|
val packageString: String,
|
||||||
}
|
val name: Int,
|
||||||
|
val action: Int,
|
||||||
|
)
|
||||||
|
|
||||||
|
private val apps = listOf(
|
||||||
|
ExternalApp(
|
||||||
|
VLC_PACKAGE,
|
||||||
|
R.string.player_settings_play_in_vlc,
|
||||||
|
ACTION_PLAY_EPISODE_IN_VLC_PLAYER
|
||||||
|
), ExternalApp(
|
||||||
|
WEB_VIDEO_CAST_PACKAGE,
|
||||||
|
R.string.player_settings_play_in_web,
|
||||||
|
ACTION_PLAY_EPISODE_IN_WEB_VIDEO
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
private suspend fun handleEpisodeClickEvent(activity: Activity?, click: EpisodeClickEvent) {
|
private suspend fun handleEpisodeClickEvent(activity: Activity?, click: EpisodeClickEvent) {
|
||||||
when (click.action) {
|
when (click.action) {
|
||||||
|
@ -1069,9 +1115,17 @@ class ResultViewModel2 : ViewModel() {
|
||||||
}
|
}
|
||||||
options.add(txt(R.string.episode_action_play_in_app) to ACTION_PLAY_EPISODE_IN_PLAYER)
|
options.add(txt(R.string.episode_action_play_in_app) to ACTION_PLAY_EPISODE_IN_PLAYER)
|
||||||
|
|
||||||
if (activity?.isAppInstalled(VLC_PACKAGE) == true) {
|
for (app in apps) {
|
||||||
options.add(txt(R.string.episode_action_play_in_vlc) to ACTION_PLAY_EPISODE_IN_VLC_PLAYER)
|
if (activity?.isAppInstalled(app.packageString) == true) {
|
||||||
|
options.add(
|
||||||
|
txt(
|
||||||
|
R.string.episode_action_play_in_format,
|
||||||
|
txt(app.name)
|
||||||
|
) to app.action
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
options.addAll(
|
options.addAll(
|
||||||
listOf(
|
listOf(
|
||||||
txt(R.string.episode_action_play_in_browser) to ACTION_PLAY_EPISODE_IN_BROWSER,
|
txt(R.string.episode_action_play_in_browser) to ACTION_PLAY_EPISODE_IN_BROWSER,
|
||||||
|
@ -1247,6 +1301,11 @@ class ResultViewModel2 : ViewModel() {
|
||||||
}
|
}
|
||||||
ACTION_PLAY_EPISODE_IN_VLC_PLAYER -> {
|
ACTION_PLAY_EPISODE_IN_VLC_PLAYER -> {
|
||||||
loadLinks(click.data, isVisible = true, isCasting = true) { links ->
|
loadLinks(click.data, isVisible = true, isCasting = true) { links ->
|
||||||
|
if (links.links.isEmpty()) {
|
||||||
|
showToast(activity, R.string.no_links_found_toast, Toast.LENGTH_SHORT)
|
||||||
|
return@loadLinks
|
||||||
|
}
|
||||||
|
|
||||||
playWithVlc(
|
playWithVlc(
|
||||||
activity,
|
activity,
|
||||||
links,
|
links,
|
||||||
|
@ -1254,6 +1313,22 @@ class ResultViewModel2 : ViewModel() {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ACTION_PLAY_EPISODE_IN_WEB_VIDEO -> acquireSingleLink(
|
||||||
|
click.data,
|
||||||
|
isCasting = true,
|
||||||
|
txt(
|
||||||
|
R.string.episode_action_play_in_format,
|
||||||
|
txt(R.string.player_settings_play_in_web)
|
||||||
|
)
|
||||||
|
) { (result, index) ->
|
||||||
|
playInWebVideo(
|
||||||
|
activity,
|
||||||
|
result.links[index],
|
||||||
|
click.data.name ?: click.data.headerName,
|
||||||
|
click.data.poster,
|
||||||
|
result.subs
|
||||||
|
)
|
||||||
|
}
|
||||||
ACTION_PLAY_EPISODE_IN_PLAYER -> {
|
ACTION_PLAY_EPISODE_IN_PLAYER -> {
|
||||||
val data = currentResponse?.syncData?.toList() ?: emptyList()
|
val data = currentResponse?.syncData?.toList() ?: emptyList()
|
||||||
val list =
|
val list =
|
||||||
|
@ -1319,7 +1394,11 @@ class ResultViewModel2 : ViewModel() {
|
||||||
}, {
|
}, {
|
||||||
if (this !is AnimeLoadResponse) return@argamap
|
if (this !is AnimeLoadResponse) return@argamap
|
||||||
val map =
|
val map =
|
||||||
Kitsu.getEpisodesDetails(getMalId(), getAniListId(), isResponseRequired = false)
|
Kitsu.getEpisodesDetails(
|
||||||
|
getMalId(),
|
||||||
|
getAniListId(),
|
||||||
|
isResponseRequired = false
|
||||||
|
)
|
||||||
if (map.isNullOrEmpty()) return@argamap
|
if (map.isNullOrEmpty()) return@argamap
|
||||||
updateEpisodes = DubStatus.values().map { dubStatus ->
|
updateEpisodes = DubStatus.values().map { dubStatus ->
|
||||||
val current =
|
val current =
|
||||||
|
@ -1339,8 +1418,10 @@ class ResultViewModel2 : ViewModel() {
|
||||||
val currentBack = this
|
val currentBack = this
|
||||||
this.description = this.description ?: node.description?.en
|
this.description = this.description ?: node.description?.en
|
||||||
this.name = this.name ?: node.titles?.canonical
|
this.name = this.name ?: node.titles?.canonical
|
||||||
this.episode = this.episode ?: node.num ?: episodeNumbers[index]
|
this.episode =
|
||||||
this.posterUrl = this.posterUrl ?: node.thumbnail?.original?.url
|
this.episode ?: node.num ?: episodeNumbers[index]
|
||||||
|
this.posterUrl =
|
||||||
|
this.posterUrl ?: node.thumbnail?.original?.url
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1628,7 +1709,8 @@ class ResultViewModel2 : ViewModel() {
|
||||||
for ((index, i) in ep.value.withIndex()) {
|
for ((index, i) in ep.value.withIndex()) {
|
||||||
val episode = i.episode ?: (index + 1)
|
val episode = i.episode ?: (index + 1)
|
||||||
val id =
|
val id =
|
||||||
mainId + episode + idIndex * 1_000_000 + (i.season?.times(10_000) ?: 0)
|
mainId + episode + idIndex * 1_000_000 + (i.season?.times(10_000)
|
||||||
|
?: 0)
|
||||||
if (!existingEpisodes.contains(id)) {
|
if (!existingEpisodes.contains(id)) {
|
||||||
existingEpisodes.add(id)
|
existingEpisodes.add(id)
|
||||||
val seasonData = loadResponse.seasonNames.getSeason(i.season)
|
val seasonData = loadResponse.seasonNames.getSeason(i.season)
|
||||||
|
|
|
@ -274,7 +274,7 @@
|
||||||
<string name="episode_action_chromecast_episode">حلقة كروم كاست</string>
|
<string name="episode_action_chromecast_episode">حلقة كروم كاست</string>
|
||||||
<string name="episode_action_chromecast_mirror">مرآة كروم كاست</string>
|
<string name="episode_action_chromecast_mirror">مرآة كروم كاست</string>
|
||||||
<string name="episode_action_play_in_app">تشغيل في التطبيق</string>
|
<string name="episode_action_play_in_app">تشغيل في التطبيق</string>
|
||||||
<string name="episode_action_play_in_vlc">VLC تشغيل في</string>
|
<string name="episode_action_play_in_format">%s تشغيل في</string>
|
||||||
<string name="episode_action_play_in_browser">تشغيل في الويب </string>
|
<string name="episode_action_play_in_browser">تشغيل في الويب </string>
|
||||||
<string name="episode_action_copy_link">نسخ الرابط</string>
|
<string name="episode_action_copy_link">نسخ الرابط</string>
|
||||||
<string name="episode_action_auto_download">التحميل التلقائي</string>
|
<string name="episode_action_auto_download">التحميل التلقائي</string>
|
||||||
|
|
|
@ -279,7 +279,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Episódio pelo Chromecast</string>
|
<string name="episode_action_chromecast_episode">Episódio pelo Chromecast</string>
|
||||||
<string name="episode_action_chromecast_mirror">Alternativa pelo Chromecast</string>
|
<string name="episode_action_chromecast_mirror">Alternativa pelo Chromecast</string>
|
||||||
<string name="episode_action_play_in_app">Assistir no App</string>
|
<string name="episode_action_play_in_app">Assistir no App</string>
|
||||||
<string name="episode_action_play_in_vlc">Assistir no VLC</string>
|
<string name="episode_action_play_in_format">Assistir no %s</string>
|
||||||
<string name="episode_action_play_in_browser">Assistir no navegador</string>
|
<string name="episode_action_play_in_browser">Assistir no navegador</string>
|
||||||
<string name="episode_action_copy_link">Copiar link</string>
|
<string name="episode_action_copy_link">Copiar link</string>
|
||||||
<string name="episode_action_auto_download">Auto download</string>
|
<string name="episode_action_auto_download">Auto download</string>
|
||||||
|
|
|
@ -268,7 +268,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Chromecastovat epizodu</string>
|
<string name="episode_action_chromecast_episode">Chromecastovat epizodu</string>
|
||||||
<string name="episode_action_chromecast_mirror">Chromecast jako zrcadlo</string>
|
<string name="episode_action_chromecast_mirror">Chromecast jako zrcadlo</string>
|
||||||
<string name="episode_action_play_in_app">Přehrát v aplikace</string>
|
<string name="episode_action_play_in_app">Přehrát v aplikace</string>
|
||||||
<string name="episode_action_play_in_vlc">Přehrát ve VLC</string>
|
<string name="episode_action_play_in_format">Přehrát ve %s</string>
|
||||||
<string name="episode_action_play_in_browser">Přehrát v prohlížeči</string>
|
<string name="episode_action_play_in_browser">Přehrát v prohlížeči</string>
|
||||||
<string name="episode_action_copy_link">Zkopírovat odkaz</string>
|
<string name="episode_action_copy_link">Zkopírovat odkaz</string>
|
||||||
<string name="episode_action_auto_download">Automaticky stáhnout</string>
|
<string name="episode_action_auto_download">Automaticky stáhnout</string>
|
||||||
|
|
|
@ -281,7 +281,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Chromecast-Episode</string>
|
<string name="episode_action_chromecast_episode">Chromecast-Episode</string>
|
||||||
<string name="episode_action_chromecast_mirror">Chromecastmirror</string>
|
<string name="episode_action_chromecast_mirror">Chromecastmirror</string>
|
||||||
<string name="episode_action_play_in_app">In App wiedergeben</string>
|
<string name="episode_action_play_in_app">In App wiedergeben</string>
|
||||||
<string name="episode_action_play_in_vlc">In VLC wiedergeben</string>
|
<string name="episode_action_play_in_format">In %s wiedergeben</string>
|
||||||
<string name="episode_action_play_in_browser">In Browser wiedergeben</string>
|
<string name="episode_action_play_in_browser">In Browser wiedergeben</string>
|
||||||
<string name="episode_action_copy_link">Link kopieren</string>
|
<string name="episode_action_copy_link">Link kopieren</string>
|
||||||
<string name="episode_action_auto_download">Auto Download</string>
|
<string name="episode_action_auto_download">Auto Download</string>
|
||||||
|
|
|
@ -156,7 +156,7 @@
|
||||||
<item>@string/episode_action_chromecast_episode</item>
|
<item>@string/episode_action_chromecast_episode</item>
|
||||||
<item>@string/episode_action_chromecast_mirror</item>
|
<item>@string/episode_action_chromecast_mirror</item>
|
||||||
<item>@string/episode_action_play_in_app</item>
|
<item>@string/episode_action_play_in_app</item>
|
||||||
<item>@string/episode_action_play_in_vlc</item>
|
<item>@string/episode_action_play_in_format</item>
|
||||||
<item>@string/episode_action_play_in_browser</item>
|
<item>@string/episode_action_play_in_browser</item>
|
||||||
<item>@string/episode_action_copy_link</item>
|
<item>@string/episode_action_copy_link</item>
|
||||||
<item>@string/episode_action_auto_download</item>
|
<item>@string/episode_action_auto_download</item>
|
||||||
|
|
|
@ -269,7 +269,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Episodio Chromecast</string>
|
<string name="episode_action_chromecast_episode">Episodio Chromecast</string>
|
||||||
<string name="episode_action_chromecast_mirror">Espejo Chromecast</string>
|
<string name="episode_action_chromecast_mirror">Espejo Chromecast</string>
|
||||||
<string name="episode_action_play_in_app">Reproducir en la app</string>
|
<string name="episode_action_play_in_app">Reproducir en la app</string>
|
||||||
<string name="episode_action_play_in_vlc">Reproducir en VLC</string>
|
<string name="episode_action_play_in_format">Reproducir en %s</string>
|
||||||
<string name="episode_action_play_in_browser">Reproducir en el navegador</string>
|
<string name="episode_action_play_in_browser">Reproducir en el navegador</string>
|
||||||
<string name="episode_action_copy_link">Copiar enlace</string>
|
<string name="episode_action_copy_link">Copiar enlace</string>
|
||||||
<string name="episode_action_auto_download">Descarga automática</string>
|
<string name="episode_action_auto_download">Descarga automática</string>
|
||||||
|
|
|
@ -164,7 +164,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Episode Chromecast</string>
|
<string name="episode_action_chromecast_episode">Episode Chromecast</string>
|
||||||
<string name="episode_action_chromecast_mirror">Miroir Chromecast</string>
|
<string name="episode_action_chromecast_mirror">Miroir Chromecast</string>
|
||||||
<string name="episode_action_play_in_app">Lecture dans l\'application</string>
|
<string name="episode_action_play_in_app">Lecture dans l\'application</string>
|
||||||
<string name="episode_action_play_in_vlc">Lecture dans VLC</string>
|
<string name="episode_action_play_in_format">Lecture dans %s</string>
|
||||||
<string name="episode_action_play_in_browser">Lecture dans le navigateur</string>
|
<string name="episode_action_play_in_browser">Lecture dans le navigateur</string>
|
||||||
<string name="episode_action_copy_link">Copier le lien</string>
|
<string name="episode_action_copy_link">Copier le lien</string>
|
||||||
<string name="episode_action_auto_download">Téléchargement Automatique</string>
|
<string name="episode_action_auto_download">Téléchargement Automatique</string>
|
||||||
|
|
|
@ -136,7 +136,7 @@
|
||||||
<string name="episode_action_chromecast_episode">क्रोमकास्ट एपिसोड</string>
|
<string name="episode_action_chromecast_episode">क्रोमकास्ट एपिसोड</string>
|
||||||
<string name="episode_action_chromecast_mirror">कक्रोमकास्ट मिरर</string>
|
<string name="episode_action_chromecast_mirror">कक्रोमकास्ट मिरर</string>
|
||||||
<string name="episode_action_play_in_app">एप्प मैं चलाये</string>
|
<string name="episode_action_play_in_app">एप्प मैं चलाये</string>
|
||||||
<string name="episode_action_play_in_vlc">VLC में चलाए</string>
|
<string name="episode_action_play_in_format">%s में चलाए</string>
|
||||||
<string name="episode_action_play_in_browser">Browser में चलाए</string>
|
<string name="episode_action_play_in_browser">Browser में चलाए</string>
|
||||||
<string name="episode_action_copy_link">लिंक कॉपी करें</string>
|
<string name="episode_action_copy_link">लिंक कॉपी करें</string>
|
||||||
<string name="episode_action_auto_download">डाउनलोड करे</string>
|
<string name="episode_action_auto_download">डाउनलोड करे</string>
|
||||||
|
|
|
@ -299,7 +299,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Chromecast epizoda</string>
|
<string name="episode_action_chromecast_episode">Chromecast epizoda</string>
|
||||||
<string name="episode_action_chromecast_mirror">Chromecast mirror</string>
|
<string name="episode_action_chromecast_mirror">Chromecast mirror</string>
|
||||||
<string name="episode_action_play_in_app">Pokreni u aplikaciji</string>
|
<string name="episode_action_play_in_app">Pokreni u aplikaciji</string>
|
||||||
<string name="episode_action_play_in_vlc">Pokreni u VLC-u</string>
|
<string name="episode_action_play_in_format">Pokreni u %s</string>
|
||||||
<string name="episode_action_play_in_browser">Pokreni u pregledniku</string>
|
<string name="episode_action_play_in_browser">Pokreni u pregledniku</string>
|
||||||
<string name="episode_action_copy_link">Kopiraj poveznicu</string>
|
<string name="episode_action_copy_link">Kopiraj poveznicu</string>
|
||||||
<string name="episode_action_auto_download">Automatsko preuzimanje</string>
|
<string name="episode_action_auto_download">Automatsko preuzimanje</string>
|
||||||
|
|
|
@ -264,7 +264,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Episode Chromecast</string>
|
<string name="episode_action_chromecast_episode">Episode Chromecast</string>
|
||||||
<string name="episode_action_chromecast_mirror">Mirror Chromecast</string>
|
<string name="episode_action_chromecast_mirror">Mirror Chromecast</string>
|
||||||
<string name="episode_action_play_in_app">Putar di aplikasi</string>
|
<string name="episode_action_play_in_app">Putar di aplikasi</string>
|
||||||
<string name="episode_action_play_in_vlc">Putar di VLC</string>
|
<string name="episode_action_play_in_format">Putar di %s</string>
|
||||||
<string name="episode_action_play_in_browser">Putar di browser</string>
|
<string name="episode_action_play_in_browser">Putar di browser</string>
|
||||||
<string name="episode_action_copy_link">Salin tautan</string>
|
<string name="episode_action_copy_link">Salin tautan</string>
|
||||||
<string name="episode_action_auto_download">Download otomatis</string>
|
<string name="episode_action_auto_download">Download otomatis</string>
|
||||||
|
|
|
@ -271,7 +271,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Chromecast</string>
|
<string name="episode_action_chromecast_episode">Chromecast</string>
|
||||||
<string name="episode_action_chromecast_mirror">Chromecast mirror</string>
|
<string name="episode_action_chromecast_mirror">Chromecast mirror</string>
|
||||||
<string name="episode_action_play_in_app">Riproduci in app</string>
|
<string name="episode_action_play_in_app">Riproduci in app</string>
|
||||||
<string name="episode_action_play_in_vlc">Riproduci in VLC</string>
|
<string name="episode_action_play_in_format">Riproduci in %s</string>
|
||||||
<string name="episode_action_play_in_browser">Riproduci nel browser</string>
|
<string name="episode_action_play_in_browser">Riproduci nel browser</string>
|
||||||
<string name="episode_action_copy_link">Copia link</string>
|
<string name="episode_action_copy_link">Copia link</string>
|
||||||
<string name="episode_action_auto_download">Download</string>
|
<string name="episode_action_auto_download">Download</string>
|
||||||
|
|
|
@ -190,7 +190,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Епизода на Chromecast</string>
|
<string name="episode_action_chromecast_episode">Епизода на Chromecast</string>
|
||||||
<string name="episode_action_chromecast_mirror">Огледало на Chromecastr</string>
|
<string name="episode_action_chromecast_mirror">Огледало на Chromecastr</string>
|
||||||
<string name="episode_action_play_in_app">Пушти во апликацијата</string>
|
<string name="episode_action_play_in_app">Пушти во апликацијата</string>
|
||||||
<string name="episode_action_play_in_vlc">Пушти на VLC</string>
|
<string name="episode_action_play_in_format">Пушти на %s</string>
|
||||||
<string name="episode_action_play_in_browser">Пушти на прелистувач</string>
|
<string name="episode_action_play_in_browser">Пушти на прелистувач</string>
|
||||||
<string name="episode_action_copy_link">Копирај линк</string>
|
<string name="episode_action_copy_link">Копирај линк</string>
|
||||||
<string name="episode_action_auto_download">Авто превземање</string>
|
<string name="episode_action_auto_download">Авто превземање</string>
|
||||||
|
|
|
@ -175,7 +175,7 @@
|
||||||
<!-- <string name="episode_action_chomecast_episode">Chromecast Episode</string>
|
<!-- <string name="episode_action_chomecast_episode">Chromecast Episode</string>
|
||||||
<string name="episode_action_chomecast_mirror">Chromecast Mirror</string> -->
|
<string name="episode_action_chomecast_mirror">Chromecast Mirror</string> -->
|
||||||
<string name="episode_action_play_in_app">ആപ്പിൽ പ്ലേയ് ചെയ്യുക</string>
|
<string name="episode_action_play_in_app">ആപ്പിൽ പ്ലേയ് ചെയ്യുക</string>
|
||||||
<string name="episode_action_play_in_vlc">VLCയിൽ പ്ലേയ് ചെയ്യുക</string>
|
<string name="episode_action_play_in_format">%sയിൽ പ്ലേയ് ചെയ്യുക</string>
|
||||||
<string name="episode_action_play_in_browser">ബ്രൗസറിൽ പ്ലേയ് ചെയ്യുക</string>
|
<string name="episode_action_play_in_browser">ബ്രൗസറിൽ പ്ലേയ് ചെയ്യുക</string>
|
||||||
<string name="episode_action_copy_link">ലിങ്ക് പകർത്തുക</string>
|
<string name="episode_action_copy_link">ലിങ്ക് പകർത്തുക</string>
|
||||||
<string name="episode_action_auto_download">ഡൌൺലോഡ് ചെയ്യൂ</string>
|
<string name="episode_action_auto_download">ഡൌൺലോഡ് ചെയ്യൂ</string>
|
||||||
|
|
|
@ -145,7 +145,7 @@
|
||||||
<string name="episode_action_chromecast_episode">aauugghhooo-ahah ohaaauugghh</string>
|
<string name="episode_action_chromecast_episode">aauugghhooo-ahah ohaaauugghh</string>
|
||||||
<string name="episode_action_chromecast_mirror">aoohaaahhu ahouuhhh</string>
|
<string name="episode_action_chromecast_mirror">aoohaaahhu ahouuhhh</string>
|
||||||
<string name="episode_action_play_in_app">ooo-ahahaauuh aaahhu</string>
|
<string name="episode_action_play_in_app">ooo-ahahaauuh aaahhu</string>
|
||||||
<string name="episode_action_play_in_vlc">ooo-ahah ohaauuh</string>
|
<string name="episode_action_play_in_format">ooo-ahah ohaauuh</string>
|
||||||
<string name="episode_action_play_in_browser">ahoha ooo-ahahohoohah oooohh</string>
|
<string name="episode_action_play_in_browser">ahoha ooo-ahahohoohah oooohh</string>
|
||||||
<string name="episode_action_copy_link">aauugghhahhaauugghh</string>
|
<string name="episode_action_copy_link">aauugghhahhaauugghh</string>
|
||||||
<string name="episode_action_auto_download">aaaghhoooohh aaahhu ahooo</string>
|
<string name="episode_action_auto_download">aaaghhoooohh aaahhu ahooo</string>
|
||||||
|
|
|
@ -274,7 +274,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Chromecast aflevering</string>
|
<string name="episode_action_chromecast_episode">Chromecast aflevering</string>
|
||||||
<string name="episode_action_chromecast_mirror">Chromecast mirror</string>
|
<string name="episode_action_chromecast_mirror">Chromecast mirror</string>
|
||||||
<string name="episode_action_play_in_app">Speel in app</string>
|
<string name="episode_action_play_in_app">Speel in app</string>
|
||||||
<string name="episode_action_play_in_vlc">Speel in VLC</string>
|
<string name="episode_action_play_in_format">Speel in %s</string>
|
||||||
<string name="episode_action_play_in_browser">Speel in browser</string>
|
<string name="episode_action_play_in_browser">Speel in browser</string>
|
||||||
<string name="episode_action_copy_link">Kopieer link</string>
|
<string name="episode_action_copy_link">Kopieer link</string>
|
||||||
<string name="episode_action_auto_download">Automatisch downloaden</string>
|
<string name="episode_action_auto_download">Automatisch downloaden</string>
|
||||||
|
|
|
@ -196,7 +196,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Støpt Episode</string>
|
<string name="episode_action_chromecast_episode">Støpt Episode</string>
|
||||||
<string name="episode_action_chromecast_mirror">Støpt Speil</string>
|
<string name="episode_action_chromecast_mirror">Støpt Speil</string>
|
||||||
<string name="episode_action_play_in_app">Spill i appen</string>
|
<string name="episode_action_play_in_app">Spill i appen</string>
|
||||||
<string name="episode_action_play_in_vlc">Spill i VLC</string>
|
<string name="episode_action_play_in_format">Spill i %s</string>
|
||||||
<string name="episode_action_play_in_browser">Spill i nettleseren</string>
|
<string name="episode_action_play_in_browser">Spill i nettleseren</string>
|
||||||
<string name="episode_action_copy_link">Kopier link</string>
|
<string name="episode_action_copy_link">Kopier link</string>
|
||||||
<string name="episode_action_auto_download">Automatisk nedlasting</string>
|
<string name="episode_action_auto_download">Automatisk nedlasting</string>
|
||||||
|
|
|
@ -165,7 +165,7 @@
|
||||||
<item>@string/episode_action_chromecast_episode</item>
|
<item>@string/episode_action_chromecast_episode</item>
|
||||||
<item>@string/episode_action_chromecast_mirror</item>
|
<item>@string/episode_action_chromecast_mirror</item>
|
||||||
<item>@string/episode_action_play_in_app</item>
|
<item>@string/episode_action_play_in_app</item>
|
||||||
<item>@string/episode_action_play_in_vlc</item>
|
<item>@string/episode_action_play_in_format</item>
|
||||||
<item>@string/episode_action_play_in_browser</item>
|
<item>@string/episode_action_play_in_browser</item>
|
||||||
<item>@string/episode_action_copy_link</item>
|
<item>@string/episode_action_copy_link</item>
|
||||||
<item>@string/episode_action_auto_download</item>
|
<item>@string/episode_action_auto_download</item>
|
||||||
|
|
|
@ -252,7 +252,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Chromecast odcinka</string>
|
<string name="episode_action_chromecast_episode">Chromecast odcinka</string>
|
||||||
<string name="episode_action_chromecast_mirror">Chromecast mirroru</string>
|
<string name="episode_action_chromecast_mirror">Chromecast mirroru</string>
|
||||||
<string name="episode_action_play_in_app">Odtwórz w aplikacji</string>
|
<string name="episode_action_play_in_app">Odtwórz w aplikacji</string>
|
||||||
<string name="episode_action_play_in_vlc">Odtwórz w VLC</string>
|
<string name="episode_action_play_in_format">Odtwórz w %s</string>
|
||||||
<string name="episode_action_play_in_browser">Odtwórz w przeglądarce</string>
|
<string name="episode_action_play_in_browser">Odtwórz w przeglądarce</string>
|
||||||
<string name="episode_action_copy_link">Kopiuj link</string>
|
<string name="episode_action_copy_link">Kopiuj link</string>
|
||||||
<string name="episode_action_auto_download">Automatyczne pobieranie</string>
|
<string name="episode_action_auto_download">Automatyczne pobieranie</string>
|
||||||
|
|
|
@ -268,7 +268,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Episódio pelo Chromecast</string>
|
<string name="episode_action_chromecast_episode">Episódio pelo Chromecast</string>
|
||||||
<string name="episode_action_chromecast_mirror">Alternativa pelo Chromecast</string>
|
<string name="episode_action_chromecast_mirror">Alternativa pelo Chromecast</string>
|
||||||
<string name="episode_action_play_in_app">Reproduzir na app</string>
|
<string name="episode_action_play_in_app">Reproduzir na app</string>
|
||||||
<string name="episode_action_play_in_vlc">Reproduzir no VLC</string>
|
<string name="episode_action_play_in_format">Reproduzir no %s</string>
|
||||||
<string name="episode_action_play_in_browser">Reproduzir no navegador</string>
|
<string name="episode_action_play_in_browser">Reproduzir no navegador</string>
|
||||||
<string name="episode_action_copy_link">Copiar link</string>
|
<string name="episode_action_copy_link">Copiar link</string>
|
||||||
<string name="episode_action_auto_download">Transferência Automática</string>
|
<string name="episode_action_auto_download">Transferência Automática</string>
|
||||||
|
|
|
@ -267,7 +267,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Chromecast</string>
|
<string name="episode_action_chromecast_episode">Chromecast</string>
|
||||||
<string name="episode_action_chromecast_mirror">Chromecast alternativ</string>
|
<string name="episode_action_chromecast_mirror">Chromecast alternativ</string>
|
||||||
<string name="episode_action_play_in_app">Redă în Aplicație</string>
|
<string name="episode_action_play_in_app">Redă în Aplicație</string>
|
||||||
<string name="episode_action_play_in_vlc">Redă în VLC</string>
|
<string name="episode_action_play_in_format">Redă în %s</string>
|
||||||
<string name="episode_action_play_in_browser">Redă în Browser</string>
|
<string name="episode_action_play_in_browser">Redă în Browser</string>
|
||||||
<string name="episode_action_copy_link">Copiază link-ul</string>
|
<string name="episode_action_copy_link">Copiază link-ul</string>
|
||||||
<string name="episode_action_auto_download">Auto-descărcare</string>
|
<string name="episode_action_auto_download">Auto-descărcare</string>
|
||||||
|
|
|
@ -167,7 +167,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Chromecasta ett Avsnitt</string>
|
<string name="episode_action_chromecast_episode">Chromecasta ett Avsnitt</string>
|
||||||
<string name="episode_action_chromecast_mirror">Chromecasta en Länk</string>
|
<string name="episode_action_chromecast_mirror">Chromecasta en Länk</string>
|
||||||
<string name="episode_action_play_in_app">Spela upp i appen</string>
|
<string name="episode_action_play_in_app">Spela upp i appen</string>
|
||||||
<string name="episode_action_play_in_vlc">Spela upp i VLC</string>
|
<string name="episode_action_play_in_format">Spela upp i %s</string>
|
||||||
<string name="episode_action_play_in_browser">Spela upp i webbläsaren</string>
|
<string name="episode_action_play_in_browser">Spela upp i webbläsaren</string>
|
||||||
<string name="episode_action_copy_link">Kopiera länk</string>
|
<string name="episode_action_copy_link">Kopiera länk</string>
|
||||||
<string name="episode_action_auto_download">Automatisk nerladdning</string>
|
<string name="episode_action_auto_download">Automatisk nerladdning</string>
|
||||||
|
|
|
@ -204,7 +204,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Chromecast Episode</string>
|
<string name="episode_action_chromecast_episode">Chromecast Episode</string>
|
||||||
<string name="episode_action_chromecast_mirror">Chromecast Mirror</string>
|
<string name="episode_action_chromecast_mirror">Chromecast Mirror</string>
|
||||||
<string name="episode_action_play_in_app">I-play sa App</string>
|
<string name="episode_action_play_in_app">I-play sa App</string>
|
||||||
<string name="episode_action_play_in_vlc">I-play sa VLC</string>
|
<string name="episode_action_play_in_format">I-play sa %s</string>
|
||||||
<string name="episode_action_play_in_browser">I-play sa browser</string>
|
<string name="episode_action_play_in_browser">I-play sa browser</string>
|
||||||
<string name="episode_action_copy_link">Kopyahin ang Link</string>
|
<string name="episode_action_copy_link">Kopyahin ang Link</string>
|
||||||
<string name="episode_action_auto_download">Awtomatiking i-download</string>
|
<string name="episode_action_auto_download">Awtomatiking i-download</string>
|
||||||
|
|
|
@ -156,7 +156,7 @@
|
||||||
<item>@string/episode_action_chromecast_episode</item>
|
<item>@string/episode_action_chromecast_episode</item>
|
||||||
<item>@string/episode_action_chromecast_mirror</item>
|
<item>@string/episode_action_chromecast_mirror</item>
|
||||||
<item>@string/episode_action_play_in_app</item>
|
<item>@string/episode_action_play_in_app</item>
|
||||||
<item>@string/episode_action_play_in_vlc</item>
|
<item>@string/episode_action_play_in_format</item>
|
||||||
<item>@string/episode_action_play_in_browser</item>
|
<item>@string/episode_action_play_in_browser</item>
|
||||||
<item>@string/episode_action_copy_link</item>
|
<item>@string/episode_action_copy_link</item>
|
||||||
<item>@string/episode_action_auto_download</item>
|
<item>@string/episode_action_auto_download</item>
|
||||||
|
|
|
@ -272,7 +272,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Bölümü Chromecast ile yayınla</string>
|
<string name="episode_action_chromecast_episode">Bölümü Chromecast ile yayınla</string>
|
||||||
<string name="episode_action_chromecast_mirror">Bağlantıyı Chromecast ile yayınla</string>
|
<string name="episode_action_chromecast_mirror">Bağlantıyı Chromecast ile yayınla</string>
|
||||||
<string name="episode_action_play_in_app">Uygulamada oynat</string>
|
<string name="episode_action_play_in_app">Uygulamada oynat</string>
|
||||||
<string name="episode_action_play_in_vlc">VLC\'de oynat</string>
|
<string name="episode_action_play_in_format">%s\'de oynat</string>
|
||||||
<string name="episode_action_play_in_browser">Tarayıcıda oynat</string>
|
<string name="episode_action_play_in_browser">Tarayıcıda oynat</string>
|
||||||
<string name="episode_action_copy_link">Linki kopyala</string>
|
<string name="episode_action_copy_link">Linki kopyala</string>
|
||||||
<string name="episode_action_auto_download">Otomatik indir</string>
|
<string name="episode_action_auto_download">Otomatik indir</string>
|
||||||
|
|
|
@ -157,7 +157,7 @@
|
||||||
<item>@string/episode_action_chromecast_episode</item>
|
<item>@string/episode_action_chromecast_episode</item>
|
||||||
<item>@string/episode_action_chromecast_mirror</item>
|
<item>@string/episode_action_chromecast_mirror</item>
|
||||||
<item>@string/episode_action_play_in_app</item>
|
<item>@string/episode_action_play_in_app</item>
|
||||||
<item>@string/episode_action_play_in_vlc</item>
|
<item>@string/episode_action_play_in_format</item>
|
||||||
<item>@string/episode_action_play_in_browser</item>
|
<item>@string/episode_action_play_in_browser</item>
|
||||||
<item>@string/episode_action_copy_link</item>
|
<item>@string/episode_action_copy_link</item>
|
||||||
<item>@string/episode_action_auto_download</item>
|
<item>@string/episode_action_auto_download</item>
|
||||||
|
|
|
@ -292,7 +292,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Tập Chromecast</string>
|
<string name="episode_action_chromecast_episode">Tập Chromecast</string>
|
||||||
<string name="episode_action_chromecast_mirror">Chiếu Chromecast</string>
|
<string name="episode_action_chromecast_mirror">Chiếu Chromecast</string>
|
||||||
<string name="episode_action_play_in_app">Xem với trình phát mặc định</string>
|
<string name="episode_action_play_in_app">Xem với trình phát mặc định</string>
|
||||||
<string name="episode_action_play_in_vlc">Xem với trình phát VLC</string>
|
<string name="episode_action_play_in_format">Xem với trình phát %s</string>
|
||||||
<string name="episode_action_play_in_browser">Xem tại trình duyệt</string>
|
<string name="episode_action_play_in_browser">Xem tại trình duyệt</string>
|
||||||
<string name="episode_action_copy_link">Sao chép liên kết</string>
|
<string name="episode_action_copy_link">Sao chép liên kết</string>
|
||||||
<string name="episode_action_auto_download">Tự động tải xuống</string>
|
<string name="episode_action_auto_download">Tự động tải xuống</string>
|
||||||
|
|
|
@ -303,7 +303,7 @@
|
||||||
<string name="episode_action_chromecast_episode">投屏剧集</string>
|
<string name="episode_action_chromecast_episode">投屏剧集</string>
|
||||||
<string name="episode_action_chromecast_mirror">投屏镜像</string>
|
<string name="episode_action_chromecast_mirror">投屏镜像</string>
|
||||||
<string name="episode_action_play_in_app">在应用中播放</string>
|
<string name="episode_action_play_in_app">在应用中播放</string>
|
||||||
<string name="episode_action_play_in_vlc">在 VLC 中播放</string>
|
<string name="episode_action_play_in_format">在 %s 中播放</string>
|
||||||
<string name="episode_action_play_in_browser">在浏览器中播放</string>
|
<string name="episode_action_play_in_browser">在浏览器中播放</string>
|
||||||
<string name="episode_action_copy_link">复制链接</string>
|
<string name="episode_action_copy_link">复制链接</string>
|
||||||
<string name="episode_action_auto_download">自动下载</string>
|
<string name="episode_action_auto_download">自动下载</string>
|
||||||
|
|
|
@ -36,12 +36,14 @@
|
||||||
<array name="player_pref_names">
|
<array name="player_pref_names">
|
||||||
<item>@string/player_settings_play_in_app</item>
|
<item>@string/player_settings_play_in_app</item>
|
||||||
<item>@string/player_settings_play_in_vlc</item>
|
<item>@string/player_settings_play_in_vlc</item>
|
||||||
|
<item>@string/player_settings_play_in_web</item>
|
||||||
<item>@string/player_settings_play_in_browser</item>
|
<item>@string/player_settings_play_in_browser</item>
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
<array name="player_pref_values">
|
<array name="player_pref_values">
|
||||||
<item>1</item>
|
<item>1</item>
|
||||||
<item>2</item>
|
<item>2</item>
|
||||||
|
<item>4</item>
|
||||||
<item>3</item>
|
<item>3</item>
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
|
@ -187,7 +189,7 @@
|
||||||
<item>@string/episode_action_chromecast_episode</item>
|
<item>@string/episode_action_chromecast_episode</item>
|
||||||
<item>@string/episode_action_chromecast_mirror</item>
|
<item>@string/episode_action_chromecast_mirror</item>
|
||||||
<item>@string/episode_action_play_in_app</item>
|
<item>@string/episode_action_play_in_app</item>
|
||||||
<item>@string/episode_action_play_in_vlc</item>
|
<item>@string/episode_action_play_in_format</item>
|
||||||
<item>@string/episode_action_play_in_browser</item>
|
<item>@string/episode_action_play_in_browser</item>
|
||||||
<item>@string/episode_action_copy_link</item>
|
<item>@string/episode_action_copy_link</item>
|
||||||
<item>@string/episode_action_auto_download</item>
|
<item>@string/episode_action_auto_download</item>
|
||||||
|
|
|
@ -364,7 +364,7 @@
|
||||||
<string name="episode_action_chromecast_episode">Chromecast episode</string>
|
<string name="episode_action_chromecast_episode">Chromecast episode</string>
|
||||||
<string name="episode_action_chromecast_mirror">Chromecast mirror</string>
|
<string name="episode_action_chromecast_mirror">Chromecast mirror</string>
|
||||||
<string name="episode_action_play_in_app">Play in app</string>
|
<string name="episode_action_play_in_app">Play in app</string>
|
||||||
<string name="episode_action_play_in_vlc">Play in VLC</string>
|
<string name="episode_action_play_in_format">Play in %s</string>
|
||||||
<string name="episode_action_play_in_browser">Play in browser</string>
|
<string name="episode_action_play_in_browser">Play in browser</string>
|
||||||
<string name="episode_action_copy_link">Copy link</string>
|
<string name="episode_action_copy_link">Copy link</string>
|
||||||
<string name="episode_action_auto_download">Auto download</string>
|
<string name="episode_action_auto_download">Auto download</string>
|
||||||
|
@ -633,6 +633,7 @@
|
||||||
<string name="player_pref">Preferred video player</string>
|
<string name="player_pref">Preferred video player</string>
|
||||||
<string name="player_settings_play_in_app">Internal player</string>
|
<string name="player_settings_play_in_app">Internal player</string>
|
||||||
<string name="player_settings_play_in_vlc">VLC</string>
|
<string name="player_settings_play_in_vlc">VLC</string>
|
||||||
|
<string name="player_settings_play_in_web">Web Video Cast</string>
|
||||||
<string name="player_settings_play_in_browser">Browser</string>
|
<string name="player_settings_play_in_browser">Browser</string>
|
||||||
<string name="vlc_not_found_error">VLC not found</string>
|
<string name="app_not_found_error">App not found</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in a new issue