mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 06:17:57 +01:00 
			
		
		
		
	Fix library not being updated
This commit is contained in:
		| @@ -26,6 +26,8 @@ class LibraryAdapter(private val controller: LibraryController) : RecyclerViewPa | ||||
|             } | ||||
|         } | ||||
|  | ||||
|     private var boundViews = arrayListOf<View>() | ||||
|  | ||||
|     /** | ||||
|      * Creates a new view for this adapter. | ||||
|      * | ||||
| @@ -45,6 +47,7 @@ class LibraryAdapter(private val controller: LibraryController) : RecyclerViewPa | ||||
|      */ | ||||
|     override fun bindView(view: View, position: Int) { | ||||
|         (view as LibraryCategoryView).onBind(categories[position]) | ||||
|         boundViews.add(view) | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -55,6 +58,7 @@ class LibraryAdapter(private val controller: LibraryController) : RecyclerViewPa | ||||
|      */ | ||||
|     override fun recycleView(view: View, position: Int) { | ||||
|         (view as LibraryCategoryView).onRecycle() | ||||
|         boundViews.remove(view) | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -85,4 +89,15 @@ class LibraryAdapter(private val controller: LibraryController) : RecyclerViewPa | ||||
|         return if (index == -1) POSITION_NONE else index | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Called when the view of this adapter is being destroyed. | ||||
|      */ | ||||
|     fun onDestroy() { | ||||
|         for (view in boundViews) { | ||||
|             if (view is LibraryCategoryView) { | ||||
|                 view.unsubscribe() | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -124,12 +124,11 @@ class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: Att | ||||
|     fun onRecycle() { | ||||
|         adapter.setItems(emptyList()) | ||||
|         adapter.clearSelection() | ||||
|         subscriptions.clear() | ||||
|         unsubscribe() | ||||
|     } | ||||
|  | ||||
|     override fun onDetachedFromWindow() { | ||||
|     fun unsubscribe() { | ||||
|         subscriptions.clear() | ||||
|         super.onDetachedFromWindow() | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -164,6 +164,7 @@ class LibraryController( | ||||
|     } | ||||
|  | ||||
|     override fun onDestroyView(view: View) { | ||||
|         adapter?.onDestroy() | ||||
|         adapter = null | ||||
|         actionMode = null | ||||
|         tabsVisibilitySubscription?.unsubscribe() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user