Skip to content
Snippets Groups Projects
Commit f11db261 authored by naufal's avatar naufal
Browse files

feat: TransactionViewModel fix and add factory

parent cfdb1425
No related merge requests found
...@@ -8,7 +8,7 @@ import com.example.myapplication.ui.transactions.TransactionViewModel ...@@ -8,7 +8,7 @@ import com.example.myapplication.ui.transactions.TransactionViewModel
class AddTransactionActivity : AppCompatActivity() { class AddTransactionActivity : AppCompatActivity() {
private lateinit var binding: ActivityAddTransactionBinding private lateinit var binding: ActivityAddTransactionBinding
private var transactionViewModel = TransactionViewModel() private var transactionViewModel = TransactionViewModel(application)
private lateinit var transactionRepository: TransactionRepository private lateinit var transactionRepository: TransactionRepository
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
......
...@@ -49,8 +49,6 @@ class MainActivity : AppCompatActivity(){ ...@@ -49,8 +49,6 @@ class MainActivity : AppCompatActivity(){
setupActionBarWithNavController(navController, appBarConfiguration) setupActionBarWithNavController(navController, appBarConfiguration)
navView.setupWithNavController(navController) navView.setupWithNavController(navController)
} }
override fun onStart() { override fun onStart() {
......
...@@ -40,8 +40,9 @@ class ListTransactionFragment : Fragment() { ...@@ -40,8 +40,9 @@ class ListTransactionFragment : Fragment() {
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View { ): View {
val transactionViewModel = val factory = TransactionViewModelFactory(requireActivity().application)
ViewModelProvider(this).get(TransactionViewModel::class.java) val transactionViewModel = ViewModelProvider(this, factory).get(TransactionViewModel::class.java)
_binding = FragmentListTransactionBinding.inflate(inflater, container, false) _binding = FragmentListTransactionBinding.inflate(inflater, container, false)
val root: View = binding.root val root: View = binding.root
......
package com.example.myapplication.ui.transactions package com.example.myapplication.ui.transactions
import android.app.Application
import android.content.Context import android.content.Context
import android.util.Log import android.util.Log
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
...@@ -9,8 +10,8 @@ import androidx.lifecycle.ViewModel ...@@ -9,8 +10,8 @@ import androidx.lifecycle.ViewModel
import com.example.myapplication.entities.TransactionEntity import com.example.myapplication.entities.TransactionEntity
import com.example.myapplication.repository.TransactionRepository import com.example.myapplication.repository.TransactionRepository
class TransactionViewModel() : ViewModel() { class TransactionViewModel(application : Application) : ViewModel() {
// private val repository: TransactionRepository = TransactionRepository(context) private val repository: TransactionRepository = TransactionRepository(application)
// var allTransactions : LiveData<List<TransactionEntity>> = repository.allTransactions // var allTransactions : LiveData<List<TransactionEntity>> = repository.allTransactions
// //
// var transactionObserver = Observer<List<TransactionEntity>> { // var transactionObserver = Observer<List<TransactionEntity>> {
......
package com.example.myapplication.ui.transactions;
import android.app.Application;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
public class TransactionViewModelFactory implements ViewModelProvider.Factory {
private Application mApplication;
public TransactionViewModelFactory(Application application) {
mApplication = application;
}
@Override
public <T extends ViewModel> T create(Class<T> modelClass) {
if (modelClass.isAssignableFrom(TransactionViewModel.class)) {
return (T) new TransactionViewModel(mApplication);
}
throw new IllegalArgumentException("Unknown ViewModel class");
}
}
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment