mirror of
https://github.com/fork-maintainers/iceraven-browser
synced 2024-11-02 03:40:16 +00:00
[fenix] For https://github.com/mozilla-mobile/fenix/issues/23738 - Integrate the Contile top sites updater
This commit is contained in:
parent
6d3e2a9f74
commit
512a75eef2
@ -57,6 +57,7 @@ import mozilla.components.feature.search.BrowserStoreSearchAdapter
|
||||
import mozilla.components.service.fxa.sync.SyncReason
|
||||
import mozilla.components.support.base.feature.ActivityResultHandler
|
||||
import mozilla.components.support.base.feature.UserInteractionHandler
|
||||
import mozilla.components.support.base.log.logger.Logger
|
||||
import mozilla.components.support.ktx.android.arch.lifecycle.addObservers
|
||||
import mozilla.components.support.ktx.android.content.call
|
||||
import mozilla.components.support.ktx.android.content.email
|
||||
@ -86,8 +87,8 @@ import org.mozilla.fenix.ext.setNavigationIcon
|
||||
import org.mozilla.fenix.ext.settings
|
||||
import org.mozilla.fenix.home.HomeFragmentDirections
|
||||
import org.mozilla.fenix.home.intent.CrashReporterIntentProcessor
|
||||
import org.mozilla.fenix.home.intent.HomeDeepLinkIntentProcessor
|
||||
import org.mozilla.fenix.home.intent.DefaultBrowserIntentProcessor
|
||||
import org.mozilla.fenix.home.intent.HomeDeepLinkIntentProcessor
|
||||
import org.mozilla.fenix.home.intent.OpenBrowserIntentProcessor
|
||||
import org.mozilla.fenix.home.intent.OpenSpecificTabIntentProcessor
|
||||
import org.mozilla.fenix.home.intent.SpeechProcessingIntentProcessor
|
||||
@ -279,6 +280,10 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
|
||||
|
||||
components.core.requestInterceptor.setNavigationController(navHost.navController)
|
||||
|
||||
if (settings().showContileFeature) {
|
||||
components.core.contileTopSitesUpdater.startPeriodicWork()
|
||||
}
|
||||
|
||||
if (settings().showPocketRecommendationsFeature) {
|
||||
components.core.pocketStoriesService.startPeriodicStoriesRefresh()
|
||||
}
|
||||
@ -309,6 +314,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
|
||||
}
|
||||
|
||||
@CallSuper
|
||||
@Suppress("TooGenericExceptionCaught")
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
|
||||
@ -332,7 +338,19 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
|
||||
}
|
||||
}
|
||||
|
||||
isFenixTheDefaultBrowser()
|
||||
lifecycleScope.launch(IO) {
|
||||
try {
|
||||
components.core.contileTopSitesProvider.refreshTopSitesIfCacheExpired()
|
||||
} catch (e: Exception) {
|
||||
Logger.error("Failed to refresh contile top sites", e)
|
||||
}
|
||||
|
||||
if (settings().checkIfFenixIsDefaultBrowserOnAppResume()) {
|
||||
metrics.track(Event.ChangedToDefaultBrowser)
|
||||
}
|
||||
|
||||
DefaultBrowserNotificationWorker.setDefaultBrowserNotificationIfNeeded(applicationContext)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
@ -435,6 +453,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
|
||||
)
|
||||
)
|
||||
|
||||
components.core.contileTopSitesUpdater.stopPeriodicWork()
|
||||
components.core.pocketStoriesService.stopPeriodicStoriesRefresh()
|
||||
privateNotificationObserver?.stop()
|
||||
}
|
||||
@ -975,19 +994,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
|
||||
}
|
||||
}
|
||||
|
||||
private fun isFenixTheDefaultBrowser() {
|
||||
// Launch this on a background thread so as not to affect startup performance
|
||||
lifecycleScope.launch(IO) {
|
||||
if (
|
||||
settings().checkIfFenixIsDefaultBrowserOnAppResume()
|
||||
) {
|
||||
metrics.track(Event.ChangedToDefaultBrowser)
|
||||
}
|
||||
|
||||
DefaultBrowserNotificationWorker.setDefaultBrowserNotificationIfNeeded(applicationContext)
|
||||
}
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
internal fun isActivityColdStarted(startingIntent: Intent, activityIcicle: Bundle?): Boolean {
|
||||
// First time opening this activity in the task.
|
||||
|
@ -55,6 +55,7 @@ import mozilla.components.feature.webcompat.reporter.WebCompatReporterFeature
|
||||
import mozilla.components.feature.webnotifications.WebNotificationFeature
|
||||
import mozilla.components.lib.dataprotect.SecureAbove22Preferences
|
||||
import mozilla.components.service.contile.ContileTopSitesProvider
|
||||
import mozilla.components.service.contile.ContileTopSitesUpdater
|
||||
import mozilla.components.service.digitalassetlinks.RelationChecker
|
||||
import mozilla.components.service.digitalassetlinks.local.StatementApi
|
||||
import mozilla.components.service.digitalassetlinks.local.StatementRelationChecker
|
||||
@ -348,6 +349,15 @@ class Core(
|
||||
)
|
||||
}
|
||||
|
||||
@Suppress("MagicNumber")
|
||||
val contileTopSitesUpdater by lazyMonitored {
|
||||
ContileTopSitesUpdater(
|
||||
context = context,
|
||||
provider = contileTopSitesProvider,
|
||||
frequency = Frequency(3, TimeUnit.HOURS)
|
||||
)
|
||||
}
|
||||
|
||||
val topSitesStorage by lazyMonitored {
|
||||
val defaultTopSites = mutableListOf<Pair<String, String>>()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user