Fix epg time zone

release
FongMi 1 month ago
parent 6b092bd5b1
commit a01be747a1
  1. 12
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  2. 7
      app/src/main/java/com/fongmi/android/tv/bean/Channel.java
  3. 4
      app/src/main/java/com/fongmi/android/tv/model/LiveViewModel.java
  4. 12
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java

@ -435,8 +435,8 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
@Override
public void showEpg(Channel item) {
if (mChannel == null || mChannel.getData().getList().isEmpty() || mEpgDataAdapter.size() == 0 || !mChannel.equals(item) || !mChannel.getGroup().equals(mGroup)) return;
mBinding.epgData.setSelectedPosition(mChannel.getData().getSelected());
if (mChannel == null || mChannel.getData(mViewModel.getZoneId()).getList().isEmpty() || mEpgDataAdapter.size() == 0 || !mChannel.equals(item) || !mChannel.getGroup().equals(mGroup)) return;
mBinding.epgData.setSelectedPosition(mChannel.getData(mViewModel.getZoneId()).getSelected());
mBinding.epgData.setVisibility(View.VISIBLE);
mBinding.channel.setVisibility(View.GONE);
mBinding.group.setVisibility(View.GONE);
@ -554,7 +554,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
@Override
public void onItemClick(Channel item) {
if (!item.getData().getList().isEmpty() && item.isSelected() && mChannel != null && mChannel.equals(item) && mChannel.getGroup().equals(mGroup)) {
if (!item.getData(mViewModel.getZoneId()).getList().isEmpty() && item.isSelected() && mChannel != null && mChannel.equals(item) && mChannel.getGroup().equals(mGroup)) {
showEpg(item);
} else if (mGroup != null) {
mGroup.setPosition(mBinding.channel.getSelectedPosition());
@ -877,10 +877,10 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
}
private void checkNext() {
int current = mChannel.getData().getInRange();
int position = mChannel.getData().getSelected() + 1;
int current = mChannel.getData(mViewModel.getZoneId()).getInRange();
int position = mChannel.getData(mViewModel.getZoneId()).getSelected() + 1;
boolean hasNext = position <= current && position > 0;
if (hasNext) onItemClick(mChannel.getData().getList().get(position));
if (hasNext) onItemClick(mChannel.getData(mViewModel.getZoneId()).getList().get(position));
else fetch();
}

@ -20,6 +20,7 @@ import com.google.gson.annotations.SerializedName;
import com.fongmi.android.tv.utils.Formatters;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@ -238,7 +239,11 @@ public class Channel {
}
public Epg getData() {
String today = LocalDate.now().format(Formatters.DATE);
return getData(ZoneId.systemDefault());
}
public Epg getData(ZoneId zoneId) {
String today = LocalDate.now(zoneId).format(Formatters.DATE);
if (dataList == null) return new Epg();
return dataList.stream().filter(e -> e.equal(today)).findFirst().orElse(new Epg());
}

@ -72,6 +72,10 @@ public class LiveViewModel extends ViewModel {
return live;
}
public ZoneId getZoneId() {
return formats.zoneId();
}
public void getLive(Live item) {
execute(TaskType.LIVE, () -> {
LiveParser.start(item.recent());

@ -461,8 +461,8 @@ public class LiveActivity extends BaseActivity implements CustomKeyDown.Listener
}
private void showEpg(Channel item) {
if (mChannel == null || mChannel.getData().getList().isEmpty() || mEpgDataAdapter.getItemCount() == 0 || !mChannel.equals(item) || !mChannel.getGroup().equals(mGroup)) return;
scrollToPosition(mBinding.epgData, item.getData().getSelected());
if (mChannel == null || mChannel.getData(mViewModel.getZoneId()).getList().isEmpty() || mEpgDataAdapter.getItemCount() == 0 || !mChannel.equals(item) || !mChannel.getGroup().equals(mGroup)) return;
scrollToPosition(mBinding.epgData, item.getData(mViewModel.getZoneId()).getSelected());
mBinding.epgData.setVisibility(View.VISIBLE);
mBinding.channel.setVisibility(View.GONE);
mBinding.group.setVisibility(View.GONE);
@ -582,7 +582,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDown.Listener
@Override
public void onItemClick(Channel item) {
if (!item.getData().getList().isEmpty() && item.isSelected() && mChannel != null && mChannel.equals(item) && mChannel.getGroup().equals(mGroup)) {
if (!item.getData(mViewModel.getZoneId()).getList().isEmpty() && item.isSelected() && mChannel != null && mChannel.equals(item) && mChannel.getGroup().equals(mGroup)) {
showEpg(item);
} else if (mGroup != null) {
mGroup.setPosition(mChannelAdapter.setSelected(item.group(mGroup)));
@ -915,10 +915,10 @@ public class LiveActivity extends BaseActivity implements CustomKeyDown.Listener
}
private void checkNext() {
int current = mChannel.getData().getInRange();
int position = mChannel.getData().getSelected() + 1;
int current = mChannel.getData(mViewModel.getZoneId()).getInRange();
int position = mChannel.getData(mViewModel.getZoneId()).getSelected() + 1;
boolean hasNext = position <= current && position > 0;
if (hasNext) onItemClick(mChannel.getData().getList().get(position));
if (hasNext) onItemClick(mChannel.getData(mViewModel.getZoneId()).getList().get(position));
else fetch();
}

Loading…
Cancel
Save