فهرست منبع

Handle null directories as empty arrays

len 8 سال پیش
والد
کامیت
8c1b07c4ba
1فایلهای تغییر یافته به همراه12 افزوده شده و 39 حذف شده
  1. 12 39
      app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChaptersPresenter.kt

+ 12 - 39
app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChaptersPresenter.kt

@@ -43,43 +43,17 @@ class RecentChaptersPresenter : BasePresenter<RecentChaptersFragment>() {
      */
     private var chapters: List<RecentChapter>? = null
 
-    /**
-     * The id of the restartable.
-     */
-    val GET_RECENT_CHAPTERS = 1
-
-    /**
-     * The id of the restartable.
-     */
-    val CHAPTER_STATUS_CHANGES = 2
-
     override fun onCreate(savedState: Bundle?) {
         super.onCreate(savedState)
 
-        // Used to get recent chapters
-        restartableLatestCache(GET_RECENT_CHAPTERS,
-                { getRecentChaptersObservable() },
-                { view, chapters ->
-                    // Update adapter to show recent manga's
-                    view.onNextRecentChapters(chapters)
-                }
-        )
+        getRecentChaptersObservable()
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribeLatestCache(RecentChaptersFragment::onNextRecentChapters)
 
-        // Used to update download status
-        restartableLatestCache(CHAPTER_STATUS_CHANGES,
-                { getChapterStatusObservable() },
-                { view, download ->
-                    // Set chapter status
-                    view.onChapterStatusChange(download)
-                },
-                { view, error -> Timber.e(error) }
-        )
+        getChapterStatusObservable()
+                .subscribeLatestCache(RecentChaptersFragment::onChapterStatusChange,
+                        { view, error -> Timber.e(error) })
 
-        if (savedState == null) {
-            // Start fetching recent chapters
-            start(GET_RECENT_CHAPTERS)
-            start(CHAPTER_STATUS_CHANGES)
-        }
     }
 
     /**
@@ -119,7 +93,6 @@ class RecentChaptersPresenter : BasePresenter<RecentChaptersFragment>() {
                         }
                     }
                 }
-                .observeOn(AndroidSchedulers.mainThread())
     }
 
     /**
@@ -157,25 +130,25 @@ class RecentChaptersPresenter : BasePresenter<RecentChaptersFragment>() {
      */
     private fun setDownloadedChapters(chapters: List<RecentChapter>) {
         // Cached list of downloaded manga directories.
-        val mangaDirectories = mutableMapOf<Int, Array<UniFile>?>()
+        val mangaDirectories = mutableMapOf<Int, Array<UniFile>>()
 
         // Cached list of downloaded chapter directories for a manga.
-        val chapterDirectories = mutableMapOf<Long, Array<UniFile>?>()
+        val chapterDirectories = mutableMapOf<Long, Array<UniFile>>()
 
         for (chapter in chapters) {
             val manga = chapter.manga
             val source = sourceManager.get(manga.source) ?: continue
 
             val mangaDirs = mangaDirectories.getOrPut(source.id) {
-                downloadManager.findSourceDir(source)?.listFiles()
-            } ?: continue
+                downloadManager.findSourceDir(source)?.listFiles() ?: emptyArray()
+            }
 
             val mangaDirName = downloadManager.getMangaDirName(manga)
             val mangaDir = mangaDirs.find { it.name == mangaDirName } ?: continue
 
             val chapterDirs = chapterDirectories.getOrPut(manga.id!!) {
-                mangaDir.listFiles()
-            } ?: continue
+                mangaDir.listFiles() ?: emptyArray()
+            }
 
             val chapterDirName = downloadManager.getChapterDirName(chapter)
             if (chapterDirs.any { it.name == chapterDirName }) {