mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Remove fake chapter deletion state updates
Now that the updates and manga screen listen to download cache changes, it'll reflect the real states once deleted.
This commit is contained in:
		| @@ -666,28 +666,13 @@ class MangaPresenter( | ||||
|      */ | ||||
|     fun deleteChapters(chapters: List<DomainChapter>) { | ||||
|         presenterScope.launchNonCancellable { | ||||
|             val chapters2 = chapters.map { it.toDbChapter() } | ||||
|             try { | ||||
|                 updateSuccessState { successState -> | ||||
|                     val deletedIds = downloadManager | ||||
|                         .deleteChapters(chapters2, successState.manga, successState.source) | ||||
|                         .map { it.id } | ||||
|                     val deletedChapters = successState.chapters.filter { deletedIds.contains(it.chapter.id) } | ||||
|                     if (deletedChapters.isEmpty()) return@updateSuccessState successState | ||||
|  | ||||
|                     // TODO: Don't do this fake status update | ||||
|                     val newChapters = successState.chapters.toMutableList().apply { | ||||
|                         deletedChapters.forEach { | ||||
|                             val index = indexOf(it) | ||||
|                             val toAdd = removeAt(index) | ||||
|                                 .copy( | ||||
|                                     downloadState = Download.State.NOT_DOWNLOADED, | ||||
|                                     downloadProgress = 0, | ||||
|                                 ) | ||||
|                             add(index, toAdd) | ||||
|                         } | ||||
|                     } | ||||
|                     successState.copy(chapters = newChapters) | ||||
|                 successState?.let { state -> | ||||
|                     downloadManager.deleteChapters( | ||||
|                         chapters.map { it.toDbChapter() }, | ||||
|                         state.manga, | ||||
|                         state.source, | ||||
|                     ) | ||||
|                 } | ||||
|             } catch (e: Throwable) { | ||||
|                 logcat(LogPriority.ERROR, e) | ||||
|   | ||||
| @@ -255,30 +255,13 @@ class UpdatesPresenter( | ||||
|     fun deleteChapters(updatesItem: List<UpdatesItem>) { | ||||
|         presenterScope.launchNonCancellable { | ||||
|             val groupedUpdates = updatesItem.groupBy { it.update.mangaId }.values | ||||
|             val deletedIds = groupedUpdates.flatMap { updates -> | ||||
|             groupedUpdates.flatMap { updates -> | ||||
|                 val mangaId = updates.first().update.mangaId | ||||
|                 val manga = getManga.await(mangaId) ?: return@flatMap emptyList() | ||||
|                 val source = sourceManager.get(manga.source) ?: return@flatMap emptyList() | ||||
|                 val chapters = updates.mapNotNull { getChapter.await(it.update.chapterId)?.toDbChapter() } | ||||
|                 downloadManager.deleteChapters(chapters, manga, source).mapNotNull { it.id } | ||||
|             } | ||||
|  | ||||
|             val deletedUpdates = items.filter { | ||||
|                 deletedIds.contains(it.update.chapterId) | ||||
|             } | ||||
|             if (deletedUpdates.isEmpty()) return@launchNonCancellable | ||||
|  | ||||
|             // TODO: Don't do this fake status update | ||||
|             state.items = state.items.toMutableList().apply { | ||||
|                 deletedUpdates.forEach { deletedUpdate -> | ||||
|                     val modifiedIndex = indexOf(deletedUpdate) | ||||
|                     val item = removeAt(modifiedIndex).copy( | ||||
|                         downloadStateProvider = { Download.State.NOT_DOWNLOADED }, | ||||
|                         downloadProgressProvider = { 0 }, | ||||
|                     ) | ||||
|                     add(modifiedIndex, item) | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user