Skip to content

Commit

Permalink
[Add/#9] ViewModelFactory.kt 제거
Browse files Browse the repository at this point in the history
  • Loading branch information
gaeun5744 committed Jun 26, 2023
1 parent 909f3d3 commit de7236c
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions app/src/main/java/org/android/go/sopt/util/ViewModelFactory.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package org.android.go.sopt.util

import android.content.Context
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import org.android.go.sopt.present.viewModel.LoginPageViewModel
import org.android.go.sopt.present.viewModel.MainPageViewModel
import org.android.go.sopt.remote.ServicePool
import org.android.go.sopt.remote.remoteData.datasource.LoginPageDataSource
import org.android.go.sopt.remote.remoteData.datasource.MainPageDataSource
import org.android.go.sopt.remote.remoteData.repoImpl.LoginPageRepoImpl
import org.android.go.sopt.remote.remoteData.repoImpl.MainPageRepoImpl

class ViewModelFactory(private val context: Context) : ViewModelProvider.Factory {

override fun <T : ViewModel> create(modelClass: Class<T>): T {
return when {
modelClass.isAssignableFrom(LoginPageViewModel::class.java) -> {
val repository = LoginPageRepoImpl(LoginPageDataSource(ServicePool.loginPageService))
LoginPageViewModel(repository) as T
}
modelClass.isAssignableFrom(MainPageViewModel::class.java) -> {
val repository = MainPageRepoImpl(MainPageDataSource(ServicePool.mainPageService))
MainPageViewModel(repository) as T
}
else -> {
throw IllegalArgumentException("Failed to create ViewModel : ${modelClass.name}")
}
}
}
}

0 comments on commit de7236c

Please sign in to comment.