I am developing an app using leanback architecture where a certain custom view is not focused using the dpad of remote.
The onFocus() of the custom view doesn't get called in FireStick version 3(Android API 28) . The same code gets triggered on lower versions( < Android API 28)
The custom view is a ListRow for showing genres of movies which is being fed data by GenrePresenter.
genrePresenter = new GenrePresenter(new GenrePresenter.viewListener() {
@Override
public void onClick(View view, String selected) {
((HomeFYCActivity) getActivity()).showAdapter(viewModel.genreList, selected);
}
//THIS DOES NOT GET TRIGGERED ON API 28
@Override
public void onFocus(View view, Boolean hasFocus) {
// NEED TO SET FOCUS HERE
}
}, "ALL GENRES");
header = new HeaderItem("NOW PLAYING");
genreRow = new ListRow(header, genreRowAdapter);
But instead the HeaderItem gets the focus.
Same code works on < Android API 28
The remote trackpad is used to select the other views
EDIT genrePresenter listener code
public interface viewListener {
void onClick(View view, String selected);
void onFocus(View view, Boolean hasFocus);
}
And how i invoke the listener
((ShowCard) viewHolder).tvGenre.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
viewListener.onFocus(v, hasFocus);
}
});