mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-23 20:48:43 +00:00
Add factory for story privacy view model.
This commit is contained in:
@@ -15,6 +15,7 @@ import org.thoughtcrime.securesms.components.settings.DSLSettingsText
|
|||||||
import org.thoughtcrime.securesms.components.settings.configure
|
import org.thoughtcrime.securesms.components.settings.configure
|
||||||
import org.thoughtcrime.securesms.contacts.paged.ContactSearchAdapter
|
import org.thoughtcrime.securesms.contacts.paged.ContactSearchAdapter
|
||||||
import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey
|
import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey
|
||||||
|
import org.thoughtcrime.securesms.contacts.paged.ContactSearchPagedDataSourceRepository
|
||||||
import org.thoughtcrime.securesms.groups.ParcelableGroupId
|
import org.thoughtcrime.securesms.groups.ParcelableGroupId
|
||||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||||
import org.thoughtcrime.securesms.mediasend.v2.stories.ChooseGroupStoryBottomSheet
|
import org.thoughtcrime.securesms.mediasend.v2.stories.ChooseGroupStoryBottomSheet
|
||||||
@@ -39,7 +40,10 @@ class StoriesPrivacySettingsFragment :
|
|||||||
ChooseStoryTypeBottomSheet.Callback,
|
ChooseStoryTypeBottomSheet.Callback,
|
||||||
GroupStoryEducationSheet.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 lifecycleDisposable = LifecycleDisposable()
|
||||||
private val progressDisplayManager = DialogFragmentDisplayManager { ProgressCardDialogFragment() }
|
private val progressDisplayManager = DialogFragmentDisplayManager { ProgressCardDialogFragment() }
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.thoughtcrime.securesms.stories.settings.story
|
package org.thoughtcrime.securesms.stories.settings.story
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||||
import io.reactivex.rxjava3.core.BackpressureStrategy
|
import io.reactivex.rxjava3.core.BackpressureStrategy
|
||||||
import io.reactivex.rxjava3.core.Flowable
|
import io.reactivex.rxjava3.core.Flowable
|
||||||
@@ -19,7 +20,7 @@ import org.thoughtcrime.securesms.stories.Stories
|
|||||||
import org.thoughtcrime.securesms.util.rx.RxStore
|
import org.thoughtcrime.securesms.util.rx.RxStore
|
||||||
|
|
||||||
class StoriesPrivacySettingsViewModel(
|
class StoriesPrivacySettingsViewModel(
|
||||||
private val contactSearchPagedDataSourceRepository: ContactSearchPagedDataSourceRepository
|
contactSearchPagedDataSourceRepository: ContactSearchPagedDataSourceRepository
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val repository = StoriesPrivacySettingsRepository()
|
private val repository = StoriesPrivacySettingsRepository()
|
||||||
@@ -99,4 +100,12 @@ class StoriesPrivacySettingsViewModel(
|
|||||||
store.update { it.copy(userHasStories = userHasActiveStories) }
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user