mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Swapped ViewModel injection for the standard VM connection to easily access application context
This commit is contained in:
1 parent
d530eb9031
commit
4e7325d08f
3 files changed
+8
-27
No files matched your search
@@ -1,13 +1,11 @@
|
||||
package com.rtbishop.lookingsat
|
||||
|
||||
import android.content.Context
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import com.rtbishop.lookingsat.api.RemoteDataSource
|
||||
import com.rtbishop.lookingsat.api.TransmittersApi
|
||||
import com.rtbishop.lookingsat.db.LocalDataSource
|
||||
import com.rtbishop.lookingsat.db.TransmittersDatabase
|
||||
import com.rtbishop.lookingsat.repo.Repository
|
||||
import com.rtbishop.lookingsat.vm.ViewModelFactory
|
||||
import okhttp3.OkHttpClient
|
||||
import retrofit2.Retrofit
|
||||
import retrofit2.converter.gson.GsonConverterFactory
|
||||
@@ -32,11 +30,7 @@ object Injector {
|
||||
return LocalDataSource(dao)
|
||||
}
|
||||
|
||||
private fun provideRepository(context: Context): Repository {
|
||||
fun provideRepository(context: Context): Repository {
|
||||
return Repository(provideLocalDataSource(context), provideRemoteDataSource())
|
||||
}
|
||||
|
||||
private fun provideViewModelFactory(context: Context): ViewModelProvider.Factory {
|
||||
return ViewModelFactory(context, provideRepository(context))
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,11 @@
|
||||
package com.rtbishop.lookingsat.vm
|
||||
|
||||
import android.content.Context
|
||||
import androidx.lifecycle.ViewModel
|
||||
import android.app.Application
|
||||
import androidx.lifecycle.AndroidViewModel
|
||||
import com.rtbishop.lookingsat.Injector
|
||||
import com.rtbishop.lookingsat.repo.Repository
|
||||
|
||||
class MainViewModel(private val context: Context, private val repository: Repository) : ViewModel()
|
||||
class MainViewModel(application: Application) : AndroidViewModel(application) {
|
||||
|
||||
private var repository: Repository = Injector.provideRepository(application)
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.rtbishop.lookingsat.vm
|
||||
|
||||
import android.content.Context
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import com.rtbishop.lookingsat.repo.Repository
|
||||
|
||||
class ViewModelFactory(private val context: Context, private val repository: Repository) :
|
||||
ViewModelProvider.Factory {
|
||||
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
|
||||
if (modelClass.isAssignableFrom(MainViewModel::class.java)) {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
return MainViewModel(context.applicationContext, repository) as T
|
||||
}
|
||||
throw IllegalArgumentException("Unknown ViewModel")
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user