Rotational focus for main buttons

This commit is contained in:
KingLucius 2024-02-28 15:41:53 +02:00
parent 029acb67a4
commit 02e75f584d

View file

@ -8,8 +8,10 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.animation.DecelerateInterpolator import android.view.animation.DecelerateInterpolator
import android.widget.LinearLayout
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.core.view.children
import androidx.core.view.isGone import androidx.core.view.isGone
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.widget.NestedScrollView import androidx.core.widget.NestedScrollView
@ -134,6 +136,14 @@ class ResultFragmentTv : Fragment() {
binding?.resultPlaySeriesButton?.requestFocus() binding?.resultPlaySeriesButton?.requestFocus()
binding?.resultResumeSeriesButton?.requestFocus() binding?.resultResumeSeriesButton?.requestFocus()
} }
private fun setFocusRotation(id: Int)
{
binding?.apply {
(resultPlayParent.children.filter { view ->
view.isVisible
}.toList().lastOrNull() as LinearLayout).getChildAt(0)?.nextFocusRightId = id
}
}
private fun setRecommendations(rec: List<SearchResponse>?, validApiName: String?) { private fun setRecommendations(rec: List<SearchResponse>?, validApiName: String?) {
currentRecommendations = rec ?: emptyList() currentRecommendations = rec ?: emptyList()
@ -474,6 +484,7 @@ class ResultFragmentTv : Fragment() {
resultResumeSeries.isVisible = true resultResumeSeries.isVisible = true
focusPlayButton() focusPlayButton()
if (resume.isMovie) setFocusRotation(R.id.result_resume_series_button)
resultResumeSeriesText.text = resultResumeSeriesText.text =
if (resume.isMovie) context?.getString(R.string.resume) else "${getString(R.string.season_short)}${resume.result.season}:${getString(R.string.episode_short)}${resume.result.episode}" if (resume.isMovie) context?.getString(R.string.resume) else "${getString(R.string.season_short)}${resume.result.season}:${getString(R.string.episode_short)}${resume.result.episode}"
@ -643,6 +654,7 @@ class ResultFragmentTv : Fragment() {
} }
//focusPlayButton() //focusPlayButton()
resultPlayMovieButton.requestFocus() resultPlayMovieButton.requestFocus()
setFocusRotation(R.id.result_play_movie_button)
} }
} }
//focusPlayButton() //focusPlayButton()