From 2dc8159d96eaf9f3c2ce5092f5e79b8fce533905 Mon Sep 17 00:00:00 2001 From: len Date: Thu, 17 Nov 2016 21:14:50 +0100 Subject: [PATCH] Fix #517 and a few more crashes --- .../tachiyomi/data/library/LibraryUpdateService.kt | 12 +++--------- .../tachiyomi/ui/main/ChangelogDialogFragment.kt | 4 +++- .../tachiyomi/ui/setting/SettingsAdvancedFragment.kt | 2 +- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt index 2a785958d..14f5b3ee0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt @@ -5,7 +5,6 @@ import android.app.Service import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import android.graphics.Bitmap import android.graphics.BitmapFactory import android.os.IBinder import android.os.PowerManager @@ -73,7 +72,9 @@ class LibraryUpdateService : Service() { private val notificationId: Int get() = Constants.NOTIFICATION_LIBRARY_ID - private var notificationBitmap: Bitmap? = null + private val notificationBitmap by lazy { + BitmapFactory.decodeResource(resources, R.mipmap.ic_launcher) + } companion object { @@ -141,8 +142,6 @@ class LibraryUpdateService : Service() { */ override fun onDestroy() { subscription?.unsubscribe() - notificationBitmap?.recycle() - notificationBitmap = null destroyWakeLock() super.onDestroy() } @@ -171,10 +170,6 @@ class LibraryUpdateService : Service() { // Update favorite manga. Destroy service when completed or in case of an error. subscription = Observable .defer { - if (notificationBitmap == null) { - notificationBitmap = BitmapFactory.decodeResource(resources, R.mipmap.ic_launcher) - } - val mangaList = getMangaToUpdate(intent) // Update either chapter list or manga details. @@ -267,7 +262,6 @@ class LibraryUpdateService : Service() { } else { showResultNotification(newUpdates, failedUpdates) } - LibraryUpdateJob.setupTask() } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/ChangelogDialogFragment.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/ChangelogDialogFragment.kt index 33a8f6fd8..b2f429215 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/ChangelogDialogFragment.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/ChangelogDialogFragment.kt @@ -9,6 +9,7 @@ import android.util.AttributeSet import com.afollestad.materialdialogs.MaterialDialog import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.R +import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.getOrDefault import eu.kanade.tachiyomi.data.updater.UpdateCheckerJob @@ -23,9 +24,10 @@ class ChangelogDialogFragment : DialogFragment() { preferences.lastVersionCode().set(BuildConfig.VERSION_CODE) ChangelogDialogFragment().show(fragmentManager, "changelog") - // FIXME Ugly check to restore auto updates setting. Remove me in a few months :D + // FIXME Ugly check to restore jobs. Remove me in a few months :D if (oldVersion < 14 && BuildConfig.INCLUDE_UPDATER && preferences.automaticUpdates()) { UpdateCheckerJob.setupTask() + LibraryUpdateJob.setupTask() } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedFragment.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedFragment.kt index ad3c918fa..f35ff2ceb 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedFragment.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedFragment.kt @@ -71,7 +71,7 @@ class SettingsAdvancedFragment : SettingsFragment() { private fun clearChapterCache() { val deletedFiles = AtomicInteger() - val files = chapterCache.cacheDir.listFiles() + val files = chapterCache.cacheDir.listFiles() ?: return val dialog = MaterialDialog.Builder(activity) .title(R.string.deleting)