Skip to content

Commit

Permalink
[feat] : ViewModelFactory 생성
Browse files Browse the repository at this point in the history
  • Loading branch information
chanubc committed Jan 2, 2024
1 parent 4f792d5 commit 28064d4
Showing 1 changed file with 35 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package org.sopt.dosopttemplate.utils

import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import org.sopt.dosopttemplate.data.ApiFactory
import org.sopt.dosopttemplate.data.repositoryimpl.AuthRepository
import org.sopt.dosopttemplate.data.repositoryimpl.ReqresRepositoryImpl
import org.sopt.dosopttemplate.ui.doandroid.DoAndroidViewModel
import org.sopt.dosopttemplate.ui.login.AuthViewModel
import org.sopt.dosopttemplate.ui.login.SignUpViewModel

class ViewModelFactory :
ViewModelProvider.Factory {

override fun <T : ViewModel> create(modelClass: Class<T>): T {
return when {
modelClass.isAssignableFrom(AuthViewModel::class.java) -> {
val repository = AuthRepository(ApiFactory.ServicePool.authService)
AuthViewModel(repository) as T
}

modelClass.isAssignableFrom(SignUpViewModel::class.java) -> {
val repository = AuthRepository(ApiFactory.ServicePool.authService)
SignUpViewModel(repository) as T
}

modelClass.isAssignableFrom(DoAndroidViewModel::class.java) -> {
val repository = ReqresRepositoryImpl(ApiFactory.ServicePool.userService)
DoAndroidViewModel(repository) as T
}
// Add more ViewModel cases as needed
else -> throw IllegalArgumentException("Unknown ViewModel class: ${modelClass.name}")
}
}
}

0 comments on commit 28064d4

Please sign in to comment.