aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/SubredditDatabase
diff options
context:
space:
mode:
authorAlex Ning <chineseperson5@gmail.com>2019-08-07 15:28:02 +0000
committerAlex Ning <chineseperson5@gmail.com>2019-08-07 15:28:02 +0000
commit425bc857cfe094d8b9be5815030ef3e6b0cf173d (patch)
treef1e4240531040bb20c9e840c123f03ce28a5f94e /app/src/main/java/SubredditDatabase
parent7f2bc01180c284154fb69976122016c4638e9973 (diff)
downloadinfinity-for-reddit-425bc857cfe094d8b9be5815030ef3e6b0cf173d.tar
infinity-for-reddit-425bc857cfe094d8b9be5815030ef3e6b0cf173d.tar.gz
infinity-for-reddit-425bc857cfe094d8b9be5815030ef3e6b0cf173d.tar.bz2
infinity-for-reddit-425bc857cfe094d8b9be5815030ef3e6b0cf173d.tar.lz
infinity-for-reddit-425bc857cfe094d8b9be5815030ef3e6b0cf173d.tar.xz
infinity-for-reddit-425bc857cfe094d8b9be5815030ef3e6b0cf173d.tar.zst
infinity-for-reddit-425bc857cfe094d8b9be5815030ef3e6b0cf173d.zip
Refactored all the other classes to support multi user. Clearing the app data is required before launching the app.
Diffstat (limited to 'app/src/main/java/SubredditDatabase')
-rw-r--r--app/src/main/java/SubredditDatabase/SubredditData.java34
-rw-r--r--app/src/main/java/SubredditDatabase/SubredditRepository.java12
-rw-r--r--app/src/main/java/SubredditDatabase/SubredditRoomDatabase.java26
-rw-r--r--app/src/main/java/SubredditDatabase/SubredditViewModel.java17
4 files changed, 43 insertions, 46 deletions
diff --git a/app/src/main/java/SubredditDatabase/SubredditData.java b/app/src/main/java/SubredditDatabase/SubredditData.java
index 9af7204d..e1275809 100644
--- a/app/src/main/java/SubredditDatabase/SubredditData.java
+++ b/app/src/main/java/SubredditDatabase/SubredditData.java
@@ -1,29 +1,49 @@
package SubredditDatabase;
+import androidx.annotation.NonNull;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
-import androidx.annotation.NonNull;
-
-import SubscribedSubredditDatabase.SubscribedSubredditData;
+import androidx.room.PrimaryKey;
@Entity(tableName = "subreddits")
-public class SubredditData extends SubscribedSubredditData {
+public class SubredditData {
+ @PrimaryKey
+ @NonNull
+ @ColumnInfo(name = "id")
+ private String id;
+ @ColumnInfo(name = "name")
+ private String name;
+ @ColumnInfo(name = "icon")
+ private String iconUrl;
@ColumnInfo(name = "banner")
private String bannerUrl;
-
@ColumnInfo(name = "description")
private String description;
-
@ColumnInfo(name = "subscribers_count")
private int nSubscribers;
public SubredditData(@NonNull String id, String name, String iconUrl, String bannerUrl, String description, int nSubscribers) {
- super(id, name, iconUrl);
+ this.id = id;
+ this.name = name;
+ this.iconUrl = iconUrl;
this.bannerUrl = bannerUrl;
this.description = description;
this.nSubscribers = nSubscribers;
}
+ @NonNull
+ public String getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getIconUrl() {
+ return iconUrl;
+ }
+
public String getBannerUrl() {
return bannerUrl;
}
diff --git a/app/src/main/java/SubredditDatabase/SubredditRepository.java b/app/src/main/java/SubredditDatabase/SubredditRepository.java
index 5e4cb7d7..2c66ad4b 100644
--- a/app/src/main/java/SubredditDatabase/SubredditRepository.java
+++ b/app/src/main/java/SubredditDatabase/SubredditRepository.java
@@ -1,17 +1,17 @@
package SubredditDatabase;
-import android.app.Application;
-import androidx.lifecycle.LiveData;
import android.os.AsyncTask;
+import androidx.lifecycle.LiveData;
+
+import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
+
public class SubredditRepository {
private SubredditDao mSubredditDao;
private LiveData<SubredditData> mSubredditLiveData;
- SubredditRepository(Application application, String subredditName) {
- SubredditRoomDatabase db = SubredditRoomDatabase.getDatabase(application);
- mSubredditDao = db.subredditDao();
-
+ SubredditRepository(RedditDataRoomDatabase redditDataRoomDatabase, String subredditName) {
+ mSubredditDao = redditDataRoomDatabase.subredditDao();
mSubredditLiveData = mSubredditDao.getSubredditLiveDataByName(subredditName);
}
diff --git a/app/src/main/java/SubredditDatabase/SubredditRoomDatabase.java b/app/src/main/java/SubredditDatabase/SubredditRoomDatabase.java
deleted file mode 100644
index fa656b30..00000000
--- a/app/src/main/java/SubredditDatabase/SubredditRoomDatabase.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package SubredditDatabase;
-
-import androidx.room.Database;
-import androidx.room.Room;
-import androidx.room.RoomDatabase;
-import android.content.Context;
-
-@Database(entities = {SubredditData.class}, version = 1)
-public abstract class SubredditRoomDatabase extends RoomDatabase{
- private static SubredditRoomDatabase INSTANCE;
-
- public abstract SubredditDao subredditDao();
-
- public static SubredditRoomDatabase getDatabase(final Context context) {
- if(INSTANCE == null) {
- synchronized (SubredditRoomDatabase.class) {
- if(INSTANCE == null) {
- INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
- SubredditRoomDatabase.class, "subreddits")
- .build();
- }
- }
- }
- return INSTANCE;
- }
-}
diff --git a/app/src/main/java/SubredditDatabase/SubredditViewModel.java b/app/src/main/java/SubredditDatabase/SubredditViewModel.java
index 8899abdd..dc0247d2 100644
--- a/app/src/main/java/SubredditDatabase/SubredditViewModel.java
+++ b/app/src/main/java/SubredditDatabase/SubredditViewModel.java
@@ -7,13 +7,15 @@ import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
import androidx.annotation.NonNull;
+import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
+
public class SubredditViewModel extends AndroidViewModel {
private SubredditRepository mSubredditRepository;
private LiveData<SubredditData> mSubredditLiveData;
- public SubredditViewModel(Application application, String id) {
+ public SubredditViewModel(Application application, RedditDataRoomDatabase redditDataRoomDatabase, String id) {
super(application);
- mSubredditRepository = new SubredditRepository(application, id);
+ mSubredditRepository = new SubredditRepository(redditDataRoomDatabase, id);
mSubredditLiveData = mSubredditRepository.getSubredditLiveData();
}
@@ -29,19 +31,20 @@ public class SubredditViewModel extends AndroidViewModel {
@NonNull
private final Application mApplication;
+ private final RedditDataRoomDatabase mRedditDataRoomDatabase;
+ private final String mSubredditName;
- private final String subredditName;
-
- public Factory(@NonNull Application application, String subredditName) {
+ public Factory(@NonNull Application application, RedditDataRoomDatabase redditDataRoomDatabase, String subredditname) {
mApplication = application;
- this.subredditName = subredditName;
+ mRedditDataRoomDatabase = redditDataRoomDatabase;
+ mSubredditName = subredditname;
}
@NonNull
@Override
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
//noinspection unchecked
- return (T) new SubredditViewModel(mApplication, subredditName);
+ return (T) new SubredditViewModel(mApplication, mRedditDataRoomDatabase, mSubredditName);
}
}
}