Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Matthew Finkel
fenix
Commits
c6de8632
Unverified
Commit
c6de8632
authored
Nov 13, 2020
by
Mugurell
Committed by
GitHub
Nov 13, 2020
Browse files
For #16461 - Ensure the proper items order after exiting Multiselect (#16482)
parent
a06b30a7
Changes
2
Hide whitespace changes
Inline
Side-by-side
app/src/main/java/org/mozilla/fenix/tabtray/SyncedTabsController.kt
View file @
c6de8632
...
...
@@ -21,6 +21,7 @@ import mozilla.components.browser.storage.sync.SyncedDeviceTabs
import
mozilla.components.feature.syncedtabs.view.SyncedTabsView
import
mozilla.components.lib.state.ext.flowScoped
import
mozilla.components.support.ktx.kotlinx.coroutines.flow.ifChanged
import
org.mozilla.fenix.ext.settings
import
org.mozilla.fenix.sync.ListenerDelegate
import
org.mozilla.fenix.sync.SyncedTabsAdapter
import
org.mozilla.fenix.sync.ext.toAdapterList
...
...
@@ -50,7 +51,11 @@ class SyncedTabsController(
.
collect
{
mode
->
when
(
mode
)
{
is
TabTrayDialogFragmentState
.
Mode
.
Normal
->
{
concatAdapter
.
addAdapter
(
0
,
adapter
)
if
(
view
.
context
.
settings
().
gridTabView
)
{
concatAdapter
.
addAdapter
(
adapter
)
}
else
{
concatAdapter
.
addAdapter
(
0
,
adapter
)
}
}
is
TabTrayDialogFragmentState
.
Mode
.
MultiSelect
->
{
concatAdapter
.
removeAdapter
(
adapter
)
...
...
app/src/test/java/org/mozilla/fenix/tabtray/SyncedTabsControllerTest.kt
View file @
c6de8632
...
...
@@ -25,6 +25,7 @@ import org.junit.Rule
import
org.junit.Test
import
org.junit.runner.RunWith
import
org.mozilla.fenix.R
import
org.mozilla.fenix.ext.settings
import
org.mozilla.fenix.helpers.FenixRobolectricTestRunner
import
org.mozilla.fenix.sync.SyncedTabsViewHolder
import
org.mozilla.fenix.tabtray.TabTrayDialogFragmentAction.EnterMultiSelectMode
...
...
@@ -54,6 +55,7 @@ class SyncedTabsControllerTest {
every
{
lifecycleOwner
.
lifecycle
}
returns
lifecycle
concatAdapter
=
mockk
()
every
{
concatAdapter
.
addAdapter
(
any
())
}
returns
true
every
{
concatAdapter
.
addAdapter
(
any
(),
any
())
}
returns
true
every
{
concatAdapter
.
removeAdapter
(
any
())
}
returns
true
...
...
@@ -128,12 +130,22 @@ class SyncedTabsControllerTest {
@Test
fun
`concatAdapter
updated
on
mode
changes`
()
=
testDispatcher
.
runBlockingTest
{
store
.
dispatch
(
EnterMultiSelectMode
).
joinBlocking
()
// When returning from Multiselect while in grid view the adapter should be added at the end
every
{
view
.
context
.
settings
().
gridTabView
}
returns
true
store
.
dispatch
(
EnterMultiSelectMode
).
joinBlocking
()
verify
{
concatAdapter
.
removeAdapter
(
any
())
}
store
.
dispatch
(
ExitMultiSelectMode
).
joinBlocking
()
verify
{
concatAdapter
.
addAdapter
(
any
())
}
// When returning from Multiselect while in list view the adapter should be added at the front
every
{
view
.
context
.
settings
().
gridTabView
}
returns
false
store
.
dispatch
(
EnterMultiSelectMode
).
joinBlocking
()
verify
{
concatAdapter
.
removeAdapter
(
any
())
}
store
.
dispatch
(
ExitMultiSelectMode
).
joinBlocking
()
verify
{
concatAdapter
.
addAdapter
(
0
,
any
())
}
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment