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 837c6fad9..c99ea50f2 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
@@ -463,6 +463,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
WallConfig.get().clear();
LiveConfig.get().clear();
ApiConfig.get().clear();
+ AppDatabase.backup();
Server.get().stop();
Source.get().exit();
}
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 9b58b5448..c53262585 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
@@ -115,6 +115,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
mBinding.vodHome.setOnClickListener(this::onVodHome);
mBinding.live.setOnLongClickListener(this::onLiveEdit);
mBinding.liveHome.setOnClickListener(this::onLiveHome);
+ mBinding.backup.setOnLongClickListener(this::onBackupAuto);
mBinding.vodHistory.setOnClickListener(this::onVodHistory);
mBinding.version.setOnLongClickListener(this::onVersionDev);
mBinding.liveHistory.setOnClickListener(this::onLiveHistory);
@@ -362,4 +363,10 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
}
}));
}
+
+ private boolean onBackupAuto(View view) {
+ Setting.putBackupAuto(!Setting.isBackupAuto());
+ mBinding.backupText.setText(AppDatabase.getDate());
+ 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 4f8d50eb9..9a309c900 100644
--- a/app/src/main/java/com/fongmi/android/tv/Setting.java
+++ b/app/src/main/java/com/fongmi/android/tv/Setting.java
@@ -33,6 +33,30 @@ public class Setting {
Prefers.put("keep", keep);
}
+ public static String getKeyword() {
+ return Prefers.getString("keyword");
+ }
+
+ public static void putKeyword(String keyword) {
+ Prefers.put("keyword", keyword);
+ }
+
+ public static String getHot() {
+ return Prefers.getString("hot");
+ }
+
+ public static void putHot(String hot) {
+ Prefers.put("hot", hot);
+ }
+
+ public static String getUa() {
+ return Prefers.getString("ua");
+ }
+
+ public static void putUa(String ua) {
+ Prefers.put("ua", ua);
+ }
+
public static int getWall() {
return Prefers.getInt("wall", 1);
}
@@ -97,22 +121,6 @@ public class Setting {
Prefers.put("size", size);
}
- public static String getKeyword() {
- return Prefers.getString("keyword");
- }
-
- public static void putKeyword(String keyword) {
- Prefers.put("keyword", keyword);
- }
-
- public static String getHot() {
- return Prefers.getString("hot");
- }
-
- public static void putHot(String hot) {
- Prefers.put("hot", hot);
- }
-
public static int getViewType(int viewType) {
return Prefers.getInt("viewType", viewType);
}
@@ -137,6 +145,54 @@ public class Setting {
Prefers.put("scale_live", scale);
}
+ public static int getSubtitle() {
+ return Math.max(Prefers.getInt("subtitle", 16), 14);
+ }
+
+ public static void putSubtitle(int subtitle) {
+ Prefers.put("subtitle", subtitle);
+ }
+
+ public static int getHttp() {
+ return Prefers.getInt("exo_http");
+ }
+
+ public static void putHttp(int http) {
+ Prefers.put("exo_http", http);
+ }
+
+ public static int getBuffer() {
+ return Math.min(Math.max(Prefers.getInt("exo_buffer"), 1), 15);
+ }
+
+ public static void putBuffer(int buffer) {
+ Prefers.put("exo_buffer", buffer);
+ }
+
+ public static int getFlag() {
+ return Prefers.getInt("flag");
+ }
+
+ public static void putFlag(int mode) {
+ Prefers.put("flag", mode);
+ }
+
+ public static int getBackground() {
+ return Prefers.getInt("background", 2);
+ }
+
+ public static void putBackground(int background) {
+ Prefers.put("background", background);
+ }
+
+ public static int getSiteMode() {
+ return Prefers.getInt("site_mode");
+ }
+
+ public static void putSiteMode(int mode) {
+ Prefers.put("site_mode", mode);
+ }
+
public static boolean isBootLive() {
return Prefers.getBoolean("boot_live");
}
@@ -185,14 +241,6 @@ public class Setting {
Prefers.put("danmu", danmu);
}
- public static String getUa() {
- return Prefers.getString("ua");
- }
-
- public static void putUa(String ua) {
- Prefers.put("ua", ua);
- }
-
public static boolean isCaption() {
return Prefers.getBoolean("caption");
}
@@ -201,14 +249,6 @@ public class Setting {
Prefers.put("caption", caption);
}
- public static int getSubtitle() {
- return Math.max(Prefers.getInt("subtitle", 16), 14);
- }
-
- public static void putSubtitle(int subtitle) {
- Prefers.put("subtitle", subtitle);
- }
-
public static boolean isTunnel() {
return Prefers.getBoolean("exo_tunnel");
}
@@ -217,44 +257,12 @@ public class Setting {
Prefers.put("exo_tunnel", tunnel);
}
- public static int getHttp() {
- return Prefers.getInt("exo_http");
- }
-
- public static void putHttp(int http) {
- Prefers.put("exo_http", http);
- }
-
- public static int getBuffer() {
- return Math.min(Math.max(Prefers.getInt("exo_buffer"), 1), 15);
- }
-
- public static void putBuffer(int buffer) {
- Prefers.put("exo_buffer", buffer);
+ public static boolean isBackupAuto() {
+ return Prefers.getBoolean("backup_auto");
}
- public static int getFlag() {
- return Prefers.getInt("flag");
- }
-
- public static void putFlag(int mode) {
- Prefers.put("flag", mode);
- }
-
- public static int getBackground() {
- return Prefers.getInt("background", 2);
- }
-
- public static void putBackground(int background) {
- Prefers.put("background", background);
- }
-
- public static int getSiteMode() {
- return Prefers.getInt("site_mode");
- }
-
- public static void putSiteMode(int mode) {
- Prefers.put("site_mode", mode);
+ public static void putBackupAuto(boolean auto) {
+ Prefers.put("backup_auto", auto);
}
public static float getThumbnail() {
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 117342645..89363c08e 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,6 +10,7 @@ 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;
@@ -23,6 +24,7 @@ import com.fongmi.android.tv.db.dao.HistoryDao;
import com.fongmi.android.tv.db.dao.KeepDao;
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;
@@ -46,14 +48,17 @@ public abstract class AppDatabase extends RoomDatabase {
}
public static String getDate() {
- File file = new File(Path.tv(), NAME);
- return file.exists() ? Util.format(new SimpleDateFormat("yyyyMMdd", Locale.getDefault()), file.lastModified()) : "";
+ return Setting.isBackupAuto() ? ResUtil.getString(R.string.setting_backup_auto) : getBackupKey().exists() ? Util.format(new SimpleDateFormat("yyyyMMdd", Locale.getDefault()), getBackupKey().lastModified()) : "";
}
public static File getBackupKey() {
return new File(Path.tv(), "." + Util.getDeviceId());
}
+ public static void backup() {
+ if (Setting.isBackupAuto()) backup(new com.fongmi.android.tv.impl.Callback());
+ }
+
public static void backup(com.fongmi.android.tv.impl.Callback callback) {
App.execute(() -> {
File db = App.get().getDatabasePath(NAME).getAbsoluteFile();
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index e144912dd..43f8b0e9c 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -83,6 +83,7 @@
Proxy
缓存
备份
+ 自动
版本
权限
关闭
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 83ce79957..ad9607027 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -83,6 +83,7 @@
Proxy
暫存
備份
+ 自動
版本
權限
關閉
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 67ea4525d..299ae55f0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -83,6 +83,7 @@
Proxy
Cache
Backup
+ Auto
Version
Permission
Off
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 657ab2be9..9f9d95296 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
@@ -206,6 +206,7 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
WallConfig.get().clear();
LiveConfig.get().clear();
ApiConfig.get().clear();
+ AppDatabase.backup();
Source.get().exit();
Server.get().stop();
}
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 c52a14bed..4e5651570 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
@@ -123,6 +123,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
mBinding.vodHome.setOnClickListener(this::onVodHome);
mBinding.live.setOnLongClickListener(this::onLiveEdit);
mBinding.liveHome.setOnClickListener(this::onLiveHome);
+ mBinding.backup.setOnLongClickListener(this::onBackupAuto);
mBinding.vodHistory.setOnClickListener(this::onVodHistory);
mBinding.version.setOnLongClickListener(this::onVersionDev);
mBinding.liveHistory.setOnClickListener(this::onLiveHistory);
@@ -370,6 +371,12 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
}));
}
+ private boolean onBackupAuto(View view) {
+ Setting.putBackupAuto(!Setting.isBackupAuto());
+ mBinding.backupText.setText(AppDatabase.getDate());
+ return true;
+ }
+
@Override
public void onHiddenChanged(boolean hidden) {
if (hidden || player == null || decode == null) return;