Skip to content

Commit

Permalink
drop local cache item implemented
Browse files Browse the repository at this point in the history
  • Loading branch information
savepopulation committed Apr 13, 2019
1 parent f8279df commit 6a20511
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 6 deletions.
6 changes: 3 additions & 3 deletions beaverlib/src/main/java/com/raqun/beaverlib/Beaver.kt
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ object Beaver {
forceLocal: Boolean = false
): Deferred<MetaData?> {
assertIsInitialized()
return metaDataRepository!!.getMetaData(url, forceRefresh)
return metaDataRepository!!.getMetaData(url, forceRefresh, forceLocal)
}

fun dropBeaverCache() {
Expand All @@ -65,9 +65,9 @@ object Beaver {
metaDataRepository = null
}

fun dropBeaverLocalCache() {
fun dropBeaverLocalCache(url: String? = null) {
assertIsInitialized()
metaDataRepository!!.dropLocalCache()
metaDataRepository!!.dropLocalCache(url)
}

fun isBeaverInitialized() = metaDataRepository != null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ interface DataSource {

fun put(key: KEY, data: VALUE): Boolean

fun remove(key: KEY): Boolean

fun clear()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ interface MetaDataRepository {

fun dropCache()

fun dropLocalCache()
fun dropLocalCache(url: String? = null)

fun drop()
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,13 @@ class MetaDataRepositoryImpl(
}

@Synchronized
override fun dropLocalCache() {
metaDataLocalDataSource?.clear()
override fun dropLocalCache(url: String?) {
if (metaDataLocalDataSource == null) return
if (url == null) {
metaDataLocalDataSource.clear()
} else {
metaDataLocalDataSource.remove(url)
}
}

@Synchronized
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ interface MetaDataDao {
@Query("SELECT * FROM metadata WHERE raw_url = :rawUrl")
fun getMetaData(rawUrl: String): List<MetaDataEntity>

@Query("DELETE FROM metadata WHERE raw_url = :rawUrl")
fun deletMetaData(rawUrl: String)

@Query("DELETE FROM metadata")
fun nukeTable()
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ class MetaDataLocalDataSource(private val db: BeaverDb) : DataSource.Local<Strin
return db.metaDataDao().addMetaData(metadataEntity) > 0
}

override fun remove(key: String): Boolean {
db.metaDataDao().deletMetaData(key)
return true
}

override fun clear() {
db.metaDataDao().nukeTable()
}
Expand Down

0 comments on commit 6a20511

Please sign in to comment.