For #19739 - Adds start tabsTray with multiSelect support

upstream-sync
codrut.topliceanu 3 years ago committed by mergify[bot]
parent 2c538dbb5d
commit 37e2c6ceeb

@ -17,6 +17,7 @@ import androidx.core.view.isVisible
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.tabs.TabLayout
import kotlinx.android.synthetic.main.component_tabstray2.*
@ -87,7 +88,20 @@ class TabsTrayFragment : AppCompatDialogFragment() {
val containerView = inflater.inflate(R.layout.fragment_tab_tray_dialog, container, false)
inflater.inflate(R.layout.component_tabstray2, containerView as ViewGroup, true)
tabsTrayStore = StoreProvider.get(this) { TabsTrayStore() }
val args by navArgs<TabsTrayFragmentArgs>()
val initialMode = if (args.enterMultiselect) {
TabsTrayState.Mode.Select(emptySet())
} else {
TabsTrayState.Mode.Normal
}
tabsTrayStore = StoreProvider.get(this) {
TabsTrayStore(
initialState = TabsTrayState(
mode = initialMode
)
)
}
fabView = LayoutInflater.from(containerView.context)
.inflate(R.layout.component_tabstray_fab, containerView, true)

@ -15,7 +15,6 @@ import kotlinx.android.synthetic.main.tabstray_multiselect_items.view.*
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.drop
import kotlinx.coroutines.flow.map
import mozilla.components.lib.state.helpers.AbstractBinding
import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifChanged
@ -70,8 +69,6 @@ class SelectionBannerBinding(
override suspend fun onState(flow: Flow<TabsTrayState>) {
flow.map { it.mode }
// ignore initial mode update; we never start in select mode.
.drop(1)
.ifChanged()
.collect { mode ->
val isSelectMode = mode is Select

@ -13,7 +13,6 @@ import androidx.core.view.updateLayoutParams
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.drop
import kotlinx.coroutines.flow.map
import mozilla.components.lib.state.helpers.AbstractBinding
import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifChanged
@ -43,8 +42,6 @@ class SelectionHandleBinding(
override suspend fun onState(flow: Flow<TabsTrayState>) {
flow.map { it.mode }
// ignore initial mode update; we never start in select mode.
.drop(1)
.ifChanged()
.collect { mode ->
val isSelectMode = mode is Mode.Select

Loading…
Cancel
Save