Revert "For 11660: fixing nits for previous #11668 (#11821)"

This reverts commit bd7a5375f2.
pull/35/head
Christian Sadilek 4 years ago committed by Jonathan Almeida
parent edd0ea4e6b
commit 0162fd68a9

@ -257,9 +257,8 @@ open class FenixApplication : LocaleAwareApplication(), Provider {
// no-op, LeakCanary is disabled by default
}
/**
* See [TopsiteStore.prefetch] for details on pre fetching.
*/
// This is for issue https://github.com/mozilla-mobile/fenix/issues/11660. We prefetch our info for startup
// so that we're sure that we have all the data available as our fragment is launched.
private fun prefetchForHomeFragment() {
StrictMode.allowThreadDiskReads().resetPoliciesAfter {
components.core.topSiteStorage.prefetch()

@ -14,7 +14,7 @@ import mozilla.components.feature.top.sites.TopSite
import mozilla.components.feature.top.sites.TopSiteStorage
import mozilla.components.support.locale.LocaleManager
import org.mozilla.fenix.R
import org.mozilla.fenix.ext.observeOnceAndRemoveObserver
import org.mozilla.fenix.ext.observeOnce
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.settings.SupportUtils
import org.mozilla.fenix.settings.advanced.getSelectedLocale
@ -88,15 +88,8 @@ class TopSiteStorage(private val context: Context) {
}
}
/**
* This is for issue https://github.com/mozilla-mobile/fenix/issues/11660. We prefetch the top
* sites for startup so that we're sure that we have all the data available as our fragment is
* launched to make sure that we can display everything on the home screen on the first drawing pass.
* This method doesn't negatively affect performance since the [getTopSites] runs on the a
* background thread.
*/
fun prefetch() {
getTopSites().observeOnceAndRemoveObserver {
getTopSites().observeOnce {
cachedTopSites = it
}
}

@ -10,11 +10,11 @@ import androidx.lifecycle.Observer
/**
* Observe a LiveData once and unregister from it as soon as the live data returns a value
*/
fun <T> LiveData<T>.observeOnceAndRemoveObserver(callback: (T) -> Unit) {
fun <T> LiveData<T>.observeOnce(observer: (T) -> Unit) {
observeForever(object : Observer<T> {
override fun onChanged(value: T) {
removeObserver(this)
callback(value)
observer(value)
}
})
}

Loading…
Cancel
Save