Merge remote-tracking branch 'origin/master'

This commit is contained in:
Blatzar 2021-12-11 21:56:14 +01:00
commit 4b0a3e0c4e
21 changed files with 952 additions and 439 deletions

View file

@ -35,8 +35,8 @@ android {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 31 targetSdkVersion 31
versionCode 36 versionCode 37
versionName "2.4.4" versionName "2.4.5"
resValue "string", "app_version", resValue "string", "app_version",
"${defaultConfig.versionName}${versionNameSuffix ?: ""}" "${defaultConfig.versionName}${versionNameSuffix ?: ""}"
@ -159,4 +159,7 @@ dependencies {
// debugImplementation because LeakCanary should only run in debug builds. // debugImplementation because LeakCanary should only run in debug builds.
// debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.7' // debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.7'
// for shimmer when loading
implementation 'com.facebook.shimmer:shimmer:0.5.0'
} }

View file

@ -47,7 +47,7 @@ class APIRepository(val api: MainAPI) {
} }
} }
suspend fun getMainPage(): Resource<HomePageResponse> { suspend fun getMainPage(): Resource<HomePageResponse?> {
return safeApiCall { return safeApiCall {
api.getMainPage() ?: throw ErrorLoadingException() api.getMainPage() ?: throw ErrorLoadingException()
} }

View file

@ -248,26 +248,30 @@ class HomeFragment : Fragment() {
observe(homeViewModel.page) { data -> observe(homeViewModel.page) { data ->
when (data) { when (data) {
is Resource.Success -> { is Resource.Success -> {
home_loading_shimmer?.stopShimmer()
val d = data.value val d = data.value
currentHomePage = d currentHomePage = d
(home_master_recycler?.adapter as ParentItemAdapter?)?.items = (home_master_recycler?.adapter as ParentItemAdapter?)?.items =
d.items.mapNotNull { d?.items?.mapNotNull {
try { try {
HomePageList(it.name, it.list.filterSearchResponse()) HomePageList(it.name, it.list.filterSearchResponse())
} catch (e: Exception) { } catch (e: Exception) {
logError(e) logError(e)
null null
} }
} } ?: listOf()
home_master_recycler?.adapter?.notifyDataSetChanged() home_master_recycler?.adapter?.notifyDataSetChanged()
home_loading.visibility = View.GONE home_loading?.isVisible = false
home_loading_error.visibility = View.GONE home_loading_error?.isVisible = false
home_loaded.visibility = View.VISIBLE home_loaded?.isVisible = true
} }
is Resource.Failure -> { is Resource.Failure -> {
home_loading_shimmer?.stopShimmer()
result_error_text.text = data.errorString result_error_text.text = data.errorString
home_reload_connectionerror.setOnClickListener(apiChangeClickListener) home_reload_connectionerror.setOnClickListener(apiChangeClickListener)
@ -287,14 +291,15 @@ class HomeFragment : Fragment() {
} }
} }
home_loading.visibility = View.GONE home_loading?.isVisible = false
home_loading_error.visibility = View.VISIBLE home_loading_error?.isVisible = true
home_loaded.visibility = View.GONE home_loaded?.isVisible = false
} }
is Resource.Loading -> { is Resource.Loading -> {
home_loading.visibility = View.VISIBLE home_loading_shimmer?.startShimmer()
home_loading_error.visibility = View.GONE home_loading?.isVisible = true
home_loaded.visibility = View.GONE home_loading_error?.isVisible = false
home_loaded?.isVisible = false
} }
} }
} }

View file

@ -37,8 +37,8 @@ class HomeViewModel : ViewModel() {
private val _apiName = MutableLiveData<String>() private val _apiName = MutableLiveData<String>()
val apiName: LiveData<String> = _apiName val apiName: LiveData<String> = _apiName
private val _page = MutableLiveData<Resource<HomePageResponse>>() private val _page = MutableLiveData<Resource<HomePageResponse?>>()
val page: LiveData<Resource<HomePageResponse>> = _page val page: LiveData<Resource<HomePageResponse?>> = _page
private val _randomItems = MutableLiveData<List<SearchResponse>?>(null) private val _randomItems = MutableLiveData<List<SearchResponse>?>(null)
val randomItems: LiveData<List<SearchResponse>?> = _randomItems val randomItems: LiveData<List<SearchResponse>?> = _randomItems
@ -154,7 +154,7 @@ class HomeViewModel : ViewModel() {
when (data) { when (data) {
is Resource.Success -> { is Resource.Success -> {
val home = data.value val home = data.value
if (home.items.isNotEmpty()) { if (home?.items?.isNullOrEmpty() == false) {
val currentList = val currentList =
home.items.shuffled().filter { !it.list.isNullOrEmpty() }.flatMap { it.list } home.items.shuffled().filter { !it.list.isNullOrEmpty() }.flatMap { it.list }
.distinctBy { it.url } .distinctBy { it.url }

View file

@ -357,7 +357,7 @@ class ResultFragment : Fragment() {
var currentSubs: HashMap<String, SubtitleFile>? = null var currentSubs: HashMap<String, SubtitleFile>? = null
val showTitle = val showTitle =
episodeClick.data.name ?: getString(R.string.episode_name_format).format( episodeClick.data.name ?: context?.getString(R.string.episode_name_format)?.format(
getString(R.string.episode), getString(R.string.episode),
episodeClick.data.episode episodeClick.data.episode
) )
@ -801,7 +801,7 @@ class ResultFragment : Fragment() {
WatchType.values().map { fab.context.getString(it.stringRes) }.toList(), WatchType.values().map { fab.context.getString(it.stringRes) }.toList(),
watchType.ordinal, watchType.ordinal,
fab.context.getString(R.string.action_add_to_bookmarks), fab.context.getString(R.string.action_add_to_bookmarks),
showApply = true, showApply = false,
{}) { {}) {
viewModel.updateWatchStatus(fab.context, WatchType.values()[it]) viewModel.updateWatchStatus(fab.context, WatchType.values()[it])
} }

View file

@ -135,11 +135,38 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/> app:layout_constraintBottom_toBottomOf="parent"/>
<!--
<ProgressBar <ProgressBar
android:visibility="visible" android:visibility="visible"
tools:visibility="gone" tools:visibility="gone"
android:id="@+id/download_loading" android:id="@+id/download_loading"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_width="50dp" android:layout_height="50dp"> android:layout_width="50dp" android:layout_height="50dp">
</ProgressBar> </ProgressBar>-->
<com.facebook.shimmer.ShimmerFrameLayout
android:id="@+id/download_loading"
app:shimmer_base_alpha="0.2"
app:shimmer_highlight_alpha="0.3"
app:shimmer_duration="@integer/loading_time"
app:shimmer_auto_start="true"
android:paddingTop="40dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_marginStart="@dimen/loading_margin"
android:layout_marginEnd="@dimen/loading_margin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include layout="@layout/loading_downloads"/>
<include layout="@layout/loading_downloads"/>
<include layout="@layout/loading_downloads"/>
<include layout="@layout/loading_downloads"/>
<include layout="@layout/loading_downloads"/>
<include layout="@layout/loading_downloads"/>
</LinearLayout>
</com.facebook.shimmer.ShimmerFrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>

View file

@ -11,17 +11,81 @@
<FrameLayout <FrameLayout
android:visibility="gone" android:visibility="gone"
tools:visibility="gone" tools:visibility="visible"
android:id="@+id/home_loading" android:id="@+id/home_loading"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<ProgressBar <ProgressBar
android:layout_gravity="center" android:layout_gravity="center"
android:visibility="visible" android:visibility="gone"
tools:visibility="visible" tools:visibility="gone"
android:layout_width="50dp" android:layout_width="50dp"
android:layout_height="50dp"> android:layout_height="50dp">
</ProgressBar> </ProgressBar>
<com.facebook.shimmer.ShimmerFrameLayout
android:id="@+id/home_loading_shimmer"
app:shimmer_base_alpha="0.2"
app:shimmer_highlight_alpha="0.3"
app:shimmer_duration="@integer/loading_time"
app:shimmer_auto_start="true"
android:paddingTop="40dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginTop="15dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<FrameLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.cardview.widget.CardView
android:layout_margin="@dimen/loading_margin"
android:layout_gravity="center"
app:cardCornerRadius="@dimen/loading_radius"
android:background="@color/grayShimmer"
android:translationX="-164dp"
android:layout_width="125dp"
android:layout_height="200dp">
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_margin="@dimen/loading_margin"
android:layout_gravity="center"
app:cardCornerRadius="@dimen/loading_radius"
android:background="@color/grayShimmer"
android:layout_width="148dp"
android:layout_height="234dp">
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_margin="@dimen/loading_margin"
android:layout_gravity="center"
app:cardCornerRadius="@dimen/loading_radius"
android:background="@color/grayShimmer"
android:translationX="164dp"
android:layout_width="125dp"
android:layout_height="200dp">
</androidx.cardview.widget.CardView>
</FrameLayout>
<include layout="@layout/loading_line_short_center"/>
<LinearLayout
android:orientation="vertical"
android:layout_marginTop="@dimen/result_padding"
android:layout_marginStart="@dimen/result_padding"
android:layout_marginEnd="@dimen/result_padding"
android:layout_width="match_parent" android:layout_height="wrap_content">
<include layout="@layout/loading_list"/>
<include layout="@layout/loading_list"/>
<include layout="@layout/loading_list"/>
</LinearLayout>
</LinearLayout>
</com.facebook.shimmer.ShimmerFrameLayout>
<FrameLayout <FrameLayout
android:id="@+id/home_loading_statusbar" android:id="@+id/home_loading_statusbar"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -84,7 +148,7 @@
</LinearLayout> </LinearLayout>
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
android:background="?attr/primaryBlackBackground" android:background="?attr/primaryBlackBackground"
tools:visibility="visible" tools:visibility="gone"
android:visibility="gone" android:visibility="gone"
android:id="@+id/home_loaded" android:id="@+id/home_loaded"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -304,6 +368,7 @@
</ImageView> </ImageView>
</FrameLayout> </FrameLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:paddingHorizontal="5dp" android:paddingHorizontal="5dp"
android:clipToPadding="false" android:clipToPadding="false"
@ -315,6 +380,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
tools:listitem="@layout/home_result_grid" tools:listitem="@layout/home_result_grid"
/> />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
@ -404,7 +470,6 @@
android:contentDescription="@string/home_more_info"> android:contentDescription="@string/home_more_info">
</ImageView> </ImageView>
</FrameLayout> </FrameLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:paddingHorizontal="5dp" android:paddingHorizontal="5dp"
android:clipToPadding="false" android:clipToPadding="false"

View file

@ -10,13 +10,59 @@
android:focusable="true" android:focusable="true"
> >
<ProgressBar <com.facebook.shimmer.ShimmerFrameLayout
tools:visibility="gone"
app:shimmer_base_alpha="0.2"
app:shimmer_highlight_alpha="0.3"
app:shimmer_duration="@integer/loading_time"
app:shimmer_auto_start="true"
android:paddingTop="40dp"
android:id="@+id/result_loading"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginTop="15dp"
android:orientation="vertical">
<LinearLayout
android:layout_margin="@dimen/result_padding"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_marginBottom="@dimen/loading_margin"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/loading_poster"/>
<LinearLayout
android:layout_marginStart="@dimen/loading_margin"
android:layout_marginEnd="@dimen/loading_margin"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/loading_line"/>
<include layout="@layout/loading_line"/>
<include layout="@layout/loading_line"/>
<include layout="@layout/loading_line"/>
<include layout="@layout/loading_line_short"/>
</LinearLayout>
</LinearLayout>
<ImageView android:layout_width="match_parent" android:layout_height="20dp"
tools:ignore="ContentDescription"/>
<include layout="@layout/loading_episode"/>
<include layout="@layout/loading_episode"/>
<include layout="@layout/loading_episode"/>
</LinearLayout>
</com.facebook.shimmer.ShimmerFrameLayout>
<!--<ProgressBar
android:visibility="visible" android:visibility="visible"
tools:visibility="gone" tools:visibility="gone"
android:id="@+id/result_loading" android:id="@+id/result_loading"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_width="50dp" android:layout_height="50dp"> android:layout_width="50dp" android:layout_height="50dp">
</ProgressBar> </ProgressBar>-->
<LinearLayout <LinearLayout
android:id="@+id/result_loading_error" android:id="@+id/result_loading_error"
@ -201,9 +247,10 @@
</LinearLayout> </LinearLayout>
</FrameLayout> </FrameLayout>
<LinearLayout <LinearLayout
android:clipToPadding="false"
android:orientation="vertical" android:orientation="vertical"
android:layout_marginStart="@dimen/result_padding" android:paddingStart="@dimen/result_padding"
android:layout_marginEnd="@dimen/result_padding" android:paddingEnd="@dimen/result_padding"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<LinearLayout <LinearLayout
@ -550,9 +597,8 @@
</androidx.core.widget.ContentLoadingProgressBar> </androidx.core.widget.ContentLoadingProgressBar>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:descendantFocusability="afterDescendants" android:descendantFocusability="afterDescendants"
android:id="@+id/result_episodes" android:id="@+id/result_episodes"
android:clipToPadding="false"
android:layout_marginTop="0dp" android:layout_marginTop="0dp"
android:paddingBottom="100dp" android:paddingBottom="100dp"
tools:listitem="@layout/result_episode" tools:listitem="@layout/result_episode"
@ -565,7 +611,28 @@
<LinearLayout <LinearLayout
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:orientation="vertical"
>
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
android:visibility="gone"
tools:visibility="visible"
app:elevation="0dp"
android:textStyle="bold"
app:backgroundTint="?attr/primaryGrayBackground"
app:tint="?attr/colorPrimary"
android:textColor="?attr/colorPrimary"
app:iconTint="?attr/colorPrimary"
android:layout_margin="16dp"
android:id="@+id/result_bookmark_fab"
android:layout_gravity="end|bottom"
app:icon="@drawable/ic_baseline_bookmark_24"
android:textAllCaps="false"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="ContentDescription">
</com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton>
<fragment <fragment
app:customCastBackgroundColor="?attr/primaryBlackBackground" app:customCastBackgroundColor="?attr/primaryBlackBackground"
app:castControlButtons="@array/cast_mini_controller_control_buttons" app:castControlButtons="@array/cast_mini_controller_control_buttons"
@ -598,21 +665,5 @@
android:foreground="?android:attr/selectableItemBackgroundBorderless" android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/search_poster_descript"/> android:contentDescription="@string/search_poster_descript"/>
</androidx.cardview.widget.CardView>--> </androidx.cardview.widget.CardView>-->
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
android:visibility="gone"
tools:visibility="visible"
app:elevation="0dp"
android:textStyle="bold"
app:backgroundTint="?attr/primaryGrayBackground"
app:tint="?attr/colorPrimary"
android:textColor="?attr/colorPrimary"
app:iconTint="?attr/colorPrimary"
android:layout_margin="16dp"
android:id="@+id/result_bookmark_fab"
android:layout_gravity="end|bottom"
app:icon="@drawable/ic_baseline_bookmark_24"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="ContentDescription">
</com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton>
</FrameLayout> </FrameLayout>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:paddingBottom="@dimen/loading_margin"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<include layout="@layout/loading_poster"/>
<LinearLayout
android:layout_marginStart="15dp"
android:orientation="vertical"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_marginEnd="50dp"
android:layout_height="wrap_content">
<include layout="@layout/loading_line"/>
<include layout="@layout/loading_line_short"/>
</LinearLayout>
</LinearLayout>

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:paddingTop="@dimen/loading_margin"
android:paddingBottom="@dimen/loading_margin"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_marginBottom="@dimen/loading_margin"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<!--app:cardCornerRadius="@dimen/roundedImageRadius"-->
<androidx.cardview.widget.CardView
android:background="@color/grayShimmer"
app:cardCornerRadius="@dimen/loading_radius"
android:layout_width="126dp"
android:layout_height="72dp"
android:foreground="@drawable/outline_drawable"
>
</androidx.cardview.widget.CardView>
<LinearLayout
android:layout_marginStart="15dp"
android:orientation="vertical"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_marginEnd="50dp"
android:layout_height="wrap_content">
<include layout="@layout/loading_line"/>
<include layout="@layout/loading_line_short"/>
</LinearLayout>
</LinearLayout>
<include layout="@layout/loading_line"/>
<include layout="@layout/loading_line"/>
</LinearLayout>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
app:cardCornerRadius="@dimen/loading_radius"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="@dimen/loading_line_height"
android:layout_marginBottom="@dimen/loading_margin"
android:background="@color/grayShimmer"
xmlns:android="http://schemas.android.com/apk/res/android"
tools:ignore="ContentDescription"
xmlns:app="http://schemas.android.com/apk/res-auto"/>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
app:cardCornerRadius="@dimen/loading_radius"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="120dp"
android:layout_height="@dimen/loading_line_height"
android:layout_marginBottom="@dimen/loading_margin"
android:background="@color/grayShimmer"
xmlns:android="http://schemas.android.com/apk/res/android"
tools:ignore="ContentDescription"
xmlns:app="http://schemas.android.com/apk/res-auto"/>

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
app:cardCornerRadius="@dimen/loading_radius"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="200dp"
android:layout_gravity="center"
android:layout_height="@dimen/loading_line_height"
android:layout_marginBottom="@dimen/loading_margin"
android:background="@color/grayShimmer"
xmlns:android="http://schemas.android.com/apk/res/android"
tools:ignore="ContentDescription"
xmlns:app="http://schemas.android.com/apk/res-auto"/>

View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:orientation="vertical"
android:paddingTop="@dimen/loading_margin"
android:paddingBottom="@dimen/loading_margin"
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="200dp" android:layout_width="match_parent">
<include layout="@layout/loading_line_short"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
<include layout="@layout/loading_poster"/>
<View android:layout_height="wrap_content" android:layout_width="@dimen/loading_margin"/>
<include layout="@layout/loading_poster"/>
<View android:layout_height="wrap_content" android:layout_width="@dimen/loading_margin"/>
<include layout="@layout/loading_poster"/>
<View android:layout_height="wrap_content" android:layout_width="@dimen/loading_margin"/>
<include layout="@layout/loading_poster"/>
<View android:layout_height="wrap_content" android:layout_width="@dimen/loading_margin"/>
<include layout="@layout/loading_poster"/>
<View android:layout_height="wrap_content" android:layout_width="@dimen/loading_margin"/>
<include layout="@layout/loading_poster"/>
<View android:layout_height="match_parent" android:layout_width="@dimen/loading_margin"/>
<include layout="@layout/loading_poster"/>
<View android:layout_height="wrap_content" android:layout_width="@dimen/loading_margin"/>
<include layout="@layout/loading_poster"/>
</LinearLayout>
</LinearLayout>

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
app:cardCornerRadius="@dimen/loading_radius"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="100dp"
android:layout_height="140dp"
android:background="@color/grayShimmer"
xmlns:android="http://schemas.android.com/apk/res/android"
tools:ignore="ContentDescription"
xmlns:app="http://schemas.android.com/apk/res-auto"/>

View file

@ -1,6 +1,7 @@
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!--Created by The Translator <https://play.google.com/store/apps/details?id=com.sunilpaulmathew.translator>--> <!--Created by The Translator <https://play.google.com/store/apps/details?id=com.sunilpaulmathew.translator>-->
<!-- IS NOT NEEDED TO TRANSLATE AS THEY ARE ONLY USED FOR SCREEN READERS AND WONT SHOW UP TO NORMAL USERS -->
<string name="result_poster_img_des">Poster</string> <string name="result_poster_img_des">Poster</string>
<string name="search_poster_img_des">@string/result_poster_img_des</string> <string name="search_poster_img_des">@string/result_poster_img_des</string>
<string name="episode_poster_img_des">Episode Poster</string> <string name="episode_poster_img_des">Episode Poster</string>
@ -9,15 +10,19 @@
<string name="go_back_img_des">Go back</string> <string name="go_back_img_des">Go back</string>
<string name="home_change_provider_img_des">Change Provider</string> <string name="home_change_provider_img_des">Change Provider</string>
<string name="preview_background_img_des">Preview Background</string> <string name="preview_background_img_des">Preview Background</string>
<!-- TRANSLATE, BUT DON'T FORGET FORMAT -->
<string name="player_speed_text_format" formatted="true">Velocidade (%.2fx)</string> <string name="player_speed_text_format" formatted="true">Velocidade (%.2fx)</string>
<string name="rated_format" formatted="true">Classificado: %.1f</string> <string name="rated_format" formatted="true">Classificado: %.1f</string>
<string name="new_update_format" formatted="true">Nova atualização encontrada!\n%s -> %s</string> <string name="new_update_format" formatted="true">Nova atualização encontrada!\n%s -> %s</string>
<string name="filler_format" formatted="true">(Cheio) %s</string> <string name="filler_format" formatted="true">(Cheio) %s</string>
<string name="app_name">CloudStream</string> <string name="app_name">CloudStream</string>
<string name="title_home">Início</string> <string name="title_home">Início</string>
<string name="title_search">Buscar</string> <string name="title_search">Buscar</string>
<string name="title_downloads">Downloads</string> <string name="title_downloads">Downloads</string>
<string name="title_settings">Opções</string> <string name="title_settings">Opções</string>
<string name="search_hint">Buscar…</string> <string name="search_hint">Buscar…</string>
<string name="no_data">Sem dados</string> <string name="no_data">Sem dados</string>
<string name="episode_more_options_des">Mais Opções</string> <string name="episode_more_options_des">Mais Opções</string>
@ -27,19 +32,23 @@
<string name="result_open_in_browser">Abrir no Navegador</string> <string name="result_open_in_browser">Abrir no Navegador</string>
<string name="skip_loading">Saltar Carga</string> <string name="skip_loading">Saltar Carga</string>
<string name="loading_chromecast">Cargando…</string> <string name="loading_chromecast">Cargando…</string>
<string name="type_watching">Assistindo</string> <string name="type_watching">Assistindo</string>
<string name="type_on_hold">Em espera</string> <string name="type_on_hold">Em espera</string>
<string name="type_completed">Completado</string> <string name="type_completed">Completado</string>
<string name="type_dropped">Deixado</string> <string name="type_dropped">Deixado</string>
<string name="type_plan_to_watch">Planejando assistir</string> <string name="type_plan_to_watch">Planejando assistir</string>
<string name="type_none">Nenhuma</string> <string name="type_none">Nenhuma</string>
<string name="type_re_watching">Assistindo de Novo</string>
<string name="play_movie_button">Assistir Filme</string> <string name="play_movie_button">Assistir Filme</string>
<string name="play_torrent_button">Stream Torrent</string> <string name="play_torrent_button">Stream Torrent</string>
<string name="pick_source">Origems</string> <string name="pick_source">Origems</string>
<string name="pick_subtitle">Subtítulos</string> <string name="pick_subtitle">Subtítulos</string>
<string name="reload_error">Reintentar conexão…</string> <string name="reload_error">Reintentar conexão…</string>
<string name="result_go_back">Voltar atrás</string> <string name="result_go_back">Voltar Atrás</string>
<string name="play_episode">Reproduzir episódio</string> <string name="play_episode">Assistir Episódio</string>
<string name="download">Descàrregar</string> <string name="download">Descàrregar</string>
<string name="downloaded">Descàrregado</string> <string name="downloaded">Descàrregado</string>
<string name="downloading">Descàrregando</string> <string name="downloading">Descàrregando</string>
@ -48,14 +57,18 @@
<string name="download_failed">Descàrrega Fallida</string> <string name="download_failed">Descàrrega Fallida</string>
<string name="download_canceled">Descàrrega Cancelada</string> <string name="download_canceled">Descàrrega Cancelada</string>
<string name="download_done">Descàrrega Terminada</string> <string name="download_done">Descàrrega Terminada</string>
<string name="error_loading_links_toast">Error Cargando Links</string> <string name="error_loading_links_toast">Error Cargando Links</string>
<string name="download_storage_text">Armazenagem Interno</string> <string name="download_storage_text">Armazenagem Interno</string>
<string name="app_dubbed_text">Dub</string> <string name="app_dubbed_text">Dub</string>
<string name="app_subbed_text">Sub</string> <string name="app_subbed_text">Sub</string>
<string name="popup_delete_file">Eliminar Arquivo</string> <string name="popup_delete_file">Eliminar Arquivo</string>
<string name="popup_play_file">Reproduzir Arquivo</string> <string name="popup_play_file">Reproduzir Arquivo</string>
<string name="popup_resume_download">Retomar Descàrrega</string> <string name="popup_resume_download">Retomar Descàrrega</string>
<string name="popup_pause_download">Pausar Descàrrega</string> <string name="popup_pause_download">Pausar Descàrrega</string>
<string name="pref_disable_acra">Desativar o relatório automático de erros</string> <string name="pref_disable_acra">Desativar o relatório automático de erros</string>
<string name="home_more_info">Mais info</string> <string name="home_more_info">Mais info</string>
<string name="home_expanded_hide">Esconder</string> <string name="home_expanded_hide">Esconder</string>
@ -67,6 +80,7 @@
<string name="sort_apply">Aplicar</string> <string name="sort_apply">Aplicar</string>
<string name="sort_cancel">Cancelar</string> <string name="sort_cancel">Cancelar</string>
<string name="player_speed">Velocidade do Reproductor</string> <string name="player_speed">Velocidade do Reproductor</string>
<string name="subtitles_settings">Ajustes de Subtítulos</string> <string name="subtitles_settings">Ajustes de Subtítulos</string>
<string name="subs_text_color">Color do Texto</string> <string name="subs_text_color">Color do Texto</string>
<string name="subs_outline_color">Color do Delineado</string> <string name="subs_outline_color">Color do Delineado</string>
@ -76,22 +90,31 @@
<string name="subs_subtitle_elevation">Elevação de Subtítulo</string> <string name="subs_subtitle_elevation">Elevação de Subtítulo</string>
<string name="subs_font">Fonte</string> <string name="subs_font">Fonte</string>
<string name="subs_font_size">Tamanho da Fonte</string> <string name="subs_font_size">Tamanho da Fonte</string>
<string name="search_provider_text_providers">Busca usando fornecedores</string> <string name="search_provider_text_providers">Busca usando fornecedores</string>
<string name="search_provider_text_types">Busca usando tipos</string> <string name="search_provider_text_types">Busca usando tipos</string>
<string name="benene_count_text">%d Benenes dadas a os devs</string> <string name="benene_count_text">%d Benenes dadas a os devs</string>
<string name="benene_count_text_none">Nenhum Benene dado</string> <string name="benene_count_text_none">Nenhum Benene dado</string>
<string name="subs_auto_select_language">Auto-seleção de Idioma</string> <string name="subs_auto_select_language">Auto-seleção de Idioma</string>
<string name="subs_download_languages">Descàrregar Idiomas</string> <string name="subs_download_languages">Descàrregar Idiomas</string>
<string name="subs_hold_to_reset_to_default">Segure para reinicializar para o padrão</string> <string name="subs_hold_to_reset_to_default">Segure para reinicializar para o padrão</string>
<string name="continue_watching">Continuar Assistindo</string> <string name="continue_watching">Continuar Assistindo</string>
<string name="action_remove_watching">Eliminar</string> <string name="action_remove_watching">Eliminar</string>
<string name="action_open_watching">Mais Info</string> <string name="action_open_watching">Mais info</string>
<string name="vpn_might_be_needed">Uma VPN pode ser necessária para que este provedor funcione corretamente</string> <string name="vpn_might_be_needed">Uma VPN pode ser necessária para que este provedor funcione corretamente</string>
<string name="vpn_torrent">Este provedor é uma torrent; uma VPN é recomendada</string> <string name="vpn_torrent">Este provedor é uma torrent; uma VPN é recomendada</string>
<string name="provider_info_meta">Metadados não são fornecidos pelo site, o carregamento de vídeo pode falhar.</string>
<string name="torrent_plot">Descripção</string> <string name="torrent_plot">Descripção</string>
<string name="normal_no_plot">Nenhuma Trama Encontrada</string> <string name="normal_no_plot">Nenhuma Trama Encontrada</string>
<string name="torrent_no_plot">Nenhuma Descripção Encontrada</string> <string name="torrent_no_plot">Nenhuma Descripção Encontrada</string>
<string name="picture_in_picture">Picture-in-picture</string>
<string name="picture_in_picture">Picture-em-picture</string>
<string name="picture_in_picture_des">Continua a reprodução em um player em miniatura em cima de outros apps</string> <string name="picture_in_picture_des">Continua a reprodução em um player em miniatura em cima de outros apps</string>
<string name="player_size_settings">Botão de redimensionamento do player</string> <string name="player_size_settings">Botão de redimensionamento do player</string>
<string name="player_size_settings_des">Tirar as bordas negras</string> <string name="player_size_settings_des">Tirar as bordas negras</string>
@ -106,6 +129,7 @@
<string name="double_tap_to_seek_settings">Duplo toque para buscar para frente</string> <string name="double_tap_to_seek_settings">Duplo toque para buscar para frente</string>
<string name="use_system_brightness_settings">Usar o brilho da sistema</string> <string name="use_system_brightness_settings">Usar o brilho da sistema</string>
<string name="use_system_brightness_settings_des">Usar o brilho da sistema em vez de uma sobreposição escura</string> <string name="use_system_brightness_settings_des">Usar o brilho da sistema em vez de uma sobreposição escura</string>
<string name="search">Buscar</string> <string name="search">Buscar</string>
<string name="settings_info">Info</string> <string name="settings_info">Info</string>
<string name="advanced_search">Búsqueda Avançada</string> <string name="advanced_search">Búsqueda Avançada</string>
@ -122,23 +146,31 @@
<string name="discord">Junte-se à Discord</string> <string name="discord">Junte-se à Discord</string>
<string name="benene">Dar um benene à os devs</string> <string name="benene">Dar um benene à os devs</string>
<string name="benene_des">Benene dada</string> <string name="benene_des">Benene dada</string>
<string name="app_language">Linguagem do App</string> <string name="app_language">Linguagem do App</string>
<string name="no_chomecast_support_toast">Este fornecedor não tem suporte para Chromecast</string> <string name="no_chomecast_support_toast">Este fornecedor não tem suporte para Chromecast</string>
<string name="no_links_found_toast">Links Não Encontrados</string> <string name="no_links_found_toast">Links Não Encontrados</string>
<string name="copy_link_toast">Link copiado para a prancheta</string> <string name="copy_link_toast">Link copiado para a prancheta</string>
<string name="play_episode_toast">Reproduzir episódio</string> <string name="play_episode_toast">Reproduzir episódio</string>
<string name="subs_default_reset_toast">Reinicializar para o padrão</string> <string name="subs_default_reset_toast">Reinicializar para o padrão</string>
<string name="acra_report_toast">Desculpe, a aplicação falhou. Um relatório de erro anônimo será enviado para os
desenvolvedores
</string>
<string name="season">Temporada</string> <string name="season">Temporada</string>
<string name="no_season">Sem Temporada</string> <string name="no_season">Sem Temporada</string>
<string name="episode">Episódio</string> <string name="episode">Episódio</string>
<string name="episodes">Episódios</string> <string name="episodes">Episódios</string>
<string name="season_short">T</string> <string name="season_short">T</string>
<string name="episode_short">E</string> <string name="episode_short">E</string>
<string name="delete_file">Eliminar Arquivo</string> <string name="delete_file">Eliminar Arquivo</string>
<string name="delete">Eliminar</string> <string name="delete">Eliminar</string>
<string name="pause">Pausar</string> <string name="pause">Pausar</string>
<string name="resume">Retomar</string> <string name="resume">Retomar</string>
<string name="delete_message">Isto apagarà %s permanentemente\nVocê tem certeza?</string> <string name="delete_message">Isto apagarà %s permanentemente\nVocê tem certeza?</string>
<string name="status_ongoing">Em Curso</string> <string name="status_ongoing">Em Curso</string>
<string name="status_completed">Concluído</string> <string name="status_completed">Concluído</string>
<string name="status">Estado</string> <string name="status">Estado</string>
@ -147,22 +179,36 @@
<string name="duration">Duração</string> <string name="duration">Duração</string>
<string name="site">Sitio</string> <string name="site">Sitio</string>
<string name="synopsis">Sinopsis</string> <string name="synopsis">Sinopsis</string>
<string name="queued">Em fila</string> <string name="queued">Em fila</string>
<string name="no_subtitles">Não Há Subtítulos</string> <string name="no_subtitles">Não Há Subtítulos</string>
<string name="default_subtitles">Por Padrão</string> <string name="default_subtitles">Por Padrão</string>
<string name="free_storage">Livre</string> <string name="free_storage">Livre</string>
<string name="used_storage">Usado</string> <string name="used_storage">Usado</string>
<string name="app_storage">App</string> <string name="app_storage">App</string>
<!--plural-->
<string name="movies">Filmes</string> <string name="movies">Filmes</string>
<string name="tv_series">Séries de TV</string> <string name="tv_series">Séries de TV</string>
<string name="cartoons">Desenhos animados</string> <string name="cartoons">Desenhos animados</string>
<string name="anime">Anime</string> <string name="anime">Anime</string>
<string name="torrent">Torrent</string> <string name="torrent">Torrentes</string>
<string name="documentaries">Documentários</string>
<!--singular-->
<string name="movies_singular">Filme</string>
<string name="tv_series_singular">Sériado</string>
<string name="cartoons_singular">Desenho animado</string>
<string name="torrent_singular">Torrent</string>
<string name="documentaries_singular">Documentário</string>
<string name="source_error">Erro de origem</string> <string name="source_error">Erro de origem</string>
<string name="remote_error">Erro remoto</string> <string name="remote_error">Erro remoto</string>
<string name="render_error">Erro de Renderizador</string> <string name="render_error">Erro de Renderizador</string>
<string name="unexpected_error">Erro inesperado do player reproductor</string> <string name="unexpected_error">Erro inesperado do player reproductor</string>
<string name="storage_error">Erro de descàrrega; verifica permissões de armazenamento</string> <string name="storage_error">Erro de descàrrega; verifica permissões de armazenamento</string>
<string name="episode_action_chomecast_episode">Chromecast o Episódio</string> <string name="episode_action_chomecast_episode">Chromecast o Episódio</string>
<string name="episode_action_chomecast_mirror">Chromecast á o Espelho</string> <string name="episode_action_chomecast_mirror">Chromecast á o Espelho</string>
<string name="episode_action_play_in_app">Assistir no App</string> <string name="episode_action_play_in_app">Assistir no App</string>
@ -172,17 +218,79 @@
<string name="episode_action_auto_download">Auto Descàrrega</string> <string name="episode_action_auto_download">Auto Descàrrega</string>
<string name="episode_action_download_mirror">Descàrregar Espelho</string> <string name="episode_action_download_mirror">Descàrregar Espelho</string>
<string name="episode_action_reload_links">Recarregar Links</string> <string name="episode_action_reload_links">Recarregar Links</string>
<string name="no_update_found">Nenhuma Atualização</string> <string name="no_update_found">Nenhuma Atualização</string>
<string name="check_for_update">Buscar Atualização</string> <string name="check_for_update">Buscar Atualização</string>
<string name="video_lock">Fixar</string> <string name="video_lock">Fixar</string>
<string name="video_aspect_ratio_resize">Mudar Tamanho</string> <string name="video_aspect_ratio_resize">Mudar Tamanho</string>
<string name="video_source">Origem</string> <string name="video_source">Origem</string>
<string name="video_skip_op">Pular OP</string> <string name="video_skip_op">Pular OP</string>
<string name="dont_show_again">Não mostra de novo</string> <string name="dont_show_again">Não mostra de novo</string>
<string name="update">Atualizar</string> <string name="update">Atualizar</string>
<string name="watch_quality_pref">Calidade Preferida</string> <string name="watch_quality_pref">Calidade Preferida</string>
<string name="dns_pref">DNS sobre HTTPS</string>
<string name="dns_pref_summary">Útil para contornar blocos do provedor de internet</string>
<string name="download_path_pref">Caminho de descarga</string>
<string name="display_subbed_dubbed_settings">Mostrar Anime Dublado/Subtítulado</string> <string name="display_subbed_dubbed_settings">Mostrar Anime Dublado/Subtítulado</string>
<string name="resize_fit">Ajustar para a Tela</string> <string name="resize_fit">Ajustar para a Tela</string>
<string name="resize_fill">Esticar</string> <string name="resize_fill">Esticar</string>
<string name="resize_zoom">Aumentar</string> <string name="resize_zoom">Aumentar</string>
<string name="legal_notice">Aviso Legal</string>
<string name="legal_notice_text" translatable="false">Quaisquer questões legais relativas ao conteúdo desta aplicação
devem ser levados em conta com os próprios anfitriões e fornecedores de arquivos, pois não somos afiliados a eles.
Em caso de violação de direitos autorais, favor contatar diretamente as partes responsáveis ou os sites de streaming.
O aplicativo é puramente para uso educacional e pessoal.
O CloudStream 3 não hospeda nenhum conteúdo no aplicativo, e não tem controle sobre qual mídia é colocada ou retirada.
O CloudStream 3 funciona como qualquer outro mecanismo de busca, como o Google. O CloudStream 3 não hospeda, não faz upload ou
gerenciar qualquer vídeo, filme ou conteúdo. Ele simplesmente rasteja, agrega e exibe links em um conveniente,
interface amigável para o usuário.
Ela apenas raspa sites de terceiros que podem ser acessados publicamente através de qualquer navegador web normal. É o
responsabilidade do usuário de evitar qualquer ação que possa violar as leis que regem sua localidade. Utilizar
CloudStream 3 por sua própria conta e risco.
</string>
<string name="general">Geral</string>
<string name="provider_lang_settings">Idiomas dos Origems</string>
<string name="app_layout">Layout do App</string>
<string name="preferred_media_settings">Mídia preferida</string>
<string name="automatic">Auto</string>
<string name="tv_layout">Layout de TV</string>
<string name="phone_layout">Layout de Celular</string>
<string name="primary_color_settings">Cor Primária</string>
<string name="app_theme_settings">Tema do App</string>
<!-- account stuff -->
<string name="account">Conta</string>
<string name="logout">Sair</string>
<string name="login">Autenticar</string>
<string name="switch_account">Mudar de conta</string>
<string name="add_account">Adicionar conta</string>
<!-- ============ -->
<string name="none">Nenhuma</string>
<string name="normal">Normal</string>
<string name="all">Todos</string>
<string name="max">Max</string>
<string name="min">Min</string>
<string name="subtitles_outline">Esboçado</string>
<string name="subtitles_depressed">Deprimido</string>
<string name="subtitles_shadow">Sombrado</string>
<string name="subtitles_raised">Em Relevo</string>
<!--
Example text (pangram) can optionally be translated; if you do, include all the letters in the alphabet,
see:
https://en.wikipedia.org/w/index.php?title=Pangram&oldid=225849300
https://en.wikipedia.org/wiki/The_quick_brown_fox_jumps_over_the_lazy_dog
-->
<string name="subtitles_example_text">Luís argüia à Júlia que «brações, fé, chá, óxido, pôr, zângão» eram palavras do português</string>
</resources> </resources>

View file

@ -1,23 +1,28 @@
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!--Created by The Translator <https://play.google.com/store/apps/details?id=com.sunilpaulmathew.translator>--> <!--Created by The Translator <https://play.google.com/store/apps/details?id=com.sunilpaulmathew.translator>-->
<string name="result_poster_img_des">Poster</string> <!-- IS NOT NEEDED TO TRANSLATE AS THEY ARE ONLY USED FOR SCREEN READERS AND WONT SHOW UP TO NORMAL USERS -->
<string name="result_poster_img_des">Afiș</string>
<string name="search_poster_img_des">@string/result_poster_img_des</string> <string name="search_poster_img_des">@string/result_poster_img_des</string>
<string name="episode_poster_img_des">Episode Poster</string> <string name="episode_poster_img_des">Afișul Episodului</string>
<string name="home_main_poster_img_des">Main Poster</string> <string name="home_main_poster_img_des">Afiș Principal</string>
<string name="home_next_random_img_des">Next Random</string> <string name="home_next_random_img_des">Următor Aleatoriu</string>
<string name="go_back_img_des">Go back</string> <string name="go_back_img_des">Înapoi</string>
<string name="home_change_provider_img_des">Change Provider</string> <string name="home_change_provider_img_des">Schimbați furnizorul</string>
<string name="preview_background_img_des">Preview Background</string> <string name="preview_background_img_des">Previzualizare fundal</string>
<!-- TRANSLATE, BUT DON'T FORGET FORMAT -->
<string name="player_speed_text_format" formatted="true">Viteză (%.2fx)</string> <string name="player_speed_text_format" formatted="true">Viteză (%.2fx)</string>
<string name="rated_format" formatted="true">Evaluat: %.1f</string> <string name="rated_format" formatted="true">Evaluat: %.1f</string>
<string name="new_update_format" formatted="true">Noua actualizare găsită!\n%s -> %s</string> <string name="new_update_format" formatted="true">Noua actualizare găsită!\n%s -> %s</string>
<string name="filler_format" formatted="true">(Umplut) %s</string> <string name="filler_format" formatted="true">(Umplut) %s</string>
<string name="app_name">CloudStream</string> <string name="app_name">CloudStream</string>
<string name="title_home">Principal</string> <string name="title_home">Principal</string>
<string name="title_search">Căutare</string> <string name="title_search">Căutare</string>
<string name="title_downloads">Descărcări</string> <string name="title_downloads">Descărcări</string>
<string name="title_settings">Opțiuni</string> <string name="title_settings">Opțiuni</string>
<string name="search_hint">Căutare…</string> <string name="search_hint">Căutare…</string>
<string name="no_data">Fără date</string> <string name="no_data">Fără date</string>
<string name="episode_more_options_des">Mai Multe Opțiuni</string> <string name="episode_more_options_des">Mai Multe Opțiuni</string>
@ -27,19 +32,23 @@
<string name="result_open_in_browser">Deschideți în browser</string> <string name="result_open_in_browser">Deschideți în browser</string>
<string name="skip_loading">Săriți încărcarea</string> <string name="skip_loading">Săriți încărcarea</string>
<string name="loading_chromecast">Încărcare…</string> <string name="loading_chromecast">Încărcare…</string>
<string name="type_watching">Urmărind</string> <string name="type_watching">Urmărind</string>
<string name="type_on_hold">În așteptare</string> <string name="type_on_hold">În așteptare</string>
<string name="type_completed">Finalizat</string> <string name="type_completed">Finalizat</string>
<string name="type_dropped">Renunțat</string> <string name="type_dropped">Renunțat</string>
<string name="type_plan_to_watch">Planificare pentru a urmări</string> <string name="type_plan_to_watch">Planificare pentru a urmări</string>
<string name="type_none">Niciunul</string> <string name="type_none">Niciunul</string>
<string name="play_movie_button">Urmăriți filmul</string> <string name="type_re_watching">ReUrmare</string>
<string name="play_movie_button">Urmăriți Filmul</string>
<string name="play_torrent_button">Stream Torrent</string> <string name="play_torrent_button">Stream Torrent</string>
<string name="pick_source">Surse</string> <string name="pick_source">Surse</string>
<string name="pick_subtitle">Subtitrare</string> <string name="pick_subtitle">Subtitrare</string>
<string name="reload_error">Reîncercarea conexiunii…</string> <string name="reload_error">Reîncercarea conexiunii…</string>
<string name="result_go_back">Întoarce-te</string> <string name="result_go_back">Întoarce-te</string>
<string name="play_episode">Redă episodul</string> <string name="play_episode">Redă episodul</string>
<string name="download">Descărcare</string> <string name="download">Descărcare</string>
<string name="downloaded">Descărcat</string> <string name="downloaded">Descărcat</string>
<string name="downloading">Descărcând</string> <string name="downloading">Descărcând</string>
@ -48,14 +57,18 @@
<string name="download_failed">Descărcare Eșuată</string> <string name="download_failed">Descărcare Eșuată</string>
<string name="download_canceled">Descărcare Anulată</string> <string name="download_canceled">Descărcare Anulată</string>
<string name="download_done">Descărcare Finalizată</string> <string name="download_done">Descărcare Finalizată</string>
<string name="error_loading_links_toast">Eroare de Încărcare a Linkurilor</string> <string name="error_loading_links_toast">Eroare de Încărcare a Linkurilor</string>
<string name="download_storage_text">Memorie Internă</string> <string name="download_storage_text">Memorie Internă</string>
<string name="app_dubbed_text">Dub</string> <string name="app_dubbed_text">Dub</string>
<string name="app_subbed_text">Sub</string> <string name="app_subbed_text">Sub</string>
<string name="popup_delete_file">Șterge Fișierul</string> <string name="popup_delete_file">Șterge Fișierul</string>
<string name="popup_play_file">Redare Fișierul</string> <string name="popup_play_file">Redare Fișierul</string>
<string name="popup_resume_download">Continuați Descărcarea</string> <string name="popup_resume_download">Continuați Descărcarea</string>
<string name="popup_pause_download">Pauză Descărcare</string> <string name="popup_pause_download">Pauză Descărcare</string>
<string name="pref_disable_acra">Dezactivați raportarea automată a erorilor</string> <string name="pref_disable_acra">Dezactivați raportarea automată a erorilor</string>
<string name="home_more_info">Mai multe info</string> <string name="home_more_info">Mai multe info</string>
<string name="home_expanded_hide">Ascunde</string> <string name="home_expanded_hide">Ascunde</string>
@ -67,6 +80,7 @@
<string name="sort_apply">Aplicați</string> <string name="sort_apply">Aplicați</string>
<string name="sort_cancel">Anulați</string> <string name="sort_cancel">Anulați</string>
<string name="player_speed">Viteza de Redare</string> <string name="player_speed">Viteza de Redare</string>
<string name="subtitles_settings">Opțiuni de Subtitrare</string> <string name="subtitles_settings">Opțiuni de Subtitrare</string>
<string name="subs_text_color">Culoarea Textului</string> <string name="subs_text_color">Culoarea Textului</string>
<string name="subs_outline_color">Culoarea Conturului</string> <string name="subs_outline_color">Culoarea Conturului</string>
@ -76,21 +90,30 @@
<string name="subs_subtitle_elevation">Elevația Subtitrărilor</string> <string name="subs_subtitle_elevation">Elevația Subtitrărilor</string>
<string name="subs_font">Fontul</string> <string name="subs_font">Fontul</string>
<string name="subs_font_size">Dimensiunea Fontului</string> <string name="subs_font_size">Dimensiunea Fontului</string>
<string name="search_provider_text_providers">Căutare cu ajutorul furnizorilor</string> <string name="search_provider_text_providers">Căutare cu ajutorul furnizorilor</string>
<string name="search_provider_text_types">Căutare utilizând tipuri</string> <string name="search_provider_text_types">Căutare utilizând tipuri</string>
<string name="benene_count_text">%d Benenes date la dezvii</string>
<string name="benene_count_text">%d Benenes date la dezvoltatorilor</string>
<string name="benene_count_text_none">Fără Beneni administrați</string> <string name="benene_count_text_none">Fără Beneni administrați</string>
<string name="subs_auto_select_language">Auto-selectare Limbă</string> <string name="subs_auto_select_language">Auto-selectare Limbă</string>
<string name="subs_download_languages">Descărcați Limbi</string> <string name="subs_download_languages">Descărcați Limbi</string>
<string name="subs_hold_to_reset_to_default">Țineți apăsat pentru a reseta la valorile implicite</string> <string name="subs_hold_to_reset_to_default">Țineți apăsat pentru a reseta la valorile implicite</string>
<string name="continue_watching">Continuă să Urmărești</string> <string name="continue_watching">Continuă să Urmărești</string>
<string name="action_remove_watching">Eliminați</string> <string name="action_remove_watching">Eliminați</string>
<string name="action_open_watching">Mai Multe Info</string> <string name="action_open_watching">Mai Multe Info</string>
<string name="vpn_might_be_needed">Este posibil să fie necesar un VPN pentru ca acest furnizor să funcționeze corect</string> <string name="vpn_might_be_needed">Este posibil să fie necesar un VPN pentru ca acest furnizor să funcționeze corect</string>
<string name="vpn_torrent">Acest furnizor este un torrent, se recomandă un VPN</string> <string name="vpn_torrent">Acest furnizor este un torrent, se recomandă un VPN</string>
<string name="provider_info_meta">Metadatele nu sunt furnizate de site, este posibil ca încărcarea videoclipului să eșueze.</string>
<string name="torrent_plot">Descriere</string> <string name="torrent_plot">Descriere</string>
<string name="normal_no_plot">Nici o Parcelă Găsită</string> <string name="normal_no_plot">Nici o Parcelă Găsită</string>
<string name="torrent_no_plot">Nicio Descriere Găsită</string> <string name="torrent_no_plot">Nicio Descriere Găsită</string>
<string name="picture_in_picture">Picture-in-picture</string> <string name="picture_in_picture">Picture-in-picture</string>
<string name="picture_in_picture_des">Continuă redarea într-un player în miniatură deasupra altor aplicații</string> <string name="picture_in_picture_des">Continuă redarea într-un player în miniatură deasupra altor aplicații</string>
<string name="player_size_settings">Butonul de Redimensionare a Playerului</string> <string name="player_size_settings">Butonul de Redimensionare a Playerului</string>
@ -106,6 +129,7 @@
<string name="double_tap_to_seek_settings">Atingeți dublu pentru a căuta</string> <string name="double_tap_to_seek_settings">Atingeți dublu pentru a căuta</string>
<string name="use_system_brightness_settings">Utilizați luminozitatea sistemului</string> <string name="use_system_brightness_settings">Utilizați luminozitatea sistemului</string>
<string name="use_system_brightness_settings_des">Utilizați luminozitatea sistemului în playerul aplicației în loc de o suprapunere întunecată</string> <string name="use_system_brightness_settings_des">Utilizați luminozitatea sistemului în playerul aplicației în loc de o suprapunere întunecată</string>
<string name="search">Căutare</string> <string name="search">Căutare</string>
<string name="settings_info">Info</string> <string name="settings_info">Info</string>
<string name="advanced_search">Căutare Avansată</string> <string name="advanced_search">Căutare Avansată</string>
@ -118,27 +142,36 @@
<string name="uprereleases_settings">Actualizare la pre-lansări</string> <string name="uprereleases_settings">Actualizare la pre-lansări</string>
<string name="uprereleases_settings_des">Căutați doar actualizări de pre-lansare în loc de versiuni complete</string> <string name="uprereleases_settings_des">Căutați doar actualizări de pre-lansare în loc de versiuni complete</string>
<string name="github">Github</string> <string name="github">Github</string>
<string name="lightnovel">Aplicația light novel de către aceiași dezvii</string> <string name="lightnovel">Aplicația light novel de către aceiași dezvoltatorilor</string>
<string name="anim">Aplicație anime de aceiași dezvoltatorilor</string>
<string name="discord">Alăturați-vă Discord</string> <string name="discord">Alăturați-vă Discord</string>
<string name="benene">Dați un benene pentru dezvii</string> <string name="benene">Dați un benene pentru dezvoltatorilor</string>
<string name="benene_des">Benene dat</string> <string name="benene_des">Benene dat</string>
<string name="app_language">Limba Aplicației</string> <string name="app_language">Limba Aplicației</string>
<string name="no_chomecast_support_toast">Acest furnizor nu are suport pentru Chromecast</string> <string name="no_chomecast_support_toast">Acest furnizor nu are suport pentru Chromecast</string>
<string name="no_links_found_toast">Niciun Link Găsit</string> <string name="no_links_found_toast">Niciun Link Găsit</string>
<string name="copy_link_toast">Link copiat în clipboard</string> <string name="copy_link_toast">Link copiat în clipboard</string>
<string name="play_episode_toast">Redă episodul</string> <string name="play_episode_toast">Redă episodul</string>
<string name="subs_default_reset_toast">Resetarea la valoarea implicită</string> <string name="subs_default_reset_toast">Resetarea la valoarea implicită</string>
<string name="acra_report_toast">Ne pare rău, aplicația s-a blocat. Un raport de eroare anonim va fi trimis la
dezvoltatorilor
</string>
<string name="season">Sezonul</string> <string name="season">Sezonul</string>
<string name="no_season">Fără Sezon</string> <string name="no_season">Fără Sezon</string>
<string name="episode">Episodul</string> <string name="episode">Episodul</string>
<string name="episodes">Episoade</string> <string name="episodes">Episoade</string>
<string name="season_short">S</string> <string name="season_short">S</string>
<string name="episode_short">E</string> <string name="episode_short">E</string>
<string name="delete_file">Șterge Fișierul</string> <string name="delete_file">Șterge Fișierul</string>
<string name="delete">Șterge</string> <string name="delete">Șterge</string>
<string name="pause">Pauză</string> <string name="pause">Pauză</string>
<string name="resume">Continuarea</string> <string name="resume">Continuarea</string>
<string name="delete_message">Acest lucru va șterge definitiv %s\nEști sigur?</string> <string name="delete_message">Acest lucru va șterge definitiv %s\nEști sigur?</string>
<string name="status_ongoing">În Curs </string> <string name="status_ongoing">În Curs </string>
<string name="status_completed">Încheiat</string> <string name="status_completed">Încheiat</string>
<string name="status">Status</string> <string name="status">Status</string>
@ -147,22 +180,36 @@
<string name="duration">Durată</string> <string name="duration">Durată</string>
<string name="site">Site-ul</string> <string name="site">Site-ul</string>
<string name="synopsis">Sinopsis</string> <string name="synopsis">Sinopsis</string>
<string name="queued">În coadă</string> <string name="queued">În coadă</string>
<string name="no_subtitles">Fără Subtitrări</string> <string name="no_subtitles">Fără Subtitrări</string>
<string name="default_subtitles">Implicit</string> <string name="default_subtitles">Implicit</string>
<string name="free_storage">Liberă</string> <string name="free_storage">Liberă</string>
<string name="used_storage">Utilizată</string> <string name="used_storage">Utilizată</string>
<string name="app_storage">Aplicație</string> <string name="app_storage">Aplicație</string>
<!--plural-->
<string name="movies">Filme</string> <string name="movies">Filme</string>
<string name="tv_series">Serial TV</string> <string name="tv_series">Serial TV</string>
<string name="cartoons">Caricaturi</string> <string name="cartoons">Caricaturi</string>
<string name="anime">Anime</string> <string name="anime">Anime</string>
<string name="torrent">Torrent</string> <string name="torrent">Torrent</string>
<string name="documentaries">Filme Documentare</string>
<!--singular-->
<string name="movies_singular">Filmul</string>
<string name="tv_series_singular">Serie</string>
<string name="cartoons_singular">Caricatur</string>
<string name="torrent_singular">Torrent</string>
<string name="documentaries_singular">Documentar</string>
<string name="source_error">Eroare de sursă</string> <string name="source_error">Eroare de sursă</string>
<string name="remote_error">Eroare de telecomandă</string> <string name="remote_error">Eroare de telecomandă</string>
<string name="render_error">Eroare de randare</string> <string name="render_error">Eroare de randare</string>
<string name="unexpected_error">Eroare neașteptată a playerului</string> <string name="unexpected_error">Eroare neașteptată a playerului</string>
<string name="storage_error">Eroare de descărcare; verificați permisiunile de stocare</string> <string name="storage_error">Eroare de descărcare; verificați permisiunile de stocare</string>
<string name="episode_action_chomecast_episode">Chromecast Acest Episod</string> <string name="episode_action_chomecast_episode">Chromecast Acest Episod</string>
<string name="episode_action_chomecast_mirror">Chromecast Acest Oglindă</string> <string name="episode_action_chomecast_mirror">Chromecast Acest Oglindă</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>
@ -172,17 +219,79 @@
<string name="episode_action_auto_download">Auto-descărcare</string> <string name="episode_action_auto_download">Auto-descărcare</string>
<string name="episode_action_download_mirror">Descărcare Oglindă</string> <string name="episode_action_download_mirror">Descărcare Oglindă</string>
<string name="episode_action_reload_links">Reîncărcare Link-uri</string> <string name="episode_action_reload_links">Reîncărcare Link-uri</string>
<string name="no_update_found">Nicio Actualizare Găsită</string> <string name="no_update_found">Nicio Actualizare Găsită</string>
<string name="check_for_update">Verificați dacă există Actualizări</string> <string name="check_for_update">Verificați dacă există Actualizări</string>
<string name="video_lock">Blocare</string> <string name="video_lock">Blocare</string>
<string name="video_aspect_ratio_resize">Redimensionați</string> <string name="video_aspect_ratio_resize">Redimensionați</string>
<string name="video_source">Sursă</string> <string name="video_source">Sursă</string>
<string name="video_skip_op">Săriți OP</string> <string name="video_skip_op">Săriți OP</string>
<string name="dont_show_again">Nu mai apare din nou</string> <string name="dont_show_again">Nu mai apare din nou</string>
<string name="update">Actualizare</string> <string name="update">Actualizare</string>
<string name="watch_quality_pref">Calitatea Preferată</string> <string name="watch_quality_pref">Calitatea Preferată</string>
<string name="dns_pref">DNS prin HTTPS</string>
<string name="dns_pref_summary">Util pentru ocolirea blocurilor ISP</string>
<string name="download_path_pref">Calea de descărcare</string>
<string name="display_subbed_dubbed_settings">Afișarea Anime-ului Dublat/Subtitrat</string> <string name="display_subbed_dubbed_settings">Afișarea Anime-ului Dublat/Subtitrat</string>
<string name="resize_fit">Se Potrivesc la Ecran</string> <string name="resize_fit">Se Potrivesc la Ecran</string>
<string name="resize_fill">Întindere</string> <string name="resize_fill">Întindere</string>
<string name="resize_zoom">Mărire</string> <string name="resize_zoom">Mărire</string>
<string name="legal_notice">Renunțare de responsabilitate</string>
<string name="legal_notice_text">Orice probleme juridice legate de conținutul acestei aplicații
ar trebui să fie rezolvate cu gazdele și furnizorii de fișiere, deoarece noi nu suntem afiliați cu aceștia.
În caz de încălcare a drepturilor de autor, vă rugăm să contactați direct părțile responsabile sau site-urile de streaming.
Aplicația este destinată exclusiv utilizării educaționale și personale.
CloudStream 3 nu găzduiește niciun fel de conținut în aplicație și nu are niciun control asupra conținutului media care este pus sau retras.
CloudStream 3 funcționează ca orice alt motor de căutare, cum ar fi Google. CloudStream 3 nu găzduiește, nu încarcă sau
gestionează niciun videoclip, film sau conținut. Pur și simplu răscolește, agregă și afișează link-uri într-un mod convenabil,
interfață convenabilă și ușor de utilizat.
Pur și simplu, acesta extrage site-urile web ale unor terțe părți care sunt accesibile publicului prin intermediul oricărui browser web obișnuit. Este
responsabilitatea utilizatorului de a evita orice acțiune care ar putea încălca legile care guvernează localitatea sa. Utilizați
CloudStream 3 pe propriul risc.
</string>
<string name="general">Generală</string>
<string name="provider_lang_settings">Limbile Furnizorului</string>
<string name="app_layout">Aranjament-ul Aplicației</string>
<string name="preferred_media_settings">Media Preferată</string>
<string name="automatic">Auto</string>
<string name="tv_layout">Aranjament TV</string>
<string name="phone_layout">Aranjament Telefonului</string>
<string name="primary_color_settings">Culoare primară</string>
<string name="app_theme_settings">Tema Aplicației</string>
<!-- account stuff -->
<string name="account">contul</string>
<string name="logout">Ieșire</string>
<string name="login">Conectare</string>
<string name="switch_account">Schimbați contul</string>
<string name="add_account">Adăugați contul</string>
<!-- ============ -->
<string name="none">Niciunul</string>
<string name="normal">Normală</string>
<string name="all">Toate</string>
<string name="max">Max</string>
<string name="min">Min</string>
<string name="subtitles_outline">Contur</string>
<string name="subtitles_depressed">Deprimată</string>
<string name="subtitles_shadow">Umbră</string>
<string name="subtitles_raised">În relief</string>
<!--
Example text (pangram) can optionally be translated; if you do, include all the letters in the alphabet,
see:
https://en.wikipedia.org/w/index.php?title=Pangram&oldid=225849300
https://en.wikipedia.org/wiki/The_quick_brown_fox_jumps_over_the_lazy_dog
-->
<string name="subtitles_example_text">Gheorghe, obezul, a reuşit să obţină jucându-se un flux în Quebec de o mie kilowaţioră</string>
</resources> </resources>

View file

@ -14,6 +14,7 @@
<color name="textColor">#e9eaee</color> <!--FFF--> <color name="textColor">#e9eaee</color> <!--FFF-->
<color name="grayTextColor">#9ba0a4</color> <!-- 5e5f62--> <color name="grayTextColor">#9ba0a4</color> <!-- 5e5f62-->
<color name="grayShimmer">#DCDCDC</color> <!-- 5e5f62-->
<color name="searchColorTransparent">#1AFFFFFF</color> <!--DADADA--> <color name="searchColorTransparent">#1AFFFFFF</color> <!--DADADA-->
<color name="transparent">#00000000</color> <color name="transparent">#00000000</color>

View file

@ -6,4 +6,10 @@
<dimen name="navbar_height">0dp</dimen> <dimen name="navbar_height">0dp</dimen>
<dimen name="card_corner_radius">2dp</dimen> <dimen name="card_corner_radius">2dp</dimen>
<dimen name="result_padding">15dp</dimen> <dimen name="result_padding">15dp</dimen>
<dimen name="loading_line_height">15dp</dimen>
<dimen name="loading_radius">3dp</dimen>
<dimen name="loading_margin">15dp</dimen>
<integer name="loading_time">2000</integer>
</resources> </resources>

View file

@ -145,7 +145,7 @@
<string name="benene_count_text">%d Benenes given to devs</string> <string name="benene_count_text">%d Benenes given to devs</string>
<string name="benene_count_text_none">No Benenes given</string> <string name="benene_count_text_none">No Benenes given</string>
<string name="subs_auto_select_language">Auto Select Language</string> <string name="subs_auto_select_language">Auto-Select Language</string>
<string name="subs_download_languages">Download Languages</string> <string name="subs_download_languages">Download Languages</string>
<string name="subs_hold_to_reset_to_default">Hold to reset to default</string> <string name="subs_hold_to_reset_to_default">Hold to reset to default</string>
<string name="continue_watching">Continue Watching</string> <string name="continue_watching">Continue Watching</string>
@ -169,7 +169,7 @@
<string name="player_subtitles_settings">Subtitles</string> <string name="player_subtitles_settings">Subtitles</string>
<string name="player_subtitles_settings_des">Player subtitles settings</string> <string name="player_subtitles_settings_des">Player subtitles settings</string>
<string name="eigengraumode_settings">Eigengravy Mode</string> <string name="eigengraumode_settings">Eigengravy Mode</string>
<string name="eigengraumode_settings_des">Adds the speed option in the player</string> <string name="eigengraumode_settings_des">Adds a speed option in the player</string>
<string name="swipe_to_seek_settings">Swipe to seek</string> <string name="swipe_to_seek_settings">Swipe to seek</string>
<string name="swipe_to_seek_settings_des">Swipe left or right to control time in the videoplayer</string> <string name="swipe_to_seek_settings_des">Swipe left or right to control time in the videoplayer</string>
<string name="swipe_to_change_settings">Swipe to change settings</string> <string name="swipe_to_change_settings">Swipe to change settings</string>
@ -178,7 +178,7 @@
<string name="double_tap_to_seek_settings_des">Tap twice on the right or left side to seek forwards or backwards <string name="double_tap_to_seek_settings_des">Tap twice on the right or left side to seek forwards or backwards
</string> </string>
<string name="use_system_brightness_settings">Use system brightness</string> <string name="use_system_brightness_settings">Use system brightness</string>
<string name="use_system_brightness_settings_des">Use system brightness in the app player instead of an dark <string name="use_system_brightness_settings_des">Use system brightness in the app player instead of a dark
overlay overlay
</string> </string>
@ -202,7 +202,7 @@
<string name="app_language">App Language</string> <string name="app_language">App Language</string>
<string name="no_chomecast_support_toast">This provider has no chromecast support</string> <string name="no_chomecast_support_toast">This provider has no Chromecast support</string>
<string name="no_links_found_toast">No Links Found</string> <string name="no_links_found_toast">No Links Found</string>
<string name="copy_link_toast">Link copied to clipboard</string> <string name="copy_link_toast">Link copied to clipboard</string>
<string name="play_episode_toast">Play Episode</string> <string name="play_episode_toast">Play Episode</string>
@ -244,18 +244,18 @@
<!--plural--> <!--plural-->
<string name="movies">Movies</string> <string name="movies">Movies</string>
<string name="tv_series">TvSeries</string> <string name="tv_series">TV Series</string>
<string name="cartoons">Cartoons</string> <string name="cartoons">Cartoons</string>
<string name="anime">Anime</string> <string name="anime">Anime</string>
<string name="torrent">Torrent</string> <string name="torrent">Torrents</string>
<string name="documentaries">Documentaries</string> <string name="documentaries">Documentaries</string>
<!--singular--> <!--singular-->
<string name="movies_singular">@string/movies</string> <string name="movies_singular">Movie</string>
<string name="tv_series_singular">Series</string> <string name="tv_series_singular">Series</string>
<string name="cartoons_singular">Cartoon</string> <string name="cartoons_singular">Cartoon</string>
<string name="anime_singular">@string/anime</string> <string name="anime_singular">@string/anime</string>
<string name="torrent_singular">@string/torrent</string> <string name="torrent_singular">Torrent</string>
<string name="documentaries_singular">Documentary</string> <string name="documentaries_singular">Documentary</string>
<string name="source_error">Source error</string> <string name="source_error">Source error</string>
@ -320,7 +320,7 @@
<string name="preferred_media_settings">Preferred Media</string> <string name="preferred_media_settings">Preferred Media</string>
<string name="automatic">Auto</string> <string name="automatic">Auto</string>
<string name="tv_layout">Tv Layout</string> <string name="tv_layout">TV Layout</string>
<string name="phone_layout">Phone Layout</string> <string name="phone_layout">Phone Layout</string>
<string name="primary_color_settings">Primary Color</string> <string name="primary_color_settings">Primary Color</string>
@ -355,8 +355,10 @@
<string name="subtitles_shadow">Shadow</string> <string name="subtitles_shadow">Shadow</string>
<string name="subtitles_raised">Raised</string> <string name="subtitles_raised">Raised</string>
<!-- <!--
Example text does not need to be translated and if you do translate include all the letters in the alphabet, Example text (pangram) can optionally be translated; if you do, include all the letters in the alphabet,
see https://en.wikipedia.org/wiki/The_quick_brown_fox_jumps_over_the_lazy_dog see:
https://en.wikipedia.org/w/index.php?title=Pangram&oldid=225849300
https://en.wikipedia.org/wiki/The_quick_brown_fox_jumps_over_the_lazy_dog
--> -->
<string name="subtitles_example_text">The quick brown fox jumps over the lazy dog</string> <string name="subtitles_example_text">The quick brown fox jumps over the lazy dog</string>
</resources> </resources>

View file

@ -315,7 +315,10 @@
<item name="strokeColor">@color/toggle_button_outline</item> <item name="strokeColor">@color/toggle_button_outline</item>
<item name="android:layout_width">wrap_content</item> <item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">45dp</item> <item name="android:layout_height">45dp</item>
<item name="android:padding">0dp</item> <item name="android:paddingTop">0dp</item>
<item name="android:paddingBottom">0dp</item>
<item name="android:paddingStart">10dp</item>
<item name="android:paddingEnd">10dp</item>
<!--<item name="android:layout_marginStart">10dp</item>--> <!--<item name="android:layout_marginStart">10dp</item>-->
<item name="android:layout_marginEnd">5dp</item> <item name="android:layout_marginEnd">5dp</item>
<item name="textAllCaps">false</item> <item name="textAllCaps">false</item>