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 21465a6de..8123d2294 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
@@ -7,6 +7,7 @@ import android.view.View;
import androidx.viewbinding.ViewBinding;
+import com.fongmi.android.tv.App;
import com.fongmi.android.tv.BuildConfig;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.Setting;
@@ -40,6 +41,8 @@ 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;
+import com.github.catvod.utils.Shell;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.permissionx.guolindev.PermissionX;
import java.util.ArrayList;
@@ -100,6 +103,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
mBinding.wall.setOnClickListener(this::onWall);
mBinding.proxy.setOnClickListener(this::onProxy);
mBinding.cache.setOnClickListener(this::onCache);
+ mBinding.cache.setOnLongClickListener(this::onCacheLongClick);
mBinding.backup.setOnClickListener(this::onBackup);
mBinding.player.setOnClickListener(this::onPlayer);
mBinding.danmu.setOnClickListener(this::onDanmu);
@@ -290,7 +294,13 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
}
private void onReset(View view) {
+ new MaterialAlertDialogBuilder(this).setTitle(R.string.dialog_reset_app).setMessage(R.string.dialog_reset_app_data).setNegativeButton(R.string.dialog_negative, null).setPositiveButton(R.string.dialog_positive, (dialog, which) -> reset()).show();
+ }
+ private void reset() {
+ new Thread(() -> {
+ Shell.exec("pm clear " + App.get().getPackageName());
+ }).start();
}
private void setDoh(View view) {
@@ -329,6 +339,17 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
});
}
+ private boolean onCacheLongClick(View view) {
+ FileUtil.clearCache(new Callback() {
+ @Override
+ public void success() {
+ setCacheText();
+ setConfig(Config.vod());
+ }
+ });
+ return true;
+ }
+
private void onBackup(View view) {
PermissionX.init(this).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> AppDatabase.backup(new Callback() {
@Override
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 360b0c05c..b558e9b93 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -135,6 +135,8 @@
删除全部纪录?
收藏纪录将会全部删除。
观看纪录将会全部删除。
+ 重置App?
+ 所有数据将会被重置,App即将被关闭.
配置取得失败
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 292ef2d50..a2601fcff 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -135,6 +135,8 @@
刪除全部紀錄?
收藏紀錄將會全部刪除。
觀看紀錄將會全部刪除。
+ 重置App?
+ 所有數據將會被重置,App即將被關閉.
配置取得失敗
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2a0e7e81a..83635b38e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -135,6 +135,8 @@
Delete all records?
All keep records will be removed.
All history records will be removed.
+ Reset app?
+ All app data will be reset, and app will be shutdown.
Configuration get failed
diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java
index ba5b1093e..13ef2d110 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java
@@ -11,6 +11,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
+import com.fongmi.android.tv.App;
import com.fongmi.android.tv.BuildConfig;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.Setting;
@@ -45,6 +46,7 @@ import com.fongmi.android.tv.utils.UrlUtil;
import com.github.catvod.bean.Doh;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Path;
+import com.github.catvod.utils.Shell;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.permissionx.guolindev.PermissionX;
@@ -55,6 +57,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
private FragmentSettingBinding mBinding;
private int type;
+ private String[] configCache;
public static SettingFragment newInstance() {
return new SettingFragment();
@@ -88,6 +91,7 @@ public class SettingFragment extends BaseFragment 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();
}
@@ -107,6 +111,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
mBinding.wall.setOnClickListener(this::onWall);
mBinding.proxy.setOnClickListener(this::onProxy);
mBinding.cache.setOnClickListener(this::onCache);
+ mBinding.cache.setOnLongClickListener(this::onCacheLongClick);
mBinding.backup.setOnClickListener(this::onBackup);
mBinding.player.setOnClickListener(this::onPlayer);
mBinding.version.setOnClickListener(this::onVersion);
@@ -123,6 +128,8 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
mBinding.wallRefresh.setOnClickListener(this::setWallRefresh);
mBinding.doh.setOnClickListener(this::setDoh);
mBinding.custom.setOnClickListener(this::onCustom);
+ mBinding.configCache.setOnClickListener(this::setConfigCache);
+ mBinding.reset.setOnClickListener(this::onReset);
}
@Override
@@ -260,6 +267,22 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
getRoot().change(3);
}
+ 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) {
+ new MaterialAlertDialogBuilder(getActivity()).setTitle(R.string.dialog_reset_app).setMessage(R.string.dialog_reset_app_data).setNegativeButton(R.string.dialog_negative, null).setPositiveButton(R.string.dialog_positive, (dialog, which) -> reset()).show();
+ }
+
+ private void reset() {
+ new Thread(() -> {
+ Shell.exec("pm clear " + App.get().getPackageName());
+ }).start();
+ }
+
private void onVersion(View view) {
Updater.get().force().release().start(getActivity());
}
@@ -322,6 +345,17 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
});
}
+ private boolean onCacheLongClick(View view) {
+ FileUtil.clearCache(new Callback() {
+ @Override
+ public void success() {
+ setCacheText();
+ setConfig(Config.vod());
+ }
+ });
+ return true;
+ }
+
private void onBackup(View view) {
PermissionX.init(this).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> AppDatabase.backup(new Callback() {
@Override
diff --git a/app/src/mobile/res/layout/fragment_setting.xml b/app/src/mobile/res/layout/fragment_setting.xml
index 4115d3fed..4c3098df4 100644
--- a/app/src/mobile/res/layout/fragment_setting.xml
+++ b/app/src/mobile/res/layout/fragment_setting.xml
@@ -247,6 +247,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+