Add factory for story privacy view model.

This commit is contained in:
Alex Hart
2023-02-01 12:22:55 -04:00
parent c76ca957e1
commit f320cf8833
2 changed files with 15 additions and 2 deletions

View File

@@ -15,6 +15,7 @@ import org.thoughtcrime.securesms.components.settings.DSLSettingsText
import org.thoughtcrime.securesms.components.settings.configure
import org.thoughtcrime.securesms.contacts.paged.ContactSearchAdapter
import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey
import org.thoughtcrime.securesms.contacts.paged.ContactSearchPagedDataSourceRepository
import org.thoughtcrime.securesms.groups.ParcelableGroupId
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.mediasend.v2.stories.ChooseGroupStoryBottomSheet
@@ -39,7 +40,10 @@ class StoriesPrivacySettingsFragment :
ChooseStoryTypeBottomSheet.Callback,
GroupStoryEducationSheet.Callback {
private val viewModel: StoriesPrivacySettingsViewModel by viewModels()
private val viewModel: StoriesPrivacySettingsViewModel by viewModels(factoryProducer = {
StoriesPrivacySettingsViewModel.Factory(ContactSearchPagedDataSourceRepository(requireContext()))
})
private val lifecycleDisposable = LifecycleDisposable()
private val progressDisplayManager = DialogFragmentDisplayManager { ProgressCardDialogFragment() }

View File

@@ -1,6 +1,7 @@
package org.thoughtcrime.securesms.stories.settings.story
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.core.BackpressureStrategy
import io.reactivex.rxjava3.core.Flowable
@@ -19,7 +20,7 @@ import org.thoughtcrime.securesms.stories.Stories
import org.thoughtcrime.securesms.util.rx.RxStore
class StoriesPrivacySettingsViewModel(
private val contactSearchPagedDataSourceRepository: ContactSearchPagedDataSourceRepository
contactSearchPagedDataSourceRepository: ContactSearchPagedDataSourceRepository
) : ViewModel() {
private val repository = StoriesPrivacySettingsRepository()
@@ -99,4 +100,12 @@ class StoriesPrivacySettingsViewModel(
store.update { it.copy(userHasStories = userHasActiveStories) }
}
}
class Factory(
private val contactSearchPagedDataSourceRepository: ContactSearchPagedDataSourceRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(StoriesPrivacySettingsViewModel(contactSearchPagedDataSourceRepository)) as T
}
}
}