Use ManifestUpdateFeature
This commit is contained in:
parent
4183dea591
commit
afda836f1f
|
@ -27,7 +27,7 @@ class Components(private val context: Context) {
|
||||||
core.store,
|
core.store,
|
||||||
core.engine.settings,
|
core.engine.settings,
|
||||||
search.searchEngineManager,
|
search.searchEngineManager,
|
||||||
core.client
|
core.webAppShortcutManager
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
val intentProcessors by lazy {
|
val intentProcessors by lazy {
|
||||||
|
|
|
@ -30,13 +30,14 @@ import mozilla.components.feature.customtabs.store.CustomTabsServiceStore
|
||||||
import mozilla.components.feature.media.MediaFeature
|
import mozilla.components.feature.media.MediaFeature
|
||||||
import mozilla.components.feature.media.RecordingDevicesNotificationFeature
|
import mozilla.components.feature.media.RecordingDevicesNotificationFeature
|
||||||
import mozilla.components.feature.media.state.MediaStateMachine
|
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.session.HistoryDelegate
|
||||||
import mozilla.components.feature.webcompat.WebCompatFeature
|
import mozilla.components.feature.webcompat.WebCompatFeature
|
||||||
import mozilla.components.service.sync.logins.AsyncLoginsStorageAdapter
|
import mozilla.components.service.sync.logins.AsyncLoginsStorageAdapter
|
||||||
import mozilla.components.service.sync.logins.SyncableLoginsStore
|
import mozilla.components.service.sync.logins.SyncableLoginsStore
|
||||||
import org.mozilla.fenix.AppRequestInterceptor
|
import org.mozilla.fenix.AppRequestInterceptor
|
||||||
import org.mozilla.fenix.FeatureFlags
|
import org.mozilla.fenix.FeatureFlags
|
||||||
import org.mozilla.fenix.ext.components
|
|
||||||
import org.mozilla.fenix.ext.settings
|
import org.mozilla.fenix.ext.settings
|
||||||
import org.mozilla.fenix.test.Mockable
|
import org.mozilla.fenix.test.Mockable
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
@ -141,7 +142,19 @@ class Core(private val context: Context) {
|
||||||
* Icons component for loading, caching and processing website icons.
|
* Icons component for loading, caching and processing website icons.
|
||||||
*/
|
*/
|
||||||
val icons by lazy {
|
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 permissionStorage by lazy { PermissionStorage(context) }
|
||||||
|
|
||||||
|
val webAppManifestStorage by lazy { ManifestStorage(context) }
|
||||||
|
|
||||||
val loginsStorage by lazy {
|
val loginsStorage by lazy {
|
||||||
SyncableLoginsStore(
|
SyncableLoginsStore(
|
||||||
AsyncLoginsStorageAdapter.forDatabase(
|
AsyncLoginsStorageAdapter.forDatabase(
|
||||||
|
|
|
@ -9,16 +9,15 @@ import mozilla.components.browser.search.SearchEngineManager
|
||||||
import mozilla.components.browser.session.SessionManager
|
import mozilla.components.browser.session.SessionManager
|
||||||
import mozilla.components.browser.state.store.BrowserStore
|
import mozilla.components.browser.state.store.BrowserStore
|
||||||
import mozilla.components.concept.engine.Settings
|
import mozilla.components.concept.engine.Settings
|
||||||
import mozilla.components.concept.fetch.Client
|
|
||||||
import mozilla.components.feature.app.links.AppLinksUseCases
|
import mozilla.components.feature.app.links.AppLinksUseCases
|
||||||
import mozilla.components.feature.contextmenu.ContextMenuUseCases
|
import mozilla.components.feature.contextmenu.ContextMenuUseCases
|
||||||
import mozilla.components.feature.downloads.DownloadsUseCases
|
import mozilla.components.feature.downloads.DownloadsUseCases
|
||||||
|
import mozilla.components.feature.pwa.WebAppShortcutManager
|
||||||
import mozilla.components.feature.pwa.WebAppUseCases
|
import mozilla.components.feature.pwa.WebAppUseCases
|
||||||
import mozilla.components.feature.search.SearchUseCases
|
import mozilla.components.feature.search.SearchUseCases
|
||||||
import mozilla.components.feature.session.SessionUseCases
|
import mozilla.components.feature.session.SessionUseCases
|
||||||
import mozilla.components.feature.session.SettingsUseCases
|
import mozilla.components.feature.session.SettingsUseCases
|
||||||
import mozilla.components.feature.tabs.TabsUseCases
|
import mozilla.components.feature.tabs.TabsUseCases
|
||||||
import org.mozilla.fenix.FeatureFlags.progressiveWebApps
|
|
||||||
import org.mozilla.fenix.test.Mockable
|
import org.mozilla.fenix.test.Mockable
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -32,7 +31,7 @@ class UseCases(
|
||||||
private val store: BrowserStore,
|
private val store: BrowserStore,
|
||||||
private val engineSettings: Settings,
|
private val engineSettings: Settings,
|
||||||
private val searchEngineManager: SearchEngineManager,
|
private val searchEngineManager: SearchEngineManager,
|
||||||
private val httpClient: Client
|
private val shortcutManager: WebAppShortcutManager
|
||||||
) {
|
) {
|
||||||
/**
|
/**
|
||||||
* Use cases that provide engine interactions for a given browser session.
|
* 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 appLinksUseCases by lazy { AppLinksUseCases(context.applicationContext) }
|
||||||
|
|
||||||
val webAppUseCases by lazy {
|
val webAppUseCases by lazy {
|
||||||
WebAppUseCases(context, sessionManager, httpClient, supportWebApps = progressiveWebApps)
|
WebAppUseCases(context, sessionManager, shortcutManager)
|
||||||
}
|
}
|
||||||
|
|
||||||
val downloadUseCases by lazy { DownloadsUseCases(store) }
|
val downloadUseCases by lazy { DownloadsUseCases(store) }
|
||||||
|
|
|
@ -18,6 +18,7 @@ import mozilla.components.concept.engine.manifest.getOrNull
|
||||||
import mozilla.components.feature.contextmenu.ContextMenuCandidate
|
import mozilla.components.feature.contextmenu.ContextMenuCandidate
|
||||||
import mozilla.components.feature.pwa.ext.getTrustedScope
|
import mozilla.components.feature.pwa.ext.getTrustedScope
|
||||||
import mozilla.components.feature.pwa.ext.trustedOrigins
|
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.WebAppActivityFeature
|
||||||
import mozilla.components.feature.pwa.feature.WebAppHideToolbarFeature
|
import mozilla.components.feature.pwa.feature.WebAppHideToolbarFeature
|
||||||
import mozilla.components.feature.pwa.feature.WebAppSiteControlsFeature
|
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.lib.state.ext.consumeFrom
|
||||||
import mozilla.components.support.base.feature.BackHandler
|
import mozilla.components.support.base.feature.BackHandler
|
||||||
import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
|
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.R
|
||||||
import org.mozilla.fenix.browser.BaseBrowserFragment
|
import org.mozilla.fenix.browser.BaseBrowserFragment
|
||||||
import org.mozilla.fenix.browser.CustomTabContextMenuCandidate
|
import org.mozilla.fenix.browser.CustomTabContextMenuCandidate
|
||||||
|
@ -86,11 +88,19 @@ class ExternalAppBrowserFragment : BaseBrowserFragment(), BackHandler {
|
||||||
)
|
)
|
||||||
|
|
||||||
if (manifest != null) {
|
if (manifest != null) {
|
||||||
activity.lifecycle.addObserver(
|
activity.lifecycle.addObservers(
|
||||||
WebAppActivityFeature(
|
WebAppActivityFeature(
|
||||||
activity,
|
activity,
|
||||||
components.core.icons,
|
components.core.icons,
|
||||||
manifest
|
manifest
|
||||||
|
),
|
||||||
|
ManifestUpdateFeature(
|
||||||
|
activity.applicationContext,
|
||||||
|
requireComponents.core.sessionManager,
|
||||||
|
requireComponents.core.webAppManifestStorage,
|
||||||
|
requireComponents.core.webAppManifestStorage,
|
||||||
|
customTabSessionId,
|
||||||
|
manifest
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
viewLifecycleOwner.lifecycle.addObserver(
|
viewLifecycleOwner.lifecycle.addObserver(
|
||||||
|
|
Loading…
Reference in New Issue
Block a user