Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ import com.wire.kalium.logic.feature.message.SendKnockUseCase
import com.wire.kalium.logic.feature.message.SendLocationUseCase
import com.wire.kalium.logic.feature.message.SendMultipartMessageUseCase
import com.wire.kalium.logic.feature.message.SendTextMessageUseCase
import com.wire.kalium.logic.feature.message.SearchMessagesGloballyUseCase
import com.wire.kalium.logic.feature.message.ToggleReactionUseCase
import com.wire.kalium.logic.feature.message.composite.SendButtonActionMessageUseCase
import com.wire.kalium.logic.feature.message.draft.GetMessageDraftUseCase
Expand Down Expand Up @@ -180,6 +181,10 @@ class MessageModule {
): GetPaginatedFlowOfMessagesBySearchQueryAndConversationIdUseCase =
messageScope.getPaginatedFlowOfMessagesBySearchQueryAndConversation

@Provides
fun provideSearchMessagesGloballyUseCase(messageScope: MessageScope): SearchMessagesGloballyUseCase =
messageScope.searchMessagesGlobally

@Provides
fun provideGetSearchedConversationMessagePositionUseCase(messageScope: MessageScope): GetSearchedConversationMessagePositionUseCase =
messageScope.getSearchedConversationMessagePosition
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ import com.wire.android.ui.home.drawer.HomeDrawerViewModel
import com.wire.android.ui.home.gallery.MediaGalleryViewModel
import com.wire.android.ui.home.messagecomposer.location.LocationPickerViewModel
import com.wire.android.ui.home.newconversation.NewConversationViewModel
import com.wire.android.ui.home.search.GlobalSearchViewModel
import com.wire.android.ui.home.settings.SettingsViewModel
import com.wire.android.ui.home.settings.SettingsViewModelFactory
import com.wire.android.ui.home.settings.account.MyAccountViewModel
Expand Down Expand Up @@ -214,6 +215,12 @@ object WireMetroViewModelBindings {
fun newConversationViewModel(factory: HomeViewModelFactory): ViewModel =
factory.newConversationViewModel()

@Provides
@IntoMap
@ViewModelKey(GlobalSearchViewModel::class)
fun globalSearchViewModel(factory: HomeViewModelFactory): ViewModel =
factory.globalSearchViewModel()

@Provides
@IntoMap
@ViewModelKey(CallFeedbackViewModel::class)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import com.wire.android.R
import com.ramcosta.composedestinations.generated.app.destinations.AllConversationsScreenDestination
import com.ramcosta.composedestinations.generated.app.destinations.ArchiveScreenDestination
import com.ramcosta.composedestinations.generated.app.destinations.GlobalCellsScreenDestination
import com.ramcosta.composedestinations.generated.app.destinations.GlobalSearchScreenDestination
import com.ramcosta.composedestinations.generated.app.destinations.MeetingsScreenDestination
import com.ramcosta.composedestinations.generated.app.destinations.SettingsScreenDestination
import com.ramcosta.composedestinations.generated.app.destinations.VaultScreenDestination
Expand All @@ -50,6 +51,13 @@ sealed class HomeDestination(
direction = AllConversationsScreenDestination
)

data object GlobalSearch : HomeDestination(
title = UIText.StringResource(R.string.global_search_screen_title),
icon = R.drawable.ic_conversation,
withUserAvatar = false,
direction = GlobalSearchScreenDestination
)

data object Settings : HomeDestination(
title = UIText.StringResource(R.string.settings_screen_title),
icon = R.drawable.ic_settings,
Expand Down Expand Up @@ -142,6 +150,6 @@ sealed class HomeDestination(
values().find { it.direction.baseRoute == fullRoute.getBaseRoute() }

fun values(): Array<HomeDestination> =
arrayOf(Conversations, Settings, Vault, Archive, Support, TeamManagement, WhatsNew, Cells, Meetings)
arrayOf(Conversations, GlobalSearch, Settings, Vault, Archive, Support, TeamManagement, WhatsNew, Cells, Meetings)
}
}
5 changes: 5 additions & 0 deletions app/src/main/kotlin/com/wire/android/ui/home/HomeScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.compose.LocalLifecycleOwner
import com.ramcosta.composedestinations.generated.app.destinations.ConversationFoldersScreenDestination
import com.ramcosta.composedestinations.generated.app.destinations.ConversationScreenDestination
import com.ramcosta.composedestinations.generated.app.destinations.GlobalSearchScreenDestination
import com.ramcosta.composedestinations.generated.app.destinations.NewConversationSearchPeopleScreenDestination
import com.ramcosta.composedestinations.generated.app.destinations.OtherUserProfileScreenDestination
import com.ramcosta.composedestinations.generated.app.destinations.SelfUserProfileScreenDestination
Expand Down Expand Up @@ -261,6 +262,10 @@ fun HomeContent(
}

fun openWireHomeDestination(item: HomeDestination) {
if (item == HomeDestination.GlobalSearch) {
navigator.navigate(NavigationCommand(GlobalSearchScreenDestination))
return
}
item.direction.handleNavigation(
context = context,
handleOtherDirection = { direction ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import com.wire.android.ui.home.conversationslist.model.ConversationsSource
import com.wire.android.ui.home.drawer.HomeDrawerViewModel
import com.wire.android.ui.home.newconversation.NewConversationViewModel
import com.wire.android.ui.home.search.GlobalSearchViewModel
import com.wire.android.ui.home.sync.FeatureFlagNotificationViewModel
import com.wire.android.util.dispatchers.DispatcherProvider
import com.wire.android.util.ui.UiTextResolver
Expand All @@ -42,13 +43,15 @@
import com.wire.kalium.logic.feature.client.NeedsToRegisterClientUseCase
import com.wire.kalium.logic.feature.client.ObserveIsWireCellsEnabledUseCase
import com.wire.kalium.logic.feature.conversation.ObserveArchivedUnreadConversationsCountUseCase
import com.wire.kalium.logic.feature.conversation.ObserveConversationDetailsUseCase
import com.wire.kalium.logic.feature.conversation.ObserveConversationListDetailsWithEventsUseCase
import com.wire.kalium.logic.feature.conversation.RefreshConversationsWithoutMetadataUseCase
import com.wire.kalium.logic.feature.conversation.createconversation.CreateChannelUseCase
import com.wire.kalium.logic.feature.conversation.createconversation.CreateRegularGroupUseCase
import com.wire.kalium.logic.feature.debug.ObserveDebugCRLExpirationAfterOneMinuteUseCase
import com.wire.kalium.logic.feature.featureConfig.ObserveIsAppsAllowedForUsageUseCase
import com.wire.kalium.logic.feature.legalhold.ObserveLegalHoldStateForSelfUserUseCase
import com.wire.kalium.logic.feature.message.SearchMessagesGloballyUseCase
import com.wire.kalium.logic.feature.personaltoteamaccount.CanMigrateFromPersonalToTeamUseCase
import com.wire.kalium.logic.feature.publicuser.RefreshUsersWithoutMetadataUseCase
import com.wire.kalium.logic.feature.server.GetTeamUrlUseCase
Expand Down Expand Up @@ -95,6 +98,8 @@
private val getSelfUser: GetSelfUserUseCase,
private val getDefaultProtocol: GetDefaultProtocolUseCase,
private val observeIsAppsAllowedForUsage: ObserveIsAppsAllowedForUsageUseCase,
private val searchMessagesGlobally: SearchMessagesGloballyUseCase,
private val observeConversationDetails: ObserveConversationDetailsUseCase,

Check warning on line 102 in app/src/main/kotlin/com/wire/android/ui/home/HomeViewModelFactory.kt

View check run for this annotation

Codecov / codecov/patch

app/src/main/kotlin/com/wire/android/ui/home/HomeViewModelFactory.kt#L101-L102

Added lines #L101 - L102 were not covered by tests
) {
fun homeViewModel(savedStateHandle: SavedStateHandle) = HomeViewModel(
savedStateHandle = savedStateHandle,
Expand Down Expand Up @@ -156,4 +161,11 @@
isWireCellsFeatureEnabled = isWireCellsEnabled,
observeIsAppsAllowedForUsage = observeIsAppsAllowedForUsage,
)

fun globalSearchViewModel() = GlobalSearchViewModel(
searchMessagesGlobally = searchMessagesGlobally,
observeConversationDetails = observeConversationDetails,
dispatchers = dispatcher,
uiTextResolver = uiTextResolver,

Check warning on line 169 in app/src/main/kotlin/com/wire/android/ui/home/HomeViewModelFactory.kt

View check run for this annotation

Codecov / codecov/patch

app/src/main/kotlin/com/wire/android/ui/home/HomeViewModelFactory.kt#L165-L169

Added lines #L165 - L169 were not covered by tests
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import com.wire.android.ui.home.conversationslist.ConversationListViewModelPrevi
import com.wire.android.ui.home.conversationslist.model.ConversationsSource
import com.wire.android.ui.home.drawer.HomeDrawerViewModel
import com.wire.android.ui.home.newconversation.NewConversationViewModel
import com.wire.android.ui.home.search.GlobalSearchViewModel
import com.wire.android.ui.home.sync.FeatureFlagNotificationViewModel
import dev.zacsweers.metrox.viewmodel.ManualViewModelAssistedFactory

Expand Down Expand Up @@ -78,3 +79,7 @@ fun newConversationViewModel(
@Composable
fun featureFlagNotificationViewModel(): FeatureFlagNotificationViewModel =
sessionKeyedMetroViewModel()

@Composable
fun globalSearchViewModel(): GlobalSearchViewModel =
sessionKeyedMetroViewModel()
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
}
}

private fun buildDrawerItems() {

Check failure on line 70 in app/src/main/kotlin/com/wire/android/ui/home/drawer/HomeDrawerViewModel.kt

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Refactor this method to reduce its Cognitive Complexity from 17 to the 15 allowed.

See more on https://sonarcloud.io/project/issues?id=wireapp_wire-android&issues=AZ7e6rRDOKI_jckka7xF&open=AZ7e6rRDOKI_jckka7xF&pullRequest=4981
viewModelScope.launch {
combine(
observeIsWireCellsEnabled(),
Expand All @@ -79,6 +79,9 @@

buildList {
add(DrawerUiItem.RegularItem(destination = HomeDestination.Conversations))
if (BuildConfig.FEATURE_GLOBAL_SEARCH) {
add(DrawerUiItem.RegularItem(destination = HomeDestination.GlobalSearch))

Check warning on line 83 in app/src/main/kotlin/com/wire/android/ui/home/drawer/HomeDrawerViewModel.kt

View check run for this annotation

Codecov / codecov/patch

app/src/main/kotlin/com/wire/android/ui/home/drawer/HomeDrawerViewModel.kt#L83

Added line #L83 was not covered by tests
}
if (shouldShowCells) {
add(DrawerUiItem.RegularItem(destination = HomeDestination.Cells))
}
Expand Down
Loading
Loading