From 741caeb701316f62f0bfe76ac202d4d5d190db71 Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 6 Feb 2024 18:01:54 +0800 Subject: [PATCH] Support play back - part 2 --- .../java/com/fongmi/android/tv/bean/Epg.java | 6 +----- .../com/fongmi/android/tv/bean/EpgData.java | 4 ++++ .../android/tv/ui/activity/LiveActivity.java | 20 ++++++++++++++----- .../android/tv/ui/adapter/EpgDataAdapter.java | 11 ++++++++++ 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Epg.java b/app/src/main/java/com/fongmi/android/tv/bean/Epg.java index 0101ab562..ca1a498dc 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Epg.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Epg.java @@ -76,12 +76,8 @@ public class Epg { } } - public int getIndex() { - for (int i = 0; i < getList().size(); i++) if (getList().get(i).isInRange()) return i; - return -1; - } - public String getEpg() { + for (EpgData item : getList()) if (item.isSelected()) return item.format(); for (EpgData item : getList()) if (item.isInRange()) return item.format(); return ""; } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/EpgData.java b/app/src/main/java/com/fongmi/android/tv/bean/EpgData.java index 084d759dc..e41829665 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/EpgData.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/EpgData.java @@ -68,6 +68,10 @@ public class EpgData { return getStartTime() <= System.currentTimeMillis() && System.currentTimeMillis() <= getEndTime(); } + public boolean isFuture() { + return getStartTime() > System.currentTimeMillis(); + } + public String format(String group) { String pattern = group.split("\\)")[1].split("\\}")[0]; if (group.contains("(b)")) return new SimpleDateFormat(pattern, Locale.getDefault()).format(getStartTime()); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 3c3d74298..f9230baf7 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -639,9 +639,11 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List @Override public void onItemClick(EpgData item) { - if (!mChannel.hasCatchup()) return; - //mEpgDataAdapter.setSelected(item); - //mViewModel.getUrl(mChannel, item); + if (item.isFuture() || !mChannel.hasCatchup()) return; + Notify.show(getString(R.string.play_ready, item.getTitle())); + mEpgDataAdapter.setSelected(item); + mViewModel.getUrl(mChannel, item); + hideEpg(); } private void addKeep(Channel item) { @@ -678,8 +680,8 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List private void setEpg() { String epg = mChannel.getData().getEpg(); List data = mChannel.getData().getList(); - mBinding.widget.name.setMaxEms(epg.isEmpty() ? mChannel.getName().length() : 12); mBinding.arrow.setVisibility(data.isEmpty() ? View.GONE : View.VISIBLE); + mBinding.widget.name.setMaxEms(epg.isEmpty() ? mChannel.getName().length() : 12); mBinding.widget.play.setText(epg); mEpgDataAdapter.addAll(data); setWidth(mChannel.getData()); @@ -798,7 +800,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List if (isVisible(mBinding.control.getRoot())) showControl(); break; case Player.STATE_ENDED: - nextChannel(); + nextEpg(); break; } } @@ -905,6 +907,14 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List if (!mGroup.isEmpty()) onItemClick(mGroup.current()); } + public void nextEpg() { + if (mEpgDataAdapter.hasNext()) { + onItemClick(mEpgDataAdapter.getNext()); + } else { + nextChannel(); + } + } + private void prevLine() { if (mChannel == null) return; mChannel.prevLine(); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpgDataAdapter.java b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpgDataAdapter.java index 9e35eb9cc..c17f9de29 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpgDataAdapter.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpgDataAdapter.java @@ -58,6 +58,17 @@ public class EpgDataAdapter extends RecyclerView.Adapter 0 || getPosition() + 1 < getItemCount(); + } + + public EpgData getNext() { + int current = getPosition(); + int max = getItemCount() - 1; + current = ++current > max ? max : current; + return mItems.get(current); + } + @Override public int getItemCount() { return mItems.size();