1
0
Fork 0

For #2684: Add an extension function Session.toTab to map Session to Tab and clean up their usage

master
Gabriel Luong 2019-06-09 21:50:09 -04:00 committed by Emily Kager
parent 72fad9f2ad
commit f05eb032d4
3 changed files with 26 additions and 21 deletions

View File

@ -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)
} }

View File

@ -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
)
}

View File

@ -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)