forked from recloudstream/cloudstream
heavily improved android tv anime page navigation
This commit is contained in:
parent
ad2f2ec412
commit
83f3f7ff2e
7 changed files with 667 additions and 579 deletions
|
@ -333,7 +333,7 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
// this pulls the latest data so ppl don't have to update to simply change provider url
|
// this pulls the latest data so ppl don't have to update to simply change provider url
|
||||||
if(downloadFromGithub) {
|
if (downloadFromGithub) {
|
||||||
try {
|
try {
|
||||||
runBlocking {
|
runBlocking {
|
||||||
withContext(Dispatchers.IO) {
|
withContext(Dispatchers.IO) {
|
||||||
|
@ -379,10 +379,12 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener {
|
||||||
apis = allProviders.filter { api ->
|
apis = allProviders.filter { api ->
|
||||||
val name = api.javaClass.simpleName
|
val name = api.javaClass.simpleName
|
||||||
// if the provider does not exist in the json file, then it is shown by default
|
// if the provider does not exist in the json file, then it is shown by default
|
||||||
!providersJsonMap.containsKey(name) || acceptableProviders.contains(name) || restrictedApis.contains(name)
|
!providersJsonMap.containsKey(name) || acceptableProviders.contains(
|
||||||
|
name
|
||||||
|
) || restrictedApis.contains(name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e : Exception) {
|
} catch (e: Exception) {
|
||||||
logError(e)
|
logError(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,7 @@ import com.google.android.gms.cast.framework.CastContext
|
||||||
import com.google.android.gms.cast.framework.CastState
|
import com.google.android.gms.cast.framework.CastState
|
||||||
import com.google.android.material.button.MaterialButton
|
import com.google.android.material.button.MaterialButton
|
||||||
import com.lagradost.cloudstream3.*
|
import com.lagradost.cloudstream3.*
|
||||||
|
import com.lagradost.cloudstream3.APIHolder.getApiDubstatusSettings
|
||||||
import com.lagradost.cloudstream3.APIHolder.getApiFromName
|
import com.lagradost.cloudstream3.APIHolder.getApiFromName
|
||||||
import com.lagradost.cloudstream3.APIHolder.getId
|
import com.lagradost.cloudstream3.APIHolder.getId
|
||||||
import com.lagradost.cloudstream3.AcraApplication.Companion.context
|
import com.lagradost.cloudstream3.AcraApplication.Companion.context
|
||||||
|
@ -583,7 +584,6 @@ class ResultFragment : Fragment(), PanelsChildGestureRegionObserver.GestureRegio
|
||||||
@SuppressLint("SetTextI18n")
|
@SuppressLint("SetTextI18n")
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
|
||||||
result_cast_items?.let {
|
result_cast_items?.let {
|
||||||
PanelsChildGestureRegionObserver.Provider.get().register(it)
|
PanelsChildGestureRegionObserver.Provider.get().register(it)
|
||||||
}
|
}
|
||||||
|
@ -1077,6 +1077,65 @@ class ResultFragment : Fragment(), PanelsChildGestureRegionObserver.GestureRegio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets next focus to allow navigation up and down between 2 views
|
||||||
|
* if either of them is null nothing happens.
|
||||||
|
**/
|
||||||
|
fun setFocusUpAndDown(upper: View?, down: View?) {
|
||||||
|
if (upper == null || down == null) return
|
||||||
|
upper.nextFocusDownId = down.id
|
||||||
|
down.nextFocusUpId = upper.id
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is to band-aid FireTV navigation
|
||||||
|
result_season_button?.isFocusableInTouchMode = context?.isTvSettings() == true
|
||||||
|
result_episode_select?.isFocusableInTouchMode = context?.isTvSettings() == true
|
||||||
|
result_dub_select?.isFocusableInTouchMode = context?.isTvSettings() == true
|
||||||
|
|
||||||
|
observe(viewModel.selectedSeason) { season ->
|
||||||
|
result_season_button?.text = fromIndexToSeasonText(season)
|
||||||
|
}
|
||||||
|
|
||||||
|
observe(viewModel.seasonSelections) { seasonList ->
|
||||||
|
result_season_button?.visibility = if (seasonList.size <= 1) GONE else VISIBLE.also {
|
||||||
|
|
||||||
|
// If the season button is visible the result season button will be next focus down
|
||||||
|
if (result_series_parent?.isVisible == true)
|
||||||
|
setFocusUpAndDown(result_resume_series_button, result_season_button)
|
||||||
|
else
|
||||||
|
setFocusUpAndDown(result_bookmark_button, result_season_button)
|
||||||
|
}
|
||||||
|
|
||||||
|
result_season_button?.setOnClickListener {
|
||||||
|
result_season_button?.popupMenuNoIconsAndNoStringRes(
|
||||||
|
items = seasonList
|
||||||
|
.map { Pair(it ?: -2, fromIndexToSeasonText(it)) },
|
||||||
|
) {
|
||||||
|
val id = this.itemId
|
||||||
|
|
||||||
|
viewModel.changeSeason(if (id == -2) null else id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
observe(viewModel.selectedRange) { range ->
|
||||||
|
result_episode_select?.text = range
|
||||||
|
}
|
||||||
|
|
||||||
|
observe(viewModel.rangeOptions) { range ->
|
||||||
|
episodeRanges = range
|
||||||
|
result_episode_select?.visibility = if (range.size <= 1) GONE else VISIBLE.also {
|
||||||
|
|
||||||
|
// If Season button is invisible then the bookmark button next focus is episode select
|
||||||
|
if (result_season_button?.isVisible != true) {
|
||||||
|
if (result_series_parent?.isVisible == true)
|
||||||
|
setFocusUpAndDown(result_resume_series_button, result_episode_select)
|
||||||
|
else
|
||||||
|
setFocusUpAndDown(result_bookmark_button, result_episode_select)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
observe(viewModel.episodes) { episodeList ->
|
observe(viewModel.episodes) { episodeList ->
|
||||||
lateFixDownloadButton(episodeList.size <= 1) // movies can have multible parts but still be *movies* this will fix this
|
lateFixDownloadButton(episodeList.size <= 1) // movies can have multible parts but still be *movies* this will fix this
|
||||||
var isSeriesVisible = false
|
var isSeriesVisible = false
|
||||||
|
@ -1118,6 +1177,17 @@ class ResultFragment : Fragment(), PanelsChildGestureRegionObserver.GestureRegio
|
||||||
}
|
}
|
||||||
|
|
||||||
result_series_parent?.isVisible = isSeriesVisible
|
result_series_parent?.isVisible = isSeriesVisible
|
||||||
|
if (isSeriesVisible) {
|
||||||
|
val down = when {
|
||||||
|
result_season_button?.isVisible == true -> result_season_button
|
||||||
|
result_episode_select?.isVisible == true -> result_episode_select
|
||||||
|
result_dub_select?.isVisible == true -> result_dub_select
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
setFocusUpAndDown(result_resume_series_button, down)
|
||||||
|
setFocusUpAndDown(result_bookmark_button, result_resume_series_button)
|
||||||
|
}
|
||||||
|
|
||||||
result_resume_progress_holder?.isVisible = isProgressVisible
|
result_resume_progress_holder?.isVisible = isProgressVisible
|
||||||
context?.getString(if (isProgressVisible) R.string.resume else R.string.play_movie_button)
|
context?.getString(if (isProgressVisible) R.string.resume else R.string.play_movie_button)
|
||||||
?.let {
|
?.let {
|
||||||
|
@ -1150,28 +1220,7 @@ class ResultFragment : Fragment(), PanelsChildGestureRegionObserver.GestureRegio
|
||||||
startValue = null
|
startValue = null
|
||||||
}
|
}
|
||||||
|
|
||||||
observe(viewModel.selectedSeason)
|
observe(viewModel.publicEpisodes) { episodes ->
|
||||||
{ season ->
|
|
||||||
result_season_button?.text = fromIndexToSeasonText(season)
|
|
||||||
}
|
|
||||||
|
|
||||||
observe(viewModel.seasonSelections)
|
|
||||||
{ seasonList ->
|
|
||||||
result_season_button?.visibility = if (seasonList.size <= 1) GONE else VISIBLE
|
|
||||||
result_season_button?.setOnClickListener {
|
|
||||||
result_season_button?.popupMenuNoIconsAndNoStringRes(
|
|
||||||
items = seasonList
|
|
||||||
.map { Pair(it ?: -2, fromIndexToSeasonText(it)) },
|
|
||||||
) {
|
|
||||||
val id = this.itemId
|
|
||||||
|
|
||||||
viewModel.changeSeason(if (id == -2) null else id)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
observe(viewModel.publicEpisodes)
|
|
||||||
{ episodes ->
|
|
||||||
when (episodes) {
|
when (episodes) {
|
||||||
is Resource.Failure -> {
|
is Resource.Failure -> {
|
||||||
result_episode_loading?.isVisible = false
|
result_episode_loading?.isVisible = false
|
||||||
|
@ -1193,21 +1242,39 @@ class ResultFragment : Fragment(), PanelsChildGestureRegionObserver.GestureRegio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
observe(viewModel.dubStatus)
|
observe(viewModel.dubStatus) { status ->
|
||||||
{ status ->
|
|
||||||
result_dub_select?.text = status.toString()
|
result_dub_select?.text = status.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
observe(viewModel.dubSubSelections)
|
val preferDub = context?.getApiDubstatusSettings()?.all { it == DubStatus.Dubbed } == true
|
||||||
{ range ->
|
|
||||||
|
observe(viewModel.dubSubSelections) { range ->
|
||||||
dubRange = range
|
dubRange = range
|
||||||
|
|
||||||
|
if (preferDub && dubRange?.contains(DubStatus.Dubbed) == true){
|
||||||
|
viewModel.changeDubStatus(DubStatus.Dubbed)
|
||||||
|
}
|
||||||
|
|
||||||
result_dub_select?.visibility = if (range.size <= 1) GONE else VISIBLE
|
result_dub_select?.visibility = if (range.size <= 1) GONE else VISIBLE
|
||||||
|
|
||||||
|
if (result_season_button?.isVisible != true && result_episode_select?.isVisible != true) {
|
||||||
|
if (result_series_parent?.isVisible == true)
|
||||||
|
setFocusUpAndDown(result_resume_series_button, result_dub_select)
|
||||||
|
else
|
||||||
|
setFocusUpAndDown(result_bookmark_button, result_dub_select)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result_cast_items?.setOnFocusChangeListener { v, hasFocus ->
|
||||||
|
// Always escape focus
|
||||||
|
if (hasFocus) result_bookmark_button?.requestFocus()
|
||||||
}
|
}
|
||||||
|
|
||||||
result_dub_select.setOnClickListener {
|
result_dub_select.setOnClickListener {
|
||||||
val ranges = dubRange
|
val ranges = dubRange
|
||||||
if (ranges != null) {
|
if (ranges != null) {
|
||||||
it.popupMenuNoIconsAndNoStringRes(ranges.map { status ->
|
it.popupMenuNoIconsAndNoStringRes(ranges
|
||||||
|
.map { status ->
|
||||||
Pair(
|
Pair(
|
||||||
status.ordinal,
|
status.ordinal,
|
||||||
status.toString()
|
status.toString()
|
||||||
|
@ -1219,16 +1286,6 @@ class ResultFragment : Fragment(), PanelsChildGestureRegionObserver.GestureRegio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
observe(viewModel.selectedRange)
|
|
||||||
{ range ->
|
|
||||||
result_episode_select?.text = range
|
|
||||||
}
|
|
||||||
|
|
||||||
observe(viewModel.rangeOptions) { range ->
|
|
||||||
episodeRanges = range
|
|
||||||
result_episode_select?.visibility = if (range.size <= 1) GONE else VISIBLE
|
|
||||||
}
|
|
||||||
|
|
||||||
result_episode_select.setOnClickListener {
|
result_episode_select.setOnClickListener {
|
||||||
val ranges = episodeRanges
|
val ranges = episodeRanges
|
||||||
if (ranges != null) {
|
if (ranges != null) {
|
||||||
|
|
|
@ -44,7 +44,6 @@ class ResultViewModel : ViewModel() {
|
||||||
private var repo: APIRepository? = null
|
private var repo: APIRepository? = null
|
||||||
private var generator: IGenerator? = null
|
private var generator: IGenerator? = null
|
||||||
|
|
||||||
|
|
||||||
private val _resultResponse: MutableLiveData<Resource<Any?>> = MutableLiveData()
|
private val _resultResponse: MutableLiveData<Resource<Any?>> = MutableLiveData()
|
||||||
private val _episodes: MutableLiveData<List<ResultEpisode>> = MutableLiveData()
|
private val _episodes: MutableLiveData<List<ResultEpisode>> = MutableLiveData()
|
||||||
private val episodeById: MutableLiveData<HashMap<Int, Int>> =
|
private val episodeById: MutableLiveData<HashMap<Int, Int>> =
|
||||||
|
@ -190,7 +189,7 @@ class ResultViewModel : ViewModel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun changeDubStatus(status: DubStatus?) {
|
fun changeDubStatus(status: DubStatus?) {
|
||||||
if(status == null) return
|
if (status == null) return
|
||||||
dubSubEpisodes.value?.get(status)?.let { episodes ->
|
dubSubEpisodes.value?.get(status)?.let { episodes ->
|
||||||
id.value?.let {
|
id.value?.let {
|
||||||
setDub(it, status)
|
setDub(it, status)
|
||||||
|
@ -220,7 +219,10 @@ class ResultViewModel : ViewModel() {
|
||||||
currentSubs.add(sub)
|
currentSubs.add(sub)
|
||||||
})
|
})
|
||||||
|
|
||||||
return@safeApiCall Pair(currentLinks.toSet(), currentSubs.toSet()) as Pair<Set<ExtractorLink>, Set<SubtitleData>>
|
return@safeApiCall Pair(
|
||||||
|
currentLinks.toSet(),
|
||||||
|
currentSubs.toSet()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -247,13 +249,15 @@ class ResultViewModel : ViewModel() {
|
||||||
generator = RepoLinkGenerator(list)
|
generator = RepoLinkGenerator(list)
|
||||||
|
|
||||||
val set = HashMap<Int, Int>()
|
val set = HashMap<Int, Int>()
|
||||||
|
val range = selectedRangeInt.value
|
||||||
|
|
||||||
list.withIndex().forEach { set[it.value.id] = it.index }
|
list.withIndex().forEach { set[it.value.id] = it.index }
|
||||||
episodeById.postValue(set)
|
episodeById.postValue(set)
|
||||||
|
|
||||||
filterEpisodes(
|
filterEpisodes(
|
||||||
list,
|
list,
|
||||||
if (selection == -1) getResultSeason(localId ?: id.value ?: return) else selection, null
|
if (selection == -1) getResultSeason(localId ?: id.value ?: return) else selection,
|
||||||
|
range
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -330,9 +334,7 @@ class ResultViewModel : ViewModel() {
|
||||||
val status = getDub(mainId)
|
val status = getDub(mainId)
|
||||||
val statuses = d.episodes.map { it.key }
|
val statuses = d.episodes.map { it.key }
|
||||||
val dubStatus = if (statuses.contains(status)) status else statuses.first()
|
val dubStatus = if (statuses.contains(status)) status else statuses.first()
|
||||||
_dubStatus.postValue(dubStatus)
|
|
||||||
|
|
||||||
_dubSubSelections.postValue(d.episodes.keys)
|
|
||||||
val fillerEpisodes =
|
val fillerEpisodes =
|
||||||
if (showFillers) safeApiCall { getFillerEpisodes(d.name) } else null
|
if (showFillers) safeApiCall { getFillerEpisodes(d.name) } else null
|
||||||
|
|
||||||
|
@ -366,10 +368,14 @@ class ResultViewModel : ViewModel() {
|
||||||
|
|
||||||
Pair(ep.key, episodes)
|
Pair(ep.key, episodes)
|
||||||
}.toMap()
|
}.toMap()
|
||||||
|
|
||||||
|
// These posts needs to be in this order as to make the preferDub in ResultFragment work
|
||||||
_dubSubEpisodes.postValue(res)
|
_dubSubEpisodes.postValue(res)
|
||||||
res[dubStatus]?.let { episodes ->
|
res[dubStatus]?.let { episodes ->
|
||||||
updateEpisodes(mainId, episodes, -1)
|
updateEpisodes(mainId, episodes, -1)
|
||||||
}
|
}
|
||||||
|
_dubStatus.postValue(dubStatus)
|
||||||
|
_dubSubSelections.postValue(d.episodes.keys)
|
||||||
}
|
}
|
||||||
|
|
||||||
is TvSeriesLoadResponse -> {
|
is TvSeriesLoadResponse -> {
|
||||||
|
|
6
app/src/main/res/color/tag_stroke_color.xml
Normal file
6
app/src/main/res/color/tag_stroke_color.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:color="?attr/colorPrimary" android:state_checked="true"/>
|
||||||
|
<item android:color="?attr/colorPrimary" android:state_focused="true"/>
|
||||||
|
<item android:alpha="0.12" android:color="?attr/colorOnSurface" android:state_checked="false"/>
|
||||||
|
</selector>
|
|
@ -2,45 +2,45 @@
|
||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:id="@+id/result_root"
|
android:id="@+id/result_root"
|
||||||
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/primaryBlackBackground"
|
android:background="?attr/primaryBlackBackground"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true">
|
android:focusable="true">
|
||||||
|
|
||||||
<com.facebook.shimmer.ShimmerFrameLayout
|
<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:id="@+id/result_loading"
|
android:id="@+id/result_loading"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical"
|
||||||
|
app:shimmer_auto_start="true"
|
||||||
|
app:shimmer_base_alpha="0.2"
|
||||||
|
app:shimmer_duration="@integer/loading_time"
|
||||||
|
app:shimmer_highlight_alpha="0.3"
|
||||||
|
tools:visibility="gone">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_margin="@dimen/result_padding"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="@dimen/result_padding"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_marginBottom="@dimen/loading_margin"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginBottom="@dimen/loading_margin"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<include layout="@layout/loading_poster" />
|
<include layout="@layout/loading_poster" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
android:layout_marginStart="@dimen/loading_margin"
|
android:layout_marginStart="@dimen/loading_margin"
|
||||||
android:layout_marginEnd="@dimen/loading_margin"
|
android:layout_marginEnd="@dimen/loading_margin"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical">
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
<include layout="@layout/loading_line" />
|
<include layout="@layout/loading_line" />
|
||||||
|
|
||||||
|
@ -76,92 +76,92 @@
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/result_loading_error"
|
android:id="@+id/result_loading_error"
|
||||||
|
|
||||||
android:visibility="gone"
|
|
||||||
tools:visibility="gone"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="gone">
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
android:layout_gravity="center"
|
android:id="@+id/result_reload_connectionerror"
|
||||||
style="@style/WhiteButton"
|
style="@style/WhiteButton"
|
||||||
|
|
||||||
android:layout_margin="5dp"
|
|
||||||
|
|
||||||
app:icon="@drawable/ic_baseline_autorenew_24"
|
|
||||||
android:text="@string/reload_error"
|
|
||||||
android:id="@+id/result_reload_connectionerror"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:minWidth="200dp" />
|
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_margin="5dp"
|
||||||
|
android:minWidth="200dp"
|
||||||
|
android:text="@string/reload_error"
|
||||||
|
app:icon="@drawable/ic_baseline_autorenew_24" />
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
android:layout_gravity="center"
|
android:id="@+id/result_reload_connection_open_in_browser"
|
||||||
style="@style/BlackButton"
|
style="@style/BlackButton"
|
||||||
|
|
||||||
android:layout_margin="5dp"
|
|
||||||
|
|
||||||
app:icon="@drawable/ic_baseline_public_24"
|
|
||||||
android:text="@string/result_open_in_browser"
|
|
||||||
android:id="@+id/result_reload_connection_open_in_browser"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:minWidth="200dp" />
|
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_margin="5dp"
|
||||||
|
android:minWidth="200dp"
|
||||||
|
android:text="@string/result_open_in_browser"
|
||||||
|
app:icon="@drawable/ic_baseline_public_24" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
android:id="@+id/result_error_text"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
android:layout_margin="5dp"
|
android:layout_margin="5dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:layout_gravity="center"
|
android:textColor="?attr/textColor" />
|
||||||
android:id="@+id/result_error_text"
|
|
||||||
android:textColor="?attr/textColor"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:visibility="gone"
|
|
||||||
tools:visibility="visible"
|
|
||||||
android:id="@+id/result_finish_loading"
|
android:id="@+id/result_finish_loading"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible">
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/result_poster_blur_holder"
|
android:id="@+id/result_poster_blur_holder"
|
||||||
|
|
||||||
android:visibility="visible"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="230dp">
|
android:layout_height="230dp"
|
||||||
|
android:visibility="visible">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/result_poster_blur"
|
android:id="@+id/result_poster_blur"
|
||||||
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:scaleType="centerCrop"
|
|
||||||
android:alpha="0"
|
android:alpha="0"
|
||||||
tools:src="@drawable/example_poster"
|
|
||||||
android:background="?attr/primaryGrayBackground"
|
android:background="?attr/primaryGrayBackground"
|
||||||
tools:ignore="ContentDescription" />
|
android:scaleType="centerCrop"
|
||||||
|
tools:ignore="ContentDescription"
|
||||||
|
tools:src="@drawable/example_poster" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:src="@drawable/background_shadow"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="30dp"
|
android:layout_height="30dp"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:src="@drawable/background_shadow"
|
||||||
tools:ignore="ContentDescription" />
|
tools:ignore="ContentDescription" />
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
<androidx.core.widget.NestedScrollView
|
||||||
android:id="@+id/result_scroll"
|
android:id="@+id/result_scroll"
|
||||||
android:background="?attr/primaryGrayBackground"
|
|
||||||
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="?attr/primaryGrayBackground">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:background="?attr/primaryBlackBackground"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"
|
||||||
|
android:background="?attr/primaryBlackBackground"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
|
@ -261,59 +261,59 @@
|
||||||
</FrameLayout>-->
|
</FrameLayout>-->
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
android:clipToPadding="false"
|
android:clipToPadding="false"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:paddingStart="@dimen/result_padding"
|
android:paddingStart="@dimen/result_padding"
|
||||||
android:paddingEnd="@dimen/result_padding"
|
android:paddingEnd="@dimen/result_padding">
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:visibility="visible"
|
|
||||||
android:layout_marginBottom="15dp"
|
|
||||||
android:layout_marginTop="10dp"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:layout_marginBottom="15dp"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:visibility="visible">
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
<androidx.cardview.widget.CardView
|
||||||
android:id="@+id/result_poster_holder"
|
android:id="@+id/result_poster_holder"
|
||||||
app:cardCornerRadius="@dimen/rounded_image_radius"
|
|
||||||
android:layout_width="100dp"
|
android:layout_width="100dp"
|
||||||
android:layout_height="140dp">
|
android:layout_height="140dp"
|
||||||
|
app:cardCornerRadius="@dimen/rounded_image_radius">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:foreground="@drawable/outline_drawable"
|
|
||||||
|
|
||||||
android:id="@+id/result_poster"
|
android:id="@+id/result_poster"
|
||||||
android:scaleType="centerCrop"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
tools:src="@drawable/example_poster"
|
android:contentDescription="@string/result_poster_img_des"
|
||||||
android:contentDescription="@string/result_poster_img_des" />
|
android:foreground="@drawable/outline_drawable"
|
||||||
|
android:scaleType="centerCrop"
|
||||||
|
tools:src="@drawable/example_poster" />
|
||||||
</androidx.cardview.widget.CardView>
|
</androidx.cardview.widget.CardView>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_marginStart="10dp"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:maxLines="2"
|
|
||||||
android:layout_marginBottom="5dp"
|
|
||||||
android:id="@+id/result_title"
|
android:id="@+id/result_title"
|
||||||
tools:text="The Perfect Run The Perfect Run"
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="5dp"
|
||||||
|
android:maxLines="2"
|
||||||
|
android:textColor="?attr/textColor"
|
||||||
android:textSize="20sp"
|
android:textSize="20sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
android:textColor="?attr/textColor"
|
tools:text="The Perfect Run The Perfect Run" />
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
|
|
||||||
<com.lagradost.cloudstream3.widget.FlowLayout
|
<com.lagradost.cloudstream3.widget.FlowLayout
|
||||||
app:itemSpacing="10dp"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content"
|
||||||
|
app:itemSpacing="10dp">
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
android:id="@+id/result_meta_site"
|
android:id="@+id/result_meta_site"
|
||||||
|
@ -327,9 +327,9 @@
|
||||||
tools:text="Movie" />
|
tools:text="Movie" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
tools:text="2022"
|
|
||||||
android:id="@+id/result_meta_year"
|
android:id="@+id/result_meta_year"
|
||||||
style="@style/ResultInfoText" />
|
style="@style/ResultInfoText"
|
||||||
|
tools:text="2022" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/result_meta_rating"
|
android:id="@+id/result_meta_rating"
|
||||||
|
@ -342,8 +342,8 @@
|
||||||
tools:text="Ongoing" />
|
tools:text="Ongoing" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
style="@style/ResultInfoText"
|
|
||||||
android:id="@+id/result_meta_duration"
|
android:id="@+id/result_meta_duration"
|
||||||
|
style="@style/ResultInfoText"
|
||||||
tools:text="121min" />
|
tools:text="121min" />
|
||||||
</com.lagradost.cloudstream3.widget.FlowLayout>
|
</com.lagradost.cloudstream3.widget.FlowLayout>
|
||||||
|
|
||||||
|
@ -352,106 +352,109 @@
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:textColor="?attr/textColor"
|
android:id="@+id/result_descript"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
android:foreground="@drawable/outline_drawable"
|
android:foreground="@drawable/outline_drawable"
|
||||||
android:paddingTop="5dp"
|
|
||||||
android:paddingBottom="0dp"
|
|
||||||
android:nextFocusUp="@id/result_back"
|
android:nextFocusUp="@id/result_back"
|
||||||
android:nextFocusDown="@id/result_bookmark_button"
|
android:nextFocusDown="@id/result_bookmark_button"
|
||||||
|
|
||||||
android:id="@+id/result_descript"
|
android:paddingTop="5dp"
|
||||||
|
android:paddingBottom="0dp"
|
||||||
|
android:textColor="?attr/textColor"
|
||||||
android:textSize="15sp"
|
android:textSize="15sp"
|
||||||
tools:text="Ryan Quicksave Romano is an eccentric adventurer with a strange power: he can create a save-point in time and redo his life whenever he dies. Arriving in New Rome, the glitzy capital of sin of a rebuilding Europe, he finds the city torn between mega-corporations, sponsored heroes, superpowered criminals, and true monsters. It's a time of chaos, where potions can grant the power to rule the world and dangers lurk everywhere. "
|
tools:text="Ryan Quicksave Romano is an eccentric adventurer with a strange power: he can create a save-point in time and redo his life whenever he dies. Arriving in New Rome, the glitzy capital of sin of a rebuilding Europe, he finds the city torn between mega-corporations, sponsored heroes, superpowered criminals, and true monsters. It's a time of chaos, where potions can grant the power to rule the world and dangers lurk everywhere. " />
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:src="@drawable/background_shadow"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="30dp"
|
android:layout_height="30dp"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:src="@drawable/background_shadow"
|
||||||
tools:ignore="ContentDescription" />
|
tools:ignore="ContentDescription" />
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
tools:visibility="gone"
|
android:id="@+id/result_bookmark_button"
|
||||||
android:layout_marginTop="0dp"
|
style="@style/BlackButton"
|
||||||
android:paddingTop="0dp"
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginStart="0dp"
|
android:layout_marginStart="0dp"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginTop="0dp"
|
||||||
android:minWidth="100dp"
|
|
||||||
|
|
||||||
app:icon="@drawable/ic_baseline_bookmark_24"
|
android:layout_marginBottom="10dp"
|
||||||
android:backgroundTint="?attr/primaryBlackBackground"
|
android:backgroundTint="?attr/primaryBlackBackground"
|
||||||
|
|
||||||
|
android:minWidth="100dp"
|
||||||
android:nextFocusLeft="@id/result_back"
|
android:nextFocusLeft="@id/result_back"
|
||||||
android:nextFocusDown="@id/result_play_movie"
|
|
||||||
android:nextFocusUp="@id/result_descript"
|
|
||||||
android:nextFocusRight="@id/result_search"
|
android:nextFocusRight="@id/result_search"
|
||||||
|
android:nextFocusUp="@id/result_descript"
|
||||||
|
|
||||||
android:layout_gravity="center_vertical"
|
android:nextFocusDown="@id/result_play_movie"
|
||||||
|
android:paddingTop="0dp"
|
||||||
app:cornerRadius="4dp"
|
app:cornerRadius="4dp"
|
||||||
android:id="@+id/result_bookmark_button"
|
app:icon="@drawable/ic_baseline_bookmark_24"
|
||||||
tools:text="Bookmark"
|
tools:text="Bookmark"
|
||||||
android:layout_width="wrap_content"
|
tools:visibility="gone">
|
||||||
style="@style/BlackButton">
|
|
||||||
|
|
||||||
<requestFocus />
|
<requestFocus />
|
||||||
</com.google.android.material.button.MaterialButton>
|
</com.google.android.material.button.MaterialButton>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:maxLines="2"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:layout_marginBottom="5dp"
|
|
||||||
android:textColor="?attr/grayTextColor"
|
|
||||||
android:id="@+id/result_cast_text"
|
android:id="@+id/result_cast_text"
|
||||||
android:textSize="15sp"
|
|
||||||
tools:text="Cast: Joe Ligma"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="5dp"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="2"
|
||||||
|
android:textColor="?attr/grayTextColor"
|
||||||
|
android:textSize="15sp"
|
||||||
|
tools:text="Cast: Joe Ligma" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:paddingTop="5dp"
|
|
||||||
tools:itemCount="2"
|
|
||||||
android:fadingEdge="horizontal"
|
|
||||||
android:requiresFadingEdge="horizontal"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
|
||||||
android:id="@+id/result_cast_items"
|
android:id="@+id/result_cast_items"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
android:descendantFocusability="afterDescendants"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:fadingEdge="horizontal"
|
||||||
|
android:focusableInTouchMode="false"
|
||||||
|
android:focusable="false"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:paddingTop="5dp"
|
||||||
|
android:requiresFadingEdge="horizontal"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||||
|
tools:itemCount="2"
|
||||||
tools:listitem="@layout/cast_item" />
|
tools:listitem="@layout/cast_item" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:textColor="?attr/grayTextColor"
|
|
||||||
android:id="@+id/result_vpn"
|
android:id="@+id/result_vpn"
|
||||||
android:textSize="15sp"
|
|
||||||
tools:text="@string/vpn_torrent"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="?attr/grayTextColor"
|
||||||
|
android:textSize="15sp"
|
||||||
|
tools:text="@string/vpn_torrent" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
android:id="@+id/result_info"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="5dp"
|
android:layout_marginBottom="5dp"
|
||||||
android:textColor="?attr/grayTextColor"
|
android:textColor="?attr/grayTextColor"
|
||||||
android:id="@+id/result_info"
|
|
||||||
android:textSize="15sp"
|
android:textSize="15sp"
|
||||||
tools:text="@string/provider_info_meta"
|
tools:text="@string/provider_info_meta" />
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:visibility="gone"
|
|
||||||
android:id="@+id/result_tag_holder"
|
android:id="@+id/result_tag_holder"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/result_tags"
|
|
||||||
android:textSize="17sp"
|
|
||||||
android:layout_marginTop="10dp"
|
android:layout_marginTop="10dp"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
|
android:text="@string/result_tags"
|
||||||
|
android:textColor="?attr/textColor"
|
||||||
|
android:textSize="17sp"
|
||||||
android:textStyle="normal"
|
android:textStyle="normal"
|
||||||
android:textColor="?attr/textColor" />
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
|
||||||
<com.lagradost.cloudstream3.widget.FlowLayout
|
<com.lagradost.cloudstream3.widget.FlowLayout
|
||||||
|
@ -460,57 +463,58 @@
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:paddingTop="50dp"
|
|
||||||
android:visibility="gone"
|
|
||||||
android:textColor="?attr/textColor"
|
|
||||||
android:id="@+id/result_coming_soon"
|
android:id="@+id/result_coming_soon"
|
||||||
android:textSize="20sp"
|
|
||||||
android:gravity="center"
|
|
||||||
android:textStyle="bold"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:text="@string/coming_soon"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingTop="50dp"
|
||||||
|
android:text="@string/coming_soon"
|
||||||
|
android:textColor="?attr/textColor"
|
||||||
|
android:textSize="20sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="vertical"
|
|
||||||
android:id="@+id/result_data_holder"
|
android:id="@+id/result_data_holder"
|
||||||
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.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
android:visibility="gone"
|
|
||||||
android:text="@string/add_sync"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
app:icon="@drawable/ic_baseline_add_24"
|
|
||||||
android:id="@+id/result_add_sync"
|
android:id="@+id/result_add_sync"
|
||||||
|
style="@style/WhiteButton"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_marginStart="0dp"
|
||||||
|
|
||||||
|
android:layout_marginBottom="10dp"
|
||||||
|
android:text="@string/add_sync"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:icon="@drawable/ic_baseline_add_24" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/result_movie_parent"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
tools:visibility="visible">
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/result_play_movie"
|
||||||
|
style="@style/WhiteButton"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginStart="0dp"
|
android:layout_marginStart="0dp"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginEnd="0dp"
|
||||||
style="@style/WhiteButton" />
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
tools:visibility="visible"
|
|
||||||
android:layout_marginTop="5dp"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:id="@+id/result_movie_parent"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
android:nextFocusUp="@id/result_bookmark_button"
|
android:nextFocusUp="@id/result_bookmark_button"
|
||||||
android:nextFocusDown="@id/result_download_movie"
|
android:nextFocusDown="@id/result_download_movie"
|
||||||
|
|
||||||
android:id="@+id/result_play_movie"
|
|
||||||
style="@style/WhiteButton"
|
|
||||||
android:layout_marginStart="0dp"
|
|
||||||
android:layout_marginEnd="0dp"
|
|
||||||
android:visibility="visible"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:text="@string/play_movie_button"
|
android:text="@string/play_movie_button"
|
||||||
app:icon="@drawable/ic_baseline_play_arrow_24"
|
android:visibility="visible"
|
||||||
android:layout_width="match_parent" />
|
app:icon="@drawable/ic_baseline_play_arrow_24" />
|
||||||
|
|
||||||
|
|
||||||
<!--<com.google.android.material.button.MaterialButton
|
<!--<com.google.android.material.button.MaterialButton
|
||||||
|
@ -536,80 +540,80 @@
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
android:nextFocusUp="@id/result_play_movie"
|
|
||||||
android:nextFocusDown="@id/result_season_button"
|
|
||||||
|
|
||||||
android:id="@+id/result_download_movie"
|
android:id="@+id/result_download_movie"
|
||||||
style="@style/BlackButton"
|
style="@style/BlackButton"
|
||||||
|
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginStart="0dp"
|
android:layout_marginStart="0dp"
|
||||||
android:layout_marginEnd="0dp"
|
android:layout_marginEnd="0dp"
|
||||||
android:visibility="visible"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
|
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:layout_width="match_parent" />
|
|
||||||
|
android:nextFocusUp="@id/result_play_movie"
|
||||||
|
android:nextFocusDown="@id/result_season_button"
|
||||||
|
android:visibility="visible" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:gravity="center"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<androidx.core.widget.ContentLoadingProgressBar
|
<androidx.core.widget.ContentLoadingProgressBar
|
||||||
android:id="@+id/result_movie_progress_downloaded"
|
android:id="@+id/result_movie_progress_downloaded"
|
||||||
|
style="?android:attr/progressBarStyleHorizontal"
|
||||||
android:layout_width="25dp"
|
android:layout_width="25dp"
|
||||||
android:layout_height="25dp"
|
android:layout_height="25dp"
|
||||||
android:indeterminate="false"
|
|
||||||
android:progressDrawable="@drawable/circular_progress_bar_filled"
|
|
||||||
android:background="@drawable/circle_shape"
|
|
||||||
style="?android:attr/progressBarStyleHorizontal"
|
|
||||||
android:max="100"
|
|
||||||
android:layout_margin="5dp"
|
|
||||||
android:paddingEnd="5dp"
|
|
||||||
android:paddingStart="5dp"
|
|
||||||
android:layout_gravity="end|center_vertical"
|
android:layout_gravity="end|center_vertical"
|
||||||
|
android:layout_margin="5dp"
|
||||||
|
android:background="@drawable/circle_shape"
|
||||||
|
android:indeterminate="false"
|
||||||
|
android:max="100"
|
||||||
|
android:paddingStart="5dp"
|
||||||
|
android:paddingEnd="5dp"
|
||||||
android:progress="30"
|
android:progress="30"
|
||||||
|
android:progressDrawable="@drawable/circular_progress_bar_filled"
|
||||||
android:visibility="visible" />
|
android:visibility="visible" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/result_movie_download_icon"
|
android:id="@+id/result_movie_download_icon"
|
||||||
app:tint="?attr/white"
|
android:layout_width="30dp"
|
||||||
android:visibility="visible"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_width="30dp"
|
|
||||||
android:background="?selectableItemBackgroundBorderless"
|
android:background="?selectableItemBackgroundBorderless"
|
||||||
|
android:contentDescription="@string/download"
|
||||||
android:src="@drawable/ic_baseline_play_arrow_24"
|
android:src="@drawable/ic_baseline_play_arrow_24"
|
||||||
android:contentDescription="@string/download" />
|
android:visibility="visible"
|
||||||
|
app:tint="?attr/white" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/result_movie_download_text"
|
android:id="@+id/result_movie_download_text"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:gravity="center"
|
||||||
android:letterSpacing="0.09"
|
android:letterSpacing="0.09"
|
||||||
|
android:textAllCaps="false"
|
||||||
android:textColor="?attr/textColor"
|
android:textColor="?attr/textColor"
|
||||||
android:textSize="15sp"
|
android:textSize="15sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
android:gravity="center"
|
tools:text="Downloading" />
|
||||||
android:textAllCaps="false"
|
|
||||||
tools:text="Downloading"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:visibility="gone"
|
|
||||||
android:id="@+id/result_movie_download_text_precentage"
|
android:id="@+id/result_movie_download_text_precentage"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:gravity="center"
|
||||||
android:letterSpacing="0.09"
|
android:letterSpacing="0.09"
|
||||||
android:paddingStart="5dp"
|
android:paddingStart="5dp"
|
||||||
android:paddingEnd="5dp"
|
android:paddingEnd="5dp"
|
||||||
|
android:textAllCaps="false"
|
||||||
android:textColor="?attr/textColor"
|
android:textColor="?attr/textColor"
|
||||||
android:textSize="15sp"
|
android:textSize="15sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
android:gravity="center"
|
android:visibility="gone"
|
||||||
android:textAllCaps="false"
|
tools:text="68%" />
|
||||||
tools:text="68%"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
|
@ -639,90 +643,90 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:visibility="gone"
|
|
||||||
tools:visibility="visible"
|
|
||||||
android:layout_marginTop="5dp"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:id="@+id/result_series_parent"
|
android:id="@+id/result_series_parent"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible">
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
android:layout_marginBottom="10dp"
|
|
||||||
android:nextFocusUp="@id/result_bookmark_button"
|
|
||||||
android:nextFocusDown="@id/result_download_movie"
|
|
||||||
|
|
||||||
android:id="@+id/result_resume_series_button"
|
android:id="@+id/result_resume_series_button"
|
||||||
style="@style/WhiteButton"
|
style="@style/WhiteButton"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginStart="0dp"
|
android:layout_marginStart="0dp"
|
||||||
android:layout_marginEnd="0dp"
|
android:layout_marginEnd="0dp"
|
||||||
android:visibility="visible"
|
|
||||||
tools:visibility="visible"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:text="@string/resume"
|
|
||||||
app:icon="@drawable/ic_baseline_play_arrow_24"
|
|
||||||
android:layout_width="match_parent" />
|
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
android:nextFocusUp="@id/result_bookmark_button"
|
android:nextFocusUp="@id/result_bookmark_button"
|
||||||
android:nextFocusDown="@id/result_download_movie"
|
android:nextFocusDown="@id/result_download_movie"
|
||||||
|
android:text="@string/resume"
|
||||||
|
android:visibility="visible"
|
||||||
|
app:icon="@drawable/ic_baseline_play_arrow_24"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
android:id="@+id/result_next_series_button"
|
android:id="@+id/result_next_series_button"
|
||||||
style="@style/WhiteButton"
|
style="@style/WhiteButton"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginStart="0dp"
|
android:layout_marginStart="0dp"
|
||||||
android:layout_marginEnd="0dp"
|
android:layout_marginEnd="0dp"
|
||||||
android:visibility="gone"
|
android:layout_marginBottom="10dp"
|
||||||
android:layout_gravity="center_vertical"
|
android:nextFocusUp="@id/result_bookmark_button"
|
||||||
|
android:nextFocusDown="@id/result_download_movie"
|
||||||
android:text="@string/next_episode"
|
android:text="@string/next_episode"
|
||||||
app:icon="@drawable/cast_ic_mini_controller_skip_next"
|
android:visibility="gone"
|
||||||
android:layout_width="match_parent" />
|
app:icon="@drawable/cast_ic_mini_controller_skip_next" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:textColor="?attr/textColor"
|
|
||||||
android:id="@+id/result_resume_series_title"
|
android:id="@+id/result_resume_series_title"
|
||||||
android:textStyle="bold"
|
|
||||||
android:textSize="17sp"
|
|
||||||
tools:text="S1E1 Episode 1"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="?attr/textColor"
|
||||||
|
android:textSize="17sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="S1E1 Episode 1" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
tools:visibility="visible"
|
|
||||||
android:visibility="gone"
|
|
||||||
android:paddingTop="10dp"
|
|
||||||
android:id="@+id/result_resume_progress_holder"
|
android:id="@+id/result_resume_progress_holder"
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:paddingTop="10dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible">
|
||||||
|
|
||||||
<androidx.core.widget.ContentLoadingProgressBar
|
<androidx.core.widget.ContentLoadingProgressBar
|
||||||
android:layout_height="20dp"
|
|
||||||
tools:progress="50"
|
|
||||||
android:id="@+id/result_resume_series_progress"
|
android:id="@+id/result_resume_series_progress"
|
||||||
android:indeterminate="false"
|
|
||||||
style="?android:attr/progressBarStyleHorizontal"
|
style="?android:attr/progressBarStyleHorizontal"
|
||||||
android:progressBackgroundTint="?attr/colorPrimary"
|
|
||||||
android:max="100"
|
|
||||||
android:layout_gravity="end|center_vertical"
|
|
||||||
android:progress="0"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="20dp"
|
||||||
|
android:layout_gravity="end|center_vertical"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
|
android:indeterminate="false"
|
||||||
|
android:max="100"
|
||||||
|
android:progress="0"
|
||||||
|
android:progressBackgroundTint="?attr/colorPrimary"
|
||||||
android:visibility="visible"
|
android:visibility="visible"
|
||||||
|
tools:progress="50"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/result_resume_series_progress_text"
|
android:id="@+id/result_resume_series_progress_text"
|
||||||
android:layout_gravity="center"
|
|
||||||
android:paddingStart="10dp"
|
|
||||||
android:gravity="center"
|
|
||||||
tools:text="69m\nremaining"
|
|
||||||
android:layout_weight="0"
|
|
||||||
android:textColor="?attr/grayTextColor"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
tools:ignore="RtlSymmetry" />
|
android:layout_gravity="center"
|
||||||
|
android:layout_weight="0"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingStart="10dp"
|
||||||
|
android:textColor="?attr/grayTextColor"
|
||||||
|
tools:ignore="RtlSymmetry"
|
||||||
|
tools:text="69m\nremaining" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -732,86 +736,85 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_marginBottom="10dp"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="10dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
tools:visibility="visible"
|
|
||||||
tools:text="Season 1"
|
|
||||||
android:nextFocusUp="@id/result_descript"
|
|
||||||
android:nextFocusRight="@id/result_episode_select"
|
|
||||||
android:nextFocusLeft="@id/result_episode_select"
|
|
||||||
android:nextFocusDown="@id/result_episodes"
|
|
||||||
|
|
||||||
android:id="@+id/result_season_button"
|
android:id="@+id/result_season_button"
|
||||||
android:visibility="gone"
|
style="@style/MultiSelectButton"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginStart="0dp"
|
android:layout_marginStart="0dp"
|
||||||
style="@style/MultiSelectButton" />
|
android:nextFocusLeft="@id/result_episode_select"
|
||||||
|
android:nextFocusRight="@id/result_episode_select"
|
||||||
|
android:nextFocusUp="@id/result_descript"
|
||||||
|
android:nextFocusDown="@id/result_episodes"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:text="Season 1"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
tools:visibility="visible"
|
|
||||||
tools:text="50-100"
|
|
||||||
|
|
||||||
android:nextFocusUp="@id/result_descript"
|
|
||||||
android:nextFocusRight="@id/result_season_button"
|
|
||||||
android:nextFocusLeft="@id/result_season_button"
|
|
||||||
android:nextFocusDown="@id/result_episodes"
|
|
||||||
|
|
||||||
android:id="@+id/result_episode_select"
|
android:id="@+id/result_episode_select"
|
||||||
android:visibility="gone"
|
style="@style/MultiSelectButton"
|
||||||
|
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginStart="0dp"
|
android:layout_marginStart="0dp"
|
||||||
style="@style/MultiSelectButton" />
|
android:nextFocusLeft="@id/result_season_button"
|
||||||
|
android:nextFocusRight="@id/result_season_button"
|
||||||
<com.google.android.material.button.MaterialButton
|
|
||||||
tools:visibility="visible"
|
|
||||||
tools:text="Dubbed"
|
|
||||||
|
|
||||||
android:nextFocusUp="@id/result_descript"
|
android:nextFocusUp="@id/result_descript"
|
||||||
android:nextFocusRight="@id/result_season_button"
|
|
||||||
android:nextFocusLeft="@id/result_season_button"
|
|
||||||
android:nextFocusDown="@id/result_episodes"
|
android:nextFocusDown="@id/result_episodes"
|
||||||
|
|
||||||
android:id="@+id/result_dub_select"
|
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
|
tools:text="50-100"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/result_dub_select"
|
||||||
|
style="@style/MultiSelectButton"
|
||||||
|
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginStart="0dp"
|
android:layout_marginStart="0dp"
|
||||||
style="@style/MultiSelectButton" />
|
android:nextFocusLeft="@id/result_season_button"
|
||||||
|
android:nextFocusRight="@id/result_season_button"
|
||||||
|
|
||||||
|
android:nextFocusUp="@id/result_descript"
|
||||||
|
android:nextFocusDown="@id/result_episodes"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:text="Dubbed"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
android:id="@+id/result_episodes_text"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:id="@+id/result_episodes_text"
|
android:layout_gravity="center_vertical"
|
||||||
tools:text="8 Episodes"
|
|
||||||
android:textSize="17sp"
|
|
||||||
android:paddingTop="10dp"
|
android:paddingTop="10dp"
|
||||||
android:paddingBottom="10dp"
|
android:paddingBottom="10dp"
|
||||||
android:layout_gravity="center_vertical"
|
android:textColor="?attr/textColor"
|
||||||
|
android:textSize="17sp"
|
||||||
android:textStyle="normal"
|
android:textStyle="normal"
|
||||||
android:textColor="?attr/textColor" />
|
tools:text="8 Episodes" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<com.facebook.shimmer.ShimmerFrameLayout
|
<com.facebook.shimmer.ShimmerFrameLayout
|
||||||
tools:visibility="visible"
|
|
||||||
app:shimmer_base_alpha="0.2"
|
|
||||||
app:shimmer_highlight_alpha="0.3"
|
|
||||||
app:shimmer_duration="@integer/loading_time"
|
|
||||||
app:shimmer_auto_start="true"
|
|
||||||
android:id="@+id/result_episode_loading"
|
android:id="@+id/result_episode_loading"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginTop="15dp"
|
android:layout_marginTop="15dp"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical"
|
||||||
|
app:shimmer_auto_start="true"
|
||||||
|
app:shimmer_base_alpha="0.2"
|
||||||
|
app:shimmer_duration="@integer/loading_time"
|
||||||
|
app:shimmer_highlight_alpha="0.3"
|
||||||
|
tools:visibility="visible">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
<include layout="@layout/loading_episode" />
|
<include layout="@layout/loading_episode" />
|
||||||
|
|
||||||
|
@ -831,14 +834,14 @@
|
||||||
android:layout_height="50dp" />-->
|
android:layout_height="50dp" />-->
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:descendantFocusability="afterDescendants"
|
|
||||||
android:id="@+id/result_episodes"
|
android:id="@+id/result_episodes"
|
||||||
android:clipToPadding="false"
|
|
||||||
android:layout_marginTop="0dp"
|
|
||||||
android:paddingBottom="100dp"
|
|
||||||
tools:listitem="@layout/result_episode"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="0dp"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:descendantFocusability="afterDescendants"
|
||||||
|
android:paddingBottom="100dp"
|
||||||
|
tools:listitem="@layout/result_episode" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -1,28 +1,28 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingLeft="2dp"
|
|
||||||
android:paddingRight="2dp"
|
|
||||||
android:paddingTop="-10dp"
|
|
||||||
android:layout_marginTop="-4dp"
|
android:layout_marginTop="-4dp"
|
||||||
android:layout_marginBottom="-4dp">
|
android:layout_marginBottom="-4dp"
|
||||||
|
android:paddingLeft="2dp"
|
||||||
|
android:paddingTop="-10dp"
|
||||||
|
android:paddingRight="2dp">
|
||||||
<!--app:strokeColor="@color/colorAccent"-->
|
<!--app:strokeColor="@color/colorAccent"-->
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
android:minHeight="0dp"
|
android:id="@+id/result_tag_card"
|
||||||
android:minWidth="0dp"
|
style="@style/Tag"
|
||||||
android:layout_height="37dp"
|
|
||||||
android:textAllCaps="false"
|
|
||||||
android:textSize="12sp"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
app:cornerRadius="100dp"
|
android:layout_height="37dp"
|
||||||
tools:text="Test"
|
android:minWidth="0dp"
|
||||||
|
android:minHeight="0dp"
|
||||||
|
android:textAllCaps="false"
|
||||||
android:textColor="?attr/textColor"
|
android:textColor="?attr/textColor"
|
||||||
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
|
android:textSize="12sp"
|
||||||
android:id="@+id/result_tag_card">
|
app:cornerRadius="100dp"
|
||||||
|
tools:text="Test">
|
||||||
|
|
||||||
</com.google.android.material.button.MaterialButton>
|
</com.google.android.material.button.MaterialButton>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
|
@ -186,8 +186,7 @@
|
||||||
<item name="android:windowBackground">?attr/primaryBlackBackground</item>
|
<item name="android:windowBackground">?attr/primaryBlackBackground</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="AppSearchViewStyle"
|
<style name="AppSearchViewStyle" parent="Theme.MaterialComponents.NoActionBar">
|
||||||
parent="Theme.MaterialComponents.NoActionBar">
|
|
||||||
<item name="android:searchIcon">@drawable/search_icon</item>
|
<item name="android:searchIcon">@drawable/search_icon</item>
|
||||||
<item name="android:queryHint">@string/search_hint</item>
|
<item name="android:queryHint">@string/search_hint</item>
|
||||||
<item name="android:background">@color/transparent</item>
|
<item name="android:background">@color/transparent</item>
|
||||||
|
@ -212,8 +211,7 @@
|
||||||
<item name="behavior_peekHeight">512dp</item>
|
<item name="behavior_peekHeight">512dp</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="PreferenceTheme" parent="@style/AppTheme">
|
<style name="PreferenceTheme" parent="@style/AppTheme"></style>
|
||||||
</style>
|
|
||||||
|
|
||||||
<style name="Theme.AlertDialog" parent="ThemeOverlay.MaterialComponents.Dialog.Alert">
|
<style name="Theme.AlertDialog" parent="ThemeOverlay.MaterialComponents.Dialog.Alert">
|
||||||
<item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
|
<item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
|
||||||
|
@ -229,6 +227,7 @@
|
||||||
<style name="AppButtonStyle" parent="android:Widget.Holo.Button">
|
<style name="AppButtonStyle" parent="android:Widget.Holo.Button">
|
||||||
<item name="android:fontFamily">@font/google_sans</item>
|
<item name="android:fontFamily">@font/google_sans</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="AppEditStyle" parent="android:Widget.EditText">
|
<style name="AppEditStyle" parent="android:Widget.EditText">
|
||||||
<item name="android:fontFamily">@font/google_sans</item>
|
<item name="android:fontFamily">@font/google_sans</item>
|
||||||
</style>
|
</style>
|
||||||
|
@ -262,6 +261,7 @@
|
||||||
<item name="tabMinWidth">75dp</item>
|
<item name="tabMinWidth">75dp</item>
|
||||||
<item name="tabMode">scrollable</item>-->
|
<item name="tabMode">scrollable</item>-->
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="AlertDialogCustom" parent="Theme.AppCompat.Dialog.Alert">
|
<style name="AlertDialogCustom" parent="Theme.AppCompat.Dialog.Alert">
|
||||||
<item name="android:windowFullscreen">true</item>
|
<item name="android:windowFullscreen">true</item>
|
||||||
<item name="android:textColor">?attr/textColor</item>
|
<item name="android:textColor">?attr/textColor</item>
|
||||||
|
@ -278,9 +278,11 @@
|
||||||
<item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
|
<item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
|
||||||
<item name="android:windowBackground">@drawable/dialog__window_background</item>
|
<item name="android:windowBackground">@drawable/dialog__window_background</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="AlertDialogCustomTransparent" parent="Theme.AppCompat.Dialog.Alert">
|
<style name="AlertDialogCustomTransparent" parent="Theme.AppCompat.Dialog.Alert">
|
||||||
<item name="android:windowBackground">@color/transparent</item>
|
<item name="android:windowBackground">@color/transparent</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="AlertDialogCustomBlack" parent="Theme.AppCompat.Dialog.Alert">
|
<style name="AlertDialogCustomBlack" parent="Theme.AppCompat.Dialog.Alert">
|
||||||
<item name="android:windowBackground">?attr/primaryBlackBackground</item>
|
<item name="android:windowBackground">?attr/primaryBlackBackground</item>
|
||||||
<item name="android:layout_width">fill_parent</item>
|
<item name="android:layout_width">fill_parent</item>
|
||||||
|
@ -451,6 +453,10 @@
|
||||||
<item name="strokeColor">@color/toggle_button_outline</item>
|
<item name="strokeColor">@color/toggle_button_outline</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="Tag" parent="Widget.MaterialComponents.Button.OutlinedButton">
|
||||||
|
<item name="strokeColor">@color/tag_stroke_color</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="VideoButtonTV">
|
<style name="VideoButtonTV">
|
||||||
<item name="android:stateListAnimator">@null</item>
|
<item name="android:stateListAnimator">@null</item>
|
||||||
<item name="strokeColor">@color/transparent</item>
|
<item name="strokeColor">@color/transparent</item>
|
||||||
|
@ -495,26 +501,34 @@
|
||||||
<item name="castPlayButtonDrawable">@drawable/ic_baseline_play_arrow_24</item>
|
<item name="castPlayButtonDrawable">@drawable/ic_baseline_play_arrow_24</item>
|
||||||
<item name="castPauseButtonDrawable">@drawable/netflix_pause</item>
|
<item name="castPauseButtonDrawable">@drawable/netflix_pause</item>
|
||||||
<item name="castStopButtonDrawable">@drawable/cast_ic_expanded_controller_stop</item>
|
<item name="castStopButtonDrawable">@drawable/cast_ic_expanded_controller_stop</item>
|
||||||
<item name="castSkipPreviousButtonDrawable">@drawable/cast_ic_expanded_controller_skip_previous</item>
|
<item name="castSkipPreviousButtonDrawable">
|
||||||
<item name="castSkipNextButtonDrawable">@drawable/cast_ic_expanded_controller_skip_next</item>
|
@drawable/cast_ic_expanded_controller_skip_previous
|
||||||
|
</item>
|
||||||
|
<item name="castSkipNextButtonDrawable">@drawable/cast_ic_expanded_controller_skip_next
|
||||||
|
</item>
|
||||||
<item name="castRewind30ButtonDrawable">@drawable/go_back_30</item>
|
<item name="castRewind30ButtonDrawable">@drawable/go_back_30</item>
|
||||||
<item name="castForward30ButtonDrawable">@drawable/go_forward_30</item>
|
<item name="castForward30ButtonDrawable">@drawable/go_forward_30</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="CustomCastMiniController" parent="CastMiniController">
|
<style name="CustomCastMiniController" parent="CastMiniController">
|
||||||
<item name="castMiniControllerLoadingIndicatorColor">?attr/colorPrimary</item>
|
<item name="castMiniControllerLoadingIndicatorColor">?attr/colorPrimary</item>
|
||||||
<item name="castShowImageThumbnail">true</item>
|
<item name="castShowImageThumbnail">true</item>
|
||||||
|
|
||||||
<item name="castTitleTextAppearance">@style/TextAppearance.AppCompat.Subhead</item>
|
<item name="castTitleTextAppearance">@style/TextAppearance.AppCompat.Subhead</item>
|
||||||
<item name="castSubtitleTextAppearance">@style/TextAppearance.AppCompat.Caption</item>
|
<item name="castSubtitleTextAppearance">@style/TextAppearance.AppCompat.Caption</item>
|
||||||
<item name="castBackground">@color/transparent</item> <!--CHECK bitDarkerGrayBackground darkBackground-->
|
<item name="castBackground">@color/transparent
|
||||||
|
</item> <!--CHECK bitDarkerGrayBackground darkBackground-->
|
||||||
<item name="castProgressBarColor">?attr/colorPrimary</item>
|
<item name="castProgressBarColor">?attr/colorPrimary</item>
|
||||||
<item name="castStopButtonDrawable">@drawable/cast_ic_mini_controller_stop</item>'
|
<item name="castStopButtonDrawable">@drawable/cast_ic_mini_controller_stop</item>'
|
||||||
<item name="castLargeStopButtonDrawable">@drawable/cast_ic_mini_controller_stop_large</item>
|
<item name="castLargeStopButtonDrawable">@drawable/cast_ic_mini_controller_stop_large</item>
|
||||||
<item name="castSkipPreviousButtonDrawable">@drawable/cast_ic_mini_controller_skip_prev</item>
|
<item name="castSkipPreviousButtonDrawable">@drawable/cast_ic_mini_controller_skip_prev
|
||||||
|
</item>
|
||||||
<item name="castSkipNextButtonDrawable">@drawable/cast_ic_mini_controller_skip_next</item>
|
<item name="castSkipNextButtonDrawable">@drawable/cast_ic_mini_controller_skip_next</item>
|
||||||
<item name="castRewind30ButtonDrawable">@drawable/go_back_30</item>
|
<item name="castRewind30ButtonDrawable">@drawable/go_back_30</item>
|
||||||
<item name="castForward30ButtonDrawable">@drawable/go_forward_30</item>
|
<item name="castForward30ButtonDrawable">@drawable/go_forward_30</item>
|
||||||
<item name="castMuteToggleButtonDrawable">@drawable/cast_ic_mini_controller_mute</item>
|
<item name="castMuteToggleButtonDrawable">@drawable/cast_ic_mini_controller_mute</item>
|
||||||
<item name="castClosedCaptionsButtonDrawable">@drawable/cast_ic_mini_controller_closed_caption</item>
|
<item name="castClosedCaptionsButtonDrawable">
|
||||||
|
@drawable/cast_ic_mini_controller_closed_caption
|
||||||
|
</item>
|
||||||
</style>
|
</style>
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in a new issue