diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchMediator.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchMediator.kt index f78c8f0bf..087b86514 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchMediator.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchMediator.kt @@ -43,7 +43,8 @@ class ContactSearchMediator( repository = ContactSearchRepository(), performSafetyNumberChecks = performSafetyNumberChecks, arbitraryRepository = arbitraryRepository, - searchRepository = SearchRepository(fragment.requireContext().getString(R.string.note_to_self)) + searchRepository = SearchRepository(fragment.requireContext().getString(R.string.note_to_self)), + contactSearchPagedDataSourceRepository = ContactSearchPagedDataSourceRepository(fragment.requireContext()) ) )[ContactSearchViewModel::class.java] diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSource.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSource.kt index 06bce6f71..216faf8d5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSource.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSource.kt @@ -9,7 +9,6 @@ import org.thoughtcrime.securesms.contacts.paged.collections.StoriesSearchCollec import org.thoughtcrime.securesms.database.model.DistributionListPrivacyMode import org.thoughtcrime.securesms.database.model.GroupRecord import org.thoughtcrime.securesms.database.model.ThreadRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.keyvalue.StorySend import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId @@ -24,7 +23,7 @@ import java.util.concurrent.TimeUnit */ class ContactSearchPagedDataSource( private val contactConfiguration: ContactSearchConfiguration, - private val contactSearchPagedDataSourceRepository: ContactSearchPagedDataSourceRepository = ContactSearchPagedDataSourceRepository(ApplicationDependencies.getApplication()), + private val contactSearchPagedDataSourceRepository: ContactSearchPagedDataSourceRepository, private val arbitraryRepository: ArbitraryRepository? = null, private val searchRepository: SearchRepository? = null ) : PagedDataSource { diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSourceRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSourceRepository.kt index 5e7b4308b..9a3cd9beb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSourceRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSourceRepository.kt @@ -22,10 +22,11 @@ import org.thoughtcrime.securesms.recipients.RecipientId * having to deal with database access. */ open class ContactSearchPagedDataSourceRepository( - private val context: Context + context: Context ) { private val contactRepository = ContactRepository(context, context.getString(R.string.note_to_self)) + private val context = context.applicationContext open fun getLatestStorySends(activeStoryCutoffDuration: Long): List { return SignalStore.storyValues() diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchViewModel.kt index e5f9adf83..688db7624 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchViewModel.kt @@ -30,7 +30,8 @@ class ContactSearchViewModel( private val performSafetyNumberChecks: Boolean, private val safetyNumberRepository: SafetyNumberRepository = SafetyNumberRepository(), private val arbitraryRepository: ArbitraryRepository?, - private val searchRepository: SearchRepository + private val searchRepository: SearchRepository, + private val contactSearchPagedDataSourceRepository: ContactSearchPagedDataSourceRepository ) : ViewModel() { private val disposables = CompositeDisposable() @@ -57,7 +58,12 @@ class ContactSearchViewModel( } fun setConfiguration(contactSearchConfiguration: ContactSearchConfiguration) { - val pagedDataSource = ContactSearchPagedDataSource(contactSearchConfiguration, arbitraryRepository = arbitraryRepository, searchRepository = searchRepository) + val pagedDataSource = ContactSearchPagedDataSource( + contactSearchConfiguration, + arbitraryRepository = arbitraryRepository, + searchRepository = searchRepository, + contactSearchPagedDataSourceRepository = contactSearchPagedDataSourceRepository + ) pagedData.value = PagedData.createForLiveData(pagedDataSource, pagingConfig) } @@ -149,7 +155,8 @@ class ContactSearchViewModel( private val repository: ContactSearchRepository, private val performSafetyNumberChecks: Boolean, private val arbitraryRepository: ArbitraryRepository?, - private val searchRepository: SearchRepository + private val searchRepository: SearchRepository, + private val contactSearchPagedDataSourceRepository: ContactSearchPagedDataSourceRepository ) : ViewModelProvider.Factory { override fun create(modelClass: Class): T { return modelClass.cast( @@ -158,7 +165,8 @@ class ContactSearchViewModel( contactSearchRepository = repository, performSafetyNumberChecks = performSafetyNumberChecks, arbitraryRepository = arbitraryRepository, - searchRepository = searchRepository + searchRepository = searchRepository, + contactSearchPagedDataSourceRepository = contactSearchPagedDataSourceRepository ) ) as T } 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 4d656b691..fbc810781 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 @@ -12,12 +12,15 @@ import org.signal.paging.ProxyPagingController import org.thoughtcrime.securesms.contacts.paged.ContactSearchConfiguration import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey import org.thoughtcrime.securesms.contacts.paged.ContactSearchPagedDataSource +import org.thoughtcrime.securesms.contacts.paged.ContactSearchPagedDataSourceRepository import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.stories.Stories import org.thoughtcrime.securesms.util.rx.RxStore -class StoriesPrivacySettingsViewModel : ViewModel() { +class StoriesPrivacySettingsViewModel( + private val contactSearchPagedDataSourceRepository: ContactSearchPagedDataSourceRepository +) : ViewModel() { private val repository = StoriesPrivacySettingsRepository() @@ -49,7 +52,7 @@ class StoriesPrivacySettingsViewModel : ViewModel() { ) } - val pagedDataSource = ContactSearchPagedDataSource(configuration) + val pagedDataSource = ContactSearchPagedDataSource(configuration, contactSearchPagedDataSourceRepository) val observablePagedData = PagedData.createForObservable(pagedDataSource, pagingConfig) pagingController.set(observablePagedData.controller)