Skip to content

Commit

Permalink
Fix focus bug
Browse files Browse the repository at this point in the history
  • Loading branch information
FongMi committed Aug 27, 2023
1 parent 50dd5b3 commit f3cc54f
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private ArrayObjectAdapter mPartAdapter;
private ActivityDetailBinding mBinding;
private QualityAdapter mQualityAdapter;
private FlagPresenter mFlagPresenter;
private PartPresenter mPartPresenter;
private CustomKeyDownVod mKeyDown;
private ExecutorService mExecutor;
Expand Down Expand Up @@ -320,7 +321,7 @@ public void onChildViewHolderSelected(@NonNull RecyclerView parent, @Nullable Re
private void setRecyclerView() {
mBinding.flag.setHorizontalSpacing(ResUtil.dp2px(8));
mBinding.flag.setRowHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
mBinding.flag.setAdapter(new ItemBridgeAdapter(mFlagAdapter = new ArrayObjectAdapter(new FlagPresenter(item -> setFlagActivated(item, false)))));
mBinding.flag.setAdapter(new ItemBridgeAdapter(mFlagAdapter = new ArrayObjectAdapter(mFlagPresenter = new FlagPresenter(item -> setFlagActivated(item, false)))));
mBinding.episode.setHorizontalSpacing(ResUtil.dp2px(8));
mBinding.episode.setRowHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
mBinding.episode.setAdapter(new ItemBridgeAdapter(mEpisodeAdapter = new ArrayObjectAdapter(mEpisodePresenter = new EpisodePresenter(this::setEpisodeActivated))));
Expand All @@ -342,36 +343,13 @@ private void setRecyclerView() {
mParseAdapter.setItems(ApiConfig.get().getParses(), null);
}

private void setPlayerView() {
getIjk().setPlayer(mPlayers.getPlayer());
mBinding.control.player.setText(mPlayers.getPlayerText());
getExo().setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE);
getIjk().setVisibility(mPlayers.isIjk() ? View.VISIBLE : View.GONE);
mBinding.control.reset.setText(ResUtil.getStringArray(R.array.select_reset)[Setting.getReset()]);
}

private void setDecodeView() {
mBinding.control.decode.setText(mPlayers.getDecodeText());
}

private void setVideoView() {
mPlayers.set(getExo(), getIjk());
getExo().getSubtitleView().setStyle(ExoUtil.getCaptionStyle());
getIjk().getSubtitleView().setStyle(ExoUtil.getCaptionStyle());
setSubtitle(16);
}

private void setSubtitle(int size) {
getExo().getSubtitleView().setFixedTextSize(Dimension.SP, size);
getIjk().getSubtitleView().setFixedTextSize(Dimension.SP, size);
}

private void setScale(int scale) {
getExo().setResizeMode(scale);
getIjk().setResizeMode(scale);
mBinding.control.scale.setText(ResUtil.getStringArray(R.array.select_scale)[scale]);
}

private void setViewModel() {
mViewModel = new ViewModelProvider(this).get(SiteViewModel.class);
mViewModel.result.observe(this, this::setDetail);
Expand All @@ -390,6 +368,29 @@ private void checkId() {
else getDetail();
}

private void setPlayerView() {
getIjk().setPlayer(mPlayers.getPlayer());
mBinding.control.player.setText(mPlayers.getPlayerText());
getExo().setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE);
getIjk().setVisibility(mPlayers.isIjk() ? View.VISIBLE : View.GONE);
mBinding.control.reset.setText(ResUtil.getStringArray(R.array.select_reset)[Setting.getReset()]);
}

private void setDecodeView() {
mBinding.control.decode.setText(mPlayers.getDecodeText());
}

private void setSubtitle(int size) {
getExo().getSubtitleView().setFixedTextSize(Dimension.SP, size);
getIjk().getSubtitleView().setFixedTextSize(Dimension.SP, size);
}

private void setScale(int scale) {
getExo().setResizeMode(scale);
getIjk().setResizeMode(scale);
mBinding.control.scale.setText(ResUtil.getStringArray(R.array.select_scale)[scale]);
}

private void getDetail() {
mViewModel.detailContent(getKey(), getId());
}
Expand Down Expand Up @@ -423,10 +424,12 @@ private void setPlayer(Result result) {
result.getUrl().set(mQualityAdapter.getPosition());
setUseParse(ApiConfig.hasParse() && ((result.getPlayUrl().isEmpty() && ApiConfig.get().getFlags().contains(result.getFlag())) || result.getJx() == 1));
mPlayers.start(result, isUseParse(), getSite().isChangeable() ? getSite().getTimeout() : -1);
mFlagPresenter.setNextFocusDown(result.getUrl().isOnly() ? R.id.episode : R.id.quality);
mEpisodePresenter.setNextFocusUp(result.getUrl().isOnly() ? R.id.flag : R.id.quality);
mBinding.quality.setVisibility(result.getUrl().isOnly() ? View.GONE : View.VISIBLE);
mBinding.control.parse.setVisibility(isUseParse() ? View.VISIBLE : View.GONE);
notifyItemChanged(mBinding.episode, mEpisodeAdapter);
notifyItemChanged(mBinding.flag, mFlagAdapter);
mQualityAdapter.addAll(result);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
public class FlagPresenter extends Presenter {

private final OnClickListener mListener;
private int nextFocusDown;

public FlagPresenter(OnClickListener listener) {
this.mListener = listener;
Expand All @@ -21,6 +22,10 @@ public interface OnClickListener {
void onItemClick(Flag item);
}

public void setNextFocusDown(int nextFocusDown) {
this.nextFocusDown = nextFocusDown;
}

@Override
public Presenter.ViewHolder onCreateViewHolder(ViewGroup parent) {
return new ViewHolder(AdapterFlagBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
Expand All @@ -32,6 +37,7 @@ public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object object) {
ViewHolder holder = (ViewHolder) viewHolder;
holder.binding.text.setText(item.getShow());
holder.binding.text.setActivated(item.isActivated());
holder.binding.text.setNextFocusDownId(nextFocusDown);
setOnClickListener(holder, view -> mListener.onItemClick(item));
}

Expand Down
1 change: 1 addition & 0 deletions app/src/leanback/res/layout/adapter_flag.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:nextFocusDown="@id/episode"
android:textColor="@color/text"
android:textSize="16sp"
tools:text="泥巴" />

0 comments on commit f3cc54f

Please sign in to comment.