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); + } })); }