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 3082df4db..b5820e8ee 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 @@ -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 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 f9b83f541..64d65b2af 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 @@ -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); + } } diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 9e095f0ff..0ef2dc878 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -14,8 +14,7 @@ 密码 设定 暂无节目资讯 - 正在播放:%s/%s - 下个节目:%s/%s + 正在播放:%s 线路 %s/%s diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 5e015b8fa..4b35efbc0 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -14,8 +14,7 @@ 密碼 設定 暫無頻道資訊 - 正在播放:%s/%s - 下個節目:%s/%s + 正在播放:%s 來源 %s/%s diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f4cd76f26..9487076f4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -14,8 +14,7 @@ Pass Setting No schedule - Playing: %s/%s - Nex: %s/%s + Playing: %s Line %s/%s