Loading app/src/main/java/org/mozilla/fenix/tabtray/SaveToCollectionsButtonAdapter.kt +15 −5 Original line number Diff line number Diff line Loading @@ -20,7 +20,8 @@ import org.mozilla.fenix.tabtray.SaveToCollectionsButtonAdapter.ViewHolder * multiple [RecyclerView.Adapter] in one [RecyclerView]. */ class SaveToCollectionsButtonAdapter( private val interactor: TabTrayInteractor private val interactor: TabTrayInteractor, private val isPrivate: Boolean = false ) : ListAdapter<Item, ViewHolder>(DiffCallback) { init { Loading @@ -38,13 +39,18 @@ class SaveToCollectionsButtonAdapter( return } (payloads[0] as TabTrayView.TabChange).let { holder.itemView.isVisible = it == TabTrayView.TabChange.NORMAL when (val change = payloads[0]) { is TabTrayView.TabChange -> { holder.itemView.isVisible = change == TabTrayView.TabChange.NORMAL } is MultiselectModeChange -> { holder.itemView.isVisible = change == MultiselectModeChange.NORMAL } } } override fun onBindViewHolder(holder: ViewHolder, position: Int) { holder.itemView.isVisible = holder.itemView.isVisible = !isPrivate && interactor.onModeRequested() is TabTrayDialogFragmentState.Mode.Normal } Loading @@ -58,6 +64,10 @@ class SaveToCollectionsButtonAdapter( override fun areContentsTheSame(oldItem: Item, newItem: Item) = true } enum class MultiselectModeChange { MULTISELECT, NORMAL } /** * An object to identify the data type. */ Loading app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt +9 −4 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import org.mozilla.fenix.R import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.settings import org.mozilla.fenix.tabtray.SaveToCollectionsButtonAdapter.MultiselectModeChange /** * View that contains and configures the BrowserAwesomeBar Loading Loading @@ -72,7 +73,7 @@ class TabTrayView( private val bottomSheetCallback: BottomSheetBehavior.BottomSheetCallback private var tabsTouchHelper: TabsTouchHelper private val collectionsButtonAdapter = SaveToCollectionsButtonAdapter(interactor) private val collectionsButtonAdapter = SaveToCollectionsButtonAdapter(interactor, isPrivate) private var hasLoaded = false Loading Loading @@ -272,7 +273,7 @@ class TabTrayView( val oldMode = mode if (oldMode::class != state.mode::class) { updateTabsForModeChanged() updateTabsForMultiselectModeChanged(state.mode is TabTrayDialogFragmentState.Mode.MultiSelect) if (view.context.settings().accessibilityServicesEnabled) { view.announceForAccessibility( if (state.mode == TabTrayDialogFragmentState.Mode.Normal) view.context.getString( Loading Loading @@ -419,13 +420,17 @@ class TabTrayView( view.tab_layout.isVisible = !multiselect } private fun updateTabsForModeChanged() { private fun updateTabsForMultiselectModeChanged(inMultiselectMode: Boolean) { view.tabsTray.apply { val tabs = view.context.components.core.store.state.getNormalOrPrivateTabs( isPrivateModeSelected ) collectionsButtonAdapter.notifyItemChanged(0) collectionsButtonAdapter.notifyItemChanged( 0, if (inMultiselectMode) MultiselectModeChange.MULTISELECT else MultiselectModeChange.NORMAL ) tabsAdapter.notifyItemRangeChanged(0, tabs.size, true) } } Loading Loading
app/src/main/java/org/mozilla/fenix/tabtray/SaveToCollectionsButtonAdapter.kt +15 −5 Original line number Diff line number Diff line Loading @@ -20,7 +20,8 @@ import org.mozilla.fenix.tabtray.SaveToCollectionsButtonAdapter.ViewHolder * multiple [RecyclerView.Adapter] in one [RecyclerView]. */ class SaveToCollectionsButtonAdapter( private val interactor: TabTrayInteractor private val interactor: TabTrayInteractor, private val isPrivate: Boolean = false ) : ListAdapter<Item, ViewHolder>(DiffCallback) { init { Loading @@ -38,13 +39,18 @@ class SaveToCollectionsButtonAdapter( return } (payloads[0] as TabTrayView.TabChange).let { holder.itemView.isVisible = it == TabTrayView.TabChange.NORMAL when (val change = payloads[0]) { is TabTrayView.TabChange -> { holder.itemView.isVisible = change == TabTrayView.TabChange.NORMAL } is MultiselectModeChange -> { holder.itemView.isVisible = change == MultiselectModeChange.NORMAL } } } override fun onBindViewHolder(holder: ViewHolder, position: Int) { holder.itemView.isVisible = holder.itemView.isVisible = !isPrivate && interactor.onModeRequested() is TabTrayDialogFragmentState.Mode.Normal } Loading @@ -58,6 +64,10 @@ class SaveToCollectionsButtonAdapter( override fun areContentsTheSame(oldItem: Item, newItem: Item) = true } enum class MultiselectModeChange { MULTISELECT, NORMAL } /** * An object to identify the data type. */ Loading
app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt +9 −4 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import org.mozilla.fenix.R import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.settings import org.mozilla.fenix.tabtray.SaveToCollectionsButtonAdapter.MultiselectModeChange /** * View that contains and configures the BrowserAwesomeBar Loading Loading @@ -72,7 +73,7 @@ class TabTrayView( private val bottomSheetCallback: BottomSheetBehavior.BottomSheetCallback private var tabsTouchHelper: TabsTouchHelper private val collectionsButtonAdapter = SaveToCollectionsButtonAdapter(interactor) private val collectionsButtonAdapter = SaveToCollectionsButtonAdapter(interactor, isPrivate) private var hasLoaded = false Loading Loading @@ -272,7 +273,7 @@ class TabTrayView( val oldMode = mode if (oldMode::class != state.mode::class) { updateTabsForModeChanged() updateTabsForMultiselectModeChanged(state.mode is TabTrayDialogFragmentState.Mode.MultiSelect) if (view.context.settings().accessibilityServicesEnabled) { view.announceForAccessibility( if (state.mode == TabTrayDialogFragmentState.Mode.Normal) view.context.getString( Loading Loading @@ -419,13 +420,17 @@ class TabTrayView( view.tab_layout.isVisible = !multiselect } private fun updateTabsForModeChanged() { private fun updateTabsForMultiselectModeChanged(inMultiselectMode: Boolean) { view.tabsTray.apply { val tabs = view.context.components.core.store.state.getNormalOrPrivateTabs( isPrivateModeSelected ) collectionsButtonAdapter.notifyItemChanged(0) collectionsButtonAdapter.notifyItemChanged( 0, if (inMultiselectMode) MultiselectModeChange.MULTISELECT else MultiselectModeChange.NORMAL ) tabsAdapter.notifyItemRangeChanged(0, tabs.size, true) } } Loading