mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
Remove unnecessary GlobalSearchPresenter.Factory
This commit is contained in:
+2
-6
@@ -30,7 +30,7 @@ import io.element.android.features.announcement.api.AnnouncementService
|
|||||||
import io.element.android.features.home.impl.datasource.RoomListDataSource
|
import io.element.android.features.home.impl.datasource.RoomListDataSource
|
||||||
import io.element.android.features.home.impl.filters.RoomListFiltersState
|
import io.element.android.features.home.impl.filters.RoomListFiltersState
|
||||||
import io.element.android.features.home.impl.filters.into
|
import io.element.android.features.home.impl.filters.into
|
||||||
import io.element.android.features.home.impl.search.GlobalSearchPresenter
|
import io.element.android.features.home.impl.search.GlobalSearchState
|
||||||
import io.element.android.features.home.impl.search.RoomListSearchEvent
|
import io.element.android.features.home.impl.search.RoomListSearchEvent
|
||||||
import io.element.android.features.home.impl.search.RoomListSearchState
|
import io.element.android.features.home.impl.search.RoomListSearchState
|
||||||
import io.element.android.features.home.impl.spacefilters.SpaceFiltersState
|
import io.element.android.features.home.impl.spacefilters.SpaceFiltersState
|
||||||
@@ -86,15 +86,11 @@ class RoomListPresenter(
|
|||||||
private val announcementService: AnnouncementService,
|
private val announcementService: AnnouncementService,
|
||||||
private val coldStartWatcher: AnalyticsColdStartWatcher,
|
private val coldStartWatcher: AnalyticsColdStartWatcher,
|
||||||
private val spaceFiltersPresenter: Presenter<SpaceFiltersState>,
|
private val spaceFiltersPresenter: Presenter<SpaceFiltersState>,
|
||||||
private val globalSearchPresenterFactory: GlobalSearchPresenter.Factory,
|
private val globalSearchPresenter: Presenter<GlobalSearchState>,
|
||||||
private val featureFlagService: FeatureFlagService,
|
private val featureFlagService: FeatureFlagService,
|
||||||
) : Presenter<RoomListState> {
|
) : Presenter<RoomListState> {
|
||||||
private val encryptionService = client.encryptionService
|
private val encryptionService = client.encryptionService
|
||||||
|
|
||||||
private val globalSearchPresenter by lazy {
|
|
||||||
globalSearchPresenterFactory.create(coroutineScope = client.sessionCoroutineScope)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
override fun present(): RoomListState {
|
override fun present(): RoomListState {
|
||||||
val coroutineScope = rememberCoroutineScope()
|
val coroutineScope = rememberCoroutineScope()
|
||||||
|
|||||||
+5
-11
@@ -15,16 +15,16 @@ import androidx.compose.runtime.getValue
|
|||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.produceState
|
import androidx.compose.runtime.produceState
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import dev.zacsweers.metro.Assisted
|
import dev.zacsweers.metro.ContributesBinding
|
||||||
import dev.zacsweers.metro.AssistedFactory
|
|
||||||
import dev.zacsweers.metro.AssistedInject
|
|
||||||
import io.element.android.libraries.androidutils.filesize.FileSizeFormatter
|
import io.element.android.libraries.androidutils.filesize.FileSizeFormatter
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
import io.element.android.libraries.architecture.Presenter
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
||||||
import io.element.android.libraries.dateformatter.api.DateFormatter
|
import io.element.android.libraries.dateformatter.api.DateFormatter
|
||||||
import io.element.android.libraries.dateformatter.api.DateFormatterMode
|
import io.element.android.libraries.dateformatter.api.DateFormatterMode
|
||||||
|
import io.element.android.libraries.di.SessionScope
|
||||||
import io.element.android.libraries.eventformatter.api.RoomLatestEventFormatter
|
import io.element.android.libraries.eventformatter.api.RoomLatestEventFormatter
|
||||||
import io.element.android.libraries.featureflag.api.FeatureFlagService
|
import io.element.android.libraries.featureflag.api.FeatureFlagService
|
||||||
import io.element.android.libraries.featureflag.api.FeatureFlags
|
import io.element.android.libraries.featureflag.api.FeatureFlags
|
||||||
@@ -48,7 +48,6 @@ import io.element.android.libraries.matrix.api.timeline.item.event.isMediaConten
|
|||||||
import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailType
|
import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailType
|
||||||
import io.element.android.libraries.matrix.ui.messages.toPlainText
|
import io.element.android.libraries.matrix.ui.messages.toPlainText
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
import kotlinx.coroutines.CoroutineScope
|
|
||||||
import kotlinx.coroutines.async
|
import kotlinx.coroutines.async
|
||||||
import kotlinx.coroutines.awaitAll
|
import kotlinx.coroutines.awaitAll
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
@@ -58,9 +57,8 @@ import kotlinx.coroutines.launch
|
|||||||
import kotlin.jvm.optionals.getOrElse
|
import kotlin.jvm.optionals.getOrElse
|
||||||
import kotlin.time.Duration.Companion.milliseconds
|
import kotlin.time.Duration.Companion.milliseconds
|
||||||
|
|
||||||
@AssistedInject
|
@ContributesBinding(SessionScope::class)
|
||||||
class GlobalSearchPresenter(
|
class GlobalSearchPresenter(
|
||||||
@Assisted private val coroutineScope: CoroutineScope,
|
|
||||||
private val roomListSearchDataSourceFactory: RoomListSearchDataSource.Factory,
|
private val roomListSearchDataSourceFactory: RoomListSearchDataSource.Factory,
|
||||||
private val messageSearchService: MessageSearchService,
|
private val messageSearchService: MessageSearchService,
|
||||||
private val featureFlagService: FeatureFlagService,
|
private val featureFlagService: FeatureFlagService,
|
||||||
@@ -71,13 +69,9 @@ class GlobalSearchPresenter(
|
|||||||
private val coroutineDispatchers: CoroutineDispatchers,
|
private val coroutineDispatchers: CoroutineDispatchers,
|
||||||
private val matrixClient: MatrixClient,
|
private val matrixClient: MatrixClient,
|
||||||
) : Presenter<GlobalSearchState> {
|
) : Presenter<GlobalSearchState> {
|
||||||
@AssistedFactory
|
|
||||||
fun interface Factory {
|
|
||||||
fun create(coroutineScope: CoroutineScope): GlobalSearchPresenter
|
|
||||||
}
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
override fun present(): GlobalSearchState {
|
override fun present(): GlobalSearchState {
|
||||||
|
val coroutineScope = rememberCoroutineScope()
|
||||||
val isEnabled by produceState(false) {
|
val isEnabled by produceState(false) {
|
||||||
featureFlagService.isFeatureEnabledFlow(FeatureFlags.MessageSearch).collectLatest { value = it }
|
featureFlagService.isFeatureEnabledFlow(FeatureFlags.MessageSearch).collectLatest { value = it }
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-6
@@ -683,12 +683,9 @@ class RoomListPresenterTest {
|
|||||||
analyticsService = FakeAnalyticsService(),
|
analyticsService = FakeAnalyticsService(),
|
||||||
),
|
),
|
||||||
searchPresenter = searchPresenter,
|
searchPresenter = searchPresenter,
|
||||||
globalSearchPresenterFactory = object : GlobalSearchPresenter.Factory {
|
globalSearchPresenter = createGlobalSearchPresenter(
|
||||||
override fun create(coroutineScope: CoroutineScope) = createGlobalSearchPresenter(
|
matrixClient = client,
|
||||||
matrixClient = client,
|
),
|
||||||
coroutineScope = coroutineScope,
|
|
||||||
)
|
|
||||||
},
|
|
||||||
filtersPresenter = filtersPresenter,
|
filtersPresenter = filtersPresenter,
|
||||||
spaceFiltersPresenter = spaceFiltersPresenter,
|
spaceFiltersPresenter = spaceFiltersPresenter,
|
||||||
analyticsService = analyticsService,
|
analyticsService = analyticsService,
|
||||||
|
|||||||
-2
@@ -211,10 +211,8 @@ internal fun TestScope.createGlobalSearchPresenter(
|
|||||||
fileSizeFormatter: FileSizeFormatter = FakeFileSizeFormatter(),
|
fileSizeFormatter: FileSizeFormatter = FakeFileSizeFormatter(),
|
||||||
permalinkParser: PermalinkParser = FakePermalinkParser(),
|
permalinkParser: PermalinkParser = FakePermalinkParser(),
|
||||||
matrixClient: MatrixClient = FakeMatrixClient(),
|
matrixClient: MatrixClient = FakeMatrixClient(),
|
||||||
coroutineScope: CoroutineScope = backgroundScope,
|
|
||||||
): GlobalSearchPresenter {
|
): GlobalSearchPresenter {
|
||||||
return GlobalSearchPresenter(
|
return GlobalSearchPresenter(
|
||||||
coroutineScope = coroutineScope,
|
|
||||||
roomListSearchDataSourceFactory = object : RoomListSearchDataSource.Factory {
|
roomListSearchDataSourceFactory = object : RoomListSearchDataSource.Factory {
|
||||||
override fun create(coroutineScope: CoroutineScope): RoomListSearchDataSource {
|
override fun create(coroutineScope: CoroutineScope): RoomListSearchDataSource {
|
||||||
return RoomListSearchDataSource(
|
return RoomListSearchDataSource(
|
||||||
|
|||||||
Reference in New Issue
Block a user