From 895191814eef0ddb0d4d8a0c25154b1c993bc975 Mon Sep 17 00:00:00 2001 From: NerdNumber9 Date: Sat, 20 Apr 2019 14:01:18 -0400 Subject: [PATCH] Fix favorites sync and backup/restore crashing on older devices --- .../kanade/tachiyomi/data/backup/BackupRestoreService.kt | 9 +++++++-- app/src/main/java/exh/eh/EHentaiUpdateWorker.kt | 1 + app/src/main/java/exh/favorites/FavoritesSyncHelper.kt | 9 +++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestoreService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestoreService.kt index 762f2b1f2..9f202c906 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestoreService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestoreService.kt @@ -4,6 +4,7 @@ import android.app.Service import android.content.Context import android.content.Intent import android.net.Uri +import android.os.Build import android.os.IBinder import android.os.PowerManager import com.elvishew.xlog.XLog @@ -180,13 +181,17 @@ class BackupRestoreService : Service() { subscription = Observable.using( { // Pause auto-gallery-update during restore - EHentaiUpdateWorker.cancelBackground(this) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + EHentaiUpdateWorker.cancelBackground(this) + } db.lowLevel().beginTransaction() }, { getRestoreObservable(uri).doOnNext { db.lowLevel().setTransactionSuccessful() } }, { // Resume auto-gallery-update - EHentaiUpdateWorker.scheduleBackground(this) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + EHentaiUpdateWorker.scheduleBackground(this) + } executor.execute { db.lowLevel().endTransaction() } }) .doAfterTerminate { stopSelf(startId) } diff --git a/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt b/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt index e611ef8fb..d441d7053 100644 --- a/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt +++ b/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt @@ -249,6 +249,7 @@ class EHentaiUpdateWorker: JobService(), CoroutineScope { } } + @RequiresApi(Build.VERSION_CODES.LOLLIPOP) companion object { private const val MAX_UPDATE_FAILURES = 5 diff --git a/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt b/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt index e4494430a..1da85f857 100644 --- a/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt +++ b/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt @@ -2,6 +2,7 @@ package exh.favorites import android.content.Context import android.net.wifi.WifiManager +import android.os.Build import android.os.PowerManager import com.elvishew.xlog.XLog import eu.kanade.tachiyomi.data.database.DatabaseHelper @@ -114,7 +115,9 @@ class FavoritesSyncHelper(val context: Context) { } // Do not update galleries while syncing favorites - EHentaiUpdateWorker.cancelBackground(context) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + EHentaiUpdateWorker.cancelBackground(context) + } storage.getRealm().use { realm -> realm.trans { @@ -167,7 +170,9 @@ class FavoritesSyncHelper(val context: Context) { } // Update galleries again! - EHentaiUpdateWorker.scheduleBackground(context) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + EHentaiUpdateWorker.scheduleBackground(context) + } } if(errorList.isEmpty())