From 9c5057ff163ca285c26b7fe88e530fdf054cc9fe Mon Sep 17 00:00:00 2001 From: Craig Russell Date: Fri, 19 Jan 2018 15:07:56 +0000 Subject: [PATCH] Clear out old disconnect data when new data available --- .../trackerdetection/api/TrackerDataDownloader.kt | 14 +++++++++++--- .../app/trackerdetection/db/TrackerDataDao.kt | 3 +++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/duckduckgo/app/trackerdetection/api/TrackerDataDownloader.kt b/app/src/main/java/com/duckduckgo/app/trackerdetection/api/TrackerDataDownloader.kt index 2039a38eecb2..e808e64decb8 100644 --- a/app/src/main/java/com/duckduckgo/app/trackerdetection/api/TrackerDataDownloader.kt +++ b/app/src/main/java/com/duckduckgo/app/trackerdetection/api/TrackerDataDownloader.kt @@ -17,6 +17,7 @@ package com.duckduckgo.app.trackerdetection.api import com.duckduckgo.app.global.api.isCached +import com.duckduckgo.app.global.db.AppDatabase import com.duckduckgo.app.trackerdetection.AdBlockClient import com.duckduckgo.app.trackerdetection.Client import com.duckduckgo.app.trackerdetection.Client.ClientName.* @@ -35,7 +36,8 @@ class TrackerDataDownloader @Inject constructor( private val trackerListService: TrackerListService, private val trackerDataStore: TrackerDataStore, private val trackerDataLoader: TrackerDataLoader, - private val trackerDataDao: TrackerDataDao) { + private val trackerDataDao: TrackerDataDao, + private val appDatabase: AppDatabase) { fun downloadList(clientName: Client.ClientName): Completable { @@ -63,8 +65,14 @@ class TrackerDataDownloader @Inject constructor( if (response.isSuccessful) { Timber.d("Updating disconnect data from server") val body = response.body()!! - trackerDataDao.insertAll(body.trackers) - trackerDataLoader.loadDisconnectData() + + appDatabase.runInTransaction { + trackerDataDao.deleteAll() + trackerDataDao.insertAll(body.trackers) + trackerDataLoader.loadDisconnectData() + } + + } else { throw IOException("Status: ${response.code()} - ${response.errorBody()?.string()}") } diff --git a/app/src/main/java/com/duckduckgo/app/trackerdetection/db/TrackerDataDao.kt b/app/src/main/java/com/duckduckgo/app/trackerdetection/db/TrackerDataDao.kt index 7ce55856eabe..189dfbdc05cb 100644 --- a/app/src/main/java/com/duckduckgo/app/trackerdetection/db/TrackerDataDao.kt +++ b/app/src/main/java/com/duckduckgo/app/trackerdetection/db/TrackerDataDao.kt @@ -34,4 +34,7 @@ interface TrackerDataDao { @Query("Select count(*) from disconnect_tracker") fun count(): Int + + @Query("DELETE FROM disconnect_tracker") + fun deleteAll() } \ No newline at end of file