Skip to content

Commit

Permalink
Extract bottom navigation action handling to separate function
Browse files Browse the repository at this point in the history
  • Loading branch information
msasikanth committed Oct 3, 2024
1 parent e6e6f8f commit 7911935
Showing 1 changed file with 47 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ import org.dhis2.commons.sync.SyncContext.TrackerProgramTei
import org.dhis2.data.forms.dataentry.ProgramAdapter
import org.dhis2.databinding.ActivitySearchBinding
import org.dhis2.form.ui.intent.FormIntent.OnSave
import org.dhis2.tracker.NavigationBarUIState
import org.dhis2.ui.ThemeManager
import org.dhis2.usescases.general.ActivityGlobalAbstract
import org.dhis2.usescases.searchTrackEntity.LegacyInteraction.OnAddRelationship
Expand Down Expand Up @@ -377,42 +378,12 @@ class SearchTEActivity : ActivityGlobalAbstract(), SearchTEContractsModule.View
}

LaunchedEffect(uiState.selectedItem) {
when (uiState.selectedItem) {
NavigationPage.LIST_VIEW -> {
viewModel.setListScreen()
showList()
showSearchAndFilterButtons()
}

NavigationPage.MAP_VIEW -> {
networkUtils.performIfOnline(
context = this@SearchTEActivity,
action = {
presenter.trackSearchMapVisualization()
showMap()
showSearchAndFilterButtons()
},
onDialogDismissed = {
selectedItemIndex = 0
},
noNetworkMessage = getString(R.string.msg_network_connection_maps),
)
}

NavigationPage.ANALYTICS -> {
if (sessionManagerServiceImpl.isUserLoggedIn()) {
presenter.trackSearchAnalytics()
viewModel.setAnalyticsScreen()
fromAnalytics = true
showAnalytics()
hideSearchAndFilterButtons()
}
}

else -> {
// no-op
}
}
handleBottomNavigation(
uiState = uiState,
onDialogDismissed = {
selectedItemIndex = 0
},
)
}

AnimatedVisibility(
Expand All @@ -437,6 +408,46 @@ class SearchTEActivity : ActivityGlobalAbstract(), SearchTEContractsModule.View
}
}

private fun handleBottomNavigation(
uiState: NavigationBarUIState<NavigationPage>,
onDialogDismissed: () -> Unit,
) {
when (uiState.selectedItem) {
NavigationPage.LIST_VIEW -> {
viewModel.setListScreen()
showList()
showSearchAndFilterButtons()
}

NavigationPage.MAP_VIEW -> {
networkUtils.performIfOnline(
context = this@SearchTEActivity,
action = {
presenter.trackSearchMapVisualization()
showMap()
showSearchAndFilterButtons()
},
onDialogDismissed = onDialogDismissed,
noNetworkMessage = getString(R.string.msg_network_connection_maps),
)
}

NavigationPage.ANALYTICS -> {
if (sessionManagerServiceImpl.isUserLoggedIn()) {
presenter.trackSearchAnalytics()
viewModel.setAnalyticsScreen()
fromAnalytics = true
showAnalytics()
hideSearchAndFilterButtons()
}
}

else -> {
// no-op
}
}
}

private fun showList() {
if (currentContent != Content.LIST) {
currentContent = Content.LIST
Expand Down

0 comments on commit 7911935

Please sign in to comment.