Support live epg - part 2

pull/123/head
FongMi 3 years ago
parent 440275996d
commit ce3ef475da
  1. 11
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  2. 31
      app/src/main/java/com/fongmi/android/tv/bean/Epg.java
  3. 3
      app/src/main/res/values-zh-rCN/strings.xml
  4. 3
      app/src/main/res/values-zh-rTW/strings.xml
  5. 3
      app/src/main/res/values/strings.xml

@ -236,21 +236,14 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
OKHttp.newCall(epg).enqueue(new Callback() {
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
channel.setData(Epg.objectFrom(response.body().string()));
channel.getData().initTime(mFormatTime);
channel.setData(Epg.objectFrom(response.body().string(), mFormatTime));
if (mChannel.equals(channel)) App.post(() -> showEpg());
}
});
}
private void showEpg() {
Date now = new Date();
for (Epg epg : mChannel.getData().getList()) {
if (epg.getStartTime() <= now.getTime() && now.getTime() <= epg.getEndTime()) {
mBinding.info.play.setText(epg.getTitle());
break;
}
}
mBinding.info.play.setText(mChannel.getData().getEpg());
}
@Override

@ -2,6 +2,8 @@ package com.fongmi.android.tv.bean;
import android.text.TextUtils;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Utils;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
@ -26,9 +28,11 @@ public class Epg {
private long startTime;
private long endTime;
public static Epg objectFrom(String str) {
public static Epg objectFrom(String str, SimpleDateFormat format) {
try {
return new Gson().fromJson(str, Epg.class);
Epg item = new Gson().fromJson(str, Epg.class);
item.setTime(format);
return item;
} catch (Exception e) {
return new Epg();
}
@ -74,10 +78,25 @@ public class Epg {
return getDate().equals(date);
}
public void initTime(SimpleDateFormat format) {
for (Epg epg : getList()) {
epg.setStartTime(Utils.format(format, getDate().concat(epg.getStart())));
epg.setEndTime(Utils.format(format, getDate().concat(epg.getEnd())));
private void setTime(SimpleDateFormat format) {
for (Epg item : getList()) {
item.setStartTime(Utils.format(format, getDate().concat(item.getStart())));
item.setEndTime(Utils.format(format, getDate().concat(item.getEnd())));
}
}
private boolean isInRange() {
return getStartTime() <= System.currentTimeMillis() && System.currentTimeMillis() <= getEndTime();
}
private String format() {
if (getTitle().isEmpty()) return ResUtil.getString(R.string.live_epg_empty);
if (getStart().isEmpty() || getEnd().isEmpty()) return ResUtil.getString(R.string.live_epg_now, getTitle());
return getStart() + " ~ " + getEnd() + " " + getTitle();
}
public String getEpg() {
for (Epg item : getList()) if (item.isInRange()) return item.format();
return ResUtil.getString(R.string.live_epg_empty);
}
}

@ -14,8 +14,7 @@
<string name="live_pass">密码</string>
<string name="live_setting">设定</string>
<string name="live_epg_empty">暂无节目资讯</string>
<string name="live_epg_now">正在播放:<xliff:g name="name">%s</xliff:g>/<xliff:g name="name">%s</xliff:g></string>
<string name="live_epg_next">下个节目:<xliff:g name="name">%s</xliff:g>/<xliff:g name="name">%s</xliff:g></string>
<string name="live_epg_now">正在播放:<xliff:g name="name">%s</xliff:g></string>
<string name="live_line">线路 <xliff:g name="name">%s</xliff:g>/<xliff:g name="name">%s</xliff:g></string>
<!-- Push -->

@ -14,8 +14,7 @@
<string name="live_pass">密碼</string>
<string name="live_setting">設定</string>
<string name="live_epg_empty">暫無頻道資訊</string>
<string name="live_epg_now">正在播放:<xliff:g name="name">%s</xliff:g>/<xliff:g name="name">%s</xliff:g></string>
<string name="live_epg_next">下個節目:<xliff:g name="name">%s</xliff:g>/<xliff:g name="name">%s</xliff:g></string>
<string name="live_epg_now">正在播放:<xliff:g name="name">%s</xliff:g></string>
<string name="live_line">來源 <xliff:g name="name">%s</xliff:g>/<xliff:g name="name">%s</xliff:g></string>
<!-- Push -->

@ -14,8 +14,7 @@
<string name="live_pass">Pass</string>
<string name="live_setting">Setting</string>
<string name="live_epg_empty">No schedule</string>
<string name="live_epg_now">Playing: <xliff:g name="name">%s</xliff:g>/<xliff:g name="name">%s</xliff:g></string>
<string name="live_epg_next">Nex: <xliff:g name="name">%s</xliff:g>/<xliff:g name="name">%s</xliff:g></string>
<string name="live_epg_now">Playing: <xliff:g name="name">%s</xliff:g></string>
<string name="live_line">Line <xliff:g name="name">%s</xliff:g>/<xliff:g name="name">%s</xliff:g></string>
<!-- Push -->

Loading…
Cancel
Save