diff options
author | Alex Ning <chineseperson5@gmail.com> | 2021-10-16 02:06:47 +0000 |
---|---|---|
committer | Alex Ning <chineseperson5@gmail.com> | 2021-10-16 02:06:47 +0000 |
commit | f1dfadecb6bb985f646959ac3680f95f5cddfc78 (patch) | |
tree | e2ce1fedc810e30eeb4fff4be94d02846a7db888 /app/src/main/java/ml | |
parent | 192de06e168530e7b0a3a8d1486ce51a07fcb508 (diff) | |
download | infinity-for-reddit-f1dfadecb6bb985f646959ac3680f95f5cddfc78.tar infinity-for-reddit-f1dfadecb6bb985f646959ac3680f95f5cddfc78.tar.gz infinity-for-reddit-f1dfadecb6bb985f646959ac3680f95f5cddfc78.tar.bz2 infinity-for-reddit-f1dfadecb6bb985f646959ac3680f95f5cddfc78.tar.lz infinity-for-reddit-f1dfadecb6bb985f646959ac3680f95f5cddfc78.tar.xz infinity-for-reddit-f1dfadecb6bb985f646959ac3680f95f5cddfc78.tar.zst infinity-for-reddit-f1dfadecb6bb985f646959ac3680f95f5cddfc78.zip |
Backup anonymously subscribed users and multireddits. Backup post filters.
Diffstat (limited to 'app/src/main/java/ml')
4 files changed, 37 insertions, 2 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/BackupSettings.java b/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/BackupSettings.java index 7d708298..1b79fe3c 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/BackupSettings.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/BackupSettings.java @@ -32,7 +32,12 @@ import ml.docilealligator.infinityforreddit.BuildConfig; import ml.docilealligator.infinityforreddit.R; import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase; import ml.docilealligator.infinityforreddit.customtheme.CustomTheme; +import ml.docilealligator.infinityforreddit.multireddit.AnonymousMultiredditSubreddit; +import ml.docilealligator.infinityforreddit.multireddit.MultiReddit; +import ml.docilealligator.infinityforreddit.postfilter.PostFilter; +import ml.docilealligator.infinityforreddit.postfilter.PostFilterUsage; import ml.docilealligator.infinityforreddit.subscribedsubreddit.SubscribedSubredditData; +import ml.docilealligator.infinityforreddit.subscribeduser.SubscribedUserData; import ml.docilealligator.infinityforreddit.utils.CustomThemeSharedPreferencesUtils; import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils; @@ -94,9 +99,29 @@ public class BackupSettings { String anonymousSubscribedSubredditsDataJson = new Gson().toJson(anonymousSubscribedSubredditsData); boolean res11 = saveDatabaseTableToFile(anonymousSubscribedSubredditsDataJson, databaseDirFile.getAbsolutePath(), "/anonymous_subscribed_subreddits.json"); + List<SubscribedUserData> anonymousSubscribedUsersData = redditDataRoomDatabase.subscribedUserDao().getAllSubscribedUsersList("-"); + String anonymousSubscribedUsersDataJson = new Gson().toJson(anonymousSubscribedUsersData); + boolean res12 = saveDatabaseTableToFile(anonymousSubscribedUsersDataJson, databaseDirFile.getAbsolutePath(), "/anonymous_subscribed_users.json"); + + List<MultiReddit> anonymousMultireddits = redditDataRoomDatabase.multiRedditDao().getAllMultiRedditsList("-"); + String anonymousMultiredditsJson = new Gson().toJson(anonymousMultireddits); + boolean res13 = saveDatabaseTableToFile(anonymousMultiredditsJson, databaseDirFile.getAbsolutePath(), "/anonymous_multireddits.json"); + + List<AnonymousMultiredditSubreddit> anonymousMultiredditSubreddits = redditDataRoomDatabase.anonymousMultiredditSubredditDao().getAllSubreddits(); + String anonymousMultiredditSubredditsJson = new Gson().toJson(anonymousMultiredditSubreddits); + boolean res14 = saveDatabaseTableToFile(anonymousMultiredditSubredditsJson, databaseDirFile.getAbsolutePath(), "/anonymous_multireddit_subreddits.json"); + List<CustomTheme> customThemes = redditDataRoomDatabase.customThemeDao().getAllCustomThemesList(); String customThemesJson = new Gson().toJson(customThemes); - boolean res12 = saveDatabaseTableToFile(customThemesJson, databaseDirFile.getAbsolutePath(), "/custom_themes.json"); + boolean res15 = saveDatabaseTableToFile(customThemesJson, databaseDirFile.getAbsolutePath(), "/custom_themes.json"); + + List<PostFilter> postFilters = redditDataRoomDatabase.postFilterDao().getAllPostFilters(); + String postFiltersJson = new Gson().toJson(postFilters); + boolean res16 = saveDatabaseTableToFile(postFiltersJson, databaseDirFile.getAbsolutePath(), "/post_filters.json"); + + List<PostFilterUsage> postFilterUsage = redditDataRoomDatabase.postFilterUsageDao().getAllPostFilterUsageForBackup(); + String postFilterUsageJson = new Gson().toJson(postFilterUsage); + boolean res17 = saveDatabaseTableToFile(postFilterUsageJson, databaseDirFile.getAbsolutePath(), "/post_filter_usage.json"); boolean zipRes = zipAndMoveToDestinationDir(context, contentResolver, destinationDirUri); @@ -107,7 +132,8 @@ public class BackupSettings { } handler.post(() -> { - boolean finalResult = res && res1 && res2 && res3 && res4 && res5 && res6 && res7 && res8 && res9 && res10 && res11 && res12 && zipRes; + boolean finalResult = res && res1 && res2 && res3 && res4 && res5 && res6 && res7 && res8 + && res9 && res10 && res11 && res12 && res13 && res14 && res15 && res16 && res17 && zipRes; if (finalResult) { backupSettingsListener.success(); } else { diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/multireddit/AnonymousMultiredditSubredditDao.java b/app/src/main/java/ml/docilealligator/infinityforreddit/multireddit/AnonymousMultiredditSubredditDao.java index dfc7a7ed..1ec94bc8 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/multireddit/AnonymousMultiredditSubredditDao.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/multireddit/AnonymousMultiredditSubredditDao.java @@ -17,4 +17,7 @@ public interface AnonymousMultiredditSubredditDao { @Query("SELECT * FROM anonymous_multireddit_subreddits WHERE path = :path ORDER BY subreddit_name COLLATE NOCASE ASC") List<AnonymousMultiredditSubreddit> getAllAnonymousMultiRedditSubreddits(String path); + + @Query("SELECT * FROM anonymous_multireddit_subreddits") + List<AnonymousMultiredditSubreddit> getAllSubreddits(); } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/postfilter/PostFilterDao.java b/app/src/main/java/ml/docilealligator/infinityforreddit/postfilter/PostFilterDao.java index 55b65bab..5dc37da9 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/postfilter/PostFilterDao.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/postfilter/PostFilterDao.java @@ -29,6 +29,9 @@ public interface PostFilterDao { @Query("SELECT * FROM post_filter ORDER BY name") LiveData<List<PostFilter>> getAllPostFiltersLiveData(); + @Query("SELECT * FROM post_filter") + List<PostFilter> getAllPostFilters(); + @Query("SELECT * FROM post_filter WHERE post_filter.name IN " + "(SELECT post_filter_usage.name FROM post_filter_usage WHERE (usage = :usage AND name_of_usage = :nameOfUsage) " + "OR (usage =:usage AND name_of_usage = '--'))") diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/postfilter/PostFilterUsageDao.java b/app/src/main/java/ml/docilealligator/infinityforreddit/postfilter/PostFilterUsageDao.java index c94a67f7..652fa04c 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/postfilter/PostFilterUsageDao.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/postfilter/PostFilterUsageDao.java @@ -17,6 +17,9 @@ public interface PostFilterUsageDao { @Query("SELECT * FROM post_filter_usage WHERE name = :name") List<PostFilterUsage> getAllPostFilterUsage(String name); + @Query("SELECT * FROM post_filter_usage") + List<PostFilterUsage> getAllPostFilterUsageForBackup(); + @Insert(onConflict = OnConflictStrategy.REPLACE) void insertPostFilterUsage(PostFilterUsage postFilterUsage); |