From 7f2bc01180c284154fb69976122016c4638e9973 Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Wed, 7 Aug 2019 10:54:47 +0800 Subject: Preparing to support multi user. Use the database to store accounts' info. LoginActivity is successfully refactored. Any other features are unavailable for now. --- app/src/main/java/Account/AccountViewModel.java | 47 +++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 app/src/main/java/Account/AccountViewModel.java (limited to 'app/src/main/java/Account/AccountViewModel.java') diff --git a/app/src/main/java/Account/AccountViewModel.java b/app/src/main/java/Account/AccountViewModel.java new file mode 100644 index 00000000..b649d9a7 --- /dev/null +++ b/app/src/main/java/Account/AccountViewModel.java @@ -0,0 +1,47 @@ +package Account; + +import android.app.Application; + +import androidx.annotation.NonNull; +import androidx.lifecycle.AndroidViewModel; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.ViewModel; +import androidx.lifecycle.ViewModelProvider; + +public class AccountViewModel extends AndroidViewModel { + private AccountRepository mAccountRepository; + private LiveData mAccountLiveData; + + public AccountViewModel(Application application, String id) { + super(application); + mAccountRepository = new AccountRepository(application, id); + mAccountLiveData = mAccountRepository.getAccountLiveData(); + } + + public LiveData getAccountLiveData() { + return mAccountLiveData; + } + + public void insert(Account userData) { + mAccountRepository.insert(userData); + } + + public static class Factory extends ViewModelProvider.NewInstanceFactory { + + @NonNull + private final Application mApplication; + + private final String userName; + + public Factory(@NonNull Application application, String userName) { + mApplication = application; + this.userName = userName; + } + + @Override + public T create(Class modelClass) { + //noinspection unchecked + return (T) new AccountViewModel(mApplication, userName); + } + } +} -- cgit v1.2.3