@@ -22,6 +22,7 @@ import com.duckduckgo.app.global.filterBlankItems
2222import com.duckduckgo.app.global.store.BinaryDataStore
2323import com.duckduckgo.app.trackerdetection.Client.ClientName.*
2424import com.duckduckgo.app.trackerdetection.TrackerDataLoader
25+ import com.duckduckgo.app.trackerdetection.db.TdsMetadataDao
2526import com.duckduckgo.app.trackerdetection.db.TdsTrackerDao
2627import com.duckduckgo.app.trackerdetection.db.TemporaryTrackingWhitelistDao
2728import com.duckduckgo.app.trackerdetection.model.TemporaryTrackingWhitelistedDomain
@@ -34,9 +35,9 @@ class TrackerDataDownloader @Inject constructor(
3435 private val trackerListService : TrackerListService ,
3536 private val binaryDataStore : BinaryDataStore ,
3637 private val trackerDataLoader : TrackerDataLoader ,
37- private val tdsTrackerDao : TdsTrackerDao ,
3838 private val temporaryTrackingWhitelistDao : TemporaryTrackingWhitelistDao ,
39- private val appDatabase : AppDatabase
39+ private val appDatabase : AppDatabase ,
40+ private val metadataDao : TdsMetadataDao
4041) {
4142
4243 fun downloadTds (): Completable {
@@ -51,17 +52,16 @@ class TrackerDataDownloader @Inject constructor(
5152 if (! response.isSuccessful) {
5253 throw IOException (" Status: ${response.code()} - ${response.errorBody()?.string()} " )
5354 }
54- if (response.isCached && tdsTrackerDao.count() != 0 ) {
55- Timber .d(" Tds data already cached and stored" )
56- return @fromAction
57- }
5855
59- Timber .d(" Updating tds data from server" )
6056 val body = response.body()!!
6157 val eTag = response.headers()[" eTag" ]?.removeSurrounding(" W/\" " , " \" " ).orEmpty() // removes weak eTag validator
62- appDatabase.runInTransaction {
63- trackerDataLoader.persistTds(eTag, body)
64- trackerDataLoader.loadTrackers()
58+ val oldEtag = metadataDao.eTag()
59+ if (eTag != oldEtag) {
60+ Timber .d(" Updating tds data from server" )
61+ appDatabase.runInTransaction {
62+ trackerDataLoader.persistTds(eTag, body)
63+ trackerDataLoader.loadTrackers()
64+ }
6565 }
6666 }
6767 }
0 commit comments