From f05eb032d40599c68db96d975b42ead2ddd84fe7 Mon Sep 17 00:00:00 2001 From: Gabriel Luong Date: Sun, 9 Jun 2019 21:50:09 -0400 Subject: [PATCH] For #2684: Add an extension function Session.toTab to map Session to Tab and clean up their usage --- .../mozilla/fenix/browser/BrowserFragment.kt | 5 ++--- .../java/org/mozilla/fenix/ext/Session.kt | 20 +++++++++++++++++ .../org/mozilla/fenix/home/HomeFragment.kt | 22 ++++--------------- 3 files changed, 26 insertions(+), 21 deletions(-) create mode 100644 app/src/main/java/org/mozilla/fenix/ext/Session.kt diff --git a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt index 28688c3a2..26bffcfc2 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -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) } diff --git a/app/src/main/java/org/mozilla/fenix/ext/Session.kt b/app/src/main/java/org/mozilla/fenix/ext/Session.kt new file mode 100644 index 000000000..99c063837 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/ext/Session.kt @@ -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 + ) +} diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index a11600265..c01061dd0 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -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)