[leanback] support live keep line

pull/123/head
FongMi 3 years ago
parent d44937d2c7
commit ed4c4fd334
  1. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  2. 6
      app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java
  3. 6
      app/src/main/java/com/fongmi/android/tv/bean/Channel.java

@ -452,8 +452,8 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
} }
private void setChannel(Channel item) { private void setChannel(Channel item) {
LiveConfig.get().setKeep(mGroup, mChannel = item);
App.post(mR3, 100); App.post(mR3, 100);
mChannel = item;
showInfo(); showInfo();
} }
@ -487,6 +487,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
} }
private void getUrl() { private void getUrl() {
LiveConfig.get().setKeep(mChannel);
mViewModel.getUrl(mChannel); mViewModel.getUrl(mChannel);
showProgress(); showProgress();
} }

@ -168,14 +168,16 @@ public class LiveConfig {
Group group = items.get(i); Group group = items.get(i);
if (group.getName().equals(splits[1])) { if (group.getName().equals(splits[1])) {
int j = group.find(splits[2]); 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}; if (j != -1) return new int[]{i, j};
} }
} }
return new int[]{1, 0}; return new int[]{1, 0};
} }
public void setKeep(Group group, Channel channel) { public void setKeep(Channel channel) {
if (!group.isHidden() && home != null) Prefers.putKeep(home.getName() + AppDatabase.SYMBOL + group.getName() + AppDatabase.SYMBOL + channel.getName()); 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<Group> items) { public int[] find(List<Group> items) {

@ -141,7 +141,7 @@ public class Channel {
} }
public void setLine(int line) { public void setLine(int line) {
this.line = line; this.line = Math.max(line, 0);
} }
public boolean isSelected() { public boolean isSelected() {
@ -210,6 +210,10 @@ public class Channel {
if (!getLogo().startsWith("http")) setLogo(live.getLogo().replace("{name}", getName()).replace("{logo}", getLogo())); 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() { public String getScheme() {
return Uri.parse(getCurrent()).getScheme().toLowerCase(); return Uri.parse(getCurrent()).getScheme().toLowerCase();
} }

Loading…
Cancel
Save