ソースを参照

Avoid some crashes if router backstack is empty for whatever reason

arkon 3 年 前
コミット
c284a23afb

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseController.kt

@@ -96,7 +96,7 @@ class BrowseController :
         /* It's possible to switch to the Library controller by the time setExtensionUpdateBadge
         is called, resulting in a badge being put on the category tabs (if enabled).
         This check prevents that from happening */
-        if (router.backstack.last().controller !is BrowseController) return
+        if (router.backstack.lastOrNull()?.controller !is BrowseController) return
 
         (activity as? MainActivity)?.binding?.tabs?.apply {
             val updates = preferences.extensionUpdatesCount().get()

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt

@@ -76,7 +76,7 @@ class SearchController(
             router.popController(this)
             if (newManga != null) {
                 val newMangaController = RouterTransaction.with(MangaController(newManga))
-                if (router.backstack.last().controller is MangaController) {
+                if (router.backstack.lastOrNull()?.controller is MangaController) {
                     // Replace old MangaController
                     router.replaceTopController(newMangaController)
                 } else {

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt

@@ -409,7 +409,7 @@ class MainActivity : BaseViewBindingActivity<MainActivityBinding>() {
             }
             SHORTCUT_MANGA -> {
                 val extras = intent.extras ?: return false
-                val fgController = router.backstack.last()?.controller as? MangaController
+                val fgController = router.backstack.lastOrNull()?.controller as? MangaController
                 if (fgController?.manga?.id != extras.getLong(MangaController.MANGA_EXTRA)) {
                     router.popToRoot()
                     setSelectedNavItem(R.id.nav_library)