@@ -20,30 +20,22 @@ import android.view.Menu
2020import androidx.appcompat.content.res.AppCompatResources
2121import androidx.appcompat.widget.Toolbar
2222import androidx.core.view.isVisible
23- import androidx.recyclerview.widget.RecyclerView
2423import com.duckduckgo.app.browser.R
2524import com.duckduckgo.app.browser.databinding.PopupTabsMenuBinding
2625import com.duckduckgo.app.tabs.ui.TabSwitcherViewModel.SelectionViewState.BackButtonType.ARROW
2726import com.duckduckgo.app.tabs.ui.TabSwitcherViewModel.SelectionViewState.BackButtonType.CLOSE
2827import com.duckduckgo.app.tabs.ui.TabSwitcherViewModel.SelectionViewState.DynamicInterface
29- import com.duckduckgo.app.tabs.ui.TabSwitcherViewModel.SelectionViewState.FabType
3028import com.duckduckgo.app.tabs.ui.TabSwitcherViewModel.SelectionViewState.LayoutMode.GRID
3129import com.duckduckgo.app.tabs.ui.TabSwitcherViewModel.SelectionViewState.LayoutMode.HIDDEN
3230import com.duckduckgo.app.tabs.ui.TabSwitcherViewModel.SelectionViewState.LayoutMode.LIST
33- import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
34- import com.google.android.material.floatingactionbutton.FloatingActionButton
3531import com.duckduckgo.mobile.android.R as commonR
3632
3733fun Menu.createDynamicInterface (
3834 numSelectedTabs : Int ,
3935 popupMenu : PopupTabsMenuBinding ,
40- mainFab : ExtendedFloatingActionButton ,
41- aiFab : FloatingActionButton ,
42- tabsRecycler : RecyclerView ,
4336 toolbar : Toolbar ,
4437 dynamicMenu : DynamicInterface ,
4538) {
46- popupMenu.newTabMenuItem.isVisible = dynamicMenu.isNewTabMenuVisible
4739 popupMenu.selectAllMenuItem.isVisible = dynamicMenu.isSelectAllVisible
4840 popupMenu.deselectAllMenuItem.isVisible = dynamicMenu.isDeselectAllVisible
4941 popupMenu.selectionActionsDivider.isVisible = dynamicMenu.isSelectionActionsDividerVisible
@@ -94,70 +86,12 @@ fun Menu.createDynamicInterface(
9486 }
9587 }
9688
97- mainFab.apply {
98- if (dynamicMenu.isMainFabVisible) {
99- when (dynamicMenu.mainFabType) {
100- FabType .NEW_TAB -> {
101- text = resources.getString(R .string.newTabMenuItem)
102- icon = AppCompatResources .getDrawable(context, commonR.drawable.ic_add_24_solid_color)
103- }
104- FabType .CLOSE_TABS -> {
105- text = resources.getQuantityString(R .plurals.closeTabsMenuItem, numSelectedTabs, numSelectedTabs)
106- icon = AppCompatResources .getDrawable(context, commonR.drawable.ic_close_24_solid_color)
107- }
108- }
109-
110- show()
111- extend()
112- } else {
113- hide()
114- }
115- }
116-
117- if (dynamicMenu.isAIFabVisible) {
118- aiFab.show()
119- } else {
120- aiFab.hide()
121- }
122-
12389 toolbar.navigationIcon = when (dynamicMenu.backButtonType) {
12490 ARROW -> AppCompatResources .getDrawable(toolbar.context, commonR.drawable.ic_arrow_left_24)
12591 CLOSE -> AppCompatResources .getDrawable(toolbar.context, commonR.drawable.ic_close_24)
12692 }
12793
128- findItem(R .id.layoutTypeToolbarButton).apply {
129- when (dynamicMenu.layoutButtonMode) {
130- GRID -> {
131- setIcon(com.duckduckgo.mobile.android.R .drawable.ic_view_grid_24)
132- title = toolbar.resources.getString(R .string.tabSwitcherGridViewMenu)
133- isVisible = true
134- }
135- LIST -> {
136- setIcon(com.duckduckgo.mobile.android.R .drawable.ic_view_list_24)
137- title = toolbar.resources.getString(R .string.tabSwitcherListViewMenu)
138- isVisible = true
139- }
140- HIDDEN -> isVisible = false
141- }
142- }
143-
144- findItem(R .id.popupMenuToolbarButton).isEnabled = dynamicMenu.isMenuButtonEnabled
14594 findItem(R .id.fireToolbarButton).isVisible = dynamicMenu.isFireButtonVisible
14695 findItem(R .id.duckAIToolbarButton).isVisible = dynamicMenu.isDuckAIButtonVisible
14796 findItem(R .id.newTabToolbarButton).isVisible = dynamicMenu.isNewTabButtonVisible
148-
149- val bottomPadding = if (dynamicMenu.isAIFabVisible) {
150- tabsRecycler.context.resources.getDimension(R .dimen.recyclerViewTwoFabsBottomPadding)
151- } else if (dynamicMenu.isMainFabVisible) {
152- tabsRecycler.context.resources.getDimension(R .dimen.recyclerViewOneFabBottomPadding)
153- } else {
154- tabsRecycler.context.resources.getDimension(com.duckduckgo.mobile.android.R .dimen.keyline_2)
155- }
156-
157- tabsRecycler.setPadding(
158- tabsRecycler.paddingLeft,
159- tabsRecycler.paddingTop,
160- tabsRecycler.paddingRight,
161- bottomPadding.toInt(),
162- )
16397}
0 commit comments