For #2684: Add an extension function Session.toTab to map Session to Tab and clean up their usage
parent
72fad9f2ad
commit
f05eb032d4
|
@ -79,8 +79,7 @@ import org.mozilla.fenix.ext.components
|
||||||
import org.mozilla.fenix.ext.enterToImmersiveMode
|
import org.mozilla.fenix.ext.enterToImmersiveMode
|
||||||
import org.mozilla.fenix.ext.nav
|
import org.mozilla.fenix.ext.nav
|
||||||
import org.mozilla.fenix.ext.requireComponents
|
import org.mozilla.fenix.ext.requireComponents
|
||||||
import org.mozilla.fenix.ext.urlToTrimmedHost
|
import org.mozilla.fenix.ext.toTab
|
||||||
import org.mozilla.fenix.home.sessioncontrol.Tab
|
|
||||||
import org.mozilla.fenix.lib.Do
|
import org.mozilla.fenix.lib.Do
|
||||||
import org.mozilla.fenix.mvi.ActionBusFactory
|
import org.mozilla.fenix.mvi.ActionBusFactory
|
||||||
import org.mozilla.fenix.mvi.getAutoDisposeObservable
|
import org.mozilla.fenix.mvi.getAutoDisposeObservable
|
||||||
|
@ -747,7 +746,7 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope {
|
||||||
private fun showSaveToCollection() {
|
private fun showSaveToCollection() {
|
||||||
val context = context ?: return
|
val context = context ?: return
|
||||||
getSessionById()?.let {
|
getSessionById()?.let {
|
||||||
val tabs = Tab(it.id, it.url, it.url.urlToTrimmedHost(context), it.title)
|
val tabs = it.toTab(context)
|
||||||
val viewModel = activity?.run {
|
val viewModel = activity?.run {
|
||||||
ViewModelProviders.of(this).get(CreateCollectionViewModel::class.java)
|
ViewModelProviders.of(this).get(CreateCollectionViewModel::class.java)
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
package org.mozilla.fenix.ext
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import mozilla.components.browser.session.Session
|
||||||
|
import org.mozilla.fenix.home.sessioncontrol.Tab
|
||||||
|
|
||||||
|
fun Session.toTab(context: Context, selected: Boolean? = null): Tab {
|
||||||
|
return Tab(
|
||||||
|
this.id,
|
||||||
|
this.url,
|
||||||
|
this.url.urlToTrimmedHost(context),
|
||||||
|
this.title,
|
||||||
|
selected,
|
||||||
|
this.thumbnail
|
||||||
|
)
|
||||||
|
}
|
|
@ -57,7 +57,7 @@ import org.mozilla.fenix.components.metrics.Event
|
||||||
import org.mozilla.fenix.ext.components
|
import org.mozilla.fenix.ext.components
|
||||||
import org.mozilla.fenix.ext.nav
|
import org.mozilla.fenix.ext.nav
|
||||||
import org.mozilla.fenix.ext.requireComponents
|
import org.mozilla.fenix.ext.requireComponents
|
||||||
import org.mozilla.fenix.ext.urlToTrimmedHost
|
import org.mozilla.fenix.ext.toTab
|
||||||
import org.mozilla.fenix.home.sessioncontrol.CollectionAction
|
import org.mozilla.fenix.home.sessioncontrol.CollectionAction
|
||||||
import org.mozilla.fenix.home.sessioncontrol.Mode
|
import org.mozilla.fenix.home.sessioncontrol.Mode
|
||||||
import org.mozilla.fenix.home.sessioncontrol.OnboardingAction
|
import org.mozilla.fenix.home.sessioncontrol.OnboardingAction
|
||||||
|
@ -577,14 +577,7 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
|
||||||
.filter { it.id != sessionId }
|
.filter { it.id != sessionId }
|
||||||
.map {
|
.map {
|
||||||
val selected = it == sessionManager.selectedSession
|
val selected = it == sessionManager.selectedSession
|
||||||
Tab(
|
it.toTab(context!!, selected)
|
||||||
it.id,
|
|
||||||
it.url,
|
|
||||||
it.url.urlToTrimmedHost(context!!),
|
|
||||||
it.title,
|
|
||||||
selected,
|
|
||||||
it.thumbnail
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -624,14 +617,7 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
|
||||||
.filter { (activity as HomeActivity).browsingModeManager.isPrivate == it.private }
|
.filter { (activity as HomeActivity).browsingModeManager.isPrivate == it.private }
|
||||||
.map {
|
.map {
|
||||||
val selected = it == sessionManager.selectedSession
|
val selected = it == sessionManager.selectedSession
|
||||||
Tab(
|
it.toTab(context, selected)
|
||||||
it.id,
|
|
||||||
it.url,
|
|
||||||
it.url.urlToTrimmedHost(context),
|
|
||||||
it.title,
|
|
||||||
selected,
|
|
||||||
it.thumbnail
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -650,7 +636,7 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
|
||||||
val context = context?.let { it } ?: return
|
val context = context?.let { it } ?: return
|
||||||
|
|
||||||
val tabs = requireComponents.core.sessionManager.sessions.filter { !it.private }
|
val tabs = requireComponents.core.sessionManager.sessions.filter { !it.private }
|
||||||
.map { Tab(it.id, it.url, it.url.urlToTrimmedHost(context), it.title) }
|
.map { it.toTab(context) }
|
||||||
|
|
||||||
val viewModel = activity?.run {
|
val viewModel = activity?.run {
|
||||||
ViewModelProviders.of(this).get(CreateCollectionViewModel::class.java)
|
ViewModelProviders.of(this).get(CreateCollectionViewModel::class.java)
|
||||||
|
|
Loading…
Reference in New Issue