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 e7f54ba93..e0ba8f57b 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 @@ -452,8 +452,8 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick } private void setChannel(Channel item) { - LiveConfig.get().setKeep(mGroup, mChannel = item); App.post(mR3, 100); + mChannel = item; showInfo(); } @@ -487,6 +487,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick } private void getUrl() { + LiveConfig.get().setKeep(mChannel); mViewModel.getUrl(mChannel); showProgress(); } diff --git a/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java b/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java index a34be616f..8371ca7e4 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java @@ -168,14 +168,16 @@ public class LiveConfig { Group group = items.get(i); if (group.getName().equals(splits[1])) { int j = group.find(splits[2]); + if (j != -1 && splits.length == 4) group.getChannel().get(j).setLine(splits[3]); if (j != -1) return new int[]{i, j}; } } return new int[]{1, 0}; } - public void setKeep(Group group, Channel channel) { - if (!group.isHidden() && home != null) Prefers.putKeep(home.getName() + AppDatabase.SYMBOL + group.getName() + AppDatabase.SYMBOL + channel.getName()); + public void setKeep(Channel channel) { + if (channel.getGroup().isHidden() || home == null) return; + Prefers.putKeep(home.getName() + AppDatabase.SYMBOL + channel.getGroup().getName() + AppDatabase.SYMBOL + channel.getName() + AppDatabase.SYMBOL + channel.getCurrent()); } public int[] find(List items) { diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java index 43f39de97..920b0decc 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java @@ -141,7 +141,7 @@ public class Channel { } public void setLine(int line) { - this.line = line; + this.line = Math.max(line, 0); } public boolean isSelected() { @@ -210,6 +210,10 @@ public class Channel { if (!getLogo().startsWith("http")) setLogo(live.getLogo().replace("{name}", getName()).replace("{logo}", getLogo())); } + public void setLine(String line) { + setLine(getUrls().indexOf(line)); + } + public String getScheme() { return Uri.parse(getCurrent()).getScheme().toLowerCase(); }