@@ -62,7 +62,6 @@ import com.duckduckgo.app.tabs.TabManagerFeatureFlags
62
62
import com.duckduckgo.app.tabs.model.TabEntity
63
63
import com.duckduckgo.app.tabs.model.TabSwitcherData.LayoutType
64
64
import com.duckduckgo.app.tabs.ui.TabSwitcherItem.Tab
65
- import com.duckduckgo.app.tabs.ui.TabSwitcherItem.Tab.NormalTab
66
65
import com.duckduckgo.app.tabs.ui.TabSwitcherItem.TrackersAnimationInfoPanel
67
66
import com.duckduckgo.app.tabs.ui.TabSwitcherViewModel.Command
68
67
import com.duckduckgo.app.tabs.ui.TabSwitcherViewModel.Command.BookmarkTabsRequest
@@ -246,9 +245,7 @@ class TabSwitcherActivity : DuckDuckGoActivity(), TabSwitcherListener, Coroutine
246
245
configureObservers()
247
246
configureOnBackPressedListener()
248
247
249
- if (tabManagerFeatureFlags.multiSelection().isEnabled()) {
250
- initMenuClickListeners()
251
- }
248
+ initMenuClickListeners()
252
249
}
253
250
254
251
private fun configureFabs () {
@@ -316,14 +313,12 @@ class TabSwitcherActivity : DuckDuckGoActivity(), TabSwitcherListener, Coroutine
316
313
317
314
tabsRecycler.setHasFixedSize(true )
318
315
319
- if (tabManagerFeatureFlags.multiSelection().isEnabled()) {
320
- if (viewModel.isNewToolbarEnabled) {
321
- handleFabStateUpdates()
322
- }
323
-
324
- handleSelectionModeCancellation()
316
+ if (viewModel.isNewToolbarEnabled) {
317
+ handleFabStateUpdates()
325
318
}
326
319
320
+ handleSelectionModeCancellation()
321
+
327
322
if (viewModel.isNewToolbarEnabled) {
328
323
// Set the layout params for the tabs recycler view based on omnibar position
329
324
tabsContainer.updateLayoutParams {
@@ -429,51 +424,23 @@ class TabSwitcherActivity : DuckDuckGoActivity(), TabSwitcherListener, Coroutine
429
424
}
430
425
431
426
private fun configureObservers () {
432
- if (tabManagerFeatureFlags.multiSelection().isEnabled()) {
433
- lifecycleScope.launch {
434
- viewModel.selectionViewState.flowWithLifecycle(lifecycle).collectLatest {
435
- tabsRecycler.invalidateItemDecorations()
436
- tabsAdapter.updateData(it.tabSwitcherItems)
437
-
438
- updateToolbarTitle(it.mode, it.tabs.size)
439
- updateTabGridItemDecorator()
440
-
441
- tabTouchHelper.mode = it.mode
442
-
443
- invalidateOptionsMenu()
427
+ lifecycleScope.launch {
428
+ viewModel.selectionViewState.flowWithLifecycle(lifecycle).collectLatest {
429
+ tabsRecycler.invalidateItemDecorations()
430
+ tabsAdapter.updateData(it.tabSwitcherItems)
444
431
445
- if (firstTimeLoadingTabsList && it.tabs.isNotEmpty()) {
446
- firstTimeLoadingTabsList = false
447
- scrollToActiveTab()
448
- }
449
- }
450
- }
451
- } else {
452
- viewModel.activeTab.observe(this ) { tab ->
453
- if (tab != null && ! tab.deletable) {
454
- updateTabGridItemDecorator()
455
- }
456
- }
432
+ updateToolbarTitle(it.mode, it.tabs.size)
433
+ updateTabGridItemDecorator()
457
434
458
- viewModel.tabSwitcherItemsLiveData.observe(this ) { tabSwitcherItems ->
459
- tabsAdapter.updateData(tabSwitcherItems)
435
+ tabTouchHelper.mode = it.mode
460
436
461
- val noTabSelected = tabSwitcherItems.none { (it as ? NormalTab )?.isActive == true }
462
- if (noTabSelected && tabSwitcherItems.isNotEmpty()) {
463
- updateTabGridItemDecorator()
464
- }
437
+ invalidateOptionsMenu()
465
438
466
- if (firstTimeLoadingTabsList) {
439
+ if (firstTimeLoadingTabsList && it.tabs.isNotEmpty() ) {
467
440
firstTimeLoadingTabsList = false
468
441
scrollToActiveTab()
469
442
}
470
443
}
471
-
472
- viewModel.deletableTabs.observe(this ) {
473
- if (it.isNotEmpty()) {
474
- showTabDeletedSnackbar(it.last())
475
- }
476
- }
477
444
}
478
445
479
446
lifecycleScope.launch {
@@ -499,17 +466,9 @@ class TabSwitcherActivity : DuckDuckGoActivity(), TabSwitcherListener, Coroutine
499
466
500
467
val gridLayoutManager = getGridLayoutManager(columnCount)
501
468
tabsRecycler.layoutManager = gridLayoutManager
502
-
503
- if (! tabManagerFeatureFlags.multiSelection().isEnabled()) {
504
- showListLayoutButton()
505
- }
506
469
}
507
470
LayoutType .LIST -> {
508
471
tabsRecycler.layoutManager = LinearLayoutManager (this @TabSwitcherActivity)
509
-
510
- if (! tabManagerFeatureFlags.multiSelection().isEnabled()) {
511
- showGridLayoutButton()
512
- }
513
472
}
514
473
}
515
474
@@ -612,13 +571,7 @@ class TabSwitcherActivity : DuckDuckGoActivity(), TabSwitcherListener, Coroutine
612
571
)
613
572
finishAfterTransition()
614
573
}
615
- is CloseAllTabsRequest -> {
616
- if (tabManagerFeatureFlags.multiSelection().isEnabled()) {
617
- showCloseAllTabsConfirmation(command.numTabs)
618
- } else {
619
- showCloseAllTabsConfirmation()
620
- }
621
- }
574
+ is CloseAllTabsRequest -> showCloseAllTabsConfirmation(command.numTabs)
622
575
is ShareLinks -> launchShareMultipleLinkChooser(command.links)
623
576
is ShareLink -> launchShareLinkChooser(command.link, command.title)
624
577
is BookmarkTabsRequest -> showBookmarkTabsConfirmation(command.tabIds)
@@ -644,32 +597,21 @@ class TabSwitcherActivity : DuckDuckGoActivity(), TabSwitcherListener, Coroutine
644
597
}
645
598
646
599
override fun onCreateOptionsMenu (menu : Menu ): Boolean {
647
- if (tabManagerFeatureFlags.multiSelection().isEnabled()) {
648
- menuInflater.inflate(R .menu.menu_tab_switcher_activity_with_selection, menu)
649
-
650
- val popupBinding = PopupTabsMenuBinding .bind(popupMenu.contentView)
651
- val viewState = viewModel.selectionViewState.value
652
-
653
- val numSelectedTabs = viewModel.selectionViewState.value.numSelectedTabs
654
- menu.createDynamicInterface(
655
- numSelectedTabs,
656
- popupBinding,
657
- binding.mainFab,
658
- binding.aiChatFab,
659
- tabsRecycler,
660
- toolbar,
661
- viewState.dynamicInterface,
662
- )
663
- } else {
664
- menuInflater.inflate(R .menu.menu_tab_switcher_activity, menu)
665
- layoutTypeMenuItem = menu.findItem(R .id.layoutTypeToolbarButton)
666
-
667
- when (viewModel.layoutType.value) {
668
- LayoutType .GRID -> showListLayoutButton()
669
- LayoutType .LIST -> showGridLayoutButton()
670
- null -> layoutTypeMenuItem?.isVisible = false
671
- }
672
- }
600
+ menuInflater.inflate(R .menu.menu_tab_switcher_activity_with_selection, menu)
601
+
602
+ val popupBinding = PopupTabsMenuBinding .bind(popupMenu.contentView)
603
+ val viewState = viewModel.selectionViewState.value
604
+
605
+ val numSelectedTabs = viewModel.selectionViewState.value.numSelectedTabs
606
+ menu.createDynamicInterface(
607
+ numSelectedTabs,
608
+ popupBinding,
609
+ binding.mainFab,
610
+ binding.aiChatFab,
611
+ tabsRecycler,
612
+ toolbar,
613
+ viewState.dynamicInterface,
614
+ )
673
615
674
616
return true
675
617
}
@@ -881,7 +823,7 @@ class TabSwitcherActivity : DuckDuckGoActivity(), TabSwitcherListener, Coroutine
881
823
// we don't want to purge during device rotation
882
824
if (isFinishing) {
883
825
launch {
884
- if (! tabManagerFeatureFlags.multiSelection().isEnabled() || ! skipTabPurge) {
826
+ if (! skipTabPurge) {
885
827
viewModel.purgeDeletableTabs()
886
828
}
887
829
}
0 commit comments