From d04aee6d21cf397b318da9e664ff47c41ad4bee0 Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 27 Dec 2024 11:48:34 +0800 Subject: [PATCH] Rewrite backup and restore - part 6 --- .../com/fongmi/android/tv/bean/Backup.java | 21 +++++++++++- app/src/main/res/values-zh-rCN/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- app/src/mobile/res/layout/adapter_restore.xml | 2 +- .../mobile/res/layout/fragment_setting.xml | 33 +++++++++++-------- .../java/com/github/catvod/utils/Prefers.java | 5 +-- 7 files changed, 46 insertions(+), 21 deletions(-) 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 cf096e0b8..702fa183c 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 @@ -4,10 +4,16 @@ import androidx.annotation.NonNull; import com.fongmi.android.tv.App; import com.fongmi.android.tv.db.AppDatabase; +import com.github.catvod.utils.Prefers; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.ToNumberPolicy; import com.google.gson.annotations.SerializedName; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; public class Backup { @@ -21,9 +27,12 @@ public class Backup { private List config; @SerializedName("history") private List history; + @SerializedName("prefers") + private Map prefers; public static Backup create() { Backup backup = new Backup(); + backup.setPrefers(Prefers.getPrefers().getAll()); backup.setSite(AppDatabase.get().getSiteDao().findAll()); backup.setLive(AppDatabase.get().getLiveDao().findAll()); backup.setKeep(AppDatabase.get().getKeepDao().findAll()); @@ -39,11 +48,13 @@ public class Backup { AppDatabase.get().getKeepDao().insertOrUpdate(getKeep()); AppDatabase.get().getConfigDao().insertOrUpdate(getConfig()); AppDatabase.get().getHistoryDao().insertOrUpdate(getHistory()); + for (Map.Entry entry : getPrefers().entrySet()) Prefers.put(entry.getKey(), entry.getValue()); } public static Backup objectFrom(String json) { try { - Backup backup = App.gson().fromJson(json, Backup.class); + Gson gson = new GsonBuilder().setObjectToNumberStrategy(ToNumberPolicy.LAZILY_PARSED_NUMBER).create(); + Backup backup = gson.fromJson(json, Backup.class); return backup == null ? new Backup() : backup; } catch (Exception e) { return new Backup(); @@ -90,6 +101,14 @@ public class Backup { this.history = history; } + public Map getPrefers() { + return prefers == null ? new HashMap<>() : prefers; + } + + public void setPrefers(Map prefers) { + this.prefers = prefers; + } + @NonNull @Override public String toString() { diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 125fe9524..9a266f23d 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -79,7 +79,7 @@ - 选择档案 + 选择备份 恢复成功 恢复失败 备份成功 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 01b18bd76..14ab2dc72 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -79,7 +79,7 @@ - 選擇檔案 + 選擇備份 還原成功 還原失敗 備份成功 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3b0eb8283..3888cfe91 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -80,7 +80,7 @@ On - Select file + Select backup Restore successful Restore failed Backup successful diff --git a/app/src/mobile/res/layout/adapter_restore.xml b/app/src/mobile/res/layout/adapter_restore.xml index 4683a68ea..09720d929 100644 --- a/app/src/mobile/res/layout/adapter_restore.xml +++ b/app/src/mobile/res/layout/adapter_restore.xml @@ -28,7 +28,7 @@ android:layout_height="wrap_content" android:singleLine="true" android:textColor="?android:attr/textColorSecondary" - android:textSize="14sp" /> + android:textSize="12sp" /> diff --git a/app/src/mobile/res/layout/fragment_setting.xml b/app/src/mobile/res/layout/fragment_setting.xml index ccd602270..a3b43cb17 100644 --- a/app/src/mobile/res/layout/fragment_setting.xml +++ b/app/src/mobile/res/layout/fragment_setting.xml @@ -369,33 +369,38 @@ + android:orientation="horizontal" + android:padding="0dp"> - - - - diff --git a/catvod/src/main/java/com/github/catvod/utils/Prefers.java b/catvod/src/main/java/com/github/catvod/utils/Prefers.java index 394cdf44c..0bdb9902a 100644 --- a/catvod/src/main/java/com/github/catvod/utils/Prefers.java +++ b/catvod/src/main/java/com/github/catvod/utils/Prefers.java @@ -9,7 +9,7 @@ import com.google.gson.internal.LazilyParsedNumber; public class Prefers { - private static SharedPreferences getPrefers() { + public static SharedPreferences getPrefers() { return PreferenceManager.getDefaultSharedPreferences(Init.context()); } @@ -74,7 +74,8 @@ public class Prefers { } else if (obj instanceof Long) { getPrefers().edit().putLong(key, (Long) obj).apply(); } else if (obj instanceof LazilyParsedNumber) { - getPrefers().edit().putInt(key, ((LazilyParsedNumber) obj).intValue()).apply(); + LazilyParsedNumber number = (LazilyParsedNumber) obj; + put(key, number.toString().contains(".") ? number.floatValue() : number.intValue()); } }