For #21408 - Pass the corresponding HistoryMetadataKey to openToBrowserAndLoad and addTab use case

upstream-sync
Gabriel Luong 3 years ago committed by mergify[bot]
parent 2ae7d5d593
commit d9847f9525

@ -51,6 +51,7 @@ import mozilla.components.concept.engine.EngineSession
import mozilla.components.concept.engine.EngineView
import mozilla.components.concept.storage.BookmarkNode
import mozilla.components.concept.storage.BookmarkNodeType
import mozilla.components.concept.storage.HistoryMetadataKey
import mozilla.components.feature.contextmenu.DefaultSelectionActionDelegate
import mozilla.components.feature.privatemode.notification.PrivateNotificationFeature
import mozilla.components.feature.search.BrowserStoreSearchAdapter
@ -728,10 +729,11 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
engine: SearchEngine? = null,
forceSearch: Boolean = false,
flags: EngineSession.LoadUrlFlags = EngineSession.LoadUrlFlags.none(),
requestDesktopMode: Boolean = false
requestDesktopMode: Boolean = false,
historyMetadata: HistoryMetadataKey? = null
) {
openToBrowser(from, customTabSessionId)
load(searchTermOrURL, newTab, engine, forceSearch, flags, requestDesktopMode)
load(searchTermOrURL, newTab, engine, forceSearch, flags, requestDesktopMode, historyMetadata)
}
fun openToBrowser(from: BrowserDirection, customTabSessionId: String? = null) {
@ -796,6 +798,8 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
* Loads a URL or performs a search (depending on the value of [searchTermOrURL]).
*
* @param flags Flags that will be used when loading the URL (not applied to searches).
* @param historyMetadata The [HistoryMetadataKey] of the new tab in case this tab
* was opened from history.
*/
private fun load(
searchTermOrURL: String,
@ -803,7 +807,8 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
engine: SearchEngine?,
forceSearch: Boolean,
flags: EngineSession.LoadUrlFlags = EngineSession.LoadUrlFlags.none(),
requestDesktopMode: Boolean = false
requestDesktopMode: Boolean = false,
historyMetadata: HistoryMetadataKey? = null
) {
val startTime = components.core.engine.profiler?.getProfilerTime()
val mode = browsingModeManager.mode
@ -821,7 +826,8 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
components.useCases.tabsUseCases.addTab(
url = searchTermOrURL.toNormalizedUrl(),
flags = flags,
private = private
private = private,
historyMetadata = historyMetadata
)
} else {
components.useCases.sessionUseCases.loadUrl(

@ -67,7 +67,8 @@ class DefaultPagedHistoryProvider(
?: it.key.url.tryGetHostFromUrl(),
url = it.key.url,
visitedAt = it.createdAt,
totalViewTime = it.totalViewTime
totalViewTime = it.totalViewTime,
historyMetadataKey = it.key
)
}
)

@ -6,6 +6,7 @@ package org.mozilla.fenix.library.history
import android.os.Parcelable
import kotlinx.parcelize.Parcelize
import mozilla.components.concept.storage.HistoryMetadataKey
import mozilla.components.lib.state.Action
import mozilla.components.lib.state.State
import mozilla.components.lib.state.Store
@ -44,6 +45,8 @@ sealed class History : Parcelable {
* @property url URL of the history metadata item.
* @property visitedAt Timestamp of when this history metadata item was visited.
* @property totalViewTime Total time the user viewed the page associated with this record.
* @property historyMetadataKey The [HistoryMetadataKey] of the new tab in case this tab
* was opened from history.
* @property selected Whether or not the history metadata item is selected.
*/
@Parcelize data class Metadata(
@ -52,6 +55,7 @@ sealed class History : Parcelable {
val url: String,
override val visitedAt: Long,
val totalViewTime: Int,
val historyMetadataKey: HistoryMetadataKey,
override val selected: Boolean = false
) : History()

@ -68,7 +68,8 @@ class DefaultHistoryMetadataGroupController(
activity.openToBrowserAndLoad(
searchTermOrURL = item.url,
newTab = true,
from = BrowserDirection.FromHistoryMetadataGroup
from = BrowserDirection.FromHistoryMetadataGroup,
historyMetadata = item.historyMetadataKey
)
}

@ -52,8 +52,9 @@ class PagedHistoryProviderTest {
visitTime = 1,
visitType = VisitType.LINK
)
val historyMetadataKey1 = HistoryMetadataKey("http://www.mozilla.com", "mozilla", null)
val historyEntry1 = HistoryMetadata(
key = HistoryMetadataKey("http://www.mozilla.com", "mozilla", null),
key = historyMetadataKey1,
title = "mozilla",
createdAt = 5,
updatedAt = 5,
@ -61,8 +62,9 @@ class PagedHistoryProviderTest {
documentType = DocumentType.Regular,
previewImageUrl = null
)
val historyMetadataKey2 = HistoryMetadataKey("http://www.firefox.com", "mozilla", null)
val historyEntry2 = HistoryMetadata(
key = HistoryMetadataKey("http://www.firefox.com", "mozilla", null),
key = historyMetadataKey2,
title = "firefox",
createdAt = 2,
updatedAt = 2,
@ -106,14 +108,16 @@ class PagedHistoryProviderTest {
title = historyEntry1.title!!,
url = historyEntry1.key.url,
visitedAt = historyEntry1.createdAt,
totalViewTime = historyEntry1.totalViewTime
totalViewTime = historyEntry1.totalViewTime,
historyMetadataKey = historyMetadataKey1
),
History.Metadata(
id = historyEntry2.createdAt.toInt(),
title = historyEntry2.title!!,
url = historyEntry2.key.url,
visitedAt = historyEntry2.createdAt,
totalViewTime = historyEntry2.totalViewTime
totalViewTime = historyEntry2.totalViewTime,
historyMetadataKey = historyMetadataKey2
)
)
),

@ -5,6 +5,7 @@
package org.mozilla.fenix.library.historymetadata
import kotlinx.coroutines.runBlocking
import mozilla.components.concept.storage.HistoryMetadataKey
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
@ -22,14 +23,16 @@ class HistoryMetadataGroupFragmentStoreTest {
title = "Mozilla",
url = "mozilla.org",
visitedAt = 0,
totalViewTime = 0
totalViewTime = 0,
historyMetadataKey = HistoryMetadataKey("http://www.mozilla.com", "mozilla", null)
)
private val firefoxHistoryMetadataItem = History.Metadata(
id = 0,
title = "Firefox",
url = "firefox.com",
visitedAt = 0,
totalViewTime = 0
totalViewTime = 0,
historyMetadataKey = HistoryMetadataKey("http://www.firefox.com", "mozilla", null)
)
@Before

@ -10,6 +10,7 @@ import io.mockk.verify
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.TestCoroutineDispatcher
import mozilla.components.concept.engine.prompt.ShareData
import mozilla.components.concept.storage.HistoryMetadataKey
import mozilla.components.support.test.rule.MainCoroutineRule
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
@ -44,14 +45,16 @@ class HistoryMetadataGroupControllerTest {
title = "Mozilla",
url = "mozilla.org",
visitedAt = 0,
totalViewTime = 1
totalViewTime = 1,
historyMetadataKey = HistoryMetadataKey("http://www.mozilla.com", "mozilla", null)
)
private val firefoxHistoryMetadataItem = History.Metadata(
id = 0,
title = "Firefox",
url = "firefox.com",
visitedAt = 0,
totalViewTime = 1
totalViewTime = 1,
historyMetadataKey = HistoryMetadataKey("http://www.firefox.com", "mozilla", null)
)
private lateinit var controller: DefaultHistoryMetadataGroupController

@ -6,6 +6,7 @@ package org.mozilla.fenix.library.historymetadata.view
import android.view.LayoutInflater
import androidx.navigation.Navigation
import io.mockk.mockk
import mozilla.components.concept.storage.HistoryMetadataKey
import mozilla.components.support.test.robolectric.testContext
import org.junit.Assert.assertEquals
import org.junit.Before
@ -29,7 +30,8 @@ class HistoryMetadataGroupItemViewHolderTest {
title = "Mozilla",
url = "mozilla.org",
visitedAt = 0,
totalViewTime = 0
totalViewTime = 0,
historyMetadataKey = HistoryMetadataKey("http://www.mozilla.com", "mozilla", null)
)
@Before

@ -3,5 +3,5 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
object AndroidComponents {
const val VERSION = "94.0.20210921143125"
const val VERSION = "94.0.20210921160503"
}

Loading…
Cancel
Save