anytype-kotlin-wild/presentation/src/main/java/com/anytypeio/anytype/presentation/relations/value/tagstatus/TagStatusViewModelFactory.kt

47 lines
1.9 KiB
Kotlin

package com.anytypeio.anytype.presentation.relations.value.tagstatus
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import com.anytypeio.anytype.analytics.base.Analytics
import com.anytypeio.anytype.core_models.Payload
import com.anytypeio.anytype.domain.misc.UrlBuilder
import com.anytypeio.anytype.domain.`object`.UpdateDetail
import com.anytypeio.anytype.domain.objects.StoreOfObjectTypes
import com.anytypeio.anytype.domain.objects.options.GetOptions
import com.anytypeio.anytype.domain.workspace.SpaceManager
import com.anytypeio.anytype.presentation.editor.Editor
import com.anytypeio.anytype.presentation.relations.providers.ObjectRelationProvider
import com.anytypeio.anytype.presentation.relations.providers.ObjectValueProvider
import com.anytypeio.anytype.presentation.util.Dispatcher
import javax.inject.Inject
class TagStatusViewModelFactory @Inject constructor(
private val params: TagStatusViewModel.Params,
private val relations: ObjectRelationProvider,
private val values: ObjectValueProvider,
private val storage: Editor.Storage,
private val storeOfObjectTypes: StoreOfObjectTypes,
private val urlBuilder: UrlBuilder,
private val dispatcher: Dispatcher<Payload>,
private val setObjectDetails: UpdateDetail,
private val analytics: Analytics,
private val getOptions: GetOptions,
private val spaceManager: SpaceManager
) : ViewModelProvider.Factory {
@Suppress("UNCHECKED_CAST")
override fun <T : ViewModel> create(
modelClass: Class<T>
) = TagStatusViewModel(
params = params,
relations = relations,
values = values,
storage = storage,
storeOfObjectTypes = storeOfObjectTypes,
dispatcher = dispatcher,
setObjectDetails = setObjectDetails,
urlBuilder = urlBuilder,
analytics = analytics,
getOptions = getOptions,
spaceManager = spaceManager,
) as T
}