[leanback] add loop control

pull/123/head
FongMi 3 years ago
parent 28f398ee5e
commit 6dede9c66e
  1. 31
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 6
      app/src/leanback/res/layout/adapter_config.xml
  3. 1
      app/src/leanback/res/layout/adapter_site.xml
  4. 2
      app/src/leanback/res/layout/dialog_history.xml
  5. 12
      app/src/leanback/res/layout/view_control_vod.xml

@ -79,15 +79,15 @@ import tv.danmaku.ijk.media.player.ui.IjkVideoView;
public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Listener, TrackDialog.Listener, ArrayPresenter.OnClickListener, Clock.Callback {
private ActivityDetailBinding mBinding;
private ViewGroup.LayoutParams mFrameParams;
private ArrayObjectAdapter mFlagAdapter;
private ArrayObjectAdapter mArrayAdapter;
private EpisodePresenter mEpisodePresenter;
private ArrayObjectAdapter mEpisodeAdapter;
private ArrayObjectAdapter mSearchAdapter;
private ArrayObjectAdapter mArrayAdapter;
private ArrayObjectAdapter mParseAdapter;
private ArrayObjectAdapter mFlagAdapter;
private ArrayObjectAdapter mPartAdapter;
private ArrayObjectAdapter mSearchAdapter;
private EpisodePresenter mEpisodePresenter;
private ActivityDetailBinding mBinding;
private PartPresenter mPartPresenter;
private CustomKeyDownVod mKeyDown;
private ExecutorService mExecutor;
@ -230,6 +230,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mBinding.control.text.setOnClickListener(this::onTrack);
mBinding.control.audio.setOnClickListener(this::onTrack);
mBinding.control.video.setOnClickListener(this::onTrack);
mBinding.control.loop.setOnClickListener(view -> onLoop());
mBinding.control.next.setOnClickListener(view -> checkNext());
mBinding.control.prev.setOnClickListener(view -> checkPrev());
mBinding.control.scale.setOnClickListener(view -> onScale());
@ -514,6 +515,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
if (!isFullscreen()) enterFullscreen();
}
private void onLoop() {
mBinding.control.loop.setActivated(!mBinding.control.loop.isActivated());
}
private void checkNext() {
if (mHistory.isRevPlay()) onPrev();
else onNext();
@ -567,10 +572,14 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
private void onReset() {
onReset(isReplay());
}
private void onReset(boolean replay) {
Clock.get().setCallback(null);
if (mFlagAdapter.size() == 0) return;
if (mEpisodeAdapter.size() == 0) return;
getPlayer(getFlag(), getEpisode(), isReplay());
getPlayer(getFlag(), getEpisode(), replay);
}
private boolean onResetToggle() {
@ -800,7 +809,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mBinding.widget.size.setText(mPlayers.getSizeText());
break;
case Player.STATE_ENDED:
checkNext();
checkEnded();
break;
}
}
@ -811,6 +820,14 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
setInitTrack(true);
}
private void checkEnded() {
if (mBinding.control.loop.isActivated()) {
onReset(true);
} else {
checkNext();
}
}
private void setTrackVisible(boolean visible) {
mBinding.control.text.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_TEXT) ? View.VISIBLE : View.GONE);
mBinding.control.audio.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_AUDIO) ? View.VISIBLE : View.GONE);

@ -8,7 +8,7 @@
<TextView
android:id="@+id/text"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="40dp"
android:layout_weight="1"
android:background="@drawable/selector_text"
android:ellipsize="middle"
@ -22,8 +22,8 @@
<ImageView
android:id="@+id/delete"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginStart="12dp"
android:background="@drawable/selector_text"
android:focusable="true"

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"

@ -6,4 +6,4 @@
android:layout_height="wrap_content"
android:padding="16dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:maxHeight="354dp" />
app:maxHeight="352dp" />

@ -117,6 +117,18 @@
android:textSize="14sp"
tools:text="預設" />
<TextView
android:id="@+id/loop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
android:background="@drawable/selector_text"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="@string/play_loop"
android:textColor="@color/text"
android:textSize="14sp" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"

Loading…
Cancel
Save