Rewrite backup and restore - part 4

pull/586/head
FongMi 1 year ago
parent 570d49c64e
commit 8b56da4aad
  1. 5
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java
  2. 6
      app/src/main/java/com/fongmi/android/tv/bean/Backup.java
  3. 22
      app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java
  4. 1
      app/src/main/res/values-zh-rCN/strings.xml
  5. 1
      app/src/main/res/values-zh-rTW/strings.xml
  6. 1
      app/src/main/res/values/strings.xml
  7. 5
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.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);
}
}));
}

@ -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) {

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

@ -83,6 +83,7 @@
<string name="restore_success">恢复成功</string>
<string name="restore_fail">恢复失败</string>
<string name="backup_success">备份成功</string>
<string name="backup_fail">备份失败</string>
<!-- Player -->
<string name="player">播放核心</string>

@ -83,6 +83,7 @@
<string name="restore_success">還原成功</string>
<string name="restore_fail">還原失敗</string>
<string name="backup_success">備份成功</string>
<string name="backup_fail">備份失敗</string>
<!-- Player -->
<string name="player">播放核心</string>

@ -84,6 +84,7 @@
<string name="restore_success">Restore successful</string>
<string name="restore_fail">Restore failed</string>
<string name="backup_success">Backup successful</string>
<string name="backup_fail">Backup failed</string>
<!-- Player -->
<string name="player">Player</string>

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

Loading…
Cancel
Save