diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
index b4ee403a3..adaa28802 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
@@ -299,7 +299,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
Notify.progress(this);
WallConfig.get().init();
LiveConfig.get().init().load();
- VodConfig.get().init().load(getCallback());
+ VodConfig.get().init().load(getCallback(), true);
setLoading(true);
}
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java
index de403c3b9..21465a6de 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java
@@ -8,6 +8,7 @@ import android.view.View;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.BuildConfig;
+import com.fongmi.android.tv.R;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.Updater;
import com.fongmi.android.tv.api.config.LiveConfig;
@@ -35,6 +36,7 @@ import com.fongmi.android.tv.ui.dialog.ProxyDialog;
import com.fongmi.android.tv.ui.dialog.SiteDialog;
import com.fongmi.android.tv.utils.FileUtil;
import com.fongmi.android.tv.utils.Notify;
+import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.UrlUtil;
import com.github.catvod.bean.Doh;
import com.github.catvod.net.OkHttp;
@@ -47,6 +49,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
private ActivitySettingBinding mBinding;
private int type;
+ private String[] configCache;
public static void start(Activity activity) {
activity.startActivity(new Intent(activity, SettingActivity.class));
@@ -77,6 +80,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
mBinding.dohText.setText(getDohList()[getDohIndex()]);
mBinding.versionText.setText(BuildConfig.VERSION_NAME);
mBinding.proxyText.setText(UrlUtil.scheme(Setting.getProxy()));
+ mBinding.configCacheText.setText((configCache = ResUtil.getStringArray(R.array.select_config_cache))[Setting.getConfigCache()]);
setCacheText();
}
@@ -113,6 +117,8 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
mBinding.wallRefresh.setOnClickListener(this::setWallRefresh);
mBinding.custom.setOnClickListener(this::onCustom);
mBinding.doh.setOnClickListener(this::setDoh);
+ mBinding.configCache.setOnClickListener(this::setConfigCache);
+ mBinding.reset.setOnClickListener(this::onReset);
}
@Override
@@ -277,6 +283,16 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
SettingCustomActivity.start(this);
}
+ private void setConfigCache(View view) {
+ int index = Setting.getConfigCache();
+ Setting.putConfigCache(index = index == configCache.length - 1 ? 0 : ++index);
+ mBinding.configCacheText.setText(configCache[index]);
+ }
+
+ private void onReset(View view) {
+
+ }
+
private void setDoh(View view) {
DohDialog.create(this).index(getDohIndex()).show();
}
diff --git a/app/src/leanback/res/layout/activity_setting.xml b/app/src/leanback/res/layout/activity_setting.xml
index 8426f316b..a684e2c82 100644
--- a/app/src/leanback/res/layout/activity_setting.xml
+++ b/app/src/leanback/res/layout/activity_setting.xml
@@ -319,6 +319,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
loadConfig(callback));
+ load(callback, false);
+ }
+
+ public void load(Callback callback, boolean cache) {
+ if (cache) App.execute(() -> loadConfigCache(callback));
+ else App.execute(() -> loadConfig(callback));
}
private void loadConfig(Callback callback) {
@@ -142,6 +147,11 @@ public class VodConfig {
else App.post(() -> callback.error(Notify.getError(R.string.error_config_get, e)));
}
+ private void loadConfigCache(Callback callback) {
+ if (!TextUtils.isEmpty(config.getJson()) && config.isCache()) checkJson(Json.parse(config.getJson()).getAsJsonObject(), callback);
+ else loadConfig(callback);
+ }
+
private void checkJson(JsonObject object, Callback callback) {
if (object.has("urls")) {
parseDepot(object, callback);
diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Config.java b/app/src/main/java/com/fongmi/android/tv/bean/Config.java
index d29e2fe4e..70fab9099 100644
--- a/app/src/main/java/com/fongmi/android/tv/bean/Config.java
+++ b/app/src/main/java/com/fongmi/android/tv/bean/Config.java
@@ -7,6 +7,7 @@ import androidx.room.Index;
import androidx.room.PrimaryKey;
import com.fongmi.android.tv.App;
+import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.db.AppDatabase;
import com.github.catvod.utils.Prefers;
import com.google.gson.annotations.SerializedName;
@@ -119,6 +120,10 @@ public class Config {
this.time = time;
}
+ public boolean isCache() {
+ return getTime() + (long)(3600*1000 * Setting.getConfigCache()) > System.currentTimeMillis();
+ }
+
public Config type(int type) {
setType(type);
return this;
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index d75739cbd..360b0c05c 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -75,6 +75,8 @@
播放设置
弹幕设置
个性设置
+ 接口缓存
+ 重置App
图片品质
图片尺寸
聚合搜索
@@ -257,6 +259,14 @@
- TVBox风格
+
+ - 关闭
+ - 1小时
+ - 2小时
+ - 3小时
+ - 4小时
+
+
- 预设
- 系统
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 0d9b0c834..292ef2d50 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -75,6 +75,8 @@
播放設定
彈幕設定
個性設定
+ 接口暫存
+ 重置App
圖片品質
圖片尺寸
聚合搜索
@@ -257,6 +259,14 @@
- TVBox風格
+
+ - 關閉
+ - 1小時
+ - 2小時
+ - 3小時
+ - 4小時
+
+
- 預設
- 系統
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 63b167d46..2a0e7e81a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -75,6 +75,8 @@
Player setting
Danmu setting
Custom setting
+ Config cache
+ Reset app
Image quality
Image size
Aggregated search
@@ -262,6 +264,14 @@
- TVBox style
+
+ - Close
+ - 1 Hour
+ - 2 Hour
+ - 3 Hour
+ - 4 Hour
+
+
- Default
- System
diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java
index 6a5d7e3fa..935fd95bb 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java
@@ -106,7 +106,7 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
public void initConfig() {
WallConfig.get().init();
LiveConfig.get().init().load();
- VodConfig.get().init().load(getCallback());
+ VodConfig.get().init().load(getCallback(), true);
}
private Callback getCallback() {