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 77dd6becc..7a739021f 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
@@ -49,6 +49,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
private ActivitySettingBinding mBinding;
private String[] quality;
+ private String[] backup;
private String[] size;
private int type;
@@ -85,12 +86,12 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
mBinding.vodUrl.setText(VodConfig.getDesc());
mBinding.liveUrl.setText(LiveConfig.getDesc());
mBinding.wallUrl.setText(WallConfig.getDesc());
- mBinding.backupText.setText(AppDatabase.getDate());
mBinding.dohText.setText(getDohList()[getDohIndex()]);
mBinding.versionText.setText(BuildConfig.VERSION_NAME);
mBinding.proxyText.setText(getProxy(Setting.getProxy()));
mBinding.incognitoText.setText(getSwitch(Setting.isIncognito()));
mBinding.sizeText.setText((size = ResUtil.getStringArray(R.array.select_size))[Setting.getSize()]);
+ mBinding.backupText.setText((backup = ResUtil.getStringArray(R.array.select_backup))[Setting.getBackupMode()]);
mBinding.qualityText.setText((quality = ResUtil.getStringArray(R.array.select_quality))[Setting.getQuality()]);
setCacheText();
}
@@ -119,7 +120,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
mBinding.live.setOnLongClickListener(this::onLiveEdit);
mBinding.liveHome.setOnClickListener(this::onLiveHome);
mBinding.wall.setOnLongClickListener(this::onWallEdit);
- mBinding.backup.setOnLongClickListener(this::onBackupAuto);
+ mBinding.backup.setOnLongClickListener(this::onBackupMode);
mBinding.vodHistory.setOnClickListener(this::onVodHistory);
mBinding.version.setOnLongClickListener(this::onVersionDev);
mBinding.liveHistory.setOnClickListener(this::onLiveHistory);
@@ -346,14 +347,15 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
PermissionX.init(this).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> AppDatabase.backup(new Callback() {
@Override
public void success() {
- mBinding.backupText.setText(AppDatabase.getDate());
+ Notify.show(R.string.backed);
}
}));
}
- private boolean onBackupAuto(View view) {
- Setting.putBackupAuto(!Setting.isBackupAuto());
- mBinding.backupText.setText(AppDatabase.getDate());
+ private boolean onBackupMode(View view) {
+ int index = Setting.getBackupMode();
+ Setting.putBackupMode(index = index == backup.length - 1 ? 0 : ++index);
+ mBinding.backupText.setText(backup[index]);
return true;
}
}
diff --git a/app/src/main/java/com/fongmi/android/tv/Setting.java b/app/src/main/java/com/fongmi/android/tv/Setting.java
index a1c99de71..8899b2f8c 100644
--- a/app/src/main/java/com/fongmi/android/tv/Setting.java
+++ b/app/src/main/java/com/fongmi/android/tv/Setting.java
@@ -177,6 +177,14 @@ public class Setting {
Prefers.put("site_mode", mode);
}
+ public static int getBackupMode() {
+ return Prefers.getInt("backup_mode");
+ }
+
+ public static void putBackupMode(int auto) {
+ Prefers.put("backup_mode", auto);
+ }
+
public static boolean isIncognito() {
return Prefers.getBoolean("incognito");
}
@@ -241,14 +249,6 @@ public class Setting {
Prefers.put("exo_tunnel", tunnel);
}
- public static boolean isBackupAuto() {
- return Prefers.getBoolean("backup_auto");
- }
-
- public static void putBackupAuto(boolean auto) {
- Prefers.put("backup_auto", auto);
- }
-
public static float getThumbnail() {
return 0.3f * getQuality() + 0.4f;
}
diff --git a/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java b/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java
index 1bc57cac8..3694cf388 100644
--- a/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java
+++ b/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java
@@ -10,7 +10,6 @@ import androidx.room.migration.Migration;
import androidx.sqlite.db.SupportSQLiteDatabase;
import com.fongmi.android.tv.App;
-import com.fongmi.android.tv.R;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.bean.Config;
import com.fongmi.android.tv.bean.Device;
@@ -26,14 +25,10 @@ import com.fongmi.android.tv.db.dao.KeepDao;
import com.fongmi.android.tv.db.dao.LiveDao;
import com.fongmi.android.tv.db.dao.SiteDao;
import com.fongmi.android.tv.db.dao.TrackDao;
-import com.fongmi.android.tv.utils.ResUtil;
-import com.fongmi.android.tv.utils.Util;
import com.github.catvod.utils.Path;
import com.github.catvod.utils.Prefers;
import java.io.File;
-import java.text.SimpleDateFormat;
-import java.util.Locale;
@Database(entities = {Keep.class, Site.class, Live.class, Track.class, Config.class, Device.class, History.class}, version = AppDatabase.VERSION)
public abstract class AppDatabase extends RoomDatabase {
@@ -53,12 +48,8 @@ public abstract class AppDatabase extends RoomDatabase {
return new File(Path.tv(), NAME);
}
- public static String getDate() {
- return Setting.isBackupAuto() ? ResUtil.getString(R.string.setting_backup_auto) : getBackup().exists() ? Util.format(new SimpleDateFormat("MMdd", Locale.getDefault()), getBackup().lastModified()) : "";
- }
-
public static void backup() {
- if (Setting.isBackupAuto()) backup(new com.fongmi.android.tv.impl.Callback());
+ if (Setting.getBackupMode() == 0) backup(new com.fongmi.android.tv.impl.Callback());
}
public static void backup(com.fongmi.android.tv.impl.Callback callback) {
diff --git a/app/src/main/java/com/fongmi/android/tv/utils/FileUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/FileUtil.java
index e35b4a4e1..fc8bf9506 100644
--- a/app/src/main/java/com/fongmi/android/tv/utils/FileUtil.java
+++ b/app/src/main/java/com/fongmi/android/tv/utils/FileUtil.java
@@ -9,6 +9,7 @@ import android.text.TextUtils;
import androidx.core.content.FileProvider;
import com.fongmi.android.tv.App;
+import com.fongmi.android.tv.R;
import com.fongmi.android.tv.impl.Callback;
import com.github.catvod.utils.Path;
@@ -101,7 +102,7 @@ public class FileUtil {
}
public static String byteCountToDisplaySize(long size) {
- if (size <= 0) return "0 KB";
+ if (size <= 0) return ResUtil.getString(R.string.none);
String[] units = new String[]{"bytes", "KB", "MB", "GB", "TB"};
int digitGroups = (int) (Math.log10(size) / Math.log10(1024));
return new DecimalFormat("#,##0.#").format(size / Math.pow(1024, digitGroups)) + " " + units[digitGroups];
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 9c0276284..12bceab13 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -71,7 +71,6 @@
Proxy
缓存
备份
- 自动
版本
权限
关
@@ -128,6 +127,7 @@
已复制
+ 备份成功
全部
@@ -135,6 +135,11 @@
倍
行
+
+ - 自动
+ - 手动
+
+
- 软解
- 硬解
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 5d04a4797..7ce35ed68 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -71,7 +71,6 @@
Proxy
暫存
備份
- 自動
版本
權限
關
@@ -128,6 +127,7 @@
已複製
+ 備份成功
全部
@@ -135,6 +135,11 @@
倍
行
+
+ - 自動
+ - 手動
+
+
- 軟解
- 硬解
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 80b76a45a..4dbea6dc7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -71,7 +71,6 @@
Proxy
Cache
Backup
- Auto
Version
Permission
Off
@@ -128,6 +127,7 @@
Copied
+ Backup successful
All
@@ -135,6 +135,11 @@
times
lines
+
+ - Auto
+ - Manual
+
+
- Soft
- Hard
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 3656e9aaa..c8525a4a3 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
@@ -54,6 +54,7 @@ import java.util.List;
public class SettingFragment extends BaseFragment implements ConfigCallback, SiteCallback, LiveCallback, ProxyCallback {
private FragmentSettingBinding mBinding;
+ private String[] backup;
private String[] size;
private int type;
@@ -93,12 +94,12 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
mBinding.vodUrl.setText(VodConfig.getDesc());
mBinding.liveUrl.setText(LiveConfig.getDesc());
mBinding.wallUrl.setText(WallConfig.getDesc());
- mBinding.backupText.setText(AppDatabase.getDate());
mBinding.dohText.setText(getDohList()[getDohIndex()]);
mBinding.versionText.setText(BuildConfig.VERSION_NAME);
mBinding.proxyText.setText(getProxy(Setting.getProxy()));
mBinding.incognitoText.setText(getSwitch(Setting.isIncognito()));
mBinding.sizeText.setText((size = ResUtil.getStringArray(R.array.select_size))[Setting.getSize()]);
+ mBinding.backupText.setText((backup = ResUtil.getStringArray(R.array.select_backup))[Setting.getBackupMode()]);
setCacheText();
}
@@ -126,7 +127,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
mBinding.live.setOnLongClickListener(this::onLiveEdit);
mBinding.liveHome.setOnClickListener(this::onLiveHome);
mBinding.wall.setOnLongClickListener(this::onWallEdit);
- mBinding.backup.setOnLongClickListener(this::onBackupAuto);
+ mBinding.backup.setOnLongClickListener(this::onBackupMode);
mBinding.vodHistory.setOnClickListener(this::onVodHistory);
mBinding.version.setOnLongClickListener(this::onVersionDev);
mBinding.liveHistory.setOnClickListener(this::onLiveHistory);
@@ -349,14 +350,15 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
PermissionX.init(this).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> AppDatabase.backup(new Callback() {
@Override
public void success() {
- mBinding.backupText.setText(AppDatabase.getDate());
+ Notify.show(R.string.backed);
}
}));
}
- private boolean onBackupAuto(View view) {
- Setting.putBackupAuto(!Setting.isBackupAuto());
- mBinding.backupText.setText(AppDatabase.getDate());
+ private boolean onBackupMode(View view) {
+ int index = Setting.getBackupMode();
+ Setting.putBackupMode(index = index == backup.length - 1 ? 0 : ++index);
+ mBinding.backupText.setText(backup[index]);
return true;
}