Support play back - part 2

pull/362/head
FongMi 2 years ago
parent 98422bfcfe
commit 741caeb701
  1. 6
      app/src/main/java/com/fongmi/android/tv/bean/Epg.java
  2. 4
      app/src/main/java/com/fongmi/android/tv/bean/EpgData.java
  3. 20
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  4. 11
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpgDataAdapter.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 "";
}

@ -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());

@ -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<EpgData> 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();

@ -58,6 +58,17 @@ public class EpgDataAdapter extends RecyclerView.Adapter<EpgDataAdapter.ViewHold
return 0;
}
public boolean hasNext() {
return getItemCount() > 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();

Loading…
Cancel
Save