[leanback] live support seek

pull/473/head
okjack 2 years ago
parent 2ca978d80b
commit eb5dbbbb65
  1. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java
  2. 6
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  3. 30
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  4. 6
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  5. 2
      app/src/leanback/res/layout/activity_home.xml
  6. 4
      app/src/leanback/res/layout/view_widget_cast.xml
  7. 2
      app/src/leanback/res/layout/view_widget_display.xml
  8. 2
      app/src/leanback/res/layout/view_widget_live.xml

@ -91,7 +91,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
@Override
protected void initView() {
bindService(new Intent(this, DLNARendererService.class), this, Context.BIND_AUTO_CREATE);
mClock = Clock.create(mBinding.widget.time);
mClock = Clock.create(mBinding.widget.clock);
mKeyDown = CustomKeyDownCast.create(this);
mPlayers = new Players().init(this);
mParser = new DIDLParser();

@ -109,7 +109,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
@Override
protected void initView() {
DLNARendererService.Companion.start(this, R.drawable.ic_logo);
mClock = Clock.create(mBinding.time).format("MM/dd HH:mm:ss");
mClock = Clock.create(mBinding.clock).format("MM/dd HH:mm:ss");
Updater.get().release().start(this);
Server.get().start();
Tbs.init();
@ -154,10 +154,10 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
mBinding.homeSiteLock.setVisibility(Setting.isHomeSiteLock() ? View.VISIBLE : View.GONE);
if (Setting.getHomeUI() == 0) {
mBinding.title.setTextSize(24);
mBinding.time.setTextSize(24);
mBinding.clock.setTextSize(24);
} else {
mBinding.title.setTextSize(20);
mBinding.time.setTextSize(20);
mBinding.clock.setTextSize(20);
}
}

@ -140,7 +140,7 @@ public class LiveActivity extends BaseActivity implements Clock.Callback, GroupP
@Override
protected void initView() {
mClock = Clock.create(Arrays.asList(mBinding.widget.time, mBinding.display.time));
mClock = Clock.create(Arrays.asList(mBinding.widget.clock, mBinding.display.clock));
mKeyDown = CustomKeyDownLive.create(this);
mPlayers = new Players().init(this);
mHides = new ArrayList<>();
@ -488,6 +488,7 @@ public class LiveActivity extends BaseActivity implements Clock.Callback, GroupP
private void showControl(View view) {
mBinding.control.getRoot().setVisibility(View.VISIBLE);
mBinding.widget.top.setVisibility(View.VISIBLE);
App.post(view::requestFocus, 25);
view.requestFocus();
setR1Callback();
hideInfo();
@ -503,7 +504,7 @@ public class LiveActivity extends BaseActivity implements Clock.Callback, GroupP
private void showDisplayInfo() {
boolean controlVisible = isVisible(mBinding.control.getRoot());
boolean visible = !controlVisible;
mBinding.display.time.setVisibility(Setting.isDisplayTime() && visible ? View.VISIBLE : View.GONE);
mBinding.display.clock.setVisibility(Setting.isDisplayTime() && visible ? View.VISIBLE : View.GONE);
mBinding.display.netspeed.setVisibility(Setting.isDisplaySpeed() && visible ? View.VISIBLE : View.GONE);
mBinding.display.duration.setVisibility(View.GONE);
}
@ -851,14 +852,14 @@ public class LiveActivity extends BaseActivity implements Clock.Callback, GroupP
}
private void prevLine() {
if (mChannel == null) return;
if (mChannel == null || mChannel.isOnly()) return;
mChannel.prevLine();
showInfo();
fetch();
}
private void nextLine(boolean show) {
if (mChannel == null) return;
if (mChannel == null || mChannel.isOnly()) return;
mChannel.nextLine();
if (show) showInfo();
else setInfo();
@ -867,6 +868,7 @@ public class LiveActivity extends BaseActivity implements Clock.Callback, GroupP
private void seekTo(int time) {
mPlayers.seekTo(time);
mKeyDown.resetTime();
showProgress();
hideCenter();
}
@ -936,7 +938,7 @@ public class LiveActivity extends BaseActivity implements Clock.Callback, GroupP
@Override
public void onSeeking(int time) {
if (!mPlayers.isVod() || !mChannel.isOnly()) return;
if (!mPlayers.isVod()) return;
mBinding.widget.exoDuration.setText(mPlayers.getDurationTime());
mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(time));
mBinding.widget.action.setImageResource(time > 0 ? R.drawable.ic_widget_forward : R.drawable.ic_widget_rewind);
@ -946,28 +948,26 @@ public class LiveActivity extends BaseActivity implements Clock.Callback, GroupP
@Override
public void onKeyUp() {
prevChannel();
if (!mPlayers.isVod()) prevChannel();
else showControl(mBinding.control.player);
}
@Override
public void onKeyDown() {
nextChannel();
if (!mPlayers.isVod()) nextChannel();
else showControl(mBinding.control.player);
}
@Override
public void onKeyLeft(int time) {
if (mChannel == null) return;
if (mChannel.isOnly() && mPlayers.isVod()) App.post(() -> seekTo(time), 250);
else if (!mChannel.isOnly()) prevLine();
mKeyDown.resetTime();
if (!mPlayers.isVod()) prevLine();
else App.post(() -> seekTo(time), 250);
}
@Override
public void onKeyRight(int time) {
if (mChannel == null) return;
if (mChannel.isOnly() && mPlayers.isVod()) App.post(() -> seekTo(time), 250);
else if (!mChannel.isOnly()) nextLine(true);
mKeyDown.resetTime();
if (!mPlayers.isVod()) nextLine(true);
else App.post(() -> seekTo(time), 250);
}
@Override

@ -319,7 +319,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
protected void initView() {
mKeyDown = CustomKeyDownVod.create(this, mBinding.video);
mFrameParams = mBinding.video.getLayoutParams();
mClock = Clock.create(mBinding.display.time);
mClock = Clock.create(mBinding.display.clock);
mDanmakuContext = DanmakuContext.create();
mPlayers = new Players().init(this);
mBroken = new ArrayList<>();
@ -784,7 +784,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
}
private void showDisplayInfo() {
mBinding.display.time.setVisibility(Setting.isDisplayTime() || isVisible(mBinding.widget.info) ? View.VISIBLE : View.GONE);
mBinding.display.clock.setVisibility(Setting.isDisplayTime() || isVisible(mBinding.widget.info) ? View.VISIBLE : View.GONE);
mBinding.display.netspeed.setVisibility(Setting.isDisplaySpeed() && !isVisible(mBinding.control.getRoot()) ? View.VISIBLE : View.GONE);
mBinding.display.duration.setVisibility(Setting.isDisplayDuration() && !isVisible(mBinding.control.getRoot()) ? View.VISIBLE : View.GONE);
mBinding.display.progress.setVisibility(Setting.isDisplayMiniProgress() && !isVisible(mBinding.control.getRoot()) && (mPlayers.getDuration() > 60000) ? View.VISIBLE : View.GONE);
@ -1666,8 +1666,8 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
@Override
public void onSeekTo(int time) {
mKeyDown.resetTime();
mPlayers.seekTo(time);
mKeyDown.resetTime();
showProgress();
onPlay();
}

@ -71,7 +71,7 @@
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/time"
android:id="@+id/clock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"

@ -16,7 +16,7 @@
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:layout_toStartOf="@+id/time"
android:layout_toStartOf="@+id/clock"
android:letterSpacing="0.02"
android:shadowColor="@color/grey_900"
android:shadowDx="2"
@ -43,7 +43,7 @@
tools:text="1920 x 1080" />
<TextView
android:id="@+id/time"
android:id="@+id/clock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"

@ -5,7 +5,7 @@
android:layout_height="match_parent">
<TextView
android:id="@+id/time"
android:id="@+id/clock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"

@ -232,7 +232,7 @@
tools:text="來源 1" />
<TextView
android:id="@+id/time"
android:id="@+id/clock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"

Loading…
Cancel
Save