Back up and restore comment filters.

This commit is contained in:
Docile-Alligator
2024-05-14 19:27:36 -04:00
parent 382f3e8167
commit e666e6774e
2 changed files with 25 additions and 1 deletions

View File

@ -32,6 +32,8 @@ import ml.docilealligator.infinityforreddit.BuildConfig;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
import ml.docilealligator.infinityforreddit.account.Account;
import ml.docilealligator.infinityforreddit.commentfilter.CommentFilter;
import ml.docilealligator.infinityforreddit.commentfilter.CommentFilterUsage;
import ml.docilealligator.infinityforreddit.customtheme.CustomTheme;
import ml.docilealligator.infinityforreddit.multireddit.AnonymousMultiredditSubreddit;
import ml.docilealligator.infinityforreddit.multireddit.MultiReddit;
@ -124,6 +126,14 @@ public class BackupSettings {
String postFilterUsageJson = new Gson().toJson(postFilterUsage);
boolean res17 = saveDatabaseTableToFile(postFilterUsageJson, databaseDirFile.getAbsolutePath(), "/post_filter_usage.json");
List<CommentFilter> commentFilters = redditDataRoomDatabase.commentFilterDao().getAllCommentFilters();
String commentFiltersJson = new Gson().toJson(commentFilters);
boolean res18 = saveDatabaseTableToFile(commentFiltersJson, databaseDirFile.getAbsolutePath(), "/comment_filters.json");
List<CommentFilterUsage> commentFilterUsage = redditDataRoomDatabase.commentFilterUsageDao().getAllCommentFilterUsageForBackup();
String commentFilterUsageJson = new Gson().toJson(commentFilterUsage);
boolean res19 = saveDatabaseTableToFile(commentFilterUsageJson, databaseDirFile.getAbsolutePath(), "/comment_filter_usage.json");
boolean zipRes = zipAndMoveToDestinationDir(context, contentResolver, destinationDirUri);
try {
@ -134,7 +144,8 @@ public class BackupSettings {
handler.post(() -> {
boolean finalResult = res && res1 && res2 && res3 && res4 && res5 && res6 && res7 && res8
&& res9 && res10 && res11 && res12 && res13 && res14 && res15 && res16 && res17 && zipRes;
&& res9 && res10 && res11 && res12 && res13 && res14 && res15 && res16 && res17
&& res18 && res19 && zipRes;
if (finalResult) {
backupSettingsListener.success();
} else {

View File

@ -32,6 +32,8 @@ import java.util.concurrent.Executor;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
import ml.docilealligator.infinityforreddit.account.Account;
import ml.docilealligator.infinityforreddit.commentfilter.CommentFilter;
import ml.docilealligator.infinityforreddit.commentfilter.CommentFilterUsage;
import ml.docilealligator.infinityforreddit.customtheme.CustomTheme;
import ml.docilealligator.infinityforreddit.multireddit.AnonymousMultiredditSubreddit;
import ml.docilealligator.infinityforreddit.multireddit.MultiReddit;
@ -132,6 +134,8 @@ public class RestoreSettings {
File customThemesFile = new File(f.getAbsolutePath() + "/custom_themes.json");
File postFiltersFile = new File(f.getAbsolutePath() + "/post_filters.json");
File postFilterUsageFile = new File(f.getAbsolutePath() + "/post_filter_usage.json");
File commentFiltersFile = new File(f.getAbsolutePath() + "/comment_filters.json");
File commentFilterUsageFile = new File(f.getAbsolutePath() + "/comment_filter_usage.json");
if (anonymousSubscribedSubredditsFile.exists()) {
List<SubscribedSubredditData> anonymousSubscribedSubreddits = getListFromFile(anonymousSubscribedSubredditsFile, new TypeToken<List<SubscribedSubredditData>>() {}.getType());
@ -163,6 +167,15 @@ public class RestoreSettings {
redditDataRoomDatabase.postFilterUsageDao().insertAll(postFilterUsage);
}
}
if (commentFiltersFile.exists()) {
List<CommentFilter> commentFilters = getListFromFile(commentFiltersFile, new TypeToken<List<CommentFilter>>() {}.getType());
redditDataRoomDatabase.commentFilterDao().insertAll(commentFilters);
if (commentFilterUsageFile.exists()) {
List<CommentFilterUsage> commentFilterUsage = getListFromFile(commentFilterUsageFile, new TypeToken<List<CommentFilterUsage>>() {}.getType());
redditDataRoomDatabase.commentFilterUsageDao().insertAll(commentFilterUsage);
}
}
}
}
} else {