From 948fd7910087d3cf4441ce3dc8b867129c63b42e Mon Sep 17 00:00:00 2001 From: 0nko Date: Mon, 3 Feb 2025 21:18:46 +0100 Subject: [PATCH] Initialize the popup menu click handlers --- .../app/tabs/ui/TabSwitcherActivity.kt | 20 ++++++++++++++++-- .../app/tabs/ui/TabSwitcherViewModel.kt | 21 +++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherActivity.kt b/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherActivity.kt index 92be6ddebaa3..5cf6b1196298 100644 --- a/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherActivity.kt +++ b/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherActivity.kt @@ -75,13 +75,13 @@ import com.duckduckgo.duckchat.impl.DuckChatPixelName import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton import com.google.android.material.snackbar.BaseTransientBottomBar import com.google.android.material.snackbar.Snackbar +import javax.inject.Inject +import kotlin.coroutines.CoroutineContext import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.launch -import javax.inject.Inject -import kotlin.coroutines.CoroutineContext @InjectWith(ActivityScope::class) class TabSwitcherActivity : DuckDuckGoActivity(), TabSwitcherListener, CoroutineScope { @@ -169,6 +169,10 @@ class TabSwitcherActivity : DuckDuckGoActivity(), TabSwitcherListener, Coroutine configureFab() configureObservers() configureOnBackPressedListener() + + if (tabManagerFeatureFlags.multiSelection().isEnabled()) { + initMenuClickListeners() + } } private fun configureFab() { @@ -486,6 +490,18 @@ class TabSwitcherActivity : DuckDuckGoActivity(), TabSwitcherListener, Coroutine } } + private fun initMenuClickListeners() { + popupMenu.onMenuItemClicked(popupMenu.contentView.findViewById(R.id.newTabMenuItem)) { onNewTabRequested(fromOverflowMenu = true) } + popupMenu.onMenuItemClicked(popupMenu.contentView.findViewById(R.id.selectAllMenuItem)) { viewModel.onSelectAllTabs() } + popupMenu.onMenuItemClicked(popupMenu.contentView.findViewById(R.id.shareSelectedLinksMenuItem)) { viewModel.onShareSelectedTabs() } + popupMenu.onMenuItemClicked(popupMenu.contentView.findViewById(R.id.bookmarkSelectedTabsMenuItem)) { viewModel.onBookmarkSelectedTabs() } + popupMenu.onMenuItemClicked(popupMenu.contentView.findViewById(R.id.bookmarkAllTabsMenuItem)) { viewModel.onBookmarkAllTabs() } + popupMenu.onMenuItemClicked(popupMenu.contentView.findViewById(R.id.selectTabsMenuItem)) { viewModel.onSelectionModeRequested() } + popupMenu.onMenuItemClicked(popupMenu.contentView.findViewById(R.id.closeSelectedTabsMenuItem)) { viewModel.onCloseSelectedTabs() } + popupMenu.onMenuItemClicked(popupMenu.contentView.findViewById(R.id.closeOtherTabsMenuItem)) { viewModel.onCloseOtherTabs() } + popupMenu.onMenuItemClicked(popupMenu.contentView.findViewById(R.id.closeAllTabsMenuItem)) { viewModel.onCloseAllTabsRequested() } + } + override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.layoutTypeMenuItem -> onLayoutTypeToggled() diff --git a/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherViewModel.kt b/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherViewModel.kt index 0b8f51fc72e8..a612a99871a8 100644 --- a/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherViewModel.kt +++ b/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherViewModel.kt @@ -131,6 +131,27 @@ class TabSwitcherViewModel @Inject constructor( pixel.fire(AppPixelName.TAB_MANAGER_MENU_CLOSE_ALL_TABS_PRESSED) } + fun onSelectAllTabs() { + } + + fun onShareSelectedTabs() { + } + + fun onBookmarkSelectedTabs() { + } + + fun onBookmarkAllTabs() { + } + + fun onSelectionModeRequested() { + } + + fun onCloseSelectedTabs() { + } + + fun onCloseOtherTabs() { + } + fun onCloseAllTabsConfirmed() { viewModelScope.launch(dispatcherProvider.io()) { tabs.value?.forEach {