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.nav
|
||||
import org.mozilla.fenix.ext.requireComponents
|
||||
import org.mozilla.fenix.ext.urlToTrimmedHost
|
||||
import org.mozilla.fenix.home.sessioncontrol.Tab
|
||||
import org.mozilla.fenix.ext.toTab
|
||||
import org.mozilla.fenix.lib.Do
|
||||
import org.mozilla.fenix.mvi.ActionBusFactory
|
||||
import org.mozilla.fenix.mvi.getAutoDisposeObservable
|
||||
|
@ -747,7 +746,7 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope {
|
|||
private fun showSaveToCollection() {
|
||||
val context = context ?: return
|
||||
getSessionById()?.let {
|
||||
val tabs = Tab(it.id, it.url, it.url.urlToTrimmedHost(context), it.title)
|
||||
val tabs = it.toTab(context)
|
||||
val viewModel = activity?.run {
|
||||
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.nav
|
||||
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.Mode
|
||||
import org.mozilla.fenix.home.sessioncontrol.OnboardingAction
|
||||
|
@ -577,14 +577,7 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
|
|||
.filter { it.id != sessionId }
|
||||
.map {
|
||||
val selected = it == sessionManager.selectedSession
|
||||
Tab(
|
||||
it.id,
|
||||
it.url,
|
||||
it.url.urlToTrimmedHost(context!!),
|
||||
it.title,
|
||||
selected,
|
||||
it.thumbnail
|
||||
)
|
||||
it.toTab(context!!, selected)
|
||||
}
|
||||
)
|
||||
)
|
||||
|
@ -624,14 +617,7 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
|
|||
.filter { (activity as HomeActivity).browsingModeManager.isPrivate == it.private }
|
||||
.map {
|
||||
val selected = it == sessionManager.selectedSession
|
||||
Tab(
|
||||
it.id,
|
||||
it.url,
|
||||
it.url.urlToTrimmedHost(context),
|
||||
it.title,
|
||||
selected,
|
||||
it.thumbnail
|
||||
)
|
||||
it.toTab(context, selected)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -650,7 +636,7 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
|
|||
val context = context?.let { it } ?: return
|
||||
|
||||
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 {
|
||||
ViewModelProviders.of(this).get(CreateCollectionViewModel::class.java)
|
||||
|
|
Loading…
Reference in New Issue