diff options
Diffstat (limited to '')
-rw-r--r-- | app/src/main/java/SubscribedUserDatabase/SubscribedUserViewModel.java | 28 |
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); + } + } } |