From 4e7325d08f33c4034230f59673435a069aed1fba Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Wed, 30 Oct 2019 17:56:06 +0000 Subject: [PATCH] Swapped ViewModel injection for the standard VM connection to easily access application context --- .../java/com/rtbishop/lookingsat/Injector.kt | 8 +------- .../com/rtbishop/lookingsat/vm/MainViewModel.kt | 10 +++++++--- .../rtbishop/lookingsat/vm/ViewModelFactory.kt | 17 ----------------- 3 files changed, 8 insertions(+), 27 deletions(-) delete mode 100644 app/src/main/java/com/rtbishop/lookingsat/vm/ViewModelFactory.kt diff --git a/app/src/main/java/com/rtbishop/lookingsat/Injector.kt b/app/src/main/java/com/rtbishop/lookingsat/Injector.kt index b81109f7..0df5e4ef 100644 --- a/app/src/main/java/com/rtbishop/lookingsat/Injector.kt +++ b/app/src/main/java/com/rtbishop/lookingsat/Injector.kt @@ -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)) - } } \ No newline at end of file diff --git a/app/src/main/java/com/rtbishop/lookingsat/vm/MainViewModel.kt b/app/src/main/java/com/rtbishop/lookingsat/vm/MainViewModel.kt index 51e6b35c..58a431c0 100644 --- a/app/src/main/java/com/rtbishop/lookingsat/vm/MainViewModel.kt +++ b/app/src/main/java/com/rtbishop/lookingsat/vm/MainViewModel.kt @@ -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() \ No newline at end of file +class MainViewModel(application: Application) : AndroidViewModel(application) { + + private var repository: Repository = Injector.provideRepository(application) +} \ No newline at end of file diff --git a/app/src/main/java/com/rtbishop/lookingsat/vm/ViewModelFactory.kt b/app/src/main/java/com/rtbishop/lookingsat/vm/ViewModelFactory.kt deleted file mode 100644 index 9c14da3a..00000000 --- a/app/src/main/java/com/rtbishop/lookingsat/vm/ViewModelFactory.kt +++ /dev/null @@ -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 create(modelClass: Class): T { - if (modelClass.isAssignableFrom(MainViewModel::class.java)) { - @Suppress("UNCHECKED_CAST") - return MainViewModel(context.applicationContext, repository) as T - } - throw IllegalArgumentException("Unknown ViewModel") - } -} \ No newline at end of file