1
0
Fork 0

Use ManifestUpdateFeature

master
Tiger Oakes 2019-11-07 11:30:03 -08:00 committed by Grisha Kruglov
parent 4183dea591
commit afda836f1f
4 changed files with 32 additions and 8 deletions

View File

@ -27,7 +27,7 @@ class Components(private val context: Context) {
core.store,
core.engine.settings,
search.searchEngineManager,
core.client
core.webAppShortcutManager
)
}
val intentProcessors by lazy {

View File

@ -30,13 +30,14 @@ import mozilla.components.feature.customtabs.store.CustomTabsServiceStore
import mozilla.components.feature.media.MediaFeature
import mozilla.components.feature.media.RecordingDevicesNotificationFeature
import mozilla.components.feature.media.state.MediaStateMachine
import mozilla.components.feature.pwa.ManifestStorage
import mozilla.components.feature.pwa.WebAppShortcutManager
import mozilla.components.feature.session.HistoryDelegate
import mozilla.components.feature.webcompat.WebCompatFeature
import mozilla.components.service.sync.logins.AsyncLoginsStorageAdapter
import mozilla.components.service.sync.logins.SyncableLoginsStore
import org.mozilla.fenix.AppRequestInterceptor
import org.mozilla.fenix.FeatureFlags
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.test.Mockable
import java.io.File
@ -141,7 +142,19 @@ class Core(private val context: Context) {
* Icons component for loading, caching and processing website icons.
*/
val icons by lazy {
BrowserIcons(context, context.components.core.client)
BrowserIcons(context, client)
}
/**
* Shortcut component for managing shortcuts on the device home screen.
*/
val webAppShortcutManager by lazy {
WebAppShortcutManager(
context,
client,
webAppManifestStorage,
supportWebApps = FeatureFlags.progressiveWebApps
)
}
/**
@ -156,6 +169,8 @@ class Core(private val context: Context) {
val permissionStorage by lazy { PermissionStorage(context) }
val webAppManifestStorage by lazy { ManifestStorage(context) }
val loginsStorage by lazy {
SyncableLoginsStore(
AsyncLoginsStorageAdapter.forDatabase(

View File

@ -9,16 +9,15 @@ import mozilla.components.browser.search.SearchEngineManager
import mozilla.components.browser.session.SessionManager
import mozilla.components.browser.state.store.BrowserStore
import mozilla.components.concept.engine.Settings
import mozilla.components.concept.fetch.Client
import mozilla.components.feature.app.links.AppLinksUseCases
import mozilla.components.feature.contextmenu.ContextMenuUseCases
import mozilla.components.feature.downloads.DownloadsUseCases
import mozilla.components.feature.pwa.WebAppShortcutManager
import mozilla.components.feature.pwa.WebAppUseCases
import mozilla.components.feature.search.SearchUseCases
import mozilla.components.feature.session.SessionUseCases
import mozilla.components.feature.session.SettingsUseCases
import mozilla.components.feature.tabs.TabsUseCases
import org.mozilla.fenix.FeatureFlags.progressiveWebApps
import org.mozilla.fenix.test.Mockable
/**
@ -32,7 +31,7 @@ class UseCases(
private val store: BrowserStore,
private val engineSettings: Settings,
private val searchEngineManager: SearchEngineManager,
private val httpClient: Client
private val shortcutManager: WebAppShortcutManager
) {
/**
* Use cases that provide engine interactions for a given browser session.
@ -57,7 +56,7 @@ class UseCases(
val appLinksUseCases by lazy { AppLinksUseCases(context.applicationContext) }
val webAppUseCases by lazy {
WebAppUseCases(context, sessionManager, httpClient, supportWebApps = progressiveWebApps)
WebAppUseCases(context, sessionManager, shortcutManager)
}
val downloadUseCases by lazy { DownloadsUseCases(store) }

View File

@ -18,6 +18,7 @@ import mozilla.components.concept.engine.manifest.getOrNull
import mozilla.components.feature.contextmenu.ContextMenuCandidate
import mozilla.components.feature.pwa.ext.getTrustedScope
import mozilla.components.feature.pwa.ext.trustedOrigins
import mozilla.components.feature.pwa.feature.ManifestUpdateFeature
import mozilla.components.feature.pwa.feature.WebAppActivityFeature
import mozilla.components.feature.pwa.feature.WebAppHideToolbarFeature
import mozilla.components.feature.pwa.feature.WebAppSiteControlsFeature
@ -26,6 +27,7 @@ import mozilla.components.feature.sitepermissions.SitePermissions
import mozilla.components.lib.state.ext.consumeFrom
import mozilla.components.support.base.feature.BackHandler
import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
import mozilla.components.support.ktx.android.arch.lifecycle.addObservers
import org.mozilla.fenix.R
import org.mozilla.fenix.browser.BaseBrowserFragment
import org.mozilla.fenix.browser.CustomTabContextMenuCandidate
@ -86,11 +88,19 @@ class ExternalAppBrowserFragment : BaseBrowserFragment(), BackHandler {
)
if (manifest != null) {
activity.lifecycle.addObserver(
activity.lifecycle.addObservers(
WebAppActivityFeature(
activity,
components.core.icons,
manifest
),
ManifestUpdateFeature(
activity.applicationContext,
requireComponents.core.sessionManager,
requireComponents.core.webAppManifestStorage,
requireComponents.core.webAppManifestStorage,
customTabSessionId,
manifest
)
)
viewLifecycleOwner.lifecycle.addObserver(