From 03e9c3dae5ed355cd21cb1c3b6e83222f71ebb67 Mon Sep 17 00:00:00 2001 From: Jannik Date: Sat, 3 Jul 2021 13:36:15 +0200 Subject: [PATCH] fix crash on myList element not present in overall itemMediaList fixes #42 --- .../activity/main/fragments/HomeFragment.kt | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/HomeFragment.kt b/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/HomeFragment.kt index c81ebb7..1f45bcc 100644 --- a/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/HomeFragment.kt +++ b/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/HomeFragment.kt @@ -72,12 +72,7 @@ class HomeFragment : Fragment() { binding.recyclerTopTen.addItemDecoration(MediaItemDecoration(9)) // my list - val myListMedia = StorageController.myList.map { elementId -> - AoDParser.itemMediaList.first { - elementId == it.id - } - } - adapterMyList = MediaItemAdapter(myListMedia) + adapterMyList = MediaItemAdapter(mapMyListToItemMedia()) binding.recyclerMyList.adapter = adapterMyList // new episodes @@ -153,14 +148,19 @@ class HomeFragment : Fragment() { * * only update actual change and not all data (performance) */ fun updateMyListMedia() { - val myListMedia = StorageController.myList.map { elementId -> - AoDParser.itemMediaList.first { - elementId == it.id - } - } - - adapterMyList.updateMediaList(myListMedia) + adapterMyList.updateMediaList(mapMyListToItemMedia()) adapterMyList.notifyDataSetChanged() } + private fun mapMyListToItemMedia(): List { + return StorageController.myList.mapNotNull { elementId -> + AoDParser.itemMediaList.firstOrNull { it.id == elementId }.also { + // it the my list entry wasn't found in itemMediaList Log it + if (it == null) { + Log.w(javaClass.name, "The element with the id $elementId was not found.") + } + } + } + } + } \ No newline at end of file