Recommendations crash fix
This commit is contained in:
parent
2c49466a42
commit
46d9c024da
@ -149,7 +149,7 @@ open class BrowseSourceController(bundle: Bundle) :
|
||||
// SY -->
|
||||
return when (mode) {
|
||||
Mode.CATALOGUE -> presenter.source.name
|
||||
Mode.RECOMMENDS -> recommendsConfig!!.manga.originalTitle
|
||||
Mode.RECOMMENDS -> recommendsConfig!!.title
|
||||
}
|
||||
// SY <--
|
||||
}
|
||||
@ -159,8 +159,7 @@ open class BrowseSourceController(bundle: Bundle) :
|
||||
return BrowseSourcePresenter(
|
||||
args.getLong(SOURCE_ID_KEY),
|
||||
args.getString(SEARCH_QUERY_KEY),
|
||||
searchManga = if (mode == Mode.RECOMMENDS) recommendsConfig?.manga else null,
|
||||
recommends = (mode == Mode.RECOMMENDS)
|
||||
recommendsMangaId = if (mode == Mode.RECOMMENDS) recommendsConfig?.mangaId else null
|
||||
)
|
||||
// SY <--
|
||||
}
|
||||
@ -402,12 +401,6 @@ open class BrowseSourceController(bundle: Bundle) :
|
||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||
inflater.inflate(R.menu.source_browse, menu)
|
||||
|
||||
// SY -->
|
||||
if (mode == Mode.RECOMMENDS) {
|
||||
menu.findItem(R.id.action_search).isVisible = false
|
||||
}
|
||||
// SY <--
|
||||
|
||||
// Initialize search menu
|
||||
val searchItem = menu.findItem(R.id.action_search)
|
||||
val searchView = searchItem.actionView as SearchView
|
||||
@ -441,6 +434,10 @@ open class BrowseSourceController(bundle: Bundle) :
|
||||
}
|
||||
menu.findItem(displayItem).isChecked = true
|
||||
// SY -->
|
||||
if (mode == Mode.RECOMMENDS) {
|
||||
menu.findItem(R.id.action_search).isVisible = false
|
||||
}
|
||||
|
||||
if (preferences.enhancedEHentaiView().get() && presenter.source.isEhBasedSource()) {
|
||||
menu.findItem(R.id.action_display_mode).isVisible = false
|
||||
}
|
||||
@ -833,7 +830,7 @@ open class BrowseSourceController(bundle: Bundle) :
|
||||
|
||||
// SY -->
|
||||
@Parcelize
|
||||
data class RecommendsConfig(val manga: Manga) : Parcelable
|
||||
data class RecommendsConfig(val title: String, val mangaId: Long?) : Parcelable
|
||||
|
||||
enum class Mode {
|
||||
CATALOGUE,
|
||||
|
@ -57,14 +57,13 @@ import xyz.nulldev.ts.api.http.serializer.FilterSerializer
|
||||
open class BrowseSourcePresenter(
|
||||
private val sourceId: Long,
|
||||
private val searchQuery: String? = null,
|
||||
private val searchManga: Manga? = null,
|
||||
// SY -->
|
||||
private val recommendsMangaId: Long? = null,
|
||||
// SY <--
|
||||
private val sourceManager: SourceManager = Injekt.get(),
|
||||
private val db: DatabaseHelper = Injekt.get(),
|
||||
private val prefs: PreferencesHelper = Injekt.get(),
|
||||
private val coverCache: CoverCache = Injekt.get(),
|
||||
// SY -->
|
||||
private val recommends: Boolean = false
|
||||
// SY <--
|
||||
private val coverCache: CoverCache = Injekt.get()
|
||||
) : BasePresenter<BrowseSourceController>() {
|
||||
|
||||
/**
|
||||
@ -75,7 +74,7 @@ open class BrowseSourcePresenter(
|
||||
/**
|
||||
* Query from the view.
|
||||
*/
|
||||
var query = /* SY --> */ if (recommends) "" else /* SY <-- */ searchQuery ?: ""
|
||||
var query = searchQuery ?: ""
|
||||
private set
|
||||
|
||||
/**
|
||||
@ -114,6 +113,10 @@ open class BrowseSourcePresenter(
|
||||
*/
|
||||
private var pageSubscription: Subscription? = null
|
||||
|
||||
// SY -->
|
||||
private var manga: Manga? = null
|
||||
// SY <--
|
||||
|
||||
/**
|
||||
* Subscription to initialize manga details.
|
||||
*/
|
||||
@ -130,6 +133,10 @@ open class BrowseSourcePresenter(
|
||||
query = savedState.getString(::query.name, "")
|
||||
}
|
||||
|
||||
if (recommendsMangaId != null) {
|
||||
manga = db.getManga(recommendsMangaId).executeAsBlocking()
|
||||
}
|
||||
|
||||
restartPager()
|
||||
}
|
||||
|
||||
@ -152,8 +159,8 @@ open class BrowseSourcePresenter(
|
||||
|
||||
// Create a new pager.
|
||||
// SY -->
|
||||
pager = if (recommends && searchManga != null) RecommendsPager(
|
||||
searchManga
|
||||
pager = if (recommendsMangaId != null && manga != null) RecommendsPager(
|
||||
manga ?: throw Exception("Could not get Manga")
|
||||
) else createPager(query, filters)
|
||||
// SY <--
|
||||
|
||||
|
@ -621,7 +621,7 @@ class MangaController :
|
||||
|
||||
// AZ -->
|
||||
fun openRecommends() {
|
||||
val recommendsConfig = BrowseSourceController.RecommendsConfig(presenter.manga)
|
||||
val recommendsConfig = BrowseSourceController.RecommendsConfig(presenter.manga.originalTitle, presenter.manga.id)
|
||||
|
||||
router?.pushController(
|
||||
BrowseSourceController(
|
||||
|
Loading…
x
Reference in New Issue
Block a user