Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.appcompat.app.AlertDialog
import androidx.core.net.toUri
import androidx.core.view.doOnLayout
import androidx.core.view.isGone
import androidx.core.view.isInvisible
import androidx.core.view.isVisible
Expand Down Expand Up @@ -771,9 +772,12 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(
}
}
super.onScrolled(recyclerView, dx, dy)
updateTvRailFocus()
}
})

homeMasterRecycler.doOnLayout { updateTvRailFocus() }

}

//Load value for toggling Random button. Hide at startup
Expand Down Expand Up @@ -949,6 +953,24 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(
}*/
}

private fun updateTvRailFocus() {
if (!isLayout(TV or EMULATOR)) return
val target =
if (binding?.homeMasterRecycler?.computeVerticalScrollOffset() == 0) R.id.home_change_api
else View.NO_ID
val rail = activity?.findViewById<View>(R.id.nav_rail_view) ?: return
rail.nextFocusRightId = target
for (focusView in arrayOf(
R.id.navigation_downloads,
R.id.navigation_home,
R.id.navigation_search,
R.id.navigation_library,
R.id.navigation_settings,
)) {
rail.findViewById<View>(focusView)?.nextFocusRightId = target
}
}

private fun handleTvBackPress(helper: BackPressedCallbackHelper.CallbackHelper) {
// Only apply custom behavior on TV interface
if (!isLayout(TV)) {
Expand Down