Fix episode bug

pull/137/head
FongMi 2 years ago
parent b79323ab97
commit 58b2c5a04c
  1. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 2
      app/src/main/java/com/fongmi/android/tv/bean/History.java
  3. 6
      app/src/main/java/com/fongmi/android/tv/bean/Vod.java
  4. 18
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java

@ -466,7 +466,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private void seamless(Vod.Flag flag, boolean force) {
if (!force && !getSite().isChangeable()) return;
Vod.Flag.Episode episode = flag.find(mHistory.getVodRemarks());
Vod.Flag.Episode episode = flag.find(mHistory.getVodRemarks(), getMark() == null);
if (episode == null || episode.isActivated()) return;
mHistory.setVodRemarks(episode.getName());
setEpisodeActivated(episode);

@ -316,7 +316,7 @@ public class History {
for (History item : find()) {
if (getPosition() > 0) break;
for (Vod.Flag flag : flags) {
Vod.Flag.Episode episode = flag.find(item.getVodRemarks());
Vod.Flag.Episode episode = flag.find(item.getVodRemarks(), true);
if (episode == null) continue;
setVodFlag(flag.getFlag());
setPosition(item.getPosition());

@ -329,14 +329,16 @@ public class Vod {
for (int i = 0; i < getEpisodes().size(); i++) getEpisodes().get(i).setActivated(i == getPosition());
}
public Episode find(String remarks) {
public Episode find(String remarks, boolean strict) {
int number = Utils.digit(remarks);
if (getEpisodes().size() == 0) return null;
if (getEpisodes().size() == 1) return getEpisodes().get(0);
if (getPosition() != -1) return getEpisodes().get(getPosition());
for (Episode item : getEpisodes()) if (item.rule1(remarks)) return item;
for (Episode item : getEpisodes()) if (item.rule2(number)) return item;
for (Episode item : getEpisodes()) if (item.rule3(remarks)) return item;
for (Episode item : getEpisodes()) if (item.rule4(remarks)) return item;
return getPosition() != -1 ? getEpisodes().get(getPosition()) : null;
return strict ? null : getEpisodes().get(0);
}
public Episode check(Episode episode) {

@ -33,6 +33,7 @@ import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Constant;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.bean.History;
import com.fongmi.android.tv.bean.Keep;
@ -70,7 +71,6 @@ import com.fongmi.android.tv.utils.Clock;
import com.fongmi.android.tv.utils.FileChooser;
import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.PiP;
import com.fongmi.android.tv.utils.Prefers;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Sniffer;
import com.fongmi.android.tv.utils.Traffic;
@ -193,15 +193,15 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust
}
private int getPlayer() {
return mHistory != null && mHistory.getPlayer() != -1 ? mHistory.getPlayer() : getSite().getPlayerType() != -1 ? getSite().getPlayerType() : Prefers.getPlayer();
return mHistory != null && mHistory.getPlayer() != -1 ? mHistory.getPlayer() : getSite().getPlayerType() != -1 ? getSite().getPlayerType() : Setting.getPlayer();
}
private int getScale() {
return mHistory != null && mHistory.getScale() != -1 ? mHistory.getScale() : Prefers.getScale();
return mHistory != null && mHistory.getScale() != -1 ? mHistory.getScale() : Setting.getScale();
}
private PlayerView getExo() {
return Prefers.getRender() == 0 ? mBinding.surface : mBinding.texture;
return Setting.getRender() == 0 ? mBinding.surface : mBinding.texture;
}
private IjkVideoView getIjk() {
@ -209,7 +209,7 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust
}
private boolean isReplay() {
return Prefers.getReset() == 1;
return Setting.getReset() == 1;
}
private boolean isFromCollect() {
@ -326,7 +326,7 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust
getExo().setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE);
getIjk().setVisibility(mPlayers.isIjk() ? View.VISIBLE : View.GONE);
if (mControlDialog != null && mControlDialog.isVisible()) mControlDialog.updatePlayer();
mBinding.control.action.reset.setText(ResUtil.getStringArray(R.array.select_reset)[Prefers.getReset()]);
mBinding.control.action.reset.setText(ResUtil.getStringArray(R.array.select_reset)[Setting.getReset()]);
mBinding.video.addOnLayoutChangeListener((view, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> mPiP.update(getActivity(), view));
}
@ -495,7 +495,7 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust
private void seamless(Vod.Flag flag, boolean force) {
if (!force && !getSite().isChangeable()) return;
Vod.Flag.Episode episode = flag.find(mHistory.getVodRemarks());
Vod.Flag.Episode episode = flag.find(mHistory.getVodRemarks(), getMark() == null);
if (episode == null || episode.isActivated()) return;
mHistory.setVodRemarks(episode.getName());
onItemClick(episode);
@ -656,8 +656,8 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust
}
private boolean onResetToggle() {
Prefers.putReset(Math.abs(Prefers.getReset() - 1));
mBinding.control.action.reset.setText(ResUtil.getStringArray(R.array.select_reset)[Prefers.getReset()]);
Setting.putReset(Math.abs(Setting.getReset() - 1));
mBinding.control.action.reset.setText(ResUtil.getStringArray(R.array.select_reset)[Setting.getReset()]);
return true;
}

Loading…
Cancel
Save