Allow to unbind manga, closes #258. Fix some network calls leaking

This commit is contained in:
len
2016-04-18 20:14:50 +02:00
parent 81bce8ef76
commit 17c59657c3
6 changed files with 37 additions and 21 deletions

View File

@@ -260,6 +260,14 @@ open class DatabaseHelper(context: Context) {
fun deleteMangaSync(manga: MangaSync) = db.delete().`object`(manga).prepare()
fun deleteMangaSyncForManga(manga: Manga) = db.delete()
.byQuery(DeleteQuery.builder()
.table(MangaSyncTable.TABLE)
.where("${MangaSyncTable.COLUMN_MANGA_ID} = ?")
.whereArgs(manga.id)
.build())
.prepare()
// Categories related queries
fun getCategories() = db.get()

View File

@@ -44,10 +44,11 @@ class NetworkHelper(context: Context) {
@JvmOverloads
fun request(request: Request, forceCache: Boolean = false): Observable<Response> {
var response: Response? = null
return Observable.fromCallable {
val c = if (forceCache) forceCacheClient else client
c.newCall(request).execute()
}
c.newCall(request).execute().apply { response = this }
}.doOnUnsubscribe { response?.body()?.close() }
}
@JvmOverloads
@@ -57,6 +58,7 @@ class NetworkHelper(context: Context) {
}
fun requestBodyProgress(request: Request, listener: ProgressListener): Observable<Response> {
var response: Response? = null
return Observable.fromCallable {
val progressClient = client.newBuilder()
.cache(null)
@@ -68,8 +70,8 @@ class NetworkHelper(context: Context) {
}
.build()
progressClient.newCall(request).execute()
}.retry(1)
progressClient.newCall(request).execute().apply { response = this }
}.doOnUnsubscribe { response?.body()?.close() }.retry(1)
}
val cookies: CookieStore