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 19fc4428f..62cc681bc 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
@@ -353,6 +353,11 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
public void success() {
Notify.show(R.string.backup_success);
}
+
+ @Override
+ public void error() {
+ Notify.show(R.string.backup_fail);
+ }
}));
}
diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Backup.java b/app/src/main/java/com/fongmi/android/tv/bean/Backup.java
index f08110e77..1c2344e87 100644
--- a/app/src/main/java/com/fongmi/android/tv/bean/Backup.java
+++ b/app/src/main/java/com/fongmi/android/tv/bean/Backup.java
@@ -31,15 +31,13 @@ public class Backup {
return backup;
}
- public Backup restore() {
- if (getConfig().isEmpty()) return this;
- else AppDatabase.get().clearAllTables();
+ public void restore() {
+ AppDatabase.get().clearAllTables();
for (History item : getHistory()) item.save();
for (Config item : getConfig()) item.save();
for (Site item : getSite()) item.save();
for (Live item : getLive()) item.save();
for (Keep item : getKeep()) item.save();
- return this;
}
public static Backup objectFrom(String json) {
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 1b6553103..43f4623b9 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
@@ -51,9 +51,14 @@ public abstract class AppDatabase extends RoomDatabase {
public static void backup(com.fongmi.android.tv.impl.Callback callback) {
App.execute(() -> {
File file = new File(Path.tv(), "tv-" + new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date()) + ".bk");
- Path.write(file, Backup.create().toString().getBytes());
- FileUtil.gzipCompress(file);
- App.post(callback::success);
+ Backup backup = Backup.create();
+ if (backup.getConfig().isEmpty()) {
+ App.post(callback::error);
+ } else {
+ Path.write(file, backup.toString().getBytes());
+ FileUtil.gzipCompress(file);
+ App.post(callback::success);
+ }
});
}
@@ -61,9 +66,14 @@ public abstract class AppDatabase extends RoomDatabase {
App.execute(() -> {
File cache = Path.cache("restore");
FileUtil.gzipDecompress(file, cache);
- Backup backup = Backup.objectFrom(Path.read(cache)).restore();
- if (backup.getConfig().isEmpty()) App.post(callback::error);
- else App.post(callback::success);
+ Backup backup = Backup.objectFrom(Path.read(cache));
+ if (backup.getConfig().isEmpty()) {
+ App.post(callback::error);
+ } else {
+ backup.restore();
+ Path.clear(cache);
+ App.post(callback::success);
+ }
});
}
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index b59100f46..125fe9524 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 @@
恢复成功
恢复失败
备份成功
+ 备份失败
播放核心
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index ec6bd4b9e..01b18bd76 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 @@
還原成功
還原失敗
備份成功
+ 備份失敗
播放核心
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2b7a7273f..3b0eb8283 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -84,6 +84,7 @@
Restore successful
Restore failed
Backup successful
+ Backup failed
Player
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 483290785..04c941262 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
@@ -357,6 +357,11 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
public void success() {
Notify.show(R.string.backup_success);
}
+
+ @Override
+ public void error() {
+ Notify.show(R.string.backup_fail);
+ }
}));
}