Remove newThread usages, it probably fixes random crashes
This commit is contained in:
parent
f15df40a54
commit
5f1a89df63
@ -273,7 +273,7 @@ class DownloadManager(
|
|||||||
page
|
page
|
||||||
}
|
}
|
||||||
// Retry 3 times, waiting 2, 4 and 8 seconds between attempts.
|
// Retry 3 times, waiting 2, 4 and 8 seconds between attempts.
|
||||||
.retryWhen(RetryWithDelay(3, { (2 shl it - 1) * 1000 }))
|
.retryWhen(RetryWithDelay(3, { (2 shl it - 1) * 1000 }, Schedulers.trampoline()))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Public method to get the image from the filesystem. It does NOT provide any way to download the image
|
// Public method to get the image from the filesystem. It does NOT provide any way to download the image
|
||||||
|
@ -14,7 +14,6 @@ import nucleus.factory.RequiresPresenter
|
|||||||
import rx.Observable
|
import rx.Observable
|
||||||
import rx.Subscription
|
import rx.Subscription
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
import rx.schedulers.Schedulers
|
|
||||||
import rx.subscriptions.CompositeSubscription
|
import rx.subscriptions.CompositeSubscription
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
@ -179,7 +178,7 @@ class DownloadFragment : BaseRxFragment<DownloadPresenter>() {
|
|||||||
* @param download the download to observe its progress.
|
* @param download the download to observe its progress.
|
||||||
*/
|
*/
|
||||||
private fun observeProgress(download: Download) {
|
private fun observeProgress(download: Download) {
|
||||||
val subscription = Observable.interval(50, TimeUnit.MILLISECONDS, Schedulers.newThread())
|
val subscription = Observable.interval(50, TimeUnit.MILLISECONDS)
|
||||||
// Get the sum of percentages for all the pages.
|
// Get the sum of percentages for all the pages.
|
||||||
.flatMap {
|
.flatMap {
|
||||||
Observable.from(download.pages)
|
Observable.from(download.pages)
|
||||||
|
@ -21,7 +21,6 @@ import kotlinx.android.synthetic.main.item_pager_reader.*
|
|||||||
import rx.Observable
|
import rx.Observable
|
||||||
import rx.Subscription
|
import rx.Subscription
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
import rx.schedulers.Schedulers
|
|
||||||
import rx.subjects.PublishSubject
|
import rx.subjects.PublishSubject
|
||||||
import rx.subjects.SerializedSubject
|
import rx.subjects.SerializedSubject
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@ -168,7 +167,7 @@ class PagerReaderFragment : BaseFragment() {
|
|||||||
val currentValue = AtomicInteger(-1)
|
val currentValue = AtomicInteger(-1)
|
||||||
|
|
||||||
progressSubscription?.unsubscribe()
|
progressSubscription?.unsubscribe()
|
||||||
progressSubscription = Observable.interval(100, TimeUnit.MILLISECONDS, Schedulers.newThread())
|
progressSubscription = Observable.interval(100, TimeUnit.MILLISECONDS)
|
||||||
.onBackpressureLatest()
|
.onBackpressureLatest()
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe {
|
.subscribe {
|
||||||
|
@ -1,12 +1,15 @@
|
|||||||
package eu.kanade.tachiyomi.util
|
package eu.kanade.tachiyomi.util
|
||||||
|
|
||||||
import rx.Observable
|
import rx.Observable
|
||||||
|
import rx.Scheduler
|
||||||
import rx.functions.Func1
|
import rx.functions.Func1
|
||||||
|
import rx.schedulers.Schedulers
|
||||||
import java.util.concurrent.TimeUnit.MILLISECONDS
|
import java.util.concurrent.TimeUnit.MILLISECONDS
|
||||||
|
|
||||||
class RetryWithDelay(
|
class RetryWithDelay(
|
||||||
private val maxRetries: Int = 1,
|
private val maxRetries: Int = 1,
|
||||||
private val retryStrategy: (Int) -> Int = { 1000 }
|
private val retryStrategy: (Int) -> Int = { 1000 },
|
||||||
|
private val scheduler: Scheduler = Schedulers.computation()
|
||||||
) : Func1<Observable<out Throwable>, Observable<*>> {
|
) : Func1<Observable<out Throwable>, Observable<*>> {
|
||||||
|
|
||||||
private var retryCount = 0
|
private var retryCount = 0
|
||||||
@ -14,7 +17,7 @@ class RetryWithDelay(
|
|||||||
override fun call(attempts: Observable<out Throwable>) = attempts.flatMap { error ->
|
override fun call(attempts: Observable<out Throwable>) = attempts.flatMap { error ->
|
||||||
val count = ++retryCount
|
val count = ++retryCount
|
||||||
if (count <= maxRetries) {
|
if (count <= maxRetries) {
|
||||||
Observable.timer(retryStrategy(count).toLong(), MILLISECONDS)
|
Observable.timer(retryStrategy(count).toLong(), MILLISECONDS, scheduler)
|
||||||
} else {
|
} else {
|
||||||
Observable.error(error as Throwable)
|
Observable.error(error as Throwable)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user