diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 7650bd096..f9d1d3cee 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -442,21 +442,13 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public void onSeeking(int time) { - if (!mPlayers.isVod()) return; + if (!mPlayers.isVod() || !mChannel.isOnly()) return; mBinding.widget.exoDuration.setText(mControl.exoDuration.getText()); mBinding.widget.exoPosition.setText(mPlayers.getTime(time)); mBinding.widget.action.setImageResource(time > 0 ? R.drawable.ic_forward : R.drawable.ic_rewind); mBinding.widget.center.setVisibility(View.VISIBLE); } - @Override - public void onSeekTo(int time) { - if (!mPlayers.isVod()) return; - mPlayers.seekTo(time); - mKeyDown.resetTime(); - App.post(mR2, 500); - } - @Override public void onKeyUp() { int position = mGroup.getPosition() - 1; @@ -474,15 +466,19 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick } @Override - public void onKeyLeft() { - if (mChannel.getUrls().size() == 1) return; - prevLine(true); + public void onKeyLeft(int time) { + if (isVisible(mBinding.widget.center)) App.post(mR2, 500); + if (mChannel.isOnly() && mPlayers.isVod()) mPlayers.seekTo(time); + else if (!mChannel.isOnly()) prevLine(true); + mKeyDown.resetTime(); } @Override - public void onKeyRight() { - if (mChannel.getUrls().size() == 1) return; - nextLine(true); + public void onKeyRight(int time) { + if (isVisible(mBinding.widget.center)) App.post(mR2, 500); + if (mChannel.isOnly() && mPlayers.isVod()) mPlayers.seekTo(time); + else if (!mChannel.isOnly()) nextLine(true); + mKeyDown.resetTime(); } @Override diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownLive.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownLive.java index ad2c918df..738a13939 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownLive.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownLive.java @@ -46,11 +46,9 @@ public class CustomKeyDownLive { } else if (event.getAction() == KeyEvent.ACTION_DOWN && Utils.isDownKey(event)) { listener.onKeyDown(); } else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isLeftKey(event)) { - listener.onKeyLeft(); - listener.onSeekTo(holdTime); + listener.onKeyLeft(holdTime); } else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isRightKey(event)) { - listener.onKeyRight(); - listener.onSeekTo(holdTime); + listener.onKeyRight(holdTime); } else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isDigitKey(event)) { onKeyDown(event.getKeyCode()); } else if (Utils.isEnterKey(event)) { @@ -97,15 +95,13 @@ public class CustomKeyDownLive { void onSeeking(int time); - void onSeekTo(int time); - void onKeyUp(); void onKeyDown(); - void onKeyLeft(); + void onKeyLeft(int time); - void onKeyRight(); + void onKeyRight(int time); void onKeyCenter(); diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java index e026fd771..065fac1fe 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java @@ -153,7 +153,7 @@ public class Channel { } public int getLineVisible() { - return getUrls().size() == 1 ? View.GONE : View.VISIBLE; + return isOnly() ? View.GONE : View.VISIBLE; } public void loadLogo(ImageView view) { @@ -172,12 +172,16 @@ public class Channel { setLine(getLine() > 0 ? getLine() - 1 : getUrls().size() - 1); } + public boolean isOnly() { + return getUrls().size() == 1; + } + public boolean isLastLine() { return getLine() == getUrls().size() - 1; } public String getLineText() { - return getUrls().size() == 1 ? "" : ResUtil.getString(R.string.live_line, getLine() + 1); + return isOnly() ? "" : ResUtil.getString(R.string.live_line, getLine() + 1); } public Channel setNumber(int number) {