aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/SubscribedUserDatabase/SubscribedUserViewModel.java
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/SubscribedUserDatabase/SubscribedUserViewModel.java
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/SubscribedUserDatabase/SubscribedUserViewModel.java')
-rw-r--r--app/src/main/java/SubscribedUserDatabase/SubscribedUserViewModel.java28
1 files changed, 26 insertions, 2 deletions
diff --git a/app/src/main/java/SubscribedUserDatabase/SubscribedUserViewModel.java b/app/src/main/java/SubscribedUserDatabase/SubscribedUserViewModel.java
index ed1db58f..387c918c 100644
--- a/app/src/main/java/SubscribedUserDatabase/SubscribedUserViewModel.java
+++ b/app/src/main/java/SubscribedUserDatabase/SubscribedUserViewModel.java
@@ -1,18 +1,24 @@
package SubscribedUserDatabase;
import android.app.Application;
+
+import androidx.annotation.NonNull;
import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData;
+import androidx.lifecycle.ViewModel;
+import androidx.lifecycle.ViewModelProvider;
import java.util.List;
+import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
+
public class SubscribedUserViewModel extends AndroidViewModel {
private SubscribedUserRepository mSubscribedUserRepository;
private LiveData<List<SubscribedUserData>> mAllSubscribedUsers;
- public SubscribedUserViewModel(Application application) {
+ public SubscribedUserViewModel(Application application, RedditDataRoomDatabase redditDataRoomDatabase, String accountName) {
super(application);
- mSubscribedUserRepository = new SubscribedUserRepository(application);
+ mSubscribedUserRepository = new SubscribedUserRepository(redditDataRoomDatabase, accountName);
mAllSubscribedUsers = mSubscribedUserRepository.getAllSubscribedSubreddits();
}
@@ -23,4 +29,22 @@ public class SubscribedUserViewModel extends AndroidViewModel {
public void insert(SubscribedUserData subscribedUserData) {
mSubscribedUserRepository.insert(subscribedUserData);
}
+
+ public static class Factory extends ViewModelProvider.NewInstanceFactory {
+ private Application mApplication;
+ private RedditDataRoomDatabase mRedditDataRoomDatabase;
+ private String mAccountName;
+
+ public Factory(Application application, RedditDataRoomDatabase redditDataRoomDatabase, String accountName) {
+ mApplication = application;
+ mRedditDataRoomDatabase = redditDataRoomDatabase;
+ mAccountName = accountName;
+ }
+
+ @NonNull
+ @Override
+ public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
+ return (T) new SubscribedUserViewModel(mApplication, mRedditDataRoomDatabase, mAccountName);
+ }
+ }
}