70 lines
2.2 KiB
Kotlin
70 lines
2.2 KiB
Kotlin
package exh.recs
|
|
|
|
import android.os.Bundle
|
|
import android.view.Menu
|
|
import android.view.View
|
|
import androidx.core.os.bundleOf
|
|
import eu.kanade.tachiyomi.R
|
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
|
import eu.kanade.tachiyomi.source.CatalogueSource
|
|
import eu.kanade.tachiyomi.ui.base.controller.pushController
|
|
import eu.kanade.tachiyomi.ui.browse.source.SourceController
|
|
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController
|
|
import eu.kanade.tachiyomi.ui.browse.source.browse.SourceItem
|
|
|
|
/**
|
|
* Controller that shows the latest manga from the catalogue. Inherit [BrowseSourceController].
|
|
*/
|
|
class RecommendsController(bundle: Bundle) : BrowseSourceController(bundle) {
|
|
|
|
constructor(manga: Manga, source: CatalogueSource) : this(
|
|
bundleOf(
|
|
MANGA_ID to manga.id!!,
|
|
SOURCE_ID_KEY to source.id,
|
|
),
|
|
)
|
|
|
|
override fun getTitle(): String? {
|
|
return (presenter as? RecommendsPresenter)?.manga?.title
|
|
}
|
|
|
|
override fun createPresenter(): RecommendsPresenter {
|
|
return RecommendsPresenter(args.getLong(MANGA_ID), args.getLong(SOURCE_ID_KEY))
|
|
}
|
|
|
|
override fun onPrepareOptionsMenu(menu: Menu) {
|
|
super.onPrepareOptionsMenu(menu)
|
|
menu.findItem(R.id.action_search).isVisible = false
|
|
menu.findItem(R.id.action_open_in_web_view).isVisible = false
|
|
menu.findItem(R.id.action_settings).isVisible = false
|
|
}
|
|
|
|
override fun initFilterSheet() {
|
|
// No-op: we don't allow filtering in recs
|
|
}
|
|
|
|
override fun onItemClick(view: View, position: Int): Boolean {
|
|
val item = adapter?.getItem(position) as? SourceItem ?: return false
|
|
openSmartSearch(item.manga.originalTitle)
|
|
return true
|
|
}
|
|
|
|
private fun openSmartSearch(title: String) {
|
|
val smartSearchConfig = SourceController.SmartSearchConfig(title)
|
|
router.pushController(
|
|
SourceController(
|
|
bundleOf(
|
|
SourceController.SMART_SEARCH_CONFIG to smartSearchConfig,
|
|
),
|
|
),
|
|
)
|
|
}
|
|
|
|
override fun onItemLongClick(position: Int) {
|
|
return
|
|
}
|
|
|
|
companion object {
|
|
const val MANGA_ID = "manga_id"
|
|
}
|
|
}
|