diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/story/StoriesPrivacySettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/story/StoriesPrivacySettingsFragment.kt index a11a6f19de..688db2a11b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/story/StoriesPrivacySettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/story/StoriesPrivacySettingsFragment.kt @@ -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() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/story/StoriesPrivacySettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/story/StoriesPrivacySettingsViewModel.kt index fbc8107819..0937d8c4af 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/story/StoriesPrivacySettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/story/StoriesPrivacySettingsViewModel.kt @@ -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 create(modelClass: Class): T { + return modelClass.cast(StoriesPrivacySettingsViewModel(contactSearchPagedDataSourceRepository)) as T + } + } }