mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-11-10 14:27:47 +01:00
commit
5733429682
3 changed files with 33 additions and 51 deletions
|
@ -13,7 +13,6 @@ import com.bluelinelabs.conductor.RouterTransaction
|
|||
import com.bluelinelabs.conductor.support.RouterPagerAdapter
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import com.jakewharton.rxrelay.BehaviorRelay
|
||||
import com.jakewharton.rxrelay.PublishRelay
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||
|
@ -63,8 +62,6 @@ class MangaController : RxController<PagerControllerBinding>, TabbedController {
|
|||
|
||||
val fromSource = args.getBoolean(FROM_SOURCE_EXTRA, false)
|
||||
|
||||
val mangaFavoriteRelay: PublishRelay<Boolean> = PublishRelay.create()
|
||||
|
||||
private val trackingIconRelay: BehaviorRelay<Boolean> = BehaviorRelay.create()
|
||||
|
||||
private var trackingIconSubscription: Subscription? = null
|
||||
|
|
|
@ -97,7 +97,7 @@ class MangaInfoChaptersController(private val fromSource: Boolean = false) :
|
|||
override fun createPresenter(): MangaInfoChaptersPresenter {
|
||||
val ctrl = parentController as MangaController
|
||||
return MangaInfoChaptersPresenter(
|
||||
ctrl.manga!!, ctrl.source!!, ctrl.mangaFavoriteRelay
|
||||
ctrl.manga!!, ctrl.source!!
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -381,6 +381,11 @@ class MangaInfoChaptersController(private val fromSource: Boolean = false) :
|
|||
toggleFavorite()
|
||||
activity?.toast(activity?.getString(R.string.manga_removed_library))
|
||||
} else {
|
||||
addToLibrary(manga)
|
||||
}
|
||||
}
|
||||
|
||||
private fun addToLibrary(manga: Manga) {
|
||||
val categories = presenter.getCategories()
|
||||
val defaultCategoryId = preferences.defaultCategory()
|
||||
val defaultCategory = categories.find { it.id == defaultCategoryId }
|
||||
|
@ -412,7 +417,6 @@ class MangaInfoChaptersController(private val fromSource: Boolean = false) :
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Toggles the favorite status and asks for confirmation to delete downloaded chapters.
|
||||
|
@ -755,11 +759,12 @@ class MangaInfoChaptersController(private val fromSource: Boolean = false) :
|
|||
|
||||
private fun downloadChapters(chapters: List<ChapterItem>) {
|
||||
val view = view
|
||||
val manga = presenter.manga
|
||||
presenter.downloadChapters(chapters)
|
||||
if (view != null && !presenter.manga.favorite) {
|
||||
if (view != null && !manga.favorite) {
|
||||
binding.recycler.snack(view.context.getString(R.string.snack_add_to_library), Snackbar.LENGTH_INDEFINITE) {
|
||||
setAction(R.string.action_add) {
|
||||
presenter.addToLibrary()
|
||||
addToLibrary(manga)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,6 @@ import uy.kohesive.injekt.api.get
|
|||
class MangaInfoChaptersPresenter(
|
||||
val manga: Manga,
|
||||
val source: Source,
|
||||
private val mangaFavoriteRelay: PublishRelay<Boolean>,
|
||||
val preferences: PreferencesHelper = Injekt.get(),
|
||||
private val db: DatabaseHelper = Injekt.get(),
|
||||
private val downloadManager: DownloadManager = Injekt.get(),
|
||||
|
@ -80,11 +79,6 @@ class MangaInfoChaptersPresenter(
|
|||
getMangaObservable()
|
||||
.subscribeLatestCache({ view, manga -> view.onNextMangaInfo(manga, source) })
|
||||
|
||||
// Update favorite status
|
||||
mangaFavoriteRelay.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe { setFavorite(it) }
|
||||
.apply { add(this) }
|
||||
|
||||
// Prepare the relay.
|
||||
chaptersRelay.flatMap { applyChapterFilters(it) }
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
|
@ -162,13 +156,6 @@ class MangaInfoChaptersPresenter(
|
|||
return manga.favorite
|
||||
}
|
||||
|
||||
private fun setFavorite(favorite: Boolean) {
|
||||
if (manga.favorite == favorite) {
|
||||
return
|
||||
}
|
||||
toggleFavorite()
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the manga has any downloads.
|
||||
*/
|
||||
|
@ -503,13 +490,6 @@ class MangaInfoChaptersPresenter(
|
|||
refreshChapters()
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds manga to library
|
||||
*/
|
||||
fun addToLibrary() {
|
||||
mangaFavoriteRelay.call(true)
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the active display mode.
|
||||
* @param mode the mode to set.
|
||||
|
|
Loading…
Reference in a new issue