diff --git a/app/src/main/java/com/fongmi/android/tv/api/EpgParser.java b/app/src/main/java/com/fongmi/android/tv/api/EpgParser.java index 0d4d21c77..eac7f2d0a 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/EpgParser.java +++ b/app/src/main/java/com/fongmi/android/tv/api/EpgParser.java @@ -73,8 +73,7 @@ public class EpgParser { if (!exist.contains(key) && exist.contains(name)) key = name; Date startDate = formatFull.parse(programme.getStart()); Date endDate = formatFull.parse(programme.getStop()); - if (!exist.contains(key)) continue; - if (!isToday(startDate) && !isToday(endDate)) continue; + if (!exist.contains(key) || !isToday(startDate)) continue; if (!epgMap.containsKey(key)) epgMap.put(key, Epg.create(key, today)); epgMap.get(key).getList().add(getEpgData(startDate, endDate, programme)); } 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 bc64363bf..289251d4f 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 @@ -83,6 +83,7 @@ public class Epg { for (EpgData item : getList()) { item.setStartTime(Util.format(format, getDate().concat(item.getStart()))); item.setEndTime(Util.format(format, getDate().concat(item.getEnd()))); + if (item.getEndTime() < item.getStartTime()) item.fixCrossDay(); item.setTitle(Trans.s2t(item.getTitle())); } } 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 4fe73d9c9..87c252b7e 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 @@ -8,6 +8,8 @@ import com.fongmi.android.tv.R; import com.fongmi.android.tv.utils.ResUtil; import com.google.gson.annotations.SerializedName; +import java.util.Calendar; + public class EpgData { @SerializedName("title") @@ -92,6 +94,13 @@ public class EpgData { return getStart() + " ~ " + getEnd(); } + public void fixCrossDay() { + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(getEndTime()); + calendar.add(Calendar.DAY_OF_MONTH, 1); + setEndTime(calendar.getTimeInMillis()); + } + @Override public boolean equals(@Nullable Object obj) { if (this == obj) return true;