pull/102/head
FongMi 3 years ago
parent 7461b9348e
commit 4acbd5cb1c
  1. 32
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 16
      app/src/leanback/java/com/fongmi/android/tv/ui/presenter/GroupPresenter.java
  3. 6
      app/src/main/res/values-zh-rCN/strings.xml
  4. 6
      app/src/main/res/values-zh-rTW/strings.xml
  5. 6
      app/src/main/res/values/strings.xml

@ -51,7 +51,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class DetailActivity extends BaseActivity implements CustomKeyDown.Listener {
public class DetailActivity extends BaseActivity implements CustomKeyDown.Listener, GroupPresenter.OnClickListener {
private ActivityDetailBinding mBinding;
private ViewControllerBottomBinding mControl;
@ -149,7 +149,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
mBinding.group.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() {
@Override
public void onChildViewHolderSelected(@NonNull RecyclerView parent, @Nullable RecyclerView.ViewHolder child, int position, int subposition) {
if (mEpisodeAdapter.size() > 20 && position > 0) mBinding.episode.setSelectedPosition(--position * 20);
if (mEpisodeAdapter.size() > 20 && position > 1) mBinding.episode.setSelectedPosition((position - 2) * 20);
}
});
mBinding.video.setOnClickListener(view -> enterFullscreen());
@ -164,7 +164,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
mBinding.episode.setAdapter(new ItemBridgeAdapter(mEpisodeAdapter = new ArrayObjectAdapter(new EpisodePresenter(this::setEpisodeActivated))));
mBinding.group.setHorizontalSpacing(ResUtil.dp2px(8));
mBinding.group.setRowHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
mBinding.group.setAdapter(new ItemBridgeAdapter(mGroupAdapter = new ArrayObjectAdapter(new GroupPresenter(this::setReverse))));
mBinding.group.setAdapter(new ItemBridgeAdapter(mGroupAdapter = new ArrayObjectAdapter(new GroupPresenter(this))));
mControl.parse.setHorizontalSpacing(ResUtil.dp2px(8));
mControl.parse.setRowHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
mControl.parse.setAdapter(new ItemBridgeAdapter(mParseAdapter = new ArrayObjectAdapter(new ParsePresenter(this::setParseActivated))));
@ -258,12 +258,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
getPlayer(false);
}
private void setReverse() {
mReverse = !mReverse;
Collections.reverse(getVodFlag().getEpisodes());
mEpisodeAdapter.setItems(getVodFlag().getEpisodes(), null);
}
private void setParseActivated(Parse item) {
ApiConfig.get().setParse(item);
mBinding.error.getRoot().setVisibility(View.GONE);
@ -275,13 +269,27 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
private void setGroup(int size) {
List<String> items = new ArrayList<>();
items.add(getString(R.string.detail_reverse));
items.add(getString(R.string.play_reverse));
items.add(getString(R.string.play_forward));
int itemSize = (int) Math.ceil(size / 20.0f);
for (int i = 0; i < itemSize; i++) items.add(String.valueOf(i * 20 + 1));
mBinding.group.setVisibility(itemSize > 1 ? View.VISIBLE : View.GONE);
if (itemSize > 1) for (int i = 0; i < itemSize; i++) items.add(String.valueOf(i * 20 + 1));
mBinding.group.setVisibility(size > 1 ? View.VISIBLE : View.GONE);
mGroupAdapter.setItems(items, null);
}
@Override
public void onRevClick() {
Collections.reverse(getVodFlag().getEpisodes());
mEpisodeAdapter.setItems(getVodFlag().getEpisodes(), null);
}
@Override
public void onDirClick(TextView view) {
mReverse = !mReverse;
view.setText(mReverse ? R.string.play_backward : R.string.play_forward);
Notify.show(mReverse ? R.string.play_backward_hint : R.string.play_forward_hint);
}
private boolean shouldEnterFullscreen(Vod.Flag.Episode item) {
boolean enter = !mFullscreen && item.isActivated() && !Players.get().isIdle();
if (enter) enterFullscreen();

@ -2,6 +2,7 @@ package com.fongmi.android.tv.ui.presenter;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.leanback.widget.Presenter;
@ -13,13 +14,22 @@ import com.fongmi.android.tv.utils.ResUtil;
public class GroupPresenter extends Presenter {
private final OnClickListener mListener;
private final String backward;
private final String forward;
private final String reverse;
public GroupPresenter(OnClickListener listener) {
this.mListener = listener;
this.backward = ResUtil.getString(R.string.play_backward);
this.forward = ResUtil.getString(R.string.play_forward);
this.reverse = ResUtil.getString(R.string.play_reverse);
}
public interface OnClickListener {
void onItemClick();
void onDirClick(TextView view);
void onRevClick();
}
@Override
@ -32,8 +42,8 @@ public class GroupPresenter extends Presenter {
ViewHolder holder = (ViewHolder) viewHolder;
String text = object.toString();
holder.binding.text.setText(text);
boolean reverse = text.equals(ResUtil.getString(R.string.detail_reverse));
if (reverse) setOnClickListener(holder, view -> mListener.onItemClick());
if (text.equals(reverse)) setOnClickListener(holder, view -> mListener.onRevClick());
if (text.equals(backward) || text.equals(forward)) setOnClickListener(holder, view -> mListener.onDirClick(holder.binding.text));
}
@Override

@ -18,7 +18,6 @@
<string name="detail_director">导演:<xliff:g name="name">%s</xliff:g></string>
<string name="detail_actor">演员:<xliff:g name="name">%s</xliff:g></string>
<string name="detail_content">简介:<xliff:g name="name">%s</xliff:g></string>
<string name="detail_reverse">倒序</string>
<!-- Play -->
<string name="play">播放</string>
@ -28,6 +27,11 @@
<string name="play_replay">重播</string>
<string name="play_reset">重置</string>
<string name="play_oped">片头片尾</string>
<string name="play_reverse">倒序</string>
<string name="play_forward"></string>
<string name="play_backward"></string>
<string name="play_forward_hint">已切换正序播放</string>
<string name="play_backward_hint">已切换倒序播放</string>
<!-- Parse -->
<string name="parse">解析</string>

@ -18,7 +18,6 @@
<string name="detail_director">導演:<xliff:g name="name">%s</xliff:g></string>
<string name="detail_actor">演員:<xliff:g name="name">%s</xliff:g></string>
<string name="detail_content">簡介:<xliff:g name="name">%s</xliff:g></string>
<string name="detail_reverse">倒序</string>
<!-- Play -->
<string name="play">播放</string>
@ -28,6 +27,11 @@
<string name="play_replay">重播</string>
<string name="play_reset">重置</string>
<string name="play_oped">片頭片尾</string>
<string name="play_reverse">倒序</string>
<string name="play_forward"></string>
<string name="play_backward"></string>
<string name="play_forward_hint">已切換正序播放</string>
<string name="play_backward_hint">已切換倒序播放</string>
<!-- Parse -->
<string name="parse">解析</string>

@ -18,7 +18,6 @@
<string name="detail_director">Director: <xliff:g name="name">%s</xliff:g></string>
<string name="detail_actor">Actor: <xliff:g name="name">%s</xliff:g></string>
<string name="detail_content">Summary: <xliff:g name="name">%s</xliff:g></string>
<string name="detail_reverse">Reverse</string>
<!-- Play -->
<string name="play">Play</string>
@ -28,6 +27,11 @@
<string name="play_replay">Replay</string>
<string name="play_reset">Reset</string>
<string name="play_oped">OP&amp;ED</string>
<string name="play_reverse">Reverse</string>
<string name="play_forward"></string>
<string name="play_backward"></string>
<string name="play_forward_hint">Normal play switched</string>
<string name="play_backward_hint">Reverse play switched</string>
<!-- Parse -->
<string name="parse">Parse</string>

Loading…
Cancel
Save