[fenix] For https://github.com/mozilla-mobile/fenix/issues/19739 - Adds start tabsTray with multiSelect support

pull/600/head
codrut.topliceanu 3 years ago committed by mergify[bot]
parent 33eaa6f12d
commit b511e4a8b7

@ -17,6 +17,7 @@ import androidx.core.view.isVisible
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
import kotlinx.android.synthetic.main.component_tabstray2.* 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) val containerView = inflater.inflate(R.layout.fragment_tab_tray_dialog, container, false)
inflater.inflate(R.layout.component_tabstray2, containerView as ViewGroup, true) 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) fabView = LayoutInflater.from(containerView.context)
.inflate(R.layout.component_tabstray_fab, containerView, true) .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.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.drop
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import mozilla.components.lib.state.helpers.AbstractBinding import mozilla.components.lib.state.helpers.AbstractBinding
import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifChanged import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifChanged
@ -70,8 +69,6 @@ class SelectionBannerBinding(
override suspend fun onState(flow: Flow<TabsTrayState>) { override suspend fun onState(flow: Flow<TabsTrayState>) {
flow.map { it.mode } flow.map { it.mode }
// ignore initial mode update; we never start in select mode.
.drop(1)
.ifChanged() .ifChanged()
.collect { mode -> .collect { mode ->
val isSelectMode = mode is Select val isSelectMode = mode is Select

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

Loading…
Cancel
Save