mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-27 19:38:22 +01:00
Prepare to support anonymous multireddit.
This commit is contained in:
parent
cfab68ecd6
commit
6215311186
@ -14,6 +14,8 @@ import ml.docilealligator.infinityforreddit.account.Account;
|
|||||||
import ml.docilealligator.infinityforreddit.account.AccountDao;
|
import ml.docilealligator.infinityforreddit.account.AccountDao;
|
||||||
import ml.docilealligator.infinityforreddit.customtheme.CustomTheme;
|
import ml.docilealligator.infinityforreddit.customtheme.CustomTheme;
|
||||||
import ml.docilealligator.infinityforreddit.customtheme.CustomThemeDao;
|
import ml.docilealligator.infinityforreddit.customtheme.CustomThemeDao;
|
||||||
|
import ml.docilealligator.infinityforreddit.multireddit.AnonymousMultiredditSubreddit;
|
||||||
|
import ml.docilealligator.infinityforreddit.multireddit.AnonymousMultiredditSubredditDao;
|
||||||
import ml.docilealligator.infinityforreddit.multireddit.MultiReddit;
|
import ml.docilealligator.infinityforreddit.multireddit.MultiReddit;
|
||||||
import ml.docilealligator.infinityforreddit.multireddit.MultiRedditDao;
|
import ml.docilealligator.infinityforreddit.multireddit.MultiRedditDao;
|
||||||
import ml.docilealligator.infinityforreddit.postfilter.PostFilter;
|
import ml.docilealligator.infinityforreddit.postfilter.PostFilter;
|
||||||
@ -35,7 +37,7 @@ import ml.docilealligator.infinityforreddit.user.UserData;
|
|||||||
|
|
||||||
@Database(entities = {Account.class, SubredditData.class, SubscribedSubredditData.class, UserData.class,
|
@Database(entities = {Account.class, SubredditData.class, SubscribedSubredditData.class, UserData.class,
|
||||||
SubscribedUserData.class, MultiReddit.class, CustomTheme.class, RecentSearchQuery.class,
|
SubscribedUserData.class, MultiReddit.class, CustomTheme.class, RecentSearchQuery.class,
|
||||||
ReadPost.class, PostFilter.class, PostFilterUsage.class}, version = 20)
|
ReadPost.class, PostFilter.class, PostFilterUsage.class, AnonymousMultiredditSubreddit.class}, version = 21)
|
||||||
public abstract class RedditDataRoomDatabase extends RoomDatabase {
|
public abstract class RedditDataRoomDatabase extends RoomDatabase {
|
||||||
private static RedditDataRoomDatabase INSTANCE;
|
private static RedditDataRoomDatabase INSTANCE;
|
||||||
|
|
||||||
@ -49,7 +51,7 @@ public abstract class RedditDataRoomDatabase extends RoomDatabase {
|
|||||||
MIGRATION_5_6, MIGRATION_6_7, MIGRATION_7_8, MIGRATION_8_9,
|
MIGRATION_5_6, MIGRATION_6_7, MIGRATION_7_8, MIGRATION_8_9,
|
||||||
MIGRATION_9_10, MIGRATION_10_11, MIGRATION_11_12, MIGRATION_12_13,
|
MIGRATION_9_10, MIGRATION_10_11, MIGRATION_11_12, MIGRATION_12_13,
|
||||||
MIGRATION_13_14, MIGRATION_14_15, MIGRATION_15_16, MIGRATION_16_17,
|
MIGRATION_13_14, MIGRATION_14_15, MIGRATION_15_16, MIGRATION_16_17,
|
||||||
MIGRATION_17_18, MIGRATION_18_19, MIGRATION_19_20)
|
MIGRATION_17_18, MIGRATION_18_19, MIGRATION_19_20, MIGRATION_20_21)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -79,6 +81,8 @@ public abstract class RedditDataRoomDatabase extends RoomDatabase {
|
|||||||
|
|
||||||
public abstract PostFilterUsageDao postFilterUsageDao();
|
public abstract PostFilterUsageDao postFilterUsageDao();
|
||||||
|
|
||||||
|
public abstract AnonymousMultiredditSubredditDao anonymousMultiredditSubredditDao();
|
||||||
|
|
||||||
private static final Migration MIGRATION_1_2 = new Migration(1, 2) {
|
private static final Migration MIGRATION_1_2 = new Migration(1, 2) {
|
||||||
@Override
|
@Override
|
||||||
public void migrate(SupportSQLiteDatabase database) {
|
public void migrate(SupportSQLiteDatabase database) {
|
||||||
@ -339,4 +343,13 @@ public abstract class RedditDataRoomDatabase extends RoomDatabase {
|
|||||||
database.execSQL("ALTER TABLE post_filter ADD COLUMN exclude_domains TEXT");
|
database.execSQL("ALTER TABLE post_filter ADD COLUMN exclude_domains TEXT");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private static final Migration MIGRATION_20_21 = new Migration(20, 21) {
|
||||||
|
@Override
|
||||||
|
public void migrate(@NonNull SupportSQLiteDatabase database) {
|
||||||
|
database.execSQL("CREATE TABLE anonymous_multireddit_subreddits (path TEXT NOT NULL, username TEXT NOT NULL, subreddit_name TEXT NOT NULL, " +
|
||||||
|
"PRIMARY KEY(path, username, subreddit_name), FOREIGN KEY(path) REFERENCES multi_reddits(path) ON DELETE CASCADE ON UPDATE CASCADE, " +
|
||||||
|
"FOREIGN KEY(username) REFERENCES multi_reddits(username) ON DELETE CASCADE ON UPDATE CASCADE)");
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,53 @@
|
|||||||
|
package ml.docilealligator.infinityforreddit.multireddit;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.room.ColumnInfo;
|
||||||
|
import androidx.room.Entity;
|
||||||
|
import androidx.room.ForeignKey;
|
||||||
|
|
||||||
|
@Entity(tableName = "anonymous_multireddit_subreddits", primaryKeys = {"path", "username", "subreddit_name"},
|
||||||
|
foreignKeys = @ForeignKey(entity = MultiReddit.class, parentColumns = {"path", "username"},
|
||||||
|
childColumns = {"path", "username"}, onDelete = ForeignKey.CASCADE, onUpdate = ForeignKey.CASCADE))
|
||||||
|
public class AnonymousMultiredditSubreddit {
|
||||||
|
@NonNull
|
||||||
|
@ColumnInfo(name = "path")
|
||||||
|
private String path;
|
||||||
|
@NonNull
|
||||||
|
@ColumnInfo(name = "username")
|
||||||
|
private String username = "-";
|
||||||
|
@NonNull
|
||||||
|
@ColumnInfo(name = "subreddit_name")
|
||||||
|
private String subredditName;
|
||||||
|
|
||||||
|
public AnonymousMultiredditSubreddit(@NonNull String path, @NonNull String subredditName) {
|
||||||
|
this.path = path;
|
||||||
|
this.subredditName = subredditName;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
public String getPath() {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPath(@NonNull String path) {
|
||||||
|
this.path = path;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsername(@NonNull String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
public String getSubredditName() {
|
||||||
|
return subredditName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSubredditName(@NonNull String subredditName) {
|
||||||
|
this.subredditName = subredditName;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package ml.docilealligator.infinityforreddit.multireddit;
|
||||||
|
|
||||||
|
import androidx.lifecycle.LiveData;
|
||||||
|
import androidx.room.Dao;
|
||||||
|
import androidx.room.Insert;
|
||||||
|
import androidx.room.OnConflictStrategy;
|
||||||
|
import androidx.room.Query;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Dao
|
||||||
|
public interface AnonymousMultiredditSubredditDao {
|
||||||
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
|
void insert(AnonymousMultiredditSubreddit anonymousMultiredditSubreddit);
|
||||||
|
|
||||||
|
@Query("SELECT * FROM anonymous_multireddit_subreddits WHERE path = :path ORDER BY subreddit_name COLLATE NOCASE ASC")
|
||||||
|
LiveData<List<AnonymousMultiredditSubreddit>> getAllAnonymousMultiRedditSubreddits(String path);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user