diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 0de3779c8..c98ad797c 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -101,7 +101,6 @@ import java.util.Objects; import java.util.UUID; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; public class VideoActivity extends BaseActivity implements CustomKeyDownVod.Listener, TrackDialog.Listener, ArrayPresenter.OnClickListener, Clock.Callback { @@ -784,7 +783,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List long current = mPlayers.getPosition(); long duration = mPlayers.getDuration(); if (current < 0 || duration < 0) return; - if (current > TimeUnit.MINUTES.toMillis(5)) return; + if (current > Constant.OPED_LIMIT) return; setOpening(current); } @@ -810,7 +809,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List long current = mPlayers.getPosition(); long duration = mPlayers.getDuration(); if (current < 0 || duration < 0) return; - if (duration - current > TimeUnit.MINUTES.toMillis(5)) return; + if (duration - current > Constant.OPED_LIMIT) return; setEnding(duration - current); } @@ -1342,9 +1341,9 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List public void onKeyUp() { long current = mPlayers.getPosition(); long duration = mPlayers.getDuration(); - if (duration - current < TimeUnit.MINUTES.toMillis(5)) { + if (duration - current < Constant.OPED_LIMIT) { showControl(mBinding.control.ending); - } else if (current < TimeUnit.MINUTES.toMillis(5)) { + } else if (current < Constant.OPED_LIMIT) { showControl(mBinding.control.opening); } else { showControl(getFocus2()); diff --git a/app/src/main/java/com/fongmi/android/tv/Constant.java b/app/src/main/java/com/fongmi/android/tv/Constant.java index 12977ecc6..d8c4e856a 100644 --- a/app/src/main/java/com/fongmi/android/tv/Constant.java +++ b/app/src/main/java/com/fongmi/android/tv/Constant.java @@ -4,33 +4,20 @@ import java.util.concurrent.TimeUnit; public class Constant { - //快進時間單位 public static final long INTERVAL_SEEK = TimeUnit.SECONDS.toMillis(10); - //控件隱藏時間 public static final long INTERVAL_HIDE = TimeUnit.SECONDS.toMillis(5); - //網路偵測間隔 public static final long INTERVAL_TRAFFIC = TimeUnit.SECONDS.toMillis(1); - //點播爬蟲時間 public static final long TIMEOUT_VOD = TimeUnit.SECONDS.toMillis(30); - //直播爬蟲時間 public static final long TIMEOUT_LIVE = TimeUnit.SECONDS.toMillis(30); - //節目爬蟲時間 public static final long TIMEOUT_EPG = TimeUnit.SECONDS.toMillis(5); - //節目爬蟲時間 public static final long TIMEOUT_XML = TimeUnit.SECONDS.toMillis(15); - //播放超時時間 public static final long TIMEOUT_PLAY = TimeUnit.SECONDS.toMillis(15); - //彈幕超時時間 + public static final long TIMEOUT_SYNC = TimeUnit.SECONDS.toMillis(2); public static final long TIMEOUT_DANMAKU = TimeUnit.SECONDS.toMillis(30); - //解析預設時間 public static final long TIMEOUT_PARSE_DEF = TimeUnit.SECONDS.toMillis(15); - //嗅探超時時間 public static final long TIMEOUT_PARSE_WEB = TimeUnit.SECONDS.toMillis(15); - //直播解析時間 public static final long TIMEOUT_PARSE_LIVE = TimeUnit.SECONDS.toMillis(10); - //同步超時時間 - public static final long TIMEOUT_SYNC = TimeUnit.SECONDS.toMillis(2); - //主要線程數量 + public static final long HISTORY_TIME = TimeUnit.DAYS.toMillis(60); + public static final long OPED_LIMIT = TimeUnit.MINUTES.toMillis(5); public static final int THREAD_POOL = 10; - } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/History.java b/app/src/main/java/com/fongmi/android/tv/bean/History.java index 61b5e1c93..0ac2f21b4 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/History.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/History.java @@ -9,6 +9,7 @@ import androidx.room.Entity; import androidx.room.PrimaryKey; import com.fongmi.android.tv.App; +import com.fongmi.android.tv.Constant; import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.config.VodConfig; import com.fongmi.android.tv.db.AppDatabase; @@ -244,7 +245,7 @@ public class History { } public static List get(int cid) { - return AppDatabase.get().getHistoryDao().find(cid, System.currentTimeMillis() - TimeUnit.DAYS.toMillis(30)); + return AppDatabase.get().getHistoryDao().find(cid, System.currentTimeMillis() - Constant.HISTORY_TIME); } public static History find(String key) { diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Live.java b/app/src/main/java/com/fongmi/android/tv/bean/Live.java index 88ee2df41..671a5fdb7 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Live.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Live.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.concurrent.TimeUnit; @Entity public class Live { @@ -219,8 +220,8 @@ public class Live { this.keep = keep; } - public Integer getTimeout() { - return timeout == null ? Constant.TIMEOUT_PLAY : Math.max(timeout, 1) * 1000; + public long getTimeout() { + return timeout == null ? Constant.TIMEOUT_PLAY : TimeUnit.SECONDS.toMillis(Math.max(timeout, 1)); } public JsonElement getHeader() { diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Site.java b/app/src/main/java/com/fongmi/android/tv/bean/Site.java index 109e96f79..737a80796 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Site.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Site.java @@ -25,6 +25,7 @@ import com.google.gson.annotations.SerializedName; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.concurrent.TimeUnit; import okhttp3.Headers; @@ -186,8 +187,8 @@ public class Site implements Parcelable { return indexs == null ? 0 : indexs; } - public Integer getTimeout() { - return timeout == null ? Constant.TIMEOUT_PLAY : Math.max(timeout, 1) * 1000; + public long getTimeout() { + return timeout == null ? Constant.TIMEOUT_PLAY : TimeUnit.SECONDS.toMillis(Math.max(timeout, 1)); } public Integer getSearchable() { diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index 3a9b040d2..93e135d21 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -400,7 +400,7 @@ public class Players implements Player.Listener, ParseCallback { App.removeCallbacks(runnable); } - public void start(Channel channel, int timeout) { + public void start(Channel channel, long timeout) { if (channel.getDrm() != null && !FrameworkMediaDrm.isCryptoSchemeSupported(channel.getDrm().getUUID())) { ErrorEvent.drm(tag); } else if (channel.hasMsg()) { @@ -414,7 +414,7 @@ public class Players implements Player.Listener, ParseCallback { } } - public void start(Result result, boolean useParse, int timeout) { + public void start(Result result, boolean useParse, long timeout) { if (result.getDrm() != null && !FrameworkMediaDrm.isCryptoSchemeSupported(result.getDrm().getUUID())) { ErrorEvent.drm(tag); } else if (result.hasMsg()) { @@ -467,15 +467,15 @@ public class Players implements Player.Listener, ParseCallback { setMediaItem(headers, url, format, drm, subs, danmakus, Constant.TIMEOUT_PLAY); } - private void setMediaItem(Channel channel, int timeout) { + private void setMediaItem(Channel channel, long timeout) { setMediaItem(channel.getHeaders(), channel.getUrl(), channel.getFormat(), channel.getDrm(), new ArrayList<>(), new ArrayList<>(), timeout); } - private void setMediaItem(Result result, int timeout) { + private void setMediaItem(Result result, long timeout) { setMediaItem(result.getHeaders(), result.getRealUrl(), result.getFormat(), result.getDrm(), result.getSubs(), result.getDanmaku(), timeout); } - private void setMediaItem(Map headers, String url, String format, Drm drm, List subs, List danmakus, int timeout) { + private void setMediaItem(Map headers, String url, String format, Drm drm, List subs, List danmakus, long timeout) { if (exoPlayer != null) exoPlayer.setMediaItem(ExoUtil.getMediaItem(this.headers = checkUa(headers), UrlUtil.uri(this.url = url), this.format = format, this.drm = drm, checkSub(this.subs = subs), decode)); if (danPlayer != null) setDanmaku(this.danmakus = danmakus); App.post(runnable, timeout); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 6800f661e..c6b0cccf3 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -115,7 +115,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List return LiveConfig.get().getHome(); } - private int getTimeout() { + private long getTimeout() { return getHome().isEmpty() ? Constant.TIMEOUT_PLAY : getHome().getTimeout(); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 87c854873..5986b6b84 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -804,7 +804,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo long current = mPlayers.getPosition(); long duration = mPlayers.getDuration(); if (current < 0 || duration < 0) return; - if (duration - current > TimeUnit.MINUTES.toMillis(5)) return; + if (duration - current > Constant.OPED_LIMIT) return; setEnding(duration - current); setR1Callback(); } @@ -824,7 +824,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo long current = mPlayers.getPosition(); long duration = mPlayers.getDuration(); if (current < 0 || duration < 0) return; - if (current > TimeUnit.MINUTES.toMillis(5)) return; + if (current > Constant.OPED_LIMIT) return; setOpening(current); setR1Callback(); } diff --git a/catvod/src/main/java/com/github/catvod/net/OkHttp.java b/catvod/src/main/java/com/github/catvod/net/OkHttp.java index 812a73aca..15cbbe81d 100644 --- a/catvod/src/main/java/com/github/catvod/net/OkHttp.java +++ b/catvod/src/main/java/com/github/catvod/net/OkHttp.java @@ -109,15 +109,15 @@ public class OkHttp { return get().client = getBuilder().build(); } - public static OkHttpClient client(int timeout) { + public static OkHttpClient client(long timeout) { return client().newBuilder().connectTimeout(timeout, TimeUnit.MILLISECONDS).readTimeout(timeout, TimeUnit.MILLISECONDS).writeTimeout(timeout, TimeUnit.MILLISECONDS).build(); } - public static OkHttpClient noRedirect(int timeout) { + public static OkHttpClient noRedirect(long timeout) { return client().newBuilder().connectTimeout(timeout, TimeUnit.MILLISECONDS).readTimeout(timeout, TimeUnit.MILLISECONDS).writeTimeout(timeout, TimeUnit.MILLISECONDS).followRedirects(false).followSslRedirects(false).build(); } - public static OkHttpClient client(boolean redirect, int timeout) { + public static OkHttpClient client(boolean redirect, long timeout) { return redirect ? client(timeout) : noRedirect(timeout); }