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 a82a48900904..68c4ab65594c 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 @@ -668,6 +668,8 @@ 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.gridLayoutMenuItem)) { viewModel.onGridLayoutSelected() } + popupMenu.onMenuItemClicked(popupMenu.contentView.findViewById(R.id.listLayoutMenuItem)) { viewModel.onListLayoutSelected() } popupMenu.onMenuItemClicked(popupMenu.contentView.findViewById(R.id.selectAllMenuItem)) { viewModel.onSelectAllTabs() } popupMenu.onMenuItemClicked(popupMenu.contentView.findViewById(R.id.deselectAllMenuItem)) { viewModel.onDeselectAllTabs() } popupMenu.onMenuItemClicked(popupMenu.contentView.findViewById(R.id.shareSelectedLinksMenuItem)) { viewModel.onShareSelectedTabs() } diff --git a/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherMenuExt.kt b/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherMenuExt.kt index b3844fe8075e..75b7f80ea268 100644 --- a/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherMenuExt.kt +++ b/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherMenuExt.kt @@ -66,6 +66,34 @@ fun Menu.createDynamicInterface( setPrimaryText(resources.getQuantityString(R.plurals.closeTabsMenuItem, numSelectedTabs, numSelectedTabs)) } + popupMenu.gridLayoutMenuItem.apply { + when (dynamicMenu.layoutMenuMode) { + GRID -> { + setTrailingIconVisibility(false) + isVisible = true + } + LIST -> { + setTrailingIconVisibility(true) + isVisible = true + } + HIDDEN -> isVisible = false + } + } + + popupMenu.listLayoutMenuItem.apply { + when (dynamicMenu.layoutMenuMode) { + GRID -> { + setTrailingIconVisibility(true) + isVisible = true + } + LIST -> { + setTrailingIconVisibility(false) + isVisible = true + } + HIDDEN -> isVisible = false + } + } + mainFab.apply { if (dynamicMenu.isMainFabVisible) { when (dynamicMenu.mainFabType) { 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 73c7cfe1b49c..05cc29bf23ae 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 @@ -530,19 +530,27 @@ class TabSwitcherViewModel @Inject constructor( } fun onLayoutTypeToggled() { - viewModelScope.launch(dispatcherProvider.io()) { - when (layoutType.value) { - GRID -> { - pixel.fire(TAB_MANAGER_LIST_VIEW_BUTTON_CLICKED) - tabRepository.setTabLayoutType(LIST) - } + when (layoutType.value) { + GRID -> onListLayoutSelected() + LIST -> onGridLayoutSelected() + else -> Unit + } + } - LIST -> { - pixel.fire(TAB_MANAGER_GRID_VIEW_BUTTON_CLICKED) - tabRepository.setTabLayoutType(GRID) - } + fun onListLayoutSelected() { + viewModelScope.launch(dispatcherProvider.io()) { + if (layoutType.value != LIST) { + pixel.fire(TAB_MANAGER_LIST_VIEW_BUTTON_CLICKED) + tabRepository.setTabLayoutType(LIST) + } + } + } - else -> Unit + fun onGridLayoutSelected() { + viewModelScope.launch(dispatcherProvider.io()) { + if (layoutType.value != GRID) { + pixel.fire(TAB_MANAGER_GRID_VIEW_BUTTON_CLICKED) + tabRepository.setTabLayoutType(GRID) } } } diff --git a/app/src/main/res/layout/popup_tabs_menu.xml b/app/src/main/res/layout/popup_tabs_menu.xml index 3f47f8d4553a..ac48b178b2a5 100644 --- a/app/src/main/res/layout/popup_tabs_menu.xml +++ b/app/src/main/res/layout/popup_tabs_menu.xml @@ -27,6 +27,20 @@ android:layout_height="wrap_content" app:primaryText="@string/newTabMenuItem" /> + + + + Tab closed Undo Downloads - List view - Grid view + List View + Grid View <b>%1$s trackers blocked </b> in the last 7 days