mirror of
https://github.com/etesync/android
synced 2024-12-23 07:08:16 +00:00
Have a collection fetching cache like we had for etesync v1.
This is there because we usually sync all of the adapters in tandem and we were fetching all of the collections multiple times because of it.
This commit is contained in:
parent
b637f25f4a
commit
048acdf26c
@ -30,7 +30,6 @@ import com.etesync.syncadapter.*
|
|||||||
import com.etesync.journalmanager.Crypto
|
import com.etesync.journalmanager.Crypto
|
||||||
import com.etesync.journalmanager.Exceptions
|
import com.etesync.journalmanager.Exceptions
|
||||||
import com.etesync.journalmanager.JournalManager
|
import com.etesync.journalmanager.JournalManager
|
||||||
import com.etesync.syncadapter.*
|
|
||||||
import com.etesync.syncadapter.log.Logger
|
import com.etesync.syncadapter.log.Logger
|
||||||
import com.etesync.syncadapter.model.CollectionInfo
|
import com.etesync.syncadapter.model.CollectionInfo
|
||||||
import com.etesync.syncadapter.model.JournalEntity
|
import com.etesync.syncadapter.model.JournalEntity
|
||||||
@ -247,6 +246,14 @@ abstract class SyncAdapterService : Service() {
|
|||||||
|
|
||||||
val etebaseLocalCache = EtebaseLocalCache.getInstance(context, account.name)
|
val etebaseLocalCache = EtebaseLocalCache.getInstance(context, account.name)
|
||||||
synchronized(etebaseLocalCache) {
|
synchronized(etebaseLocalCache) {
|
||||||
|
val cacheAge = 5 * 1000 // 5 seconds - it's just a hack for burst fetching
|
||||||
|
val now = System.currentTimeMillis()
|
||||||
|
val lastCollectionsFetch = collectionLastFetchMap[account.name] ?: 0
|
||||||
|
|
||||||
|
if (abs(now - lastCollectionsFetch) <= cacheAge) {
|
||||||
|
return@synchronized
|
||||||
|
}
|
||||||
|
|
||||||
val etebase = EtebaseLocalCache.getEtebase(context, httpClient.okHttpClient, settings)
|
val etebase = EtebaseLocalCache.getEtebase(context, httpClient.okHttpClient, settings)
|
||||||
val colMgr = etebase.collectionManager
|
val colMgr = etebase.collectionManager
|
||||||
var stoken = etebaseLocalCache.loadStoken()
|
var stoken = etebaseLocalCache.loadStoken()
|
||||||
@ -265,6 +272,7 @@ abstract class SyncAdapterService : Service() {
|
|||||||
done = colList.isDone
|
done = colList.isDone
|
||||||
etebaseLocalCache.saveStoken(stoken!!)
|
etebaseLocalCache.saveStoken(stoken!!)
|
||||||
}
|
}
|
||||||
|
collectionLastFetchMap[account.name] = now
|
||||||
}
|
}
|
||||||
|
|
||||||
httpClient.close()
|
httpClient.close()
|
||||||
@ -308,5 +316,6 @@ abstract class SyncAdapterService : Service() {
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val journalFetcher = CachedJournalFetcher()
|
val journalFetcher = CachedJournalFetcher()
|
||||||
|
var collectionLastFetchMap = HashMap<String, Long>()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user